the year in me

A once-white car, covered in snow and muck.
2019, oh boy.


At the beginning of 2019, I was over three years into a steady contract as a full-stack web developer, using SQL, Ruby on Rails and various front-end frameworks. It was part-time, paid enough to cover my bills, and left me time to work on other projects. The development team was me and my friend Eric, and we’d meet twice a week to work in person and/or talk about improv. It was a pretty good gig.


In January, they let us know they’d be shutting down by the end of the year.

After the initial shock, I realized that I was tired of being a full-stack Rails developer. Rails had become comfortable but unchallenging for me. The full stack was something I’d done out of habit and necessity, never because I wanted to do all of it but because I could, and didn’t have anyone else to delegate to. But the front end was what always excited me.

I also remembered that, before I became a web developer, I’d wanted to be an interaction designer. Twenty-some years ago, heroes like Don Norman and Brenda Laurel made me want to make computers more accessible and useful and pleasurable and humane. This year I discovered Norman, 83 years old, is still finding new ways to look at the world and his role in it. Maybe, I thought, it wasn’t too late for me to make some changes too.


My next season was one of ferocious learning. I worked through video courses on design, animation, new developments in CSS, and front-end frameworks. I built myself a serviceable JAMstack web site. Eric and I created a time management desktop app. The Rails gig was about doing what we’d already learned how to do. Now we were both teaching ourselves new things by doing them. I started to feel excited about coding again!

I also started to think I could be a good conference speaker. I’ve spent lots of time onstage as a singer-songwriter and an improviser, so I’m over stage fright and I’ve had practice connecting with an audience. And after a couple of decades as a software professional – and one who’s still learning, always – I probably had things worth sharing with an audience.

And I started remembering how to network. I reconnected with the Twin Cities tech community, after years of mostly remote work. I started going to developer meetups. I gave a couple of five-minute lightning talks, at JavaScriptMN and Minnebar, as a way of exploring public speaking. But I skipped RailsConf, even though it was right here in Minneapolis. It felt like a way to advance my career, but not in the direction I was trying to go.

At some point, too, I realized that it was going to be a lot of work to set the ship of my career on a course as new as interaction design – not a bigger turn than I could make, but I wasn’t going to finish it before I ran out of money. I adopted a more modest goal: stay in development, but leave Rails and the full stack behind.


But first, speaking of money, it was time to make some. Over the summer, I took a couple of short-term Rails gigs. They paid the bills, but reinforced my desire to move on. It was fine work, but it wasn’t exciting anymore.

Eric and I also took on a part-time gig as freelance mentors for a cohort of talented interns at Software for Good. It was interesting to be in that senior role, trying to help young people understand both the technical side of web development and the social side of how to work together on a team.

I liked working with the interns and the SfG team, but in some ways this was the hardest part of my year. Between Rails work and non-code projects, I didn’t have much time to keep learning and developing new skills, or practice the skills I’d started to pick up, or create a new technical talk about anything. I was still doing little odd jobs to keep the spark alive, but my momentum slowed, and it started to feel like I would just fall permanently back into the Rails world.

(This feels like a good time to say that “doomed to program Rails professionally until I retire” is a pretty nice doom. Ruby is still my favorite programming language, Rails makes many things easy that are hard everywhere else, and let’s be honest, any kind of programming is easy money once you get the gig. Rails has been very good to me, and I do enjoy working with it. It just doesn’t feel like my future anymore.)


Code in the Dark, a competitive programming event at Nordic.js.
Sometimes a programming conference looks like this.

In October I flew to Stockholm for Nordic.js. I’d bought a ticket to this conference way back in February, in the throes of career uncertainty, as a confidence-boosting bet on myself: That I could afford a transatlantic trip. That my future was in JavaScript and the front end. That I could overcome shyness and connect with people in a new environment.

The conference was great, but it wasn’t great for me. Most disappointing to myself was that I didn’t sign up for a lightning talk – part of the conference speaker story I’d started telling myself in the spring. I’d been head down in Rails, and couldn’t think of anything to tell a JavaScript conference about. And I was cowed by the format, which would have put me onstage in front of a much larger audience than I’d envisioned. So I chickened out.

I didn’t connect with anyone at the conference, but I did end up having some great conversations with tech people over the next few days. And a lovely evening with some Swedish improvisers I randomly ran into at a pizzeria. And Stockholm is wonderful. I came back to the US refreshed and ready for something new.

And fortunately I already had something new lined up: My first extended gig as a purely front-end developer. I’m working with a local firm, going into the office a few days a week, learning new things and bringing what I know to a new context. I like the people I work with, the technology is decent, and the product is fine.

So I did it! I turned the ship of my career a few degrees! I set a goal, and then I lowered my expectations, and then I met them. That’s the story of my year. Let’s see what 2020 is like.


In the winter, when I decided to put a lot of energy into my coding career, I realized I was going to have to cut way back on arts work. I kept going with a few groups that I was already committed to and that were dear to me, but I stopped pursuing new projects, and started saying no to the ones that found me.

As the year went on, though, I got a number of offers that were very hard to say no to, and after the season of ferocious learning, I ended up doing quite a bit on the arts side too.

As an improviser, I performed onstage with I’m A Trio, the only group I helped start. I had runs with THE PAiNTERS in the summer, and STEMprov in the fall. And I auditioned for and was cast in the Living Room group for Throwback Night. It’s my first prime-time weekend show at HUGE, it opens this Friday, and I couldn’t be more excited to be working with these people on this show.

I also created live musical scores for several improv groups, including Rebel Grrrls, Bummertown (watching Molly Chase direct the cast was a whole education for me), and Bad Poets Society (returning for an extended run this spring!). And I made scripted scores with Oncoming Productions and, for the first time, Impossible Salt, a group I’d admired from afar.

I didn’t do a lot of recording this year, but All the Books in the Library did record one thing I’m very proud of, our version of the Wilco song “Radio Cure.”


Code and arts took up a lot of time this year, but I did spend a lot of time with my new friend Calvin (literally new – he was like a week old when I met him last December). I feel like I’ve learned a lot from him, and he’s been picking things up pretty fast too.

Oh, and I quit Amazon Prime, tried to fix my sleep, and read a bunch of books. I should write about the books I read! Well, maybe tomorrow.