I’m Rob and I joined Monzo as a data scientist in our Customer Operations team in 2019.
In October 2021, I made an internal move from data science to machine learning. While both of these roles sit under the data discipline at Monzo, they’re quite different from one another. This post recounts this part of my Monzo journey and how I moved from data science to machine learning.
I joined Monzo as a Data Scientist
Being a data scientist at Monzo means working with a myriad of tools that curate and analyse data so that people can make better decisions, faster. This role is a mix of technical (writing code, analysing data, building dashboards) and non-technical (communication, story telling) work.
When I joined Monzo, I was the first data scientist who worked full-time with our Customer Operations team. In practice, this meant that I worked on a lot of different projects with several teams. I focussed on things like building the foundational analytics which helped us understand the performance of our customer service and back-office teams and working closely with squads that built our internal tooling to define metrics for measuring success of product and process changes.
In 2020, as the world changed with the pandemic, I started to think about what I wanted from the my next steps in my career. Over the last few years, I have gotten to know many different Monzo employees, so I started there. I spoke with many people to find out more about other roles within the company. These conversations gave me a few options to consider. I could:
Continue progressing as a Data Scientist, perhaps in a different business area
Consider progressing towards becoming a Data Science manager
Seek out opportunities in other disciplines, such as Product Management, or upskill myself into a more technical role in Machine Learning
I spent time exploring a few career paths
My manager at the time helped me to explore these options — I got a taste of what each role was actually like!
Continuing as a Data Scientist
I transferred to another team in Financial Crime for three months to help out with ongoing analyses and experiments within our sign-up flows. This was quite different to the work and data I had experience in, so it gave me a taste of what a direct transfer in the same role as an IC could look like.
Becoming a manager
In 2020, I took on my first direct report — a more junior Data Scientist in our team. This meant I had to not only focus on mentoring, but also on helping someone else be effective in their role and learn the ropes of being a manager, which ranged from 1:1s through to attending them in a mid-year review & calibration panels.
Seek out opportunities in other disciplines
I took on some interim product management responsibilities for a squad which was working on our workforce scheduling algorithms — I had already been working closely with them as a Data Scientist. I started contributing to PM meetings, writing product strategies and discussing these at product reviews with the product leadership at Monzo.
I learned a lot!
I felt very fortunate to get to try out roles at Monzo without having to commit to a full move or leave the company. I learned that I quite enjoy management and strategy, but crucially that I still value technical work too much to feel accomplished going fully down that route at this stage of my career. It’s given me the confidence to know that I could pursue these in future, so no time was wasted there!
There was one final area to explore. I had worked closely with engineers, data engineers, and machine learning scientists on different projects in Operations. I never got the opportunity to do that work myself due to a skills gap, but I got to see what kind of problems they solve. I have always enjoyed writing code, so seeing these folks get very deep into technical detail was super intriguing.
In the end I concluded that I like data work, but that I might also enjoy a new challenge in an area with a heavier engineering focussed area. Machine learning seemed like a good place to explore next — it felt like an exciting progression for my career because it let me:
Use data skills I had already honed for years working as a data scientist
Learn within a new, technical and fast evolving field which has huge potential for positive human impact in the years to come (a new mountain to climb technically!)
Get closer to directly building systems as an engineer
Preparing to apply for a Machine Learning role
There were two main technical areas that I wanted to skill up on before applying for an ML Engineering role: machine learning theory and engineering. I made a list of all the things I wanted to learn and then focussed on building habits to help with practicing small amounts regularly.
For reference to anyone taking a similar path, the learning journey below took me about 12 months. So remember to be patient!
Machine Learning is a big subject with lots of subfields and disciplines. It’s too broad to know everything deeply, but there are some core ML concepts which every machine learning engineer should know. By using online courses I built up a good intuition for:
different types of machine learning approaches - supervised, unsupervised, etc.
different types of problems solved by machine learning - classification, regressions, clustering, recommendation, ranking etc.
common problems solved by machine learning, and what approaches fit those problems - fraud detection, targeted marketing, search tools etc
how to train models for common problems using popular libraries and frameworks like scikit learn
Machine Learning people at Monzo are empowered to ship models into production. In practice, this means you need to learn about what it takes to contribute to production-grade code.
I had previously written some “notebook” Python, but Go – which is what most of our micro services is written in – was a new frontier for me. Knowing Go is not a requirement for any machine learning role at Monzo, but I wanted to become as self-sufficient as an engineer.
Like learning any programming language there is a wealth of material online, from videos to in-browser IDEs to blogs and e-books. All are valid ways to learn and I recommend finding a format that works best for your learning style. Mine was video courses!
Recommendation 🎁 : I loved this Udemy course from Todd McLeod. The course was easy to follow, encourages you to write code and has a light-hearted style.
Finding opportunities in Monzo to work on ML and Engineering helped me gain valuable experience. Monzo ‘hack days’ — which is time where people can work on a project outside of their normal work — were a useful way to put what I learned into practice. I built new functionality into our fast, open-source Go version of dbt which we call ddbt, and then added a new multi-armed bandit algorithm to a Go micro service.
By the end of this time, I started working on a 1-day a week ML project. This allowed me to work within an area I was already familiar with as a data scientist. I worked on assessing the performance of our existing Monzo text classifiers and then implemented a few improvements.
I applied & moved into machine learning!
The time came where I felt ready to move. Monzo’s Machine Learning Director, Neal was already a mentor of mine and had helped me find projects to work on to practice my new skills. We had regular catch-ups too, so I asked him if there were opportunities to move teams and fortunately the ML team was growing.
I went through an interview process, much like external applicants do. I was able to lean heavily on the experience and skills I had developed with the real projects, described above. I passed and got the job! 🎉
All incoming Machine Learning people at Monzo get an onboarding project. This project is a well scoped problem with a goal of shipping an ML model into production to solve a problem within three months. My project was in the financial crime domain: I worked on training and deploying a new model to detect when transactions appear to indicate a type of benefit fraud. This involved training a model but also integrating this with our
Faster Payments Scheme and
Mastercard payment systems so that it runs during transaction processing. I went through the entire process of scoping the problem, engineering features, training a model, through to deploying it and monitoring its performance.
I really enjoyed my onboarding project but as with any new role you have to fight through some serious imposter syndrome at times — there was a lot to learn! I regularly had to go through the cycle of learning something new and practicing it until confident, especially around some of the hands on engineering concepts where I had less experience - one example was debugging a bad deployment in Kubernetes, where I learned more deeply how our deployments actually work until I felt confident to fix the issue.
Overall, what really struck me was how simple some of the ML theory parts were in practice and how important it was to understand the business domain I was working in. The hardest part was making sure that I was using the right data to train my model, that I understood it and its limitations. Being a former data scientist really helped with this part!
Am I happy with my choice 6 months on?
I feel like I’m actually a Machine Learning Engineer now, albeit with so much more to learn. It’s very rewarding to look back how far I have come since I decided to start on this journey a couple of years back.
I’m excited to keep using my data skills (they are still useful every day!) and continue to build up a portfolio of ML projects moving forward. No doubt I have a ton to explore, but that’s one of the draws of Machine Learning. It’s always evolving!
Hopefully you have found some of this useful, whether you are thinking about doing a move to ML or a comparable move into any more technical field. From my experience, if it’s something you think you want to try out, it’s worth making a plan and giving it a go. I’m proof that there are many ways to get there, so best of luck if you are just starting out!