How I Went from Selling Food in the Street to Working for Top Tech Firms

Man using laptop outdoors

Growing up in a small town in Chile, I always had a fascination with computers and technology. However, my family‘s financial situation made it impossible for me to pursue any type of formal education in computer science. My parents worked extremely hard to put food on the table, but extracurricular activities were a luxury we simply could not afford.

When I finished high school, I had no choice but to start working odd jobs to help support my family. For a while, I resigned myself to the idea that working with computers would remain an out-of-reach hobby rather than a viable career path. Unwilling to burden my parents, I decided to drop out of the teaching degree program I had enrolled in. I turned to selling homemade empanadas on the streets to scrape together what meager income I could.

Standing on the side of the road for hours in the hot sun, hawking trays of baked hand pies to passersby, I had plenty of time to reflect on where I wanted my life to go. Though I barely had two pesos to rub together most days, in my mind I held on to my childhood dream of one day working with computers. I knew it wouldn‘t be easy to break into the tech industry with no college degree or formal training, but I became determined to find a way to make it happen.

Self-Teaching with Limited Resources

Since I didn‘t have my own computer, I started frequenting the local internet cafe, sinking what little money I could spare into hourly access fees. There, I read programming blogs and tutorials, painstakingly saving key information to floppy disks to review later. I focused my efforts on learning web development languages like PHP and JavaScript, which seemed in high demand based on the job listings I saw.

Without the ability to practice my coding skills regularly on my own machine, progress was slow at first. I jotted down code snippets and programming concepts in a notebook, reviewing them in my head while working my day job on the street. I made a point to study sample code line by line, really taking the time to understand the underlying logic.

When I had finally saved up enough for a very basic used computer, I was able to accelerate my learning dramatically. I downloaded free resources like W3Schools and freeCodeCamp to guide my studies. I practiced diligently on coding challenges from Project Euler and CodeWars. Slowly but surely, I started to gain confidence in my abilities as I saw my skills grow.

I challenged myself to build a real web application that would showcase what I had learned. Despite not having an internet connection at home and relying on a dial-up connection at the cafe, I chipped away at my project bit by bit. Overcoming bugs and technical limitations taught me a great deal about the problem solving mindset needed to be a programmer.

Building an Undeniable Portfolio

The application I built was a prototype for an interactive digital map of my hometown – something like a primitive Google Maps tailored to our community. I used PHP for the back-end, JavaScript and jQuery for the front-end interactivity, and the Google Maps API to source the location data.

It took countless hours poring through documentation and experimenting with unfamiliar libraries to get it working. But in the end, I had a functional MVP that allowed users to search for local businesses, add their own "pins" to the map, and get walking directions to points of interest. Implementing these features gave me hands-on experience across the whole stack, from querying the database to dynamically updating the UI.

The experience of taking an idea from concept to a deployed web app gave me the confidence to start applying for entry-level developer jobs. I knew my portfolio would be critical to overcoming my non-traditional background, so I made sure to write detailed READMEs explaining my technical choices and include live demos and GitHub links.

I also built a personal website to host my portfolio, blog about my coding journey, and further demonstrate my front-end development skills. Knowing HTML, CSS, and JavaScript well enough to create an attractive, responsive site helped show potential employers that I could build professional user interfaces despite my lack of on-the-job experience.

Overcoming Imposter Syndrome

I knew I looked very different from the average candidate on paper. I had no degree, no formal experience, and a far from typical background. The odds of even landing an interview felt quite low. Worse, I wrestled with intense imposter syndrome, feeling like I would never truly belong in the tech world.

To combat the negative self-talk, I made a conscious effort to reframe my past experiences as assets rather than liabilities. Growing up in poverty had made me resourceful, scrappy, and unafraid of hard work – all qualities that would serve me well in the fast-paced tech industry. Teaching myself to code with minimal support had made me an adept independent learner and creative problem solver. And the grit I had developed hustling on the streets would help me persevere through the inevitable challenges of the job.

