This post is also available on my blog: https://hugomarques.dev/2018/12/30/10yo-professional-developer.html
On December 8th, 2018, I celebrated 10 years as a software engineer. This post is a collection of my memories and lessons learned over the years.
A decade ago, I was living in Brazil and had just started as an intern at a multinational consulting firm. Our office was small, and my main role was supporting and fixing bugs in a Telecom service. My proudest moment came when the service couldn’t process a customer order for 31,000 new lines due to a timeout issue. I discovered the problem was caused by two nested loops, and I refactored the code to separate them, which allowed us to successfully complete the processing. I was proud because it was the first time I used algorithm analysis to solve a real-world problem outside of college. The most valuable lessons I learned at Accenture were how to communicate and collaborate with different people.
Between 2010 and 2011, I moved away from my hometown, worked at two different companies within seven months, and then moved back to work at Accenture again for the entire year of 2011. At that point, I was feeling disillusioned with my career, mostly because I was working on CRUD applications that offered little learning or interesting challenges.
In 2012, we moved to Brasília, Brazil’s capital, where there were many contracting opportunities for Java developers like myself. I landed my first job as a contractor, marking a fresh start and renewing my commitment to my career. That year, I earned three Java certifications (Java Programmer, Java Web Developer, and Enterprise Java Developer) and one IBM certification (Object-Oriented Analysis and Design). I also completed Hibernate/JPA training and became the team expert in ORM. During this period, I mainly worked with the Java EE stack and Flash ActionScript (RIP). It was around this time that I developed a strong interest in Clean Code, coding best practices, and software architecture.
In 2013, I joined a startup, but it didn’t work out. There was a clear mismatch between the CTO's expectations and my own. Two key lessons emerged from that experience:
- Never work at a family business where you’re an outsider.
- Always align expectations upfront.
Later that same year, I started a contract with the Brazilian Ministry of Education, which I thoroughly enjoyed. I worked on a project that helped Brazilian students study abroad, serving as the primary owner of the system’s reporting module. I handled requirements, design, development, testing, and monitoring deployment. That role taught me the importance of taking full ownership of the products I build.
Then, in 2013, I received an email from an Amazon recruiter inviting me to a hiring event in São Paulo, Brazil. Initially, I didn’t think I stood a chance—algorithms had never been my strong suit—but I pushed through the imposter syndrome and decided to give it a shot. For the next three weeks, I worked day and night solving problems and revisiting key data structures and algorithms: lists, trees, sets, maps, sorting, searching, and graphs. Long story short, I passed the hiring loop and received an offer from Amazon to join them in Seattle, WA, in October 2014.
Since 2014, I’ve worked at Amazon on three different teams: Amazon India, Customer Reviews, and now AWS Builder Tools. At Amazon, I’ve learned all sorts of fascinating things: how to monitor and measure metrics, set up alarms, and orchestrate solutions that interact with multiple services. I also had the opportunity to write my first API that would be used by millions of people worldwide. I've written and read code in a variety of languages. Now, at AWS Builder Tools, I help create tools that enable Amazon engineers to be more productive and deliver solutions with higher quality.
That’s the 10,000-foot view of my career—starting as an intern in a small office in my hometown and becoming a software engineer at one of the world’s largest tech companies. I hope this article inspires others to carve their own paths.
Cheers!
Top comments (7)
Very nice! I am brazilian too and I have some friends working at Amazon as well. I've been working for online 1 year now as a front end engineer. I speak good English and I wish to work abroad eventually. Cheers!
Interesting journey. How was your journey into Amazon like? Did you had to take a look back at your Computer Science basics?
Definitely, I was rusty with Computer Science basics and I had to revisit them in order to prepare for my interviews.
And back then Did they really ask about CS basics? :D
Thank you for sharing this information. It was really helpful and inspiring. I'm from Mexico, and I'm currently working looking for a job in the US. Could you give an advice of how can I land in a technology US job? Thank u.
When I was in Brazil I was already planning to immigrate to Canada. Because of that, I did all the courses and took the certifications I mentioned in the article. I don't think I was called to the hiring event exclusively because of those alone but due to the combined experiences and knowledge, I detailed at my resume.
Nowadays, I would focus on getting a bachelor degree in CS or display similar knowledge through projects, portfolio, bootcamp. I would practice CS fundamentals through problems at sites like freecodecamp and codewars. Finally, I would keep applying not only for the US but for other countries "easier" to get a VISA like Canada, Ireland or Germany. One mistake I did back in 2014 was that I didn't consider myself good enough to apply to companies outside of Brazil. Amazon showed me I was wrong. Maybe, if I had applied I could already be there in 2013 or sooner!
Cheers,
Hugo
Inspiring; thank you Hugo!