May 26, 2026

January 4, 2025

Software engineering is table stakes

I'm going through a course on data engineering on Coursera right now and it's been super interesting. I've been one of those software engineers who works with data for a while now, and while I feel like I have a solid grasp of software engineering, I often feel like I'm fumbling my way through the more data-processing heavy parts of my job. I get that feeling like there must be a better way, but I don't know what it is, so I just put something together based on my paradigm as a software developer, and it often ends up being a sub-optimal solution. […2 min read]

post/#best-practices#data-engineering#software-engineering

December 30, 2024

Yet another website reboot

Every year around this time I get an uncontrollable urge to redo my personal website. It's total madness but I don't know how to stop it. I am very inspired by other bloggers who are able to sustain a coherent presence on the internet for decades, and I want to be one of them. I always think I've narrowed down the problem and have a reasonable solution in mind, but really it's just the same cycle repeating itself. […2 min read]

post/#blogging#static-websites

Overcoming perfectionism

The main thing I want to overcome in 2025 is perfectionism. I have a very hard time making progress on projects until I'm confident they'll be "good", but the problem is that this is a totally arbitrary descriptor and usually irrelevant anyway. Not wanting to do things unless they're perfect prevents me from doing so many things in the first place. It's very frustrating but I don't know how to fix it yet. This is something I plan to work on this year. […1 min read]

post/#personal#reflections

April 28, 2021

My dream static site generator

I'm on the hunt for a simple tool to build simple websites. In my last post I explained a bit about what I mean by that and why I find the existing options unsatisfactory. It got me thinking about what my requirements are. I think it's good in general to think up front about how software should work. It helps me quickly pass on existing solutions before wasting tons of time learning a new thing only to discover it can't do what I need (because I didn't know what I needed until it was too late). It also helps me make better software. […6 min read]

post/#software#static-websites

April 24, 2021

March 10, 2021

February 18, 2021

Building a fast command-line app with Clojure

Like most developers, I always have about a hundred ideas for little tools or apps I wish existed. Every once in a while I get the time and energy to magic one of them into existence. Clojure is my language of choice these days, but at first glance it's not super well suited to building little command-line apps (which is usually what I start with). Some things that make it not an obvious first choice: […4 min read]

post/#cli#clojure#graalvm#software

January 19, 2021

Becoming a software developer

I get asked a lot for advice on becoming a software developer. I didn't study anything related to software in university, but now it's what I do for a living. I also spent about 3.5 years mentoring with Lighthouse Labs, a local web development bootcamp, and watched (and would like to believe at least in some cases, helped) hundreds of people of every age from wildly diverse backgrounds get jobs as software developers. […13 min read]

post/#careers#software-engineering

December 19, 2020

How to set up your own nextcloud server

One of my goals for 2020 was to stop using Google's products. There are a lot of reasons why, but that's not the point of this post. I found out about Nextcloud last month and it turns out it's a great replacement for a lot of Google. I don't actually use all of its features, but I've migrated my calendar, reminders, contacts, bookmarks, video calls, photos, and news feeds and I'm really happy with it so far. […12 min read]

post/#nextcloud#self-hosting#ungoogle

December 7, 2020

BarCamp Philly 2020

I went to a virtual conference this weekend called BarCamp Philly and had a really good time. The way they ran the conference was new to me. They somehow made the experience feel enjoyable and inspiring, which I thought was really impressive because I've had a hard time getting excited about virtual conferences this year. I've been to a dozen or so since everything got cancelled back in the spring, and this was the first time I stayed until the end and left feeling more energized than drained, fired up with lots of new ideas and inspiration and even a new acquaintance, which is super exciting to me because I find it so hard to meet new people during a pandemic. […11 min read]

post/#conferences#discord#virtual-conferences

January 17, 2017

The Pragmatic Programmer

This is a book by Andy Hunt and Dave Thomas about programming, but not in any particular language. It’s about all the other things that go along with programming, beyond just writing code. It’s a perfect book for beginners or people who don’t have a lot of experience working on a huge code base. You can learn pretty quickly how to write code that works, but writing code that is easy to read and maintain is whole other process. This book is a great place to start if you’re writing code that runs but is still sort of a mess. I feel like a lot of the advice would be common sense to someone with 5+ years of programming experience, but for beginners with a basic understanding of software development and coding this book is a perfect place to start learning how to think about the big picture. […5 min read]

post/#books#pragmatic-programmer#reading

November 25, 2016

September 5, 2016

What your rails app does behind the scenes

Ever wondered what your rails app is really doing? When I first started learning Rails it seemed like magic. I finally got started building some rails apps and couldn't believe I could get one up and running in 5 minutes. What is this magic? Needless to say there's a lot going on behind the scenes. I was living in blissful ignorance, building away and not worrying about how it all worked until it didn't anymore. When the error messages stopped making sense, I realized I should probably dig a little deeper and see what Rails' magic is made of. You don't have to be able to rebuild Rails or even add to it, but understanding it is at least a start and, IMO, important if you're going to try to build with it, if only because it makes debugging so much simpler. I've still got a long way to go, but these are some notes from my first encounter with Rails' machinery. […6 min read]

post/#mvc#rails#web-development

August 21, 2016

Benefits of group learning

Another week flew by and I'm still working on getting a pacman game up and running. There's a great community of developers in Montreal, though, and they often host coding events, like the weekly coffee and code sessions I go to with Les Pitonneux. Thanks to lots of wonderful, patient people I learn a lot about web development and get closer every session to building amazing products that people will love to use. Working with other people is essential if you're trying to learn how to code. If you've thought openly about learning programming, you have already been told to not do it alone. I'm not going to preach about why you need to do it, but I have some advice for when you do find a group of fellow programmers or learners. […4 min read]

post/#education#group-learning#learning#meetups#mentoring

August 16, 2016

Learning how to code

Around this time last summer I started learning how to code. I had a wordpress website and wanted to customize it, then I got sucked into a rabbit hole and haven't really surfaced since. I realized I would only be able to make it so far coding in a box on a website with tutorials, as great as they are, and in the fall I decided to go all in. Now I'm starting my second gig as a "real" web developer and learning as fast as I can. As I go I'm learning as much about learning how to code as I am about coding itself. Here are a few of the most useful things I've learned so far and some tips if you want to get started learning how to code. […4 min read]

post/#education#learning