May 28, 2026
As I finished my Master’s at the university, I felt a mix of joy and genuine worry. I loved the “blank canvas” feel of university research, but I wanted to see my code actually move people in the real world.
When looking for my first role, I felt like a chef looking for the right kitchen. I didn’t want a job where I was just reheating leftovers, working on some legacy code that nobody cared about. I wanted a place with fresh ingredients: modern technologies, high-scale challenges, and the heat of a fast-paced environment. I wanted to learn how to cook at scale, not just follow old recipes.
Most job listings I found were disappointing. They were either high-level roles that felt out of reach or “Junior” positions where innovation was “off the menu”.
That is when I found the Cabify Rookie Excellence Program (CREP).
I’m Felipe, and I recently joined the program as a Computer Science graduate. If you are a fresh graduate wondering if you’ll ever find a place that balances high-demand engineering with a supportive environment, you’re in the right place. In this article, I want to share what it’s actually like to join Cabify through the CREP initiative and why this program provides exactly the right ingredients for a rookie to grow.
The CREP is a dedicated track for graduates who really want to see their code change how people move in over 40 cities.
In many junior roles, you are left guessing if you’re doing a good job. In CREP, you get a transparent path with clear expectations and concrete goals. This ensures you aren’t just “busy”, but actually making a measurable impact on the Cabify ecosystem from day one.
To help you navigate this, you aren’t left alone in the kitchen. You are paired with a personal Chef, a senior mentor who guides your journey. Beyond answering those “dumb” questions or offering career advice, they host a set of talks that are like “secret recipes” for how we build reliable, scalable software at Cabify.
I made a digestible meme to summarize the deal:
Every new journey starts with a mix of high expectations and a healthy dose of uncertainty. While those “first-day nerves” are common, mine didn’t last long.
Having a Cabify driver waiting to drop me off at the office on day one set the tone for me, but I think that the real “smooth landing” came from the culture. From the start, we were encouraged to be Unstoppable and Brave, two of Cabify’s core principles.
Between onboarding tasks, I focused on getting to know my team, their goals, and their codebase. Coming from a different background, I was a total newbie with Go, and the code felt a bit like a foreign language at first. My team’s patience was key here; they gave me the space to learn the syntax while I dove into the technical literature recommended by my Chef.
Early on, you’re paired with a Chef in command, who is deliberately not on your team. Because they aren’t involved in your team’s daily deadlines, they don’t just focus on helping you “survive” your immediate tasks; they act as a neutral guide dedicated to your long-term growth. This setup ensures you get a broader view of Cabify’s engineering culture and best practices, rather than just learning the specifics of one project. Their goal is to give you the tools and the confidence to become autonomous, ensuring you grow into a complete engineer who understands the whole technical ecosystem and product view.
Beyond 1-on-1 support, Chefs run CREP Talks. These aren’t your typical, dry training sessions: they are designed to show you the shortest path from an idea to production. They take complex engineering concepts like real-time observability, scalability or high-speed development and explain them using real Cabify problems. These talks focus on a product mindset: giving you the tools to take a solution, build it robustly, and push it to users efficiently.
Because each of the CREPs was placed in a different team, we quickly became a knowledge-sharing network. We’d swap stories about different team rituals, app flows, and help each other debug dev environments or brainstorm “crazy” ideas. Not only that, between some intense ping-pong matches, futbolín and a Slack channel dedicated to our internal memes, we actually became friends. It’s a lot easier to tackle a codebase when you have a solid group of people learning right alongside you.
I’ll be honest: my first look at production code was a reality check.
I found myself staring at a massive ecosystem of new languages, endless lines of code, and a sea of YAML files. It was a world away from university projects. Even worse was sitting in on senior-level discussions. When the team started debating a specific problem in the app workflow, I’d be lucky if I understood a third of what was being said.
With that on my shoulders, I started my first real Merge Request: migrating a logging library.
On paper, it was a trivial task with almost zero impact on the user. However, its simplicity was exactly what I needed. Because there wasn’t a direct user impact, I could focus on the “how” rather than just the “what”. It was like a “flight simulator” that forced me to hunt through every corner of the codebase, getting me comfortable with Go’s patterns and our internal tooling (like Servant).
That single task taught me the usual development flow: code reviews, CI/CD pipelines, and Cabify’s observability stack, the essential toolkit for real development. Surprisingly, in the process of digging through the code, I actually found and fixed a bug in one of our core libraries. It was a small win, but it showed me how “trivial” tasks can lead to improved tools that the whole company uses.
After a few months, the focus of my work shifted. I stopped working on isolated “learning tasks” and started taking on real product features that impacted our users. I went from simply migrating libraries to owning initiatives end-to-end and participating in the technical discussions that shape how Cabify works.
A huge part of this transition was the support system. Between my Chef, my manager, and my team, there was never a moment where I felt like I was “bothering” someone with a basic question. In fact, the culture here encourages you to be curious and challenge why things are built the way they are. That safety net allowed me to take on more responsibility and learn faster than I ever could have alone.
One of the highlights so far was the Explorers internal hackathon. While Cabify organizes this every year, we CREPs had our own dedicated edition. This wasn’t a top-down assignment; we were encouraged to be Brave and Unstoppable by pitching our own product ideas. The Chefs simply helped us filter those ideas into actionable projects.
To make it happen, our managers cleared our schedules for an entire week, allowing us to focus 100% on building. My team worked on an in-app communication feature, while the other built a rider engagement tool. Thanks to using AI to handle the boilerplate code and our Chefs guiding us with some technical knowledge, we turned our idea into production-ready features in just five days.
As an ex-CTF (Capture The Flag) enjoyer, getting back into that high-pressure team energy was amazing. By the end of the week, both teams had features running in staging and presented them to the jury, which for me is the result of having motivated teams with the right tools and trust.
Beyond our immediate teams, some of us also have the opportunity to work on cross-team initiatives. This has been key for expanding our product vision and understanding how other services actually interact with our code. Working with another CREP member on these projects made the collaboration very natural. Because we already shared a common technical language and a similar way of working, we were able to sync up immediately and focus our energy on the technical challenges ahead.
Six months in, I earned my own “cooker hat” and was promoted from Software Development Engineer L1 to L2. This change reflected the higher level of ownership and technical complexity I was now handling. Looking back, I think this happened quickly because the CREP program is built for it: clear milestones, constant feedback, and a network of people who genuinely want to see you succeed.
Ten months in, the things I wonder about have changed. They went from “how does any of this work?” to “how can I make this better?”. I’m confident enough now to propose architectural changes to my team or to try to improve common libraries.
Right now, I am cooking my own recipes: designing and building a new service for my team from scratch. It’s the kind of ownership I didn’t expect to have this early. AI has become a natural part of that process; at first, I mainly used it to explore and understand unfamiliar codebases, but now it helps me move much faster when I’m building out new ideas. It has made the learning curve feel much shorter than it would have been just a few years ago.
If you are finishing your degree or just graduated and have no idea where to start, honestly, I did not either. CREP gave me production code, people who actually cared about teaching me, and problems worth solving, which is something I am quite enjoying.
Software Engineer
Choose which cookies
you allow us to use