I also took comfort in researching the journeys of successful self-taught programmers, from industry legends like Margaret Hamilton and Jamie Zawinski to contemporary role models like Preethi Kasireddy and Sergei Garcia. Seeing that it was possible to reach the highest levels of the field without following the "traditional" path gave me the courage to keep pushing forward.

Breaking In and Leveling Up

To my surprise, a local software firm decided to take a chance on me, inviting me for an interview. When the day came, I arrived at their offices drenched in sweat, having walked over 10 kilometers in the summer heat in my only button-down shirt. I‘m sure I made quite the first impression! But once I had the chance to discuss my projects and demonstrate my coding knowledge, I saw how the interviewers‘ perceptions of me shifted. They stopped seeing a scruffy kid off the street and started to recognize an eager, capable programmer.

That first tech job changed the entire trajectory of my life. It wasn‘t glamorous or high paying by any means, but it gave me the opportunity to collaborate with a real development team, dive deep into new technologies, and level up my coding skills at an exponential rate. I‘ll never forget the thrill of pushing my first lines of code to production and seeing real users interacting with something I had helped build.

In the years since, through continued hard work and dedication to the craft, I‘ve had the privilege of working for some of the top technology companies in the world. I‘ve contributed to open source projects used by millions, mentored junior developers from all walks of life, and even had the opportunity to work on cutting-edge technologies like machine learning and blockchain.

It hasn‘t always been an easy road, but every challenge I‘ve faced in my career pales in comparison to what it took to get that first foot in the door. The hardest leg of the journey was teaching myself to code with extremely limited resources, relying on sheer determination to compensate for what I lacked in pedigree and connections. I learned that you can never allow your circumstances to define your potential.

Lessons Learned and Advice for Aspiring Programmers

My experience has taught me firsthand that talent is evenly distributed, but opportunity is not. The tech industry in particular has a long way to go in terms of making itself accessible to people from underrepresented and disadvantaged backgrounds.

According to a recent study by the Kapor Center and Arizona State University, less than 25% of computing jobs are held by underrepresented minorities, even though they make up nearly 40% of the U.S. population. The same study found that one of the biggest barriers to entry is the industry‘s over-reliance on CS degrees from elite universities as a filtering mechanism.

However, demand for software developers continues to far outpace supply, meaning that companies that prioritize pedigree over skills do so at their own peril. The U.S. Bureau of Labor Statistics projects that employment of software developers will grow 22% from 2020 to 2030, adding over 400,000 jobs – many of which will need to be filled by nontraditional candidates.

My advice to aspiring programmers, especially those from non-traditional backgrounds like myself, is to bet on yourself and your ability to create opportunities where none readily exist. Don‘t be discouraged if your resume doesn‘t match the ones you see in job postings. Instead, focus on building up an undeniable portfolio of projects that demonstrates the skills you‘ve cultivated, even if you had to learn them between shifts at a minimum wage job.

Contribute to open source projects, participate in online coding communities, and never stop learning and building. And when you do land those interviews, don‘t let imposter syndrome hold you back. Remember that your unique perspective and life experiences are an asset, not a liability. Lean into your strengths and let your passion for problem solving shine through.

To those on the other side of the hiring table, I implore you to take a chance on candidates who may not fit the traditional Silicon Valley mold. Not only is it the right thing to do from a moral perspective, it‘s also a smart business decision. Studies have repeatedly shown that diverse teams are more innovative, make better decisions, and achieve better financial returns.

With talent, grit, and a lot of hard work, even the most unlikely candidate can break into a successful career in technology. After all, the best programmers are often the ones who have conquered the biggest obstacles and mastered the art of creative problem solving. Coming from nothing and beating the odds, in many ways, was the ideal preparation for excelling in an industry that prizes ingenuity and rewards those who code their own destinies.

Similar Posts