2016 in Review, Part 4 of 6
Writing software for Olo and for open source.
I originally drafted a single, mammoth post reflecting on this whole year—but at more than 6,000 words, that seemed like a bit much. As such, I’ve broken it into a series of posts, to be published daily through the start of the new year. Hopefully they’re a bit more digestible that way!
- Introduction, or: a ridiculous year summarized
- Part 1: Running headfirst into a wall of pneumonia.
- Part 2: So. many. words. I had no idea how many words.
- Part 3: Podcasting: Winning Slowly, New Rustacean, and more!
- Part 4: Writing software for Olo and for open source. (this post)
- Part 5: Getting things done in 2016 and beyond.
- Part 6: Plans for 2017!
This year at Olo was a great year overall. I very much enjoy working with the people there, the tech stack is good and they’re paying me to do what I love, and if the product isn’t lighting my world on fire (online restaurant ordering is cool, but restaurants aren’t a passion of mine), that’s a tradeoff I can live with. Working with good people with a good tech stack on a product you find fine rather than amazing is actually pretty great. I’m grateful for previous jobs, but this one has superceded them in every possible way. I’m glad to start work every day—and in truth, there have been more than a few days where I would have liked nothing more than to keep writing JavaScript rather than switching over to do some reading and writing for seminary. That bodes well for my future plans: post-seminary, I expect to bump from 30 to 40 hours a week with Olo1 and keep making our software as awesome as I can. And I expect to enjoy that!
Speaking of numbers: GitHub reports that I contributed +29,463/−13,726 lines of code in our new mobile web ordering experience, which I helped build nearly from scratch this year. (That “negative” is stuff I rewrote or removed entirely by finding a better implementation.)
Quite a bit of my writing this year was technical, too: some ~33,000 of the words on my blog—fully a third of the things I published on this site apart from microblog posts and schoolwork—was about software. That included entries 11–18 of my Rust and Swift series, but about 20,000 words were assorted discussions of JavaScript, Rust, podcasting, functional programming, etc. A fair bit of that content came out of things I worked on for Olo, either directly (as in the case of this talk) or indirectly (as in the case of this discussion of TypeScript 2.1) That’s a good mix, and I hope to continue putting out material that’s useful to others as well as interesting to me. (I do get tweets now and again confirming that the content is helpful, and I don’t run analytics on the site at all—so if you like something I write, please tell me. It’s encouraging. And that goes for any author you read, as a rule.)
Finally, I actually did a little bit of open-source contributing this year. Not as much as I’d like, but a little. And I also count New Rustacean as a pretty substantial contribution to the Rust community. The fact that it isn’t code doesn’t diminish what it’s doing. If you’re feeling like code is the only thing that really counts, recognize that all the code in the world isn’t that useful without explanations of how to use it, helping people become interested in the first place, and so on. Speaking of non-code contributions, the open-source contribution I’m most proud of is certainly the Rust RFC I wrote and which was recently accepted and merged. It proposed (and it is now the official policy of the Rust project) that no new features may be added to the (stable version of the) language or the standard library without first being documented. This is a big deal for the language, and it was also a big deal for me, in that it was another place where—despite being far too busy to write a lot of Rust code this year—I could make a real difference in a community I’m passionate about. And one of my goals for next year is a direct follow-on from that: actually implementing the requirement!
The other big thing going on for me in the software world is that I started work on Lightning, a new static site generator in Rust. (There’s another such project, Cobalt, which is already usable.) I’ve been pushing up against the limits of Pelican, my current generator, for a while. And I’ve looked around time and again, and never found a CMS or SSG that does everything my peculiar publishing needs require (especially in a way that I like!). And my needs are indeed peculiar, though probably not wholly unique; for most people, any one of many other site generators would work just fine. So I’m doing what I’ve been thinking about doing for years, and building my own. My immediate goals are mostly just to have something that is super speedy and which checks off all my needs from a CMS/site generator. My longer-term goals include getting some good foundational knowledge I’ll need for my next project. I’m a thousand lines in, and have some pieces working. I hope very much to move off of Pelican and onto Lightning (and get a freshened theme for this site) in 2017!
Yes, Olo has been incredibly generous and hired me as a full-time employee at 30-hours-a-week with pro-rated salary. Like I said: amazing company.↩