How I became a full-stack developer
Started from the front-end now we’re here.
TL;DR Starting as a front-end developer, I studied back-end development on the side until a work opportunity allowed me to demonstrate the skill.
HTML, CSS, Bootstrap, jQuery, and MODX. Those were the technologies I primarily used as a web developer for a small digital marketing firm. I was self-taught, using resources like Codecademy and LinkedIn Learning. Not having a CS or related degree, I knew I had a lot to learn. Nights and weekends were spent at the office. Eventually, my boss gave me a key, and I would sleep there. Within the first two years, I completed nearly 200 LinkedIn Learning courses. After obtaining a strong grasp of front-end tools, I considered how to expand my skillset.
Starting with Python, I started to learn back-end development. To that I added SQL and the command line. This was based on my research as to what was most relevant for my career. Learning was slow. It wasn’t like the front-end, where I used the tools daily on the job. I realized that I wasn’t asking the right questions.
Asking “what tools and technologies are best to learn for the job market” isn’t necessarily the best question. Eventually, I asked, “what tools and technologies are best to learn to advance in the job I have.” Instead of turning to Stack Overflow, I went to the CEO. He told me the best way to add value to the company: get better at jQuery and learn PHP. PHP was our backend and associated with the CMSs we used for clients — Python was not. This instruction fixed my effort upon that which was most relevant and impactful to my work context.
At least six months went by with me studying PHP on the side. Most of my work was still spent on the front-end. But there came a time when our back-end developer quit on short notice. He had been working on a server application for a Fortune 500 subsidiary, which had a deadline only a few weeks out. My boss planned to hire a freelancer to complete the work at double the back-end developer’s pay rate — this was a very important client for such a small business. This is where my study was going to pay off. I told him that I had been studying PHP for months, and that I thought I could handle the project. I asked him to at least give me the weekend to work on it and see what I could accomplish. He agreed.
The goal of this project was to build something that would allow the client, a real estate company, to connect people interested in one of their properties to the specific realtor representing that property. All properties were listed on the client’s web site (built and run by our firm). Each property had a small form where the visitor, if interested, could submit their name, email, and phone number in order for a realtor to reach out with more information. That realtor needed to be notified of the submission, as well as receive the contact info. That’s where the server application came in.
My task was to build a small interface in PHP that a Cron job would trigger every 15 minutes (not the most efficient, but it was a parameter for the project). It would run a query against a MySQL database holding user data to find new user submissions. If a new user was found, the tool would modify the format of the data and send it via APIs for Mandrill and a CRM. Those third party tools would take the data and notify the realtor corresponding to the property of interest by email and text message with corresponding contact information. In addition, the data would be available to each realtor via a previously-built dashboard-based SAAS analytics solution.
Starting that Friday night, I got to work. I spent the weekend racing to build the application. By Monday morning I had something to present to my boss. He helped devise additional test cases to stress-test the app, leading to an additional week of refinements and bug fixes alongside my other front-end work. In the end, we shipped my code. The project was completed ahead of schedule and under budget. With my first deployment of code comprising a LAMP stack to production, I began to function as a full-stack developer. As the only remaining developer on the team with PHP experience, I took on responsibilities across the entire web service stack for the company.
While most of my full-stack experience has since been using a MERN stack (MongoDB, Express, React, and Node.js), I started with LAMP. It may not have been the best stack to learn according to the direction of the job market, but it was best to add value where I was―and it taught me universal best practices along the way.
Interested in the story of how I first became a web developer? Read it here.