Jeff Lembeck

Jeff Lembeck is a developer over at Filament Group. He writes a whole lot of code; is a guest lecturer and TA for Ada Development Academy; has written some articles, including for A List Apart; and is a former member of the jQuery Mobile team. Jeff lives in Seattle where he obsesses over oyster happy hours and how to make the best negroni. He dreams of someday owning a hot tub boat.

Published Thoughts

I’m tired.

I don’t ever remember being this tired.

I became a father almost three months ago. My daughter is this wonderful, fantastic little being and she kind of looks like me and she smiles a lot but oh for the love of everything on Earth, I am tired.

A couple of weeks ago, I was walking my dogs to a nearby park and one of them was trying to pull out into the road and there I was mumble-screaming, “I don’t have time for your shit right now. I will turn right the fuck around. We will go home, right fucking now.”

I was muttering this to my dogs. In the middle of the day. In public. Dogs don’t really communicate using English.

Mine especially don’t.

When you get this kind of tired, everybody has their methods of keeping their sanity. I tend to dive into hobbies.

Now, I’m lucky enough to be that person whose job is my hobby. I love the shit out of programming. I really do. I’m one of those people that gets super excited about what you can do with computers and how they work, and boy do I love data visualization and tools to work with it. It’s all the fantastic sense of accomplishment of building something without having any of the hands-on skills necessary to actually build, like, a desk or a chair or a motorcycle or whatever. Plus, my workshop doesn’t have to exist.

The problem is, for work, I write JavaScript.

And because I write JavaScript for clients, and because a lot of those clients are large companies with an enormous amount of users, this isn’t the “Hey man, just target evergreen browsers because IE sux, move the web forward, bro” kind of JavaScript. This is the “Hey, somebody who can’t afford to update their home PC still has IE8, and we don’t want to penalize them for that” type of JavaScript and the “Our users use the most common mobile OS on the planet and- oh God- have you tried to debug with this thing and why does it have two browsers and why is one of them named internet and why is that the really broken one and why is everything on fire?” type of JavaScript. These latter types really show off all of the inadequacies that JS has as a language and the wild stuff the browser can hit you with: horrific error handling, inconsistent event triggering, friggin CSS that never looks exactly the same across more than two browsers, etc. etc. there’s a good chance that if you’re reading this, you've heard all of these complaints from someone before.

It’s difficult not because of the things I’m frequently building and the complexity of them; it’s difficult because of the platform.

Now, before you start thinking this is some type of “bash on the web” post-- it’s not. The web is the Great Platform, the place where we can reach everyone with all of the information there is to reach them with. To add to that, JavaScript is the language I’m strongest in. It’s actually my go-to anytime I need to spin something up quickly, because I’ve spent so much time with it and know its little idiosyncrasies inside and out. It’s not that I hate JS, it’s that it makes me tired.

It sucks the energy out of me.

I used to have the energy in me to laugh when people talked about how JS was a shitty language and I just figured they didn’t know it well enough.

I used to have the energy in me to find new little odd ways the DOM worked in different browsers.

I used to have the energy in me to be able to just take that draining feeling and move it into writing OSS code.

That energy has since faded.

And I get it, a programming language is just a tool. Totally. But, at some point, that language we’re comfortable with turns into a broken hammer and you’re sitting there telling somebody you don’t need a fucking screwdriver, man, because you can set this claw on the back of this hammer at a 45 degree angle and turn.

Before you think this is going to turn into a “Farewell, Node.js” post or a “I’m leaving JavaScript and programming and let’s burn this whole God Damned thing down; I’m buying a hot tub boat and blasting rap music from it (also known as my eventual retirement plan, but not yet),” know that this story has a positive end. All of this energy-draining and agony I was feeling sent me out on a different direction from my normal “I need to find something different on the side” and turned into “Let’s see how different we can go while still being programming.”

I see people do this all of the time — sometimes with robots, sometimes making native apps, and sometimes with the way I went: a new programming language. That language is Rust.

I learned about Option types while using Rust. Do you know about Option types? You should totally learn about Option types. One time, I forgot to handle all possible options for a variable that was an Option type and the compiler told me about it. The compiler told me (effectively), “Hey, you’re going to potentially have an error thrown here because this might not be what you expect it to be.” Seriously, before I even ran my code. I know this sounds lame to some of you, but to others, how cool is that? There are a ton of other features to this language that use a lot of other great ideas and I could probably nerd out about it for hours, but Option types are a really solid start.

This isn’t a sell on beauty and simplicity. This isn’t where I tell you to go out and drop what you’re doing and learn this specific language. Heck, most of the features that I really like in Rust, they’re out there somewhere else too! This is just a moment where I talk about how I get to really enjoy programming again because I’m doing something that works out my brain in a different way than normal. I didn’t set out to learn Rust specifically; I just saw a book written by a guy who had written some other stuff I liked reading, so I picked it up. It was straightforward. It got me on the path. Because I spend about ten hours per week learning and working with Rust, when I come back to working on the type of stuff that pays the bills, I can enjoy that work again.

And that’s what the real point of all of this is.

Burnout is real. It’s part of this job and is part of any job that I’ve ever had, and it’s really hard to kick. The trick to it seems to lie in finding outlets that differ enough from your normal patterns that you can recharge doing something that doesn’t feel like work anymore.

Next time, I’m probably just going to build a desk or a chair.

Curated by Scott Jehl