I was very inspired by Nat Bennett's recent article Career Advice for Engineers Who Aren't Supposed to Exist Nat quoted Charity Majors describing a misfit category of engineers who weren't supposed to exist as “People who were ranked at junior levels, but were better at translating business problems than at fixing bugs.” and shared their career advice for those folks (being one themself).
This was definitely me too, in the past. I was able to figure out the career navigation ladder into management and staff engineering positions, where I spent more time translating the business problems. However, a pandemic and a kid and some health issues and toxic jobs and tech burnout later, I'm really not all that interested in doing the translating business problems anymore. I find myself trying to shift back to the code.
I'd like to sit at my computer, with minimal meetings, and fix bugs and reduce flakes in your pipeline, and build the automation and skills and tools for your team to deploy 5x as often as they can now, with ¼ as much work required and less fear. I want to save my limited social energy to go home and take my kid to the park and teach talmud.
One of the challenges in making this career shift (besides the impact of tech burnout and previous toxic jobs) is that I'm not very fast in the codebase anymore. Sure, I know Ruby and Go, and once I knew them like the back of my hand. But it's been years since I spent the majority of my work time coding in the languages I know best. I'm a bit rusty, and rusty doesn't interview well.
Nat has talked, for years, about the power of getting faster, and that faster actually does matter for engineers. So, I'm going to try some of their tips for getting faster at coding, and I'll let you know how it goes.
What am I doing?To start with, I'm going to try leveraging Anki flash cards (spaced repetition) to get fast at Ruby syntax.
Why Ruby?The languages I have spent the most time coding in are Ruby (with Rails), and Golang. And BASH, but no one interviews in BASH even though it's massively useful all the time. Focusing on sharpening my Ruby skills and my Golang skills both seem useful.
In the slice of the software engineering world I'd like to focus, I think Golang is slightly more useful. I would like to sit somewhere between automation, CI/CD pipelines, and Cloud Infrastructure, which is a world where I think Golang is pretty relevant.
On the other hang, I just like Ruby better. I like the Ruby community. I enjoy using Ruby more than Golang. It's just friendly. Given that I've been pretty burned out, I think it's worth focusing on something I enjoy, even if it is potentially slightly less useful. Ruby is also very useful as a scripting language in DevOps stuff. I do love BASH, but Ruby is MUCH easier to test.
How I'm writing my Anki deckI've used Anki for spaced repetition review before, and it is amazingly powerful, even if I do tend to stop using it after a while. The things I reviewed via Anki? I know years later.
I don't have any struggles reading Ruby syntax, I'm just slower than I would like at generating it. So, my first cards will have a front (the “question” side) naming a type of syntax, and the back will have the ruby syntax for that.
I will also include some powerful Ruby tools like what different enumerators do. My first goal is to get fast at Ruby syntax, and not have to think about how I write something in Ruby as compared to another language. It should just roll right out of my brain and down my fingertips.
I'll let you know how it goes!
If you enjoyed this newsletter, please pass it on to a friend!
If a friend forwarded you this email, you can subscribe here
If this post sparked some thoughts for you, I'd love if you reply and start a conversation with me about them.
b'vracha, Caroline Taymor