Have you ever felt that familiar rush of excitement after completing an online course, only to find yourself wondering: “Now what?” I’ve been there. After finishing several DeepLearning.AI specializations (which are fantastic, by the way), I found myself at that exact crossroads. But instead of jumping into another course, I decided to take a different path — one that I’d love to share with you.
Here’s the thing: those courses gave me solid theoretical foundations and helpful practical exericses. But I do think that something big was missing. The messy, challenging, incredibly rewarding experience of building complex ML systems from the ground up (I mean, that’s sounds incredible for at least some of you guys, I hope lol).
So I made a decision that might sound crazy in our “become-an-expert-in-3-months” world: I’m dedicating the next year of my life to building a comprehensive ML engineering project from scratch. No shortcuts. No quick wins. Just real, honest-to-goodness engineering work.
I’m really tired to see some people just stuck in the “Netflix copy course”. Maybe you’ll be familiar with this loop down here, even more if you’re brazilian. I saw that on LinkedIn but I didn’t found the original post, so I create my own version with Canva (I’m not an artist, guys):
Why a year? Isn’t that so long?
Maybe I’m a little crazy (who knows?). But here’s what I know: real expertise isn’t built in a weekend hackathon or a 12-week bootcamp. Those are great starting points, but they’re just that — starting points.
Claude (❤) helped me creating this brilliant example down here:
Think about it this way: when you’re learning to play an instrument, you don’t jump straight from learning scales to performing at Carnegie Hall. You practice. You make mistakes. You learn the nuances that only come from long-term engagement with your craft.
ML Engineering is no different. Sure, you can learn to train a basic model in an afternoon. But building production-ready ML systems? That’s a different beast entirely. It involves:
- Wrestling with messy data in ways that tutorials never prepare you for;
- Building robust pipelines that don’t fall apart when reality throws you a curveball;
- Creating systems that scale beyond your laptop’s comfortable confines;
- Integrating modern tools like LangChain and LangGraph with traditional ML approaches;
- Understanding the deep “why” behind every technical decision (maybe this is the most important thing, by the way).
And that’s exactly what this journey is about.
The Journey Ahead
Over the next year, I’ll be documenting my journey right here on Medium. But, REMEMBER, this won’t be your typical “10 Steps to Becoming an ML Engineer” series. Instead, I’m inviting you into my workshop, so to speak. You’ll see:
- The dead ends I run into (and how I navigate around them);
- The “aha!” moments that make everything click;
- The messy middle where theory meets reality;
- The evolution of my thinking as I bridge traditional ML with modern LLM approaches.
I’ll be working with everything from AWS, GCP and Docker to Apache Airflow, Hugging Face and Kaggle (two hearts for this dynamic duo ❤❤). But more importantly, I’ll be showing you how these pieces fit together in the real world. Not just how to use them, but why you’d choose one approach over another. AAAANDD, I’ll be learning while I’m sharing, so this is new for me too.
A Different Kind of Technical Content
Let’s be honest: there’s no shortage of ML tutorials out there. But how many of them show you what happens when things go wrong? How many discuss the thought process behind architectural decisions? How many admit that sometimes, the “best practice” solution isn’t always the right one for your specific case?
That’s what I want to bring to the table. Real, unvarnished experiences from the trenches. I want to show you:
- Why I chose specific tools and technologies (and what I considered but rejected). And I hope this point will bring some healthy discussions to the formum;
- How different components of ML systems interact in ways that aren’t obvious from individual tutorials;
- The evolution of my thinking as I encounter new challenges;
- The mistakes I make and the lessons I learn from them.
Yeah, I do think that you’ve already understood my main goal here, right? I think it’s already too long, so let’s get down to business!!
An Invitation
This isn’t just my journey — I want it to be ours. I’ll be sharing my code, my thought processes and my challenges. I want to hear your perspectives, your experiences and your ideas. Let’s learn together, make mistakes together and grow together.
See you next week, when we’ll dive into setting up our development environment — and trust me, it’s going to be much more interesting than your typical “install these packages” tutorial.
P.S. If you’re wondering whether this journey is worth your time, ask yourself this: in a year from now, do you want to have completed dozens of tutorials, or do you want to have built something substantial that showcases your real engineering capabilities? The choice is yours.
A Note About This Series
A quick heads up: I’m already a few steps ahead in this journey! While you’re reading this first post, I’m busy starting post 4 and I have fineshed the 2nd and 3rd posts. I want this series to be a thoughtful conversation between us, not just rushed weekly updates.
Let’s Connect!
Building a community of passionate ML engineers is part of this journey. If you’d like to discuss ML engineering, share experiences, or even offer guidance, I’d be honored to connect with you on LinkedIn: Vitor Carvalho.
I’m always eager to learn from those with more experience and to share insights with fellow learners.
See you next week sailor!
Top comments (0)