How I Got My Dream Job, As a Self-Taught Software Engineer
I'm a Senior UI Engineer @ Netflix, based in the Bay Area, CA.
Previously I worked at PayPal, Tinychat, and as a freelance web developer. I am a self-taught engineer with a degree in Communication Studies.
This story is about my journey as a self-taught engineer. My background is anything but typical: I don't have a computer science degree and I've never been to a development bootcamp. Until I was a senior software engineer I had to figure out a lot on my own, including imposter syndrome. I forged my way through trial and error, and a little luck.
The first encounter I had with programming was at 13 years old. Every kid in my computer class was obsessed with the RuneScape Classic. This game became my whole life. I wasn't very good at it until I discovered and started writing Java automation to play the game for me.
Programming was like a fun puzzle. Much of this time was spent fighting the Java compiler: making single line changes and learning the language through trial and error. Finally, when I had a working program, I wanted to share it with the world. This experience led me to my first webpage. Learning web development was way more exciting. Changes could be previewed instantly and I really enjoyed not having to fight with a compiler.
As a teen, I co-founded and helped run several online communities for gaming and web development. It was here where I started my freelancing career: selling plugins, themes, and converting designs to front-end web applications. One of my first successful projects was a shoutbox plugin for Invision Power Board. It was a huge hit in the community because it enabled almost realtime text chat, with significant performance and bandwidth savings. It's still powering a number of forums, and would later serve for the foundation at my first startup.
Here are some of the other early projects I worked on:
- PetitionSpot (later sold to Change.org)
- TinyCheckout, an easy way to create PayPal checkout forms.
- TinyPaste, a monetized pastebin.
These experiences were a great entry point in my career. Learning web development for the sake of it can be challenging. However, because I was able to relate it to my interests in gaming and communities, it never felt like work. At the time, I didn't know that I was building up skills that would later take me to where I am now. If I had known that, I might have challenged myself to do more explorations and take more risks. Nonetheless, it was a good start towards freelancing, contracting, and startups.
In 2009, I engineered the first version of Tinychat.com. With the technology I had developed from my shoutbox modification, we created instant chatrooms on the web. Powered by PHP and MySQL, anyone could create a room, share a link with their friends, and start chatting instantly.
It was a smashing success. Users were chatting so much that the servers could barely keep up. Tinychat became a home for many people around the world to connect through shared interests. 6 months later we pivoted to video chat, and it took off from there. This was my first experience working on a team with other engineers. And it was a real treat to build something that made an impact on so many people's lives.
From 2009 to 2013 I was working on my Bachelor's Degree in Communication Studies. While attending university full-time, I would work full-time on Tinychat between classes. It was a rewarding experience that allowed me to move out on my own and rent an apartment. However, it was also hard work rushing between classes and work. During this time I co-founded Binbox, an affiliate advertising network. After finishing my degree, I moved across the country to Miami, FL. It was here I helped build a new startup, Everyday Carry, and re-build The Hunt.
Working in startups is a rush. The work is fast-paced, and there is a lot of learning. My experiences allowed me to hone my skills and develop a strong background in full-stack web development. In July 2017, it was time to move on and continue my growth journey.
After over a decade in startups, I hung up that hat and moved back to California to become a Staff Software Engineer at PayPal. After working from home for so long, I really enjoyed working in an office. Now I'm working at Netflix, and these past few years I've learned so much.
Throughout most of my career, I struggled with calling myself a software engineer. I was first a programmer, then a web application developer, and then a full-stack programmer. The words "software engineer", in my mind, was reserved for those who went to school and earned a degree in Computer Science.
My work started as an after-school hobby. In the 8th grade, my college and career counselor pulled me into the office. I was told that I was in danger of failing. He asked me about my dreams and ambitions, and I had no response. The truth was, I was drifting through school and life. I had
Between then and now, I somehow stumbled upon a livelihood. When I started university, my parents pushed me towards a Business degree. However, there was too much math involved so I chose Communication Studies. I've always been fascinated with how people communicate, make meaning, and the psychology behind it all.
If you had told me then that I would have the words "software engineer" on my resume, I wouldn't have believed you. There was a time I almost quit at it - when I was about 19 and struggling to pay my way through university. I'm lucky that the local burger shop didn't respond to my application, because it's possible I wouldn't be where I am today.
As a self-taught engineer, there was a lot to figure out I had to figure out on my own. I have to thank a previous mentor, Peter Salanki (pictured), whose guidance helped push me to aim higher. During this year and a half of mentorship, I grew more than I had the ten years prior. To grow as a software engineer, I needed that experience to fill in the missing pieces. Since then, I have surrounded myself with people whose presence help me to grow, who I can look to as role models. Having a mentor to guide you can make all the difference.
If I could go back and give myself advice — I'd tell myself to avoid silos. There were times where I had got so caught up in the day-to-day, that I failed to see the bigger picture. There were years where I had stagnated because I was too comfortable, not seeking opportunities that would challenge me.
I'd tell my past self to embrace vulnerability, and don't be afraid to ask for help. Knowing when to ask for help is a strength, not a weakness. Being stuck is way worse than going outside of your comfort zone.
The last thing I would tell my past self is to be surrounded by people who care about one's growth. Seek only relationships and circumstances that add value to your journey. It was only when I started to seek out growth, that I started seeing it. It's always people, not code.
Thanks for reading my story! I hope this was helpful for at least one person who is wondering whether they should become a web developer or software engineer through a self-taught discipline. I've enjoyed writing about my experience and going back through old photos and screenshots to write this post. I'm fortunate to have a career doing work that I enjoy.