Blog

Thoughts on problem solving, software, mathematics, and teaching.

15 posts

What I Wish I Knew in My First Year of Professional Software Work

The gap between academic programming and professional software development is wide. Here's what surprised me most and what I'd tell my earlier self.

The Right Amount of Abstraction

Too little abstraction and you repeat yourself. Too much and nobody understands the code. Finding the balance is one of the core judgement calls in software design.

Writing as Thinking: Why Engineers Should Write More

The engineers with the most influence are almost always the ones who write clearly. Not because writing is good for your career, but because writing well forces you to think well.

Estimates Are Lies We Tell Ourselves (And How to Lie Better)

Software estimation is notoriously bad. Instead of pretending otherwise, here's how to make estimates that are actually useful to the people receiving them.

How to Read Other People's Code Without Losing Your Mind

Reading unfamiliar code is a skill almost nobody teaches. Here's a method that works whether it's a legacy codebase, an open source library, or a colleague's PR.

← PreviousPage 2 of 3Next →
Blog — Nafis Tiham