I’ve been a software developer for a long time and there is a new term in our industry that I see in far too many job postings is they are looking for a “full-stack” developer. Ever since I heard this term, it has been bothering me and I would wish it would stop being used. This article will explain why.
The Meaning
Let's talk about the meaning of this word. Since Wikipedia does not have a definition, I found this one on Codeup.com.
The full-stack developer would be proficient, if not fluent, in:
- Server, network, and hosting environment
- Relational and nonrelational databases
- How to interact with APIs and the external world
- User interface and user experience
- Quality assurance
- Security concerns throughout the program
- Understanding customer and business needs
While this is a decent description of a full-stack developer, I have a major issue with it.I don’t think most people understand full-stack means “proficient”. I think most employers think that the developer is an expertin all the stacks. If the title was changed to “ProficientFull-Stack Developer” then maybe I would be okay with it, but I don’t like that term either.
Still not sure what a full stack developer is? Here is a detailed article on, What is a Full Stack Developer.
Here is a job posting on LinkedIn that I found from the movie company MGM and let's see if you agree with me. These are the responsibility that they are looking for someone who has just 5 years of experience and a bachelor’s degree with a master’s degree preferred.

Working in this industry for as long as I have, I have done all these things in the past, but even now, I’m not “proficient” with all of them, which I will discuss. I’d like to point out that they are looking for someone to be proficient to expert for these big ones: Analysis and design, create and develop apps that includes testing, scalable, web and mobile and databases and integration. Another one that I am struggling with right now as I write this article is to develop/incorporate stringent security controls.
Wow, this is a lot for 5 years of experience.The posting goes on to say you must have experience in these technologies.

That isn’t all? Here is more…

And of course, they are looking for experience in the media & entertainment industry. I would love to talk to the person that got this job since there are very few software engineers that have all these requirements after just 5 years! The biggest kicker is the salary.

