Notes to a Young Software Engineer

An ongoing series about software engineering for early engineers.


Think in Tradeoffs

There are very few silver bullets for becoming a better software engineer, but I’ll argue that learning to view most decisions as tradeoffs, not good versus bad, is the top one.

Pierce the Abstraction Wall

To be an effective developer, regularly aim to pierce the abstraction wall, especially when you identify a soft interface.

Don’t Write Code

I’ll make an only partially hyperbolic exhortation: software engineers should write less code.

Read Code

In software, plenty of people write code, but precious few spend time reading it—especially code outside their day to day work. That is a mistake. Early in your career, act like an aspiring writer and embrace reading diverse…

The User is King (And Not)

If you want your product to be widely used—or to work on projects that won’t be shut down at the first sign of trouble—remember that the user is king.


Beware Engineering Media

The most common mistake you’ll make is to see engineering media as a mirror of what’s going on in our industry. Instead, it’s more akin to a bazaar.

Beware Burnout

Why there’s so much burnout in software and what to do about it