2015-05-28

Do I Want to be an Amazing Programmer?
Spolier alert - no

I found myself sitting in an airplane seat when this question popped in my head of ouf nowhere. The timing was good - I had plenty of it to entertain the question. I'm not going to lie, I do not like the answer.

An amazing programmer may eschew an ide for vi. They optimize to the hilt and use the latest and greatest tools for the job. I have forever wanted to be that guy. The one who doesn't have tmux and vi cheat sheets taped to his monitor. The one who uses arch linux and a tiling window manager like Awesome. As circumstances go, I cannot be that guy. Instead of worrying about fast runtimes, I tend to worry about cash flow. Instead of doing it right the first time, I tend to push an 85% solution to production as fast as possible to impress a paying customer. I worry about using the latest frameworks because I don't know if I'll be able to hire someone with that skillset when we lose the guy who decided to use it and probably wrote 90% of the code.

Do I want to be an amazing programmer? In theory, yes! I'm an algorithms guy. My first real language was Scheme. In college I wrote x386 assembly on paper and did it without making any mistakes. So, what happened? My priorities have changed, it is as simple as that. I'm excited about erlang, but I'm more excited about optimizing for the 100th, then 1,000th, then 1,000,000th customer. I love thinking about what taking VC money really means. I love cultivating a circle of people who I can call for advice on convertible notes. I spend a lot of time thinking about what certain strategies look like on a cap table and what signals they send to the public.

Do I want to be an amazing programmer? Apparently not. It seems like I want to be an amazing business person instead. I don't yet have a solid definition of what that means but I know I'm headed down that path. Follow your passions, they say, and that's exactly what I intend to do.

I will never let go of my programming roots. I strive for a balance between code (building great products) and business (building frameworks that promote selling those products.) I don't want to be a functional programming mascot thinking about monads all day, nor will I be a businessman who spends the day thinking about how hiring lobbyists could help my product maintain a monopoly in the market. I think being a success requires a little bit of both those sides. So, that is what I'm doing.