Starting from scratch
I've always loved computers, since I was a little kid. Started by messing around with MS-DOS, on an XT computer with 640KB of RAM and 32MB of hard disk - I was privileged to have a hard disk at that time!
However, before jumping to actually programming stuff in the computer, for real, I went through a number of different areas of experience. My first college was actually for a Meteorology course, which I didn't finish because I wanted to spend more time playing music. I used to be a bass player, so I then decided to change to a Popular Music college. This one I did finish and got my diploma - which has never served me any purpose, although the human and social experience I got during the course made it all worth it.
Before joining Music college I wanted to make my own website, which at the time was a bit harder but made easier by using tools like Macromedia Dreamweaver and the likes. This was my first experience with actually building websites, and it was around the year 2000. After creating my own site, I also started creating for friends, and eventually started creating others as a freelancer.
Programming for real
So I decided to switch to PHP after a few months, during 2003, as with this I would be able to at least learn some basic but fundamental programming principles and I would be able to apply it to making websites. That language was the first one I learned for real, from "start to finish" for the books I learned from, and I was finally able to apply that to making websites too. Then I kept going websites, but this time dynamic ones, with contact forms and all that. Freelancing with websites was becoming a bit more attractive to me, and I started doing a few more jobs using PHP.
A harsh turn
When leaving Music college I was faced with the harsh reality of being a musician in Brazil. Whereas in college I could have help from my parents, when I left I had to sort out myself how to keep proper income. I had no music jobs at the time - even when I had some the pay was not enough to get me through the month. So I had to get creative, and decided to take a half-time job at a company as a programmer. This was on 2007, and it was my first experience making websites and other programs from inside a company. And I kept jumping between companies after that, trying to find more exciting software development challenges - and fairer payments that could help me get by till the end of the month.
By 2008 I had what was probably the most important jump in my career: I started working for UOL (Universo Online). This was my first experience in a big corporation, and it opened up a gigantic set of opportunities to learn more about my professional area, including how to improve my behavior. Having 8 years of experience in websites helped, but being the first time in a corporation was a whole new challenge for me, with much more restrictive and serious environments - even though the company has a somewhat open culture.
I had, in this company, what was one of my most important learnings. I made a mistake in a website, a really stupid and seemingly innocuous mistake, and it was in CSS code; However, this mistake broke the user registration completely - users couldn't register because one of the mandatory form fields was shadowed by another fields. And I tried to explain that I had properly tested the page by using automated tools¹, to my managers, and that because of that it was not my fault that it broke; But they were right on blaming it on me and calling me for a talk. This made me change my behavior dramatically and, since then, I've been taking manual testing much more seriously and understood that no automated testing tool replaces general manual testing - even though I am, today, a hard Test-Driven Development adopter.
¹ The tool filled the form field, which worked fine because of direct DOM access, but manually it failed because another field was in front of it with a bigger z-index.
Lead the way
After working for UOL, I had the opportunity to become a technical leader for a frontend development team, in 2010. There was a number of frontend devs in the company I started working for, Gonow, and a lack of technical direction to give more consistency to the general frontend development in the company. We then established a culture of doing frontend talks every week, which could include new solutions, demos, fun stuff about development and other things that could improve our work and team relationship.
I didn't spend a lot of time working for that company though, and soon joined Dafiti, an e-commerce store, on 2011, now as a full-on server-side developer mostly focused on PHP, and not as a frontend dev anymore - which I wanted to move away from. After only 2 days working for the company I was asked to travel to Germany to get some training done, as a huge chunk of the website was done there, and after I pointed out the areas that could be improved for the website, especially automated tests, I was appointed as the tech lead in software quality. Not long after that I became the general tech lead for software development in Dafiti.
Working for abroad
While working for Dafiti, I had this urge of starting to work more closely with Python, which I was learning since 2007 and was using on secondary tools since then. I had the opportunity to join Canonical, which used Python pretty heavily by the time, so I bit the bullet. It was my first experience working for a foreign company, and from my home at the same time. That was quite a big leap!
I stepped away from Canonical and right away started working for YouGov, on 2014, still working with Python. I worked there until the end of 2022, which was almost 9 years! But then I left so that I could get an official technical leadership role, to move my career forward.