Stop Wasting Brainpower

How many times have you found yourself saying: “I worked all day, but I didn’t get anything done.” I know, we have all been there. We feel bad about it, too.  On the surface, it looks busy. Your calendar is full, Slack is notifying you, and your todo list is endless. There’s no shortage of movement, and yet, strangely, very […]

Why Over-Engineering Happens

If you’ve worked in software long enough, you’ve probably seen it: a CRUD app serving a handful of users, deployed on a Kubernetes cluster with half the CNCF landscape stitched together for good measure. On paper it looks impressive. In reality, it’s a Rube Goldberg machine solving problems the team doesn’t actually have. Contrast that with Levels.fyi. The site now […]

From Idea to Launch in 2 Weeks

Everyone’s been talking about LLMs. I didn’t want to be too late to the party. When everyone’s talking about doomsdays scenarios, I just wanted to see for myself. As an engineering leader, I spend a lot of time thinking about productivity, tooling, and how engineers work best. But it’s easy to lose touch with the day-to-day of building. So I […]

Why Legacy Systems Are Worth Your Time

I know. When you hear legacy, you think untested code, brittle systems, weird edge cases, and “what the hell just broke now.” Every moment feels frustrating. You don’t know what the next change will trigger. I hear you. Been there, done that. A lot of cursing happens. But here’s the thing: if you’ve ended up with legacy software, it means […]

Teaching Software Engineering

As a software engineering instructor, I’ve taught a diverse group of master’s students with varying technical backgrounds. Not everyone comes in with the same level of expertise. Some have industry experience, some come from completely different fields, and some are writing real code for the first time. I’ve found that catering to the needs of all students requires a different […]