»
talks
-
» Rust Introduction: Systems Programming, Fearless Concurrency and Fireflowers
Given at 8th Light University and Sprout Social
A "Rust 101 talk". Basics of the language, some of its benefits, challenges. Emphasis on its safety guarantees, concurrency features, etc.
-
» Chef 101: Training @ Sprout
Given at Sprout Social
Chef Configuration Management is taught from first princples, with hands-on demos to reinforce best practices
-
» JVM Garbage Collection Tuning
Given at Sprout Social
A tour of the various JVM garbage collectors, when to use which, and general best practices depending on workload and application behavior
-
» The Trouble with Time
Given at Chicago Distributed Systems, April 2015
Discusses the challenges of time in distributed systems. Linearizability, total ordering, and the challenges with wall-clock time were covered
-
» Scala: My Favorite JVM Language
Given at Chicago Ruby Polyglot Night, December 3rd, 2013.
VideoBrief lightning talk where I discuss why I like Scala and how we use it at TempoDB
-
» Go: Simple Yet Scalable
Given at Chicago Software Craftsmanship Meetup, June 5th, 2013.
Go is a new imperative programming language started at Google. In just a few years, it's gained a large following in the open source community for its simplicity, ease of use, and powerful concurrency support. Dynamic languages like Ruby, Python and JavaScript have gotten lots of traction on the web, but I'm going to show you how a compiled programming language can be more productive, and help you build scalable network services. We're going to build and deploy a small web service to showcase the good and bad parts of Go. By the end of this talk, you should know enough about Go to start your own small projects, and how you can use Go to solve problems at even larger scales.
-
» Fun with Clojure Concurrency
Given at Geekfest @ Groupon Chicago, May 15th 2012
Blog PostOne of my favorite things about Clojure is its baked in concurrency support. As a Rubyist learning Clojure, I've grown used to doing concurrency the "Ruby way" - lots of forked processes and minimal control. Headache usually ensues. After spending some time with Clojure, I've realized that it doesn't have to be this way. I want to share with you what I've learned.
Clojure provides so many features that simplify concurrency. It leverages the JVM as a robust runtime, has a software transactional memory system with persistent data structures, and gives you grab bag of powerful concurrency primitives: Agents, Futures, Promises, Atoms and Refs. There's a lot to take in, but we're going to get to the bottom of all these. I'm going to show you how you can wield these tools to go above and beyond simple threading, and open up a world of possibilities that's more fun and more robust than process forking.
-
» Mechanical Sympothy: Building A Computer From Scratch
Given at Chicago Ruby January 10th, 2012.
Using tools like Ruby, we can deliver value quickly, but sometimes at a cost of understanding: we're never really aware of our entire development stack. Blake Smith from Groupon shares how he built an entire functioning computer simulation, from Nand logic gate all the way to CPU and RAM, and how it enabled him to write better software and reason better about the machine.
-
» Happy Little Programmers: Lessons I Learned from Bob Ross
Lightning Talk, Given at Windy City Rails 2011
Video: Fast-forward to 5:50Bob Ross was a famous TV personality who taught the world how to paint. I'm going to cover 3 quick ideas I've learned watching him teach painting on TV, and how they apply to software development. Ideas include: - Showing you how to do everything step by step - Dissolving fears by making you think, "I could do that too!" - Giving you confidence by showing how he recovers from mistakes
-
» Entry Point: Find your gateway drug, and how to take
your first steps in contributing to open source software
Given at Chicago Ruby July 6th, 2010.
We’ve all been on the fence before: we find a really cool open source project that we use and want to get involved with, but don’t know how to get started. Fear gets in the way, or we just get overwhelmed with the large task of getting familiar with a code base or dealing with unwelcoming maintainers. To grow our community we need to encourage more people who are on the outside to come to the inside. Just like test driven development, we need to start small and take short steps. With a focus on fun, Blake Smith will be sharing his ideas on overcoming fear and finding your ‘gateway drug’ that will get you hooked on open source, and keep you wanting to contribute and grow the community.