A full-stack developer is a jack-of-all-trades, working on:
- the front-end, the part the users can see and interact with
- the back-end, which handles things like database interactions, calculations and security
- and the server, which involves managing the database, software (PHP, MySQL, Git, Node), and various processes (Cron, backups, firewall)
Example in Action
Basically, what it means is that when I take on a client, I can do everything myself if need be.
As an example, I was once contracted to fix a simple little issue on a new client’s home page. There was a shopping process, and the starting button wasn’t working. Easy front-end fix. I located the offending HTML, adjusted the bit of Javascript controlling it, applied a little CSS to pretty it up and bam, done.
But once we were past Step 1, it became apparent Step 2 wasn’t looking any better. Warning errors abound, which I recognized as PHP. So, I dove into the back-end, dug through what turned out to be some very old code for a custom shopping cart and unraveled the errors one at a time.
Ultimately, I ended up straightening out their entire checkout process, and doing so I discovered the site was running a very old version of PHP, which presented functional and security problems. So, armed with the client’s credentials, off to the server I went, where I got them on the “latest and greatest” their webhost was bothering to offer, did a few good-habit cleanup chores, and then returned to completing the coding.
And after all that, I shifted back to “front-end mode” to clean up the aesthetics and moving parts so the client could officially reopen their doors.
As Opposed to What?
Web development is a vast field. Most developers– possessing either more sense or less hubris– pick just one of these areas. They are specialists.
This is the age-old debate of “Generalist vs Specialist”:
Generalists will have a solid grasp of everything, so you’ll be able to come to them for just about anything and they’ll be able to help, even if the help is telling you you need to see a specialist.
Specialists will only be useful in specific scenarios, but in those scenarios they will be able to produce far more complex, high quality, and/or accurate results.
Naturally, experience is a confounding factor to this dichotomy, since, over time, a generalist will inevitably overtake lower-level specialists, while specialists will more than likely pick up some skills outside their specialties out of necessity.
So When Should I Hire Full-Stack?
The way I like to boil it down is like this: Full-stack developers are at their best in bottle-necks.
If you’ve only got one position available and the job description is “take care of the website,” or anything vague like that, that’s full-stack.
If you need someone to pull a big project together, overseeing other developers, you need someone who can understand what those developers are doing.
Full Stack
- Versatility: Can do or understand just about anything having to do with your website. Goes where needed.
- Creativity: Broader experience means more tools, information and techniques to diagnose and solve problems.
- Holistic Knowledge: Or “Big Picture Thinking.” As a matter of necessity, a full-stack developer has to know how everything connects and, quite often, what everything does from front to back.
Specialist
- Expertise: More likely to be familiar with cutting edge advancements, best practices and advanced tools in their fields.
- Polish: Can provide a high degree of detail and fine-tuned efficiency that higher-end companies demand.
- Efficiency: Whether it’s maximizing clickthrough rates, cutting load times or eliminating slow processes, a practiced veteran specialist is going to know better than anyone how to get things up to 100%.