originally posted elsewhere

Thank you for the birthday wishes. I am glad to be an adult by the standards of the country where I live. I’m interested to see whether people respond differently to me when I say I’m 21 instead of 20. (Of course, if I were really interested in this, I should have lied half the time last year and half the time this year, so that my data wasn’t corrupted by actual changes in myself.)

It’s plausible that people will have slightly less respect for me now. If you’re 21 and working as a software engineer, you’re probably a noob new grad. If you’re 20 and working, you might be a super smart college dropout. (I will never forget the faces of my first batch of App Academy students when I told them I was 19.)

I’m having a good time in San Francisco. I am enjoying my job. All of my coworkers are way better than me at my job, so I’m learning lots. I still find it hard to believe that I’m getting paid to write (almost) purely functional code. Discussing whether the Scala implementation of Try actually obeys the monad laws is a totally reasonable thing for me to do at work.

I kind of want to say that working as a software engineer is way different from the amateur programming work that I’ve done in the past; that I was arrogant to think that I could comment on real programming questions when I was an undergraduate. But that would be a lie. Working is pretty much the same as the programming I’ve done in the past. The first major difference is that all of my changes are code reviewed before being accepted into the main branch of our repo, so I write better code than I used to.

The second major difference between my work now and my projects in the past is that I’m working with much shittier libraries than I used to. My four person team has discovered heaps of bugs and problems in a wide variety of standard projects just since I started working here: we’ve found bugs in popular testing libraries, in the Java standard library (!!), in Postman, in our IDE, and all kinds of other places. This makes programming much more frustrating. When I’m writing code for things like my compiler or a Rails app, if it’s broken I’m almost completely sure that the problem is something I did wrong, and after I find the bug, it will be clear that it was something I should have spotted in the first place. That assumption is totally violated at work, and I hate it.

(To be clear, the project I’m actually working on is rock solid and I almost never get caught up by bugs in it made by anyone else than me. I’m pretty sure that over the time I’ve been working on this project, the only bug which we’ve found in our main repo was my fault. I’m very proud to work on a team where we get more bugs from Java’s standard library than our own codebase.)

I’m happier with my social life than I probably have ever been before, with the important caveat that I really miss my Australian friends and girlfriend and my life is distinctly poorer for their absence. I get to hang out with a wide variety of different kinds of people I like: programmers, rationalists, animal rights advocates, and the interesting class of people where I don’t really know what they do but they know lots of cool things and seem to do lots of cool things.

I particularly like the Stanford Effective Altruism club and its members: they should be really proud of themselves for being so cool and fun. I’m also really glad to know the people from Direct Action Everywhere.

I’m currently not sure where to donate. Lately I’ve been feeling more convinced by the arguments for existential risk as the most important cause area. I’ve decided to hold off donations for at least several months into the future for this reason.

So what do I want to accomplish while I’m 21?

I’ll most likely still be working at PayPal in a year’s time. Leaving earlier than that imposes significant financial penalties, and is also a bit scummy: I’m currently not productive enough to justify the amount I cost PayPal, and I don’t want to leave until I’ve created enough value that it was a good decision to hire me.

I want to become far better at my work. I’m still amazed at how many foolish mistakes I make: just today I wasted an hour because I was confused about something and did it the wrong way, and had to redo it correctly. But I’m certainly not going to make that particular mistake again. So I want to make as many of these valuable mistakes as possible over the next year. (Learning through things other than mistakes would be lovely but is much less plausible.)

I want to get to know more people in the Bay Area rationalist/EA scene. Currently I know about half of them (weighting by their involvement in the community). I should increase that to 75% or so. I want to become a better writer. To achieve that, I’ll continue writing overly long things like this.

I want to make a band which has regular gigs.

I want to become at least a little stronger and fitter.

I am happy with how my previous year went, and I look forward to seeing how this one treats me.

Some retrospective notes on this, from 2016:

I ended up not working at PayPal for the one year I expected, because my team got reshuffled and I was no longer going to be working in Scala.

Re my goals: I became somewhat better at my work, but because things kept getting shuffled, I didn’t see a massive productivity increase. My productivity increased significantly by changing company, though.

I succeeded at getting to know some more people in the Bay Area rationalist/EA scene. I became somewhat less enthusiastic about knowing rationalists, and so that goal mattered less to me.

I did not make a band which had regular gigs. I had no gigs at all.

I turned 22 around the same level of strength and fitness as I turned 21.