Aaron turned his career around by teaching himself to code and getting a job at Uber. He used to be a poor English teacher abroad. He now works remotely as an Uber Software Engineer. Read this interview for his tips and how you can follow his example!
Hey, so can you introduce yourself?
My name’s Aaron, I’m an English-teacher-turned-software developer at Uber. From beginning to code it took me about 8 months to land a job at Uber in San Francisco. It did happen fast, but the approach I took isn’t for everyone. I put myself in a position where I “couldn’t fail”. I had a lot of debt to pay so safe to say I was really motivated!
Getting the offer at Uber, I felt like I “made it” but for the first few months there was a serious learning curve as I had to learn a crazy amount of new tools and concepts. Eventually I was lucky enough to lead some projects and got promoted.
After being at Uber for a year, I was ready to move on to work on my own projects. My manager did not want to lose me so offered for me to stay on remotely, which is where I’m at now. This gives me more flexibility in working on side projects. My main side hustle is my channel on YouTube giving advice on learning to code and breaking into the tech industry 😀 I’ve got a few thousand subscribers and am hoping to grow it a lot more, as well as make courses in the near future.
I know that you were teaching English in Vietnam for a while living the college student lifestyle. How did you learn to code?
Yeah, I ended up there after taking a year off after college. I was starting to run out of money and decided teaching would be a way to “keep the adventure going”. I did some research and Vietnam seemed like the best ratio of cost of living to salary for teachers.
And yeah, you can have a pretty good life in Vietnam on an English teacher salary, but if you ever want to travel or fly home it takes multiple months of savings. Also if you return to the U.S. your savings will basically be nothing. Then something else started bothering me even more: I was not really building any long-term skills. If I ever came back to America I’d be starting over from square one.
So the rainy season in Vietnam started. Driving a motorcycle in pouring rain every day was terrible so I was ready to leave. So I started thinking about what was next for me job-wise. Maybe a skilled trade, going back to college, or… wait… maybe programming?
How did you go about getting into web development. Did you attend any bootcamps?
I think I found a Reddit post about “web development” and how you didn’t need a degree for it but it was still a programming job with a programmer’s salary. So my future was mine again and I accepted that challenge.
From there, I found the Harvard CS50 course online and was introduced to the world of free online learning. There is so much of it for programming so the internet is really your oyster once you know where to look.
The problem was, for me, this course was way too hard. (I did come back and finish it and it still may be my favorite course, though). In the meantime, I tried out some different things to learn front end, which was more visual and intuitive for me: HTML, CSS and Javascript.
I remember studying from a bunch of different resources. The Odin Project, Free Code Camp, Udemy, and CodeWars to name a few. Even if you’re seeing the same concepts, repetition in different formats is one of the keys to mastery.
Can you tell us how you kept up with learning by yourself?
I think the most important article I’ve ever read online has been this one: (warning, not for complete beginners, but save and come back to it). This guy is a poker-player-turned-bootcamp-grad who got offers from around 8 different tech companies I think? And he wrote a step-by-step guide on his study plan.
I followed this loosely, since a lot of it (particularly the data structures and algorithms sections) are overkill for a web development job, but at least being exposed to them will give you the vocabulary.
Also, one mistake I think a lot of people made after the bootcamp was taking time off. A big part of the bootcamp is getting into the routine of coding so much every day as well as the problem-solving mindset. If you do go to a bootcamp I’d say keep the momentum going all the way.
So I read that you work as a software engineer at Uber. How did you find the interview process?
At this point I have interviewed around 20 people so I’ve been on both sides. I really stressed myself out for the interview - for all the big tech companies there are four or five rounds on site on various topics and the questions could really be about anything.
In person it was… yeah, as hard as I expected! But later I realized that getting the “right” answer is only one small part of the interview - it’s more looking for “signals” of how effective you might be solving problems in the job you’re interviewing for.
Also a lot of what they are doing in the interview is “leveling” you, so they might give you a hard question and not expect you to get very far, but you’ve still gotten far enough to pass for an entry level developer.
Find out how much you can earn with a Software Engineer salary at Uber.
How has your life changed since becoming an Uber software engineer? (Maybe in another dimension you are still a broke English teacher in Vietnam!)
Sure, I’m transparent about my salary which was $110k with $25k of stock per year and jumped up to $140k with $50k of stock per year (there’s also a year-end cash bonus). This is a great question but for me, it’s boring, since most of this went towards paying off loans and saving for the day when I do hopefully go full-time on entrepreneurship. Either way, I’m sure the English teacher version of me would be proud 😉
What advice do you have for someone who wants to get an entry level software engineer job without a CS degree?
If you are at all capable of self-learning, I think that’s by far the best approach. My method was to ramp up from doing 30 minutes per day, to an hour, to eventually going full-time (at my peak I think I was doing 4 hours per day, which is a lot when you’re learning). It’s important to set a goal for the next day the night before, and keep track of each block of time you study.
Going to a bootcamp can be a decent option for some, but I have very mixed feelings. Even if you go to a bootcamp you will have to do self-teaching before getting in, and after, to fill the gaps and get that job.
The content inside the bootcamp I did not find to be the best, either. We only had 2 days of learning React which is close to 100% of what you’ll be doing in many front end jobs. Then, the entire second half of my bootcamp was working on projects that I could have done on my own. That being said, the immersion and being surrounded by other learners is hard to put a price on. But is it worth $20k or more? Only you can decide.
I read that you got the holy grail for developers: 100% remote with your SF salary! Do you have any tips on how to get a remote developer job?
Yeah! I just got to Belgrade, Serbia right now which is a very under-rated place (low prices, great people and centralized in the Balkans for traveling). My situation was a bit unique because I had a lot of leverage in my team - we had a lot of different products that required domain knowledge - so there was a strong incentive to keep me.
A lot of people learning want to go straight to remote, but my advice would be to definitely learn in person at a company for at least a year. You will absorb so much by watching developers in person.
I think transitioning to remote inside a company is a huge advantage because you have already met everyone and proven you can do good work in person. A good sign this is possible is if there are other remote team members, and that’s something you can ask during the interview process if that’s a priority. Otherwise, get a year or two of experience and go hunting for a remote job. Remote OK is one place to check out.
Can you tell us about your programming Youtube channel and any other of your side projects?
Sure! My channel has both career / programming advice, as well as tutorials. The advice videos have been a lot more popular so I’m going to focus more on those going forward. I’m excited to keep growing it and always open to topic suggestions!
I’ve also been creating a concept for “easy to digest micro-courses” - everyone has a short attention span, so I’m attempting to condense the most important subject matter from these 20+ hour online courses into micro-courses that can be used either for review or to gain a high-level understanding of concepts before practicing or diving deeper into them. I’m really excited to share these, the name is still in progress, but I will announce it soon on my channel so subscribe if interested 😀
Any other tips for people who are stuck in careers they don’t enjoy and want to get into programming?
Yeah! Since programming is mentally challenging, it can be really difficult to program after work if you have a demanding job. There are a few ways around this:
One way is to program before work! These are your best hours and there’s little time for your brain to make excuses right after you get up. I’ve heard injecting programming into your current job works well for some. So if there’s something you can automate or even tangentially related to productivity at work, start there.
If you don’t have a family or serious financial obligations, I’d say to strongly consider saving a bit and then starting to learn full time. This is “jumping into the deep end”
In either case, I’d reiterate the “do a little more every day” mantra and track your study time. You got this!
I also just released a coding interview course that covers the most important algorithms for coding interviews. After interviewing dozens of people at Uber, I tried to make these concepts as easy to understand as possible. The videos are fully animated and it comes in 2 versions: JavaScript and Python. You can use the code “NOCSDEGREE” for 20% off!