This is a belated and probably too-skinny version of a post I decided I’d do every year, starting with last year. Usually, when I say ‘learned,’ I really mean I engaged enough to understand a little bit of what’s going on, and not that I am wizard-level user in any of these. In 2018, I spent time learning fewer new things than in 2017, but I probably went slightly deeper.

  • Working with FaaS

    The first time I had ever completed an intro to programming course, particularly a Python one, I remember having this feeling of, ‘now what?’ I could script a game of hangman, but didn’t have any idea how to manage an environment, package something for deployment, launch a VM (at the time, containers weren’t a big thing) configure a webserver… honestly the entire stack was opaque and intimidating. That’s one of the reasons I find serverless to be an appealing paradigm–a developer can focus on writing code that actually has a job to be done, rather than the endless train of yak shaving that could otherwise be involved in launching something. I’m not trying to diminish the importance of well-orchestrated infrastructure, which is critical to scaling effectively–but more just love the idea that the number of hurdles to building something small has been reduced.

    For this foray into learning, I started first with Lambda, but quickly grew frustrated with the complexity of the AWS dashboard and configuring API Gateways. Serverless was my next stop, and I really love it. It abstracts away a lot of the complexity and has templates with sensible defaults for a lot of different microservice structures. I played around with Netlify’s functions and I have it on my list to check out Zeit too. Decoupling code from infrastructure is a long-running trend, and this next evolution of it has a lot of promise for modularizing the ‘connective tissue’ of a lot of businesses.

  • JAMstack

    Every so often, you come across an app or a development pattern that just intuitively feels right. I know that’s perhaps the least scientific way I could possibly characterize something, but JAMstack (Javascript, API’s, and Prebuilt Markup) is one of those architectural things that makes perfect sense and feels good. It fits neatly into the long-running trend of tool specialization and modularity that dates back to Bell Labs and Unix (‘programs that do one thing and do it well’.) The emergent JAMstack architecture from this trend opens up new ways for code to be deployed in ridiculously simple and uncomplicated (abstracted?) ways, further decoupling front-end web from application logic and infrastructure.

    Netlify is a leading company in this ecosystem, and it was one of those rare products that made me say ‘oh, wow,’ the first time I used it for a static site deployment. This site is built in Jekyll (legacy from Github pages), but I also tried out Hugo for the first time. Some of Hugo felt less intuitive, but true to Go’s promise, it was blazing fast. I have Gatsby on my list to try soon.

  • Dabbling in Lisp

    I have spent precious little time with any functional programming language, so I decided to start working my way through The Wizard Book and dabbling in Scheme, a Lisp dialect. Perhaps because I didn’t start out in OO rather than functional languages, or perhaps its just a lack of mental dexterity, I find a lot of the principles to be non-intuitive. In that regard, it’s been mentally rewarding even though it’s a challenge. I’m not done with the book and I intend to finish it this year.

  • A bit of Machine Learning

    Perhaps more than the others on this list, I wanted to just build a baseline understanding of the moving pieces of machine learning. I went through Andrew Ng’s amazing Machine Learning class on Coursera and through’s Deep Learning course. Each was spectacular in its own ways; Ng’s class focused on building into algorithms from the ground up, while’s started with practical examples using their libraries and then dug into the moving parts.

    I tend to prefer the approach, but the Ng class was really a perfect foundation. Related to this, I had to brush up on some calculus and linear algebra that had been gathering dust in my brain for a decade. The only other thing I’d say about this is that Octave is horrible and was the worst part of the Ng course!