Back in “My Day”
Some of you might say to me that this type of developer does exist, but let's what you say after the following sections. Back, even 20 years ago, I might agree with you that this developer existed since I was one! In the late ’90s and early 2000s being a full-stack developer was possible. For myself, I usually worked at small companies or start-ups.
With only just a few to a handful of developers, we could deliver solutions that included the entire stack. We had to do it all and I was part of some very successful product launches. Heck, I became a patented inventor at one of those companies!
Working in very small companies can’t propel your career faster!
While programming has come a very long way since I started, back in my day, it was easier. The only user experience stacks were mostly Windows (I started in 3.1), MAC (which wasn’t used much for business software and still isn’t), and the web which barely anyone even heard of. When I started writing web sites in 1994, there weren’t even tools to help, so I had to use Windows Notepad! Backend databases were either SQL Server or Oracle. We didn’t even have web services, so we had to use other mechanisms to transport data from server to client or server to server. Security was even easier. In the Windows world, we mostly used Active Directory or create custom security.
So, as you can see, it could be possible to be experienced in all these layers (stacks) and I would guess that most of the older developers out there were.
Today’s World is Much, Much Different
Now, let's contrast the time when I started programming to2020. Maybe because I am older now, but I feel developing applications is much more complicated and, in some cases, a lot harder. When I started, we had only three real user experience stacks, but let's explore since today there are so many choices when using Visual Studio.
Computers
For computers used for personal and business purposes, this is what we have just in the .NET ecosystem: Xamarin, Windows Forms, Windows Presentation Foundation, WPF Browser App, Windows Services, Universal Windows Platform, and the multi-platform native UI coming in Microsoft Maui.
Mobile
When I started, we didn’t even have mobile. Rarely anyone had a mobile phone except for the very rich and they could just call phone numbers. Now we have Android, iOS, Tizen, Windows, and many more. Here is just what I could find in the .NET ecosystem: Multi-Platform with Xamarin, tvOS App, Android App, Android Wear App, iOS App, watchOS App, TV Service Extensions, Raspberry Pi Project, Native-Activity Application (Android), Basic Application (Android, Ant, Gradle), Blank App (iPad) and more.
Windows can also be used on apps such as equipment in warehouses like scanners and more.
Web
The web is so popular now that if it when down for somereason, the entire world would screech to a halt! In the .NET ecosystem, the choices are ASP.Core Web Application (that includes Angular, React.js, and Redux), Blazor App, ASP.NET Web Application, Web Project (Django, Jade, Vue.js, Flask, Bottle, Node.js, and more. For the server-side of the web, we have Web Services, Windows Communication Foundation, Web API, gRPC Service, andSyndication Service Library.
Cloud
When I started developing on servers, we either hosted them in the office or used an Internet Service Provider (ISP). Now we have the “cloud” that drastically changed the way we architect and code solutions. There are so many to list, I will keep to what is available in Visual Studio. They include most everything from the other stacks and Azure Functions (microservices), Worker Service, Service Fabric Application, Azure Could Service, Azure Resource Group, Azure WebJob, Storm Application, Container Application for Kubernetes, Azure Stream Analytics Edge Application, Azure Stream Analytics Edge Application, Azure Stream Analytics Custom Deserializer, Azure Stream Analytics UDF Project, Azure Stream Analytics Application, GraphQL and many more. If you can include everything Azure can do, I would have to write a book just on that alone! Add on top of that Amazon Web Services and the Google Cloud, and the number of choices gets huge!
Odds and Ends
Here are some more available just in Visual Studio: Cocus, Epic Games Launcher, Machine Learning projects, many Office projects that include SharePoint, and more. The list above does not include all the other things we are supposed to be proficient at are unit testing, security (a big one), design, deployment, maintaining servers, databases, and services and the list continues.
If you are using any of these platforms, then I have no idea why you aren’t using Visual Studio? It can do so much, it’s incredible if you ask me!
Still A Full-Stack Developer?
After what has been outlined, do you still feel you are still a full-stack developer? If you went into an interview for the MGM job I mentioned, could you answer off the top of your head, questions related to anything listed in the job posting to their satisfaction with 5+ years of experience? I highly doubt it and if you still feel you can, let's do a live mock interview, with me, and see if you can!
There are many of my friends that I consider much more intelligent than myself and could not get past even the first interview at Google, Amazon Web Services, and even Microsoft. One of those people is me! I have interviewed at Microsoft three times, the last being in 2019 for the .NET Runtime team and even dotNetDave could not get past the first interview!
Remember, anything, in your resume is fair game when it comes to an interviewer asking you questions, so if it’s there, be prepared to be asked, even the most mundane skill. On the other side of the coin, much of what is in job postings is not what they arelooking for. Most all sound like they are looking for what I call the “God Programmer”, who does not exist.
My Worldly Advice
Before I give you my worldly advice, I’ll tell you about an interview I did once.
Interview at E-Commerce Website
Here is a story I’ve never really told too much. Once I interviewed for an e-commerce website here in San Diego, California that sold automobile parts. The first interview with the CTO wentvery well. We got along so well that the interview latest twice as long as it was supposed to. When I left, I felt I nailed the interview and thought they would offer me the position. I was to be the lead developer for the team, a position that I like and do well at. The next day, I got a call from his assistant who told me that they wanted to do a second interview. This is typical, especially if you are going to be managing people.
When his assistant called, he told me that the second interview would be a test. I would be asked to build an e-commerce website, from scratch, in 4 hours! What? I never heard something like this before, especially for a lead software engineer. I can see them doing this for beginners to assess their skills, but not someone at my level. I seriously doubt that anyone could do this in 4 hours. I felt that this an inappropriate request for a senior software engineer but didn’t know if I was being unreasonable.
It just so happened that the user group I use to run had a meeting that night. I told this story to some of the other developer friends I know,and they all agreed with my feeling and said they would not do that for an interview. The next day I told the assistant that I would be passing on the rest of the interview process. I was disappointed for two reasons. The first is that it’s difficult to find a manager that is easy to get along with. The second was that I wanted to get back to leading developers!
A Better Way
In my mind, saying that you are a “professional developer” means you are full-stack. If you want to be a lead developer or architect, you must know how all the stacks work together. That is the most important thing, not that you can sit down and create an e-commerce website from scratch in four hours. Seeing the “big picture” and architecting solutions will take you far in this career.
With that said and my feeling that it is very difficult to be an actual full-stack developer in today’s world, we should also come up with a list of other ways to describe what developers are best at. Here are some examples.
- Backend Developer
Backend developers are responsible for curating the structure of server-side information. Back Side Engineers primarily works with data storage and provides API's to be utilized by frontend engineers and UX designers.
This is what I consider myself these days, even though I can do all stacks.
- Frontend Developer
Frontend software development involves coding the user-facing aspects of a website or software program. As a frontend software developer, your job is to use your skills to address the look, feel, and overall user experience of an application, more so than the speed, efficiency, or resilience of the backend of the application.
- Middleware Developer
A middleware engineer is a computer analyst who connects one computer system to another and ensures that data flows smoothly through both systems. As a middleware engineer, you solve any technical issues that arise between the systems and develop applications using middleware software to enhance business efficiency and insights.
Want to learn more about full stack developer and who a full stack developer is and what are the expectations from a full stack developer? Watch this video to learn more where David, Mahesh, and Andy talks about full stack developer and their role.
Summary
One more thing… whenever I hear “full-stack developer” it signals to me that you know some about the stacks but are not an expert at any of them, how could you be? This would be difficult for even the smartest developers in our world. Typically, teams hire people with expert knowledge of one or just a few of the stacks not all of them, unless it’s a startup. I would never use the words “full-stack” for me or anyone else.
I admit I might be thinking too literal writing this article so I will say I’m okay with “Full-Stack Architect” but then again, architects should already be that. We don’t need to say it. One thing I always told my students at the University of California San Diego is that after you learn the basics of programming, focus on the stack you are most interested in. After that, start moving to the other stacks. Trying to learn everything when you are a beginner can be an uphill climb and so frustrating you might consider another career path… I’ve seen this happen.
Can we just stop using the term “full-stack developer”?
What do you think? If you have anything positive or negative about full-stack developers, please comment below.

uk infocampusPosted Apr 29, 2023, 6:52 AM
Hi! I could have sworn I’ve visited your blog before but after going through many of the articles I realized it’s new to me. Anyhow, I’m certainly delighted I found it and I’ll be book-marking it and checking back often!
Matt EllisPosted Dec 14, 2020, 8:51 AM
Great article! I've been having the exact same thoughts about the mythical "Full Stack" title for some time now. If you think you're "full stack", you are most likely a jack of all trades, master of none. If you insist that you're a master of all, you most likely have a severe case of the Dunning-Kruger effect. There's simply not enough time in the day to be an expert in all tech layers at this point. You could be decent, but you will NOT be a true expert. The only way to gain true expertise is to go deep. By going deep, you must narrow your focus which by default decreases your time spent on other layers of the stack, hence your level of expertise automatically decreases in those areas.
reiPosted Dec 11, 2020, 7:34 PM
This is a humbling article. I liked to think of myself as a full-stack programmer for the past decade, but I guess the fact that, if I had to choose, I'd say I'm a backend dev, goes to show that I'm not. I guess the real difficulty is in concisely expressing your proficiencies (or at least, how proficient you think you are) so that you don't give off the impression that you aren't at all adaptable. Maybe we should just start using radar charts? :D By the way, what's up with OAuth login on this site? For Twitter it asks for literally all permissions including reading private tweets/account info, for Google it says it's disabled because this site hasn't verified.
Sunny RajPosted Dec 3, 2020, 2:19 PM
Full Stack developer is a SuperHero in human world.
Lu SanchezPosted Dec 2, 2020, 6:29 AM
Very good read, thank you for taking the time to write this.
Patrick LapointePosted Dec 2, 2020, 4:50 AM
People say today that you should be language agnostic...meaning that you should be able to implement things in any given language required by the spec of the project. Businesses respond to the explosion of new technologies, languages, Libraries and frameworks in very much the same way as developpers....which is?...the best they can, with respect to their own perspectives, from their own conference room chairs. It's nothing new by the way. When there was 15 or 20 technologies only Businesses still listed 75% of them in the job postings they released. The thing is that they don't have any key individual reason to act any differently. By listing everything, some dude will show at their offices which the team lead will have to pick from the average of many they interviewed. Is that guy fullfilling the job posting's synopsis they published for the job? Of course not...it's the dude that could go enough of the stuff they code with , that masters a certain combination of toolchain items that complements their needs...Stacking giganto amounts of skills one on top of the other also scares away the less secure developpers and has a way of letting only the bravest and well armed developpers show up at the interview. Enterprises use this as a filtering mecanism and have just no real genuine incentive acting any differently...they are not the guy who will be doing the interviews to qualify for the job..so to hell with common sense ....all of it is all wins and no loss for them
sryandellPosted Nov 27, 2020, 2:57 PM
I get this David, I came to this conclusion after having many interview experiences like the one you described. What the employer did not know is that an acquaintance worked in the group. I told him about the write a whole site test and he informed me that is an active open project on their Job board. I told the employer I would like to change the purpose of the 'technical assessment' to a site unrelated to their business. The following day I received an email stating they have decided to go another direction. I was glad I didn't waste my time and energy at the end of the day although I was a great fit for the position. These companies typically aren't developing talent within their organization but would rather "hire-up" instead of train. Full Stack has many stacks and they haver each and every one of them been expanded to the point you have to specialize. After, thinking about it further, do I want a Full Stack doctor\surgeon? Hell no, because it's a smoothly spoken lie to say you are up to date on every front when it's changing all the time and expanding. I don't want to know it all and don't feel like I have to know t all because we are intelligent human beings with the thirst for and capacity to learn what s necessary to do a great job. I've been certified developer in multiple stacks primarily Microsoft, but also many others. It's a classic case of unrealistic expectations and nobody is calling it out.
Yury FedorovPosted Nov 22, 2020, 9:23 PM
The major issue of the “Full Stack Developer” positions in 2020 is the expected quality of the final solution. I see it as an attempt of “optimisation by cost” and/or “concentrating responsibilities”. Whatever motivation drivers are, the result is most likely to be a mediocre quality solution of at least one part of the system (ie. frontend or backend). It is also common that projects conducted by only “Full Stack Developer(s)” tend to take longer and have higher maintenance costs. All these factors at the end mean that “optimisation by cost” in this way turns out to be an illusion, at least on a long run. Example: A company hires a team of “Full Stack Developers” consultants primarily for the reason of “concentrating responsibilities”. The project is to develop a web site to support a business workflow. It takes many years. The UI is oldtime in style and inconsistent among the parts. Backend technological stack in the years is outdated. It becomes more and more costly to test the changes, because there are no automated tests. Here is a tweet with a short funny video on the topic: https://twitter.com/FedorovYury/status/1330527667867807746?ref_src=twsrc%5Etfw
Sourav KayalPosted Nov 22, 2020, 5:14 AM
I agree with the statement. You talked about all the technology and stack but not mentioned Data Strecture and Alg. Now a days company takes 2/3 rounds of DS and Algo round and that itself demand lot of practice and focus. After practicing those it's really really difficult to be "Full stack Developer"
Nitin SontakkePosted Nov 21, 2020, 4:31 AM
Spot on. Nothing more needs to be added. I had a real small one man army software consultancy firm back in 90s writing business applications using Clipper. When i moved from DOS to Windows, I realized that an entire enterprise grade application cannot be written by one person managing learning curve, quality, time to market and after sales support. I realized it it prudent to close the business and just take up an employment with some IT consulting firm. I am pretty certain many like me just picked contractor position more prevalent in western world.
bharath AlwalaPosted Nov 19, 2020, 1:12 AM
yes agreed
Mahesh ChandPosted Nov 18, 2020, 10:43 PM
Interesting topic David. Here is my take on this. Becoming a full stack developer is difficult, simply bc there is so much to learn on front-end, back-end, and middle later. A full stack developer is someone who can built entire application. Unless you've done it all for years, its not possible to become a full stack developer. However, in cloud-world, its much easier to do it all. If an application is broken down into smaller, separable modules or say, you're using microservices architecture, and one developer is responsible for managing, say customers functionality. Its much easier for same developer to work from database, creating stored procedures or queries, build a library/API, and eventually the front-end. But yes, in my experience, developers try to stick to either front-end and back-end. It also make senses because developers have their choice and I know some backend developers may not be good at creating awesome front-ends and vice versa. I know many senior consultants who work as an architect or lead developer or even web developers (title doesn't matter) but they build everything including UI, API, backend, and database.