You may have seen we use Slack a lot to request reviews on code changes and pull requests. What we don’t see very often is one of our Customer Operations folks (known as ‘COps’) pop up with a code change for the app!
Until last year, Kyle was a COp, but started learning to code in his own time. Now, he’s a fully-fledge backend engineer working in our Savings squad.
I mentored Kyle throughout his switch to engineering and was his first manager – we’ve co-authored the blog post below about our experiences. As career changes like this aren’t super common, we’re both here today to answer any questions you have about the process or changing roles at Monzo
Can I ask how did you overcome learning to code on your own vs contributing to a codebase? I’ve been a coder for a while but contributing to the Monzo codebase required a lot more than just my normal everyday “git push main with no CI” projects did
Did you learn GoLang for Monzo? Or did you start with something easier like Python?
Do you plan on sponsoring COPs to become engineers in the future and giving back?
Finally, congrats!! It can’t have been easy, but you’ve both done amazingly
I cut my teeth as a hobbyist as a teenager, making my own website. That’s how I developed an interest in tech, but otherwise I went the conventional route: a computer science degree. That said, in software engineering, many individual technologies you learn become redundant within a few years, so the most valuable education in compsci covers both (a) fundamentals of things like the broad strokes of how computer networks fit together, how you get from transistors to a hard drive or a computer monitor, how to get from a processor’s ALU and assembly language up to a modern programming language, relevant bits of maths etc, and (b) how to build a continuous learning habit, so you can join a company like Monzo and get to grips with the tools you’ve not tried before.
I learnt Go during my application process to Monzo, in order to do a take-home programming test. The first programming languages I encountered was JavaScript, and the first one I “fell for” was Java (I’m kinda over it now though…!). Honestly I find Go easier to work with than Python, what with Python 2.7 refusing to ever quite go away, the need for virtual environments etc – I take a deep breath before trying to get a Python program to run
Honestly, sponsoring Kyle was easily the highlight of my time at Monzo in 2021. I’d be up for giving it a go again in future, for sure.
What I’m getting at is with my other post just now is – it doesn’t really matter what programming language you start with. They’re all relatively similar (except for functional languages like Haskell and Erlang, those are a trip), so moving from one to another becomes easier with practice. Typically I’ve had to switch to a new language each time I start a new job.
I needed a class that draws histograms for a new C++ tool, so I migrated a class I wrote in C# in 2013 for the tool sort of being replaced. You can definitely see the influence of C++ on C#, as it was not ridiculously difficult overall, but still a fun couple of hours