Mariano used to make $2,500 a year in Argentina 10 years ago. He now makes $210,000 as a self-taught developer working remotely. That's 84 * $2,500.
Mariano shares his story of learning to code for free, working his way out of poverty and getting lucrative remote jobs from Argentina. I've not been this excited about an article for a long time. Enjoy!
Sure! My name is Mariano Zorrilla, I’m 31 years old and a Tech Lead at Venmo/PayPal. Before that I was a Head of Mobile at HighSide (a startup). I was raised in a small city called Rio Ceballos in Cordoba province in Argentina. The population is around 20,000 people. There are only medium to low income families. Every single store is locally owned (no retail stores, no big names, no chains, no fast food companies).
When I was a kid we had an income of around $400 dollars a month for the entire family (6 in total) and lots of debt. I went to a local elementary school and high school. Due to our family income, I couldn’t go to college. Even though it's free in my country I was living 30 miles (50km) away from any college. I couldn't afford paying the bus ticket every day.
Right now I make $210,000 a year. I always look into ways to increase and diversifying my income. Because I live in Argentina, I can have a good life spending around $2k dollars a month. Then I put all my money into savings accounts for future big investments.
In Argentina, the poverty rate was around 35% when I started coding and now sits at around 50% of the population. Only 40% of the active population is currently working. Apart from the private sector, the rest work for the public sector or don’t work at all. They have a small monthly income of $150 dollars a month from government benefits.
All those things made me keep looking forward to becoming a mobile developer. I was lucky enough to have friend next door who was the only hardware engineer in the entire city. He at least had an idea of what “coding” was about. I chatted with him to start the process (and now I bring him to work with me at Venmo/PayPal).
I started working at the age of 14 helping my mom. My first bucks came when I was 17 years old responding to phone calls on a local FM Radio and TV Station 1 hour a day. After 3 months I got something like $45.
Getting better jobs was hard because the “best” ones were in the city close by. Paying for the bus was already taking a big part of my salary. So I managed to get work at a call center (Customer Phone Care). I earned around $200 to $250 a month so enough for me to travel, pay for food and that’s it. I stayed that way until I turned 20 years old and I was really depressed with no future ahead of me.
Every day I had 3 hours in total going to and back from work on a bus to “think” about things I could do to have a better income. By then, the iPhone was a thing and I had an old 2004 smartphone (Nokia). By then it was 2009 but I could run apps and I found that amazing! It was a pocket PC for me.
In one of those trips I read an article about Google doing a phone. People will be able to do apps! So, I got this crazy idea of doing apps. I didn’t even have a PC at home, but at least I got my first goal. Due to my low income, I couldn’t have a credit card, so I decided to buy a cheap netbook (those 7” to 10” laptops).
I split the laptop cost into six small payments as the whole cost was much as my whole month's salary. That small machine allowed me to download Eclipse and Photoshop. So I could start learning every time I had free time out of work. The journey to learn how to code started there aged 21. Again, I was saving to get my first Android device (the Motorola Milestone/Droid).
I got a JAVA SE 6 book (2.300 pages) which I didn’t understand even a bit of the first time… and the same for my second time. I tried to follow a course about Android for 3 months that I also didn’t understand much. But I kept in contact with the teacher to “code professionally”. I tried to work with him for a few months but I couldn’t pay for my bus ticket and stopped doing it.
I spent almost a year unemployed doing some coding at home. I was testing what I was doing wrong but I get so frustrated and sometimes depressed. I managed to make a small FM Radio app getting the URL of a local station from their website. The owners talked with me to make it “look good” and that allowed me to improve my code.
During all that time and year I tried to do job interviews. I got so many non stop “Nos” from everyone because I didn’t have a CS Degree and didn’t have any industry experience. I spent 3 months doing a super simple app with little functionality. But I learned all the process of posting the app over the Android Market (yep, the old name of the Play Store). I didn’t get any money from that, but I started getting my name around the city and ended up trying to get clients.
After a couple of months of unemployment I got back to a call center to get a bit of money to pay the bills. This time I spent all my free time coding anything I could think of. I was watching blog post tutorials and understanding MCV and MVP architecture. Plus, learning Java from top to bottom.
I quit after a year and managed to get a client who needed Android, iOS and a website. I knew nothing about iOS and websites, but I took the challenge. I asked him if he could lend me his Mac Mini to code in iOS as I needed Xcode to run that. I saved up to get a cheap iPod Touch to test the app.
I searched on every blog possible how to parse JSON, how to do API connections and play audio. I ended up with a basic app in 2 weeks. In that time I also re-did the first app that originally took me 3 months in 2 days. I used all the knowledge I got after 1 year of non-stop practicing and practicing.
For websites I learned PHP, MySQL, some DevOps skills and AWS. I got a WordPress website running with a basic endpoint to fetch news. I also did some freelance work to get a few extra dollars, but I mostly did UI/UX for mobile apps.
That client lasted for 8 months. When the money was running out, I saw an Android job opportunity on Twitter and decided to give it a try. It was 400 miles (650km) away from where I was; from a small city to the biggest in the entire country, Buenos Aires. It was a mobile game company. Because I love to do animations, I demonstrated this to them, got hired and moved to Buenos Aires. I made a $12k annual salary which sounded incredible for me at the time.
I learned a lot about how to use Git, different mobile architectures, working with a large team and making a large project with millions of users. Like before, I spent all my free time learning new coding skills but now with a much larger scope. (mostly from blogs, youtube videos and github open source projects.) Then, thanks to my English skills I managed to get jobs from the United States.
Prepare for technical interviews with Algo Expert- "NOCS" gets you 15% off.
I first landed at a young startup which was a terrible experience but I get to know San Francisco for a month. That was my dream since I started watching all the events and companies being over there). Then I moved to some remote software factories for a while making $24k a year. Then, I became a senior contractor developer for a huge mobile game company in San Francisco. This increased my income to $40k a year.
My last two jobs were also remote: I was Head of Mobile for a NYC Startup company where I fixed their native client apps. I managed to talk with the CEO and CTO to check technologies and use Flutter to have 1 code base. I was still in Argentina while making $60k a year in that position. I lasted 1 year there with so many challenges. I was learning complex algorithms and scaling a huge chat app.
Then I got a phone call from my previous contractor about a huge opportunity. It was at Venmo/PayPal making $160k a year as a Tech Lead. That was thanks to all the management level knowledge I got from previous jobs. I was not only involved with the code, but the product itself. Plus, I have extra consultant/freelance work for another $50k a year.
What advice do you have for someone without a CS degree who wants to get their first programming job?
Don’t work hard (too hard), work smart! You could learn many things that took me around 5 years in way less time. Because I wasn't looking for the right/correct information.
Learn about good practices, solid OOP knowledge and clean architecture. Use social media, github and online platforms like codepen to showcase your work. Make a portfolio and involve yourself in your local development community. Do a LOT of networking and gain the trust of your peers.
You’ll eventually become a Sr developer, but that takes years no matter what you do. So do it in a smart way to get the best opportunities for your future.
Again, make yourself known around the community. Get a good portfolio of examples. Showcase your “developer powers” by doing something out of the ordinary. Participate in hackathons and go to Meetups events. Eventually, with a good network and people knowing your hard work, dedication and code quality, those opportunities show up!
It’s a challenge, it is not easy. So don’t worry if you don’t know lots of math. You can spend a career without knowing complex algorithms. Is going to be frustrating many times but don’t take that in a bad way. It is a normal process for learning how to code. Take a “video game” perspective: That complex UI with API calls and lists of items are the main Enemy. Your code editor and brain are your weapons. Once you defeat the Enemy you’ll have an amazing feeling, satisfaction and such an a achievement in your life!
As a mobile developer, my stack includes:
- Android Studio
- mobile devices (I like to have physical devices to test)
- Macbook Pro 13” - it is super handy to travel and work from any place - with a couple of dongles, of course.
A good set of tools for work would be:
- VPN access
- G-Suite and/or Microsoft 365,
I have two possible paths:
- Keep jumping positions inside a huge company (like the big 5s) to be VP, CTO or even CEO
- Make my own company that I can scale as big as my dreams can reach, putting all my effort to be truly successful.