learning

Same problem, different language

Different languages have different strengths and weaknesses, which makes solving certain types of problems easier or more difficult. This post explores the different levels of abstraction commonly used in Ruby vs. Haskell. Typical Haskell code uses a much higher level of abstraction, making the code terse but also difficult for newcomers to understand. On the other hand, Ruby - while not an exceedingly verbose language - is usually written with a lower level of abstraction, making it more accessible yet harder to maintain due to it’s lower abstraction level.

Sun Feb 6, 2022 817 words
Asking useful questions

In this post I explain why some questions are more useful than others, and how to ask better questions. Asking excellent questions is an important skill that improves the outcome for anything you work on. The best questions are specific, leverage existing mental models, yet force you to think beyond what you currently know by evaluating problems from different perspectives. How do good questions improve the outcome for anything you work on?

Sun Jan 9, 2022 553 words
Reading List

Over the past month or two I’ve had several conversations with teammates where they’ve asked for my “reading list”. I read a lot, but there isn’t anything particularly special about the books I read. That being said, books are wonderful and always worth sharing, so here are the things I’ve read that have made a big impact on me. They’re mostly professional, but there are a few mind-expanding books thrown in for good measure.

Thu Jun 27, 2019 212 words