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.