JAMES LONG

My 2014 Retrospective

January 3, 2015

I don't usually do these end-of-year posts, but I'm trying to write more so it seems like a good opportunity. It's also nice to verbalize where I'm at with general goals. I put a lot of pressure on myself to make progress on my goals, so it's good to take a step back and see what happened.

2014 was a big year for me. It feels weird writing this kind of post because it feels like bragging, and I don't like talking about myself, especially when others have had a really hard year. But I think it's healthy to talk about good things that have happened.

A quick minor first point: I rebuilt my blog. You may not notice any changes right now, but you're reading text off a newly minted software stack. I started a series back in August about this rebuild, but it stalled until recently and I decided to finish the rebuild and blog about it later. I use react, react-router, js-csp, transducers.js, and a bunch of other cool stuff. The app is "isomorphic" meaning it can be fully rendered on the client and the server, so in the future I can optimize page transitions (right now the server does most of the rendering). A screenshot of my simple markdown editor:

Now that I have a good codebase, I will slowly add features over time. I will write a separate blog post about my new stack (and open-source it). I also completely rebuilt my server and now use ansible and docker which are amazing. That's enough about that, let's get on with 2014:

We had a daughter: Evelina May. She was born July 15th, so she is almost 6 months old by now. By far this was the biggest change, and it's been awesome! Having kids changes your perspective on a lot of things. The geeky part of me can't wait to write mobile apps to help her learn math and vocabulary, and maybe even programming.

A lot has changed for my wife, Sarah, as well. She did an awesome job delivering her and is adjusting to a different full-time job, and has been a great mother. She used to be a full-time in-home counselor, and started working part-time again recently but is trying to decide if she wants to work or not. Either way, we both love Evy and need to learn a bunch more about parenting in 2015.

I started working on the Firefox Developer Tools team. The end of December marked my 4 year anniversary at Mozilla, which is crazy. However, for much of that time I wasn't very happy and didn't feel challenged or fulfilled. Finally in March I started working on the developer tools (specifically the JS debugger) and I finally feel truly challenged and over my head sometimes, which is exactly where I want to be. I'm learning so much from smart people around me and the best part is that I get to improve hundreds of thousands of developers lives.

I learned (and loved) React. In 2013 I tried to write a personal finance manager as a side project, and I quickly got derailed just trying to learn Angular and Ember. It became clear to me that I needed to nail down my stack for writing side projects quickly. I did a bunch of research which led to this infamous post explaining why I fell in love with React. Pete Hunt and Ryan Florence both helped seal the deal in the first half of 2014 by pointing out cool ways to do things with React (and so simply!). React lets me build complex projects on the side (and potentially at work) quickly.

I got better at working on side projects. I always want to be working on something on the side, but it's frustrating when you have limited hours and you can't get anything off the ground. In addition to learning React, I learned other libraries like js-csp and wrote others like transducers.js. In addition to simplifying server management with ansible and docker, I finally feel like I have (and deeply understand) a powerful stack for quick prototyping. I've also gotten a lot better at sketching UIs out on paper first and really thinking about problems before implementing them, which avoids a lot of rabbit holes.

I talked at conferences. I talked at MountainWestJS, JSConf, and NationJS, and I'm signed up to talk at React.js Conf in January. I got better at presentations. I learned that while I love speaking, I don't like how much time it takes to prepare and travel, and I probably won't seek out as many speaking opportunities for now.

Those are the highlights of 2014 for me. I feel a lot more stable than where I was a year ago, where I wasn't happy with my job and I didn't feel confident in building side projects. My goals for 2015 aren't very clear yet, but here are a few ideas:

  • I hope to develop and launch a few small webapps in 2015.
  • I hope to get back into game development on the side. I used to do this several years ago.
  • As part of the above point, I hope to learn Rust. Rust would be great for high-performance games. While JavaScript is still a practical tool for writing apps, it's just not very interesting to me anymore, and I really need to learn a new language.
  • I really want to be more creative and work on things outside of programming. This is another reason why games are a great fit because I'd love to get better at drawing and 3d tools to create content.

Obviously I can't do all of that, and I'll end up focusing on just 1 or 2 of these points. But I hope to make some progress on all of them.