0x20 Lessons Learned as a Professional Developer


I’ve been a professional software developer for about 6 years (three of those at Atomic Object!). During that time, I’ve learned some important things:

On Personal Growth

  • What I know is way less interesting than what I don’t.
  • The hard part of the project is knowing when I’m done.
  • People problems are more important than technical problems.
  • Sunshine, sleep, and water are important.
  • There is such a thing as too much coffee.
  • What I learn from mastering a weird language is useful even if I never use it on the job.
  • I have biases I’m not aware of, and I will act on those biases.
  • I had way more help getting to where I am than I think I did.
  • It will take less time if you put the problem down right now and address it in the morning.
  • It’s okay to play video games.
  • Learn empathy.
  • Learn to be wrong.

On Continued Education

  • Learn how compression, networks, and cryptography work.
  • Turing completeness is a trap.
  • Software can’t solve most of the world’s problems.
  • Master the fundamentals.
  • I’m not going to like syntax I don’t understand just because it’s different. It’s important to learn the language before passing judgement on whether or not it’s suitable for my task.
  • It can be hard to remember that concurrency and parallelism are different things.
  • Threads aren’t hard. Shared state is hard.

On Running a Company

  • Pay interns.
  • Give interns a chance to fail.
  • Don’t use interns as a cheap source of labor.
  • Boring software is the best software.
  • There’s not a good definition for “bad software”.
  • It’s hard to talk about money.
  • It’s important to talk about money.
  • Guilt-free sick days are essential.
  • Sometimes open-plan offices are great. Sometimes open-plan offices are the worst.
  • If customers are billed hourly, employees should be paid hourly.
  • It’s almost never worth it to sign, or asking someone to sign, a non-compete clause.
  • Measuring people by their open source contributions favors people who have the resources and time to do so.
  • Hiring is easy. Firing is not.

I wonder what I’ll be able to add to this list in the next 6 years.

  • Dax Fohl says:

    Was it intentional to have your #4 and #5 in the last section read like the first line of Anna Karenina?

    • Karlin says:

      Happy families are all alike; every unhappy family is unhappy in its own way. —Leo Tolstoy

      An illuminating and apt description of small, passionate companies if you ask me. Consider the recent analogy with Atomic Object from Great Not Big:

      Comparing us to a family isn’t specious or manipulative. We are like an extended family with a well-defined purpose. —Carl Erickson

    • John Van Enk John Van Enk says:

      It was not intentional. :)

  • Comments are closed.