Hi, freeCodeCamp!
My name is Avi Mamenko and I’m a web developer. I wasn’t able to say that a few years ago but thanks to freeCodeCamp, I can. I’ve been working as a remote full-stack web developer for about a year now and I’m proud to say that I got my start here. Whether you’ve been a developer for years or today is your first day writing code - trust me, you’re in the right place.
One of my latest projects (The Owen Wilson Wow API) has generated some media buzz lately so Quincy Larson encouraged me to share a bit about my coding journey here with you.
Before getting my start in web development on this platform, I was on a totally different career path.
Background
I studied biochemistry in college. I received my bachelors of science in 2016 with multiple research positions and internships in water-related industries under my belt. I was subsequently employed as a scientist and chemist in the regulatory and utilities industries, respectively. These were “stable,” “safe” jobs that some of my coworkers were doing for upwards of 50 years.
Perhaps they found a sense of fulfillment in their roles. Maybe they were just comfortable. Unfortunately - or perhaps fortunately - I did not feel either of these sentiments. But I was stuck.
I already went through 4 years of college - accruing debt in the process - to get to where I was. At this point, I had multiple years of experience working in the industry. There was no visible out from here.
Maybe more schooling was the answer? I started taking additional mathematics classes at a local college after work to prepare for a chemical engineering masters degree - but was that even what I wanted?
Would I have to work in a job I didn’t like my entire life? Sure, I’d be able to retire and receive a pension after several decades - but what kind of life would that be if I wasn’t happy?
I was used to seeing an acquaintance of mine in my work changing room - we’ll call him Randy - every day. Randy spoke often about retirement and how he was looking forward to it - “Only X months to go.” He had over 30 years in the company and that was the light at the end of the tunnel.
One day Randy didn’t show up for work. He had passed away over the weekend. Retirement would never come. His shirts were still neatly hanging on his locker awaiting the worker that would never return - his own work routine serving as a makeshift tombstone.
This was not the life I had foreseen for myself. Something had to change.
Inspiration
You know Mr. Robot? The show with Rami Malek where he plays a cybersecurity engineer/vigilante hacker? My wife was watching it one day (this was back in 2019) and I thought it was pretty cool - it seemed like coding could do some pretty amazing things.
Next I discovered The Social Network (2010) with Jesse Eisenberg (amazing soundtrack by Trent Reznor and Atticus Ross btw - great for coding.) The power of movies is immense, I couldn’t believe what I was watching.
My chemical engineering plans went out the window. I wanted to code!
I started my coding journey by mindlessly firing off an application to NYU Tandon’s School of Engineering for a masters degree in computer science (a degree I had no idea how I would pay for.)
I was quickly rejected. Not a good start to my coding journey.
Next I researched some coding bootcamps in the area. They were all pretty expensive (tens of thousands of dollars) and their schedules - even the part-time classes designed for such a thing - often conflicted with my work hours (which often ran long and included occasional overnight work.)
Luckily, I stumbled upon freeCodeCamp. Here was a free platform that I could use to learn how to code and do it on my own time - wherever I wanted! My prayers had been answered.
I admittedly took my time with each certification since I wanted to soak in as much as possible - I started off with the Responsive Web Design Certification, which took me a couple of weeks, and followed up with the JavaScript Algorithms and Data Structures Certification, which took a month or two. The project-based learning was probably where I retained the most knowledge.
Even though I was exhausted from work and the topics seemed overwhelming at first, I always looked forward to learning on freeCodeCamp. I finally had a way out of my dead-end career and this was it. I finally felt passionate about something - I had a drive to succeed!
The Front End Libraries Certification was the point where I started branching out to YouTube for additional content and to see what others had built. I was really proud of the drum machine and the iOS-style calculator that I created. I spent way more time than I would like to admit on the pomodoro clock - I started seeing code in my dreams!
I skimmed the Data Visualization Certification but decided it was time for me to start coding my own proper projects for my portfolio. I did not start the Back End Development and APIs Certification until I had needed to integrate a back end for a future project (at which point I completed the certification twice.)
Projects
Projects are really important for the job search (especially for self-taught developers such as myself.) Most likely, your projects are going to be the first thing that employers see and evaluate when they see your resume. It doesn’t necessarily matter how many projects you have on your resume, but rather how much work you put into them.
Depth, rather than breadth, is the key here.
If you can explain what your project does and how it works to both a 10-year-old and a tech-savvy colleague, you’re in good shape. The actual content of the project doesn’t necessarily matter so much as long as it looks good and functions well (and correctly.)
Ideas for projects can honestly come from anywhere. I started building my first project based on my wife’s small business - she owns a local facial bar. I started off with a basic front end (built with React - I learned Hooks from YouTube) that I planned to eventually tie-in with Square’s appointments API. Unfortunately, what I did not know at the time was Square hadn’t yet exposed their appointments API to the public (it has now.)
I had two options at this point - either bail on the project altogether or build out an entire back end and database for appointments (not to mention reflect the associated data on the front end.) I went with the latter despite not even knowing how a CRUD application was supposed to work - but that’s part of the fun. I learned to use MongoDB, Mongoose, GraphQL, and a ton of other skills (the Twilio API is fun, I used that for automated text messages.)
Over the course of the next year, I slowly added more and more layers to the appointment booking application until it was finally completed in mid-late 2020. You can view a demo and an explanation of my very first big project on my YouTube channel here.
I found that employers were more likely to watch a video of an app than to carefully scrutinize the app and its associated code. Certainly something to consider if you’re thinking of ways to present your work.
Over the course of the next several months, I built out a few more projects which can be seen on my portfolio website and began applying for jobs. A quick note - if you don’t necessarily have an eye for design, nobody’s going to penalize you for using a template for your portfolio website. Check out these Gatsby portfolio starters for ideas (my portfolio is using one.)
The Job Search
When I applied for jobs, I had four projects on my resume. I sent out my first job application in late January 2021 and sent out ~350 applications in total, of which ~130 were formal rejections. I went through roughly 20 interviews, some of which were multi-round interviews.
I finally received an offer from the company I currently work for in June 2021. I work as a full stack web developer in a remote capacity. And it was all thanks to freeCodeCamp.
I’ve seen some other posts here that ask whether they should learn what seems like every single language and framework there is before they start applying for jobs.
The answer is no.
My learned tech stack was MERN and on a day-to-day basis, I work with Perl, SQL, LESS, JavaScript, and jQuery on a legacy codebase as well as TypeScript, Node.js, Express, and GraphQL on a replatform effort. I also occasionally work with React Native! I’ve also worked a bit with Docker, Kubernetes, and other infrastructure-related tools on the replatform.
I had never worked with Perl before my current job nor had I touched a line of React Native code before. A lot of these skills were picked up on the job.
Conclusion
It’s important to keep learning - be it on freeCodeCamp, StackOverflow, YouTube, peer-to-peer, or anywhere else you might find useful resources.
Let me make it clear, I love what I do.
The way I continue learning is by building projects (I mentioned earlier that project-based learning was the best way that I retained information.) A few of my latest projects include a bot that automates Billboard song mashups, another bot that automatically Tweets fake movie remake casting announcements (complete with doppelgangers of the original actors), and a Wordle-style Six Degrees of Kevin Bacon game (with over a thousand players a day!)
And my latest and shockingly most popular project to date - The Owen Wilson Wow API!
If you’re still looking for that first job and you’re preparing - whether it be through freeCodeCamp, YouTube, StackOverflow, LeetCode, project-building, reading documentation, reading textbooks, reading anything - it’s important to know that you can do this, you can succeed - as others before you have done - and you are not alone.
The freeCodeCamp community is vast and ever-expanding. You have our support.
Thanks again to Quincy Larson for acknowledging my work and encouraging me to write this.
Feel free to check out my GitHub page, YouTube channel, and connect with me on LinkedIn!