To shed light onto what is for many a mysterious role—Full Stack Developer—we talked to our own Star of the Full Stack, Mike Bifulco. Currently the Director of Technology for Aquent Gymnasium, he was previously a User Experience Lead and Program Manager at Microsoft.
What exactly is a Full Stack Developer?
When people hear the words Full Stack Developer, they typically picture someone in a web development role who can do all the work: from implementing the front end of the website and communicating with web services to actually writing the web services and storage backend themselves. I think it’s important to note there’s a difference between a dictionary definition and reality. While you may find people who can ideally put their fingers in all of those technologies, it’s going to be rare to find someone who is a deep expert in all those areas. Most Full Stack Developers have all those abilities but a shallower understanding than someone who’s a database developer or the like. The reason their understanding isn’t as deep is that it’s easier to keep more up-to-date on technology if you have fewer technologies to stay sharp on. And there are a lot of technologies!
What specific technologies do you work with?
How would you explain what you do to someone at a party?
The most basic description I’ve got is this: there’s a lot that goes into building a website. When you’re looking in your browser, there are experts who build the thing you see: the way the web page comes together, the way things animate and change color when you hover over or click on them. That’s the front end—one half of the Full Stack Developer. Then there are other people who take that and make it communicate with the Cloud. Getting the front end to get information to the Cloud, store all the information there, and do the logic and all the things that come along with it, is the back end—the other half of a Full Stack Developer.
Why do some people say Full Stack Developers don’t exist?
This goes back to the definition. I think when some people say they want a Full Stack Developer, they’re looking for one person who can helicopter into their project and handle everything they need: from deep expertise in design and front end development to the middleware and the logic and even the back end. One person who is going to be an expert in all that just doesn’t exist. What you’re going to get is someone who has a breadth of knowledge and knows what everything is to the point where they’re comfortable speaking the lingo and helping others get started. And that’s a full stack: a person who can coordinate the project, talk the talk, and learn what they need to know to deliver the project, but who doesn’t need to know the ins and outs of let’s say Bootstrap as well as mongoDB.
Who oversees a Full Stack Developer’s work?
Typically, the person who interfaces with the business. In an enterprise scenario that’s usually a business sponsor or an executive who has some idea of what they want built. It may be a product manager or a program manager, depending on where you are. They’ll know the general business need and want someone to come in and turn that need into a technical solution.
Does a Full Stack Developer work with a UX person?
In the most successful scenarios they tend to work very closely together. The UX person is doing the research and coming out with the designs, then handing those over to the full stack person and making sure they have an understanding of what's going on.
(Someone who can ALSO do all of the design stuff is very rare indeed. That's sort of a fuller stack developer/designer. At Microsoft, they were nicknamed "Deviners," a Designer plus a Developer.)
As a product matures, the user experience person will come back and perform tests to make sure that it's actually being built to match the expectations and the behaviors of the people using the software. That's a kind of lifecycle that can repeat itself well, because the software is built in small chunks. As those chunks are maturing, you can see how well they’re performing through user testing.
How did you get your start as a Full Stack Developer?
I went to school for engineering, so I have a degree in computer science. I was learning to write really hardcore code, so a lot of my early experience was in C, C++, Java, etc. But when I graduated, I found that my interests lay heavily in doing the front end stuff. Getting the pretty colors and getting flashy things to come together nicely (and quickly) is more appealing to me than doing the back end stuff. I was really interested in how things are designed as well as color theory, cognitive psychology, etc., so I ended up going back to grad school and got a degree in human-computer interaction. So initially, my work was in the back end side of things, doing more traditional development for applications, then I got my degree and I went full swing to the other side where I did just design and front end development. And now I’m oscillating madly between the two. Quite happily, I might add!
Thanks to whole team at Gymnasium for loaning us Mike’s time and his brain.