This post is part of Series: Being a programmer again
Quick recap. I was a programmer for 12 years. I then switched to support and people management for 12 years. I now want to go back to programming for the rest of my career.
During my second 12 year period, I had tried going back to programming a few times. It wasn’t easy and it didn’t happen. With customer support, I was always hands on. Even as the head of support, I kept being in the front lines. Between being in the front lines and being a good people manager, there’s no time for writing a lot of code.
I wrote some code throughout the years. But it was either playing around with small side-projects. Writing scripts for automations. Learning game programming on and off. Or learning a new language, like Elixir. Nothing consistent, though.
I also tried my own startup between jobs, but I couldn’t succeed in becoming fluent again. We were using Ruby/Rails. I wanted to use Elixir/Phoenix, but we decided to go with what my co-founder and I knew best at the time. The startup failed and then we both went our own ways. I got back to what I knew best. Creating and leading remote support teams, and being a people manager.
It was difficult for me to get back to full time programming. You see, I had spent my first 12 year period as a programmer on technologies that became obsolete. Or, at least, ended up not being mainstream. When I switched to support, web technologies had been on the rise for several years. And that’s when I stopped programming full time.
I had spent most of my programming years on Windows Desktop or Mobile applications for enterprise customers. A large part of it on SQL databases. Various technologies and platforms including Oracle, Delphi, .NET C#, and Java. A little after I came across Ruby/Rails, and played with it, I joined GitHub to become a support engineer. Yes, I kept touching Ruby and Rails, but it wasn’t my full time job.
Ruby was love at first sight though. A language built for humans first, the machine second? Sign me up!
But how have I ended up restarting my programming career with Rust? Rust is beautiful for its own reasons. But it’s not Ruby when it comes to the human aspect. On top of that, I had recently fallen in love with Elixir.
Months ago, I started learning Elixir. The idea was that I would at least start using it to solve real problems. Problems I had at my day job. I also had a couple of ideas for web based games.
That was ticking one of the check boxes. Going back to programming, but not full time. It was ticking the other box of doing something around gaming. But again, not escaping management full time.
I already knew about the Zed editor and Zed folks. At the beginning, I wasn’t even thinking anything close to what we ended up agreeing to. I knew ex-colleagues from GitHub founded the company. I knew some of the folks had started or participated in the creation of the Atom editor. I knew they were doing something new and cool. I had even used the editor a bit.
I also knew they were using Rust. But I knew that Rust wasn’t my first choice. I had already started understanding Elixir and the functional programming paradigm. And I was very happy about that. I had fallen in love with the language. Going from object oriented to functional and starting to understand it, was exhilarating.
But, one day something happened. I started thinking more about Rust. Working on a desktop application that is a coding editor, was very appealing to me. It was ticking one of my main boxes. Work on developer tools and developer experience. And after using the editor, I started wondering. How can I be part of this?
I also remembered myself adding Rust to my list of languages to learn and experiment with. That happened back when Steve Klabnik started talking a lot about Rust coming from Ruby. I remember myself getting sold to the idea of learning Rust back then. But never got to it.
Without expecting too much, I reached out to Nathan. My ex-GitHub-colleague and now co-founder of Zed. I asked if we could explore the possibilities together. Nathan was very open to meeting me, and we did. Our chat was great. We both felt we are sharing a lot of values. Nathan was very open and transparent. And he had to tell me that they were not looking for someone with no Rust experience at all. That’s not what they needed at the time. We decided to think about it and stay in touch. Who knows, things may be different in half a year or a year later, we said. And we left it at that.
A few days passed, and I started thinking more and more about it. How could I help Nathan reduce as much risk as possible for them? Even at my expense. How can I increase the risk for me, and in exchange jumpstart my programming career again?
I sat down and wrote a proposal to Nathan. The gist is that we would start with a 6 month contract. During the 6 month period my goal would be to learn Rust and the codebase. And start contributing in a meaningful way. The catch is that at the end of the 6 month contract, there are no strings attached or any promises. Zed can decide to continue without me. And I would still love them and go my way. Interesting? Crazy? Stupid? I would say, exciting the least.
Stick around. I will talk more about why I chose this road in my next post. I am a week and few days away from starting, so my posts will start turning more into journal entries. The idea is that I might be able to write at least two posts per month during this 6 month period. And the series will end with the final decision at the end of the contract around June.