How I went from Frontend Dev to Machine Learning Engineer
Tags: career, machinelearning, beginners, webdev
Published: 2020-07-02 19:47:29

---
description: My path from zero to not-so-zero in Machine Learning
---

This is the story of how I went from zero to do real client work on Machine Learning. 

> *I want to keep this article short so you can grab what's useful for you and leave. But, if you're interested in the details with pictures and personal opinions, you can read the [full story on my site](https://carlosroso.com/frontend-to-machine-learning/).*

*Note: I hate overnight success stories like "how I reached X in 3 months", I don't think real progress comes like that and it's just stressful for the reader. Therefore, I'm just going to say this all happened in the span of a year or so.*

# TL;DR

Here's an overview of my journey. In the next paragraphs, I'll put useful links and a bit of my personal story.

![Summary of my journey learning Machine Learning](https://dev-to-uploads.s3.amazonaws.com/i/5y1ogoeuaak3seg90zbr.png)

---

I respect your time so I'll summarize a lot. [Go here](https://carlosroso.com/frontend-to-machine-learning/) if you want to read the full story, though.

## 1. First book

My wife got me this [Machine Learning handbook](https://mitpress.mit.edu/books/machine-learning) from MIT. It's a pretty short overview of the topic that got me triggered to dive deeper.

## 2. First online course

I then enrolled in the [Data Scientist with Python](https://www.datacamp.com/tracks/data-scientist-with-python) track in **DataCamp**. I didn't finish the whole course, just took a few lessons until I felt I could move on alone.

## 3. Second book

I bought a copy of the book [Hands-On Machine Learning with Scikit-Learn and TensorFlow](https://www.amazon.com/Hands-Machine-Learning-Scikit-Learn-TensorFlow/dp/1491962291). It was a terrific investment. This book is great to learn supervised and non-supervised learning with Scikit-Learn as well as deep neural networks with Tensorflow. 

![hands-on machine learning book](https://dev-to-uploads.s3.amazonaws.com/i/xhp5vjfuqyey24hkn4sg.png)

# 4. First competition

I then tried some luck at the [Kaggle's Titanic Machine Learning competition](https://www.kaggle.com/c/titanic). This is the "hello world" of Machine Learning competitions.

I ended up submitting 3 attempts. I didn't get good scores but I was proud I put in the time and self-discipline to finish the challenge.

---

> This is the type of content I send to +850 devs on my email list. Join [here](https://mailchi.mp/9fbe9022e6d7/career-boost) to get my tips and thoughts on algorithms and career growth. If email is not your thing, follow me on [Twitter](https://twitter.com/caroso1222) to get [sneak peeks of what I'm working on](https://twitter.com/caroso1222/status/1273711219703193601).

---

# 5. First real-world project

I secretly built an unsolicited **news topic classifier** for the company I worked for. It would analyze the content on a news article and predict its category (sports, politics, religion, etc) based on previous training.

As it turned out, they didn't like it at all. I didn't feel like trash, though. **I proved myself I could do ML professionally**. I moved on.

# 6. Second competition

I went to compete on the [AWS DeepRacer Scholarship Challenge](https://www.udacity.com/aws-deepracer-scholarship) which would grant access to enroll in the [Machine Learning Engineer Nanodegree Program](https://www.udacity.com/course/machine-learning-engineer-nanodegree--nd009t).


**The competition consisted in tuning an autonomous racing car to complete a track as fast as possible**. The top 200 times would get the scholarship.

![AWS DeepRacer simulation](https://dev-to-uploads.s3.amazonaws.com/i/qq6b45xsvnz5mbyrhp1q.png)

(Self-note: next time don't take pictures with a potato). **I ended up winning the scholarship** but not for my scores, my lap times were crap. I got mine either for luck or for creating [this repo](https://github.com/caroso1222/awesome-deepracer) with some resources for new competitors. I didn't ask, though. I moved on.

# 7. Second online course

I enrolled in the [Machine Learning Engineer Nanodegree Program](https://www.udacity.com/course/machine-learning-engineer-nanodegree--nd009t) with the scholarship I'd won. It was basic but I learned a lot about deploying ML models to production in AWS.

![Udacity Diploma](https://dev-to-uploads.s3.amazonaws.com/i/0s3c7qzkw84owwxe70zv.png)

I didn't like any of the choices they offered for the final project. I then decided to find something meaningful to work on.

# 8. Second real-world project

I reached out to my friend [Nicolás](https://twitter.com/ni500) who happens to run one of the biggest crowdfunding sites in Latin America, [Vaki.co](https://vaki.co/inicio). I proposed to build a recommender system, *à la* Netflix or Amazon. He liked the idea and we started working together.

After several weeks of work, I built a hybrid recommender system that predicts recommendations based on two models: Content-Based and Collaborative Filtering. You can read the full report over [here](https://carlos-temp-public.s3.amazonaws.com/udacity-report.pdf). It's ready to be used in production but hasn't yet been implemented (out of my scope).

---

I haven't built anything else after that. I don't want to devote myself to something I picked out of FOMO and which doesn't really spark that fire within me. **I have added something new to my toolbox, but I won't necessarily switch paths anytime soon.** 

## Key takeaways

1. The ultimate guide to learn is non-existent. Everyone needs to find their sweet spot. **For me it is print books, pen and paper, and practicing with real/dummy projects.**

2. **Do your best to understand the math.** Tuning hyperparams or reasoning about model performance feels weird without a good foundation.

3. **I'm not a researcher, I'm an engineer.** I'm ok with not understanding all the latest, complex advances in AI and ML. I'm happy to understand and use common ML tools to solve real problems. For me, Machine Learning is just a means to an end, not the end itself.

4. **I don't like that feedback is very slow on ML.** It's very frustrating for me, coming from a product background, to train a deep neural network for hours just to see garbage results and not be able to tell why.

5. **Dive into other topics to grow your toolbox but don't deviate from your true path**, whatever that is. I'd rather double down on my strengths than being a jack of all trades.

---

Thanks for reading. Never stop learning!

---

## Shameful self-promotion

You can follow me on [Twitter](https://twitter.com/caroso1222) or just keep reading me here. I wrote about [my story getting into Toptal](https://dev.to/caroso1222/how-i-got-into-the-most-exclusive-remote-working-platforms-45dk), my [recommendations](https://dev.to/caroso1222/resume-pro-tip-the-absolute-best-way-to-show-your-work-experience-2o97) to write a [good resume](https://dev.to/caroso1222/please-stop-doing-this-in-your-resume-2mga), a [curated list](https://dev.to/caroso1222/best-sites-to-land-top-remote-jobs-100k-year-4n04) to find top-remote jobs, and some [more advice](https://dev.to/caroso1222/hashmaps-like-you-ve-never-seen-them-3pnh) to [ace algorithm interviews](https://dev.to/caroso1222/4-tricks-to-boost-up-your-algorithms-game-9bn). I also wrote an eBook to get into Toptal, [check it out](https://carlosroso.com/cracking-the-toptal-interview) if that's your thing.