DEV Community

Cover image for The Full Stack Illusion
Derek Shanks
Derek Shanks

Posted on

The Full Stack Illusion

Coming off yet another frustrating Full Stack interview, I wanted to engage the Dev community. Possibly find other developer's drowning in the same ocean I am. Suggestions, idea's, conversation and the all popular rant.

If there are HR / tech interviewers reading this. Hopefully it might open your line of questioning to ensure you achieve the best talents in all layers of the full stack concept.

After today's interview, this illusion of full stack is destructive. The question's, always the same. All algorithmic, all data structure, always obscure disconnected 'error' examples that are without context. Don't get me wrong, it's important to understand these concepts.

There is never any questioning about browser compatibility, no positioning or box model trip ups, no UI / UX related questions. CSS is absolutely discounted. No creative focus whatsoever, my resume shows that I have ThreeJS / WebGL and other canvas based technologies. No camera position, texture, layout or rendering issues. No X, Y, Z position related questions. Areas I would excel and ensure strong candidacy for a potential role with the company. Instead I am left with a huge sense of inadequacy because the interview focused solely on middle and back end only.

Full stack is a broad list of skill sets. It is a utility that extraordinary back end developers dared to venture into front end world. Talented, creative front end developers dared to reach into the back end. With libraries like React and Vue. There is now an enormous inert boulder thrown into the fray that is the intermediate layer.

With most jack-jill-or-jackill-of all trades, you specialize more or less in some areas. It's hard to be an expert in all areas of each stack. My area of expertise, all visual. Just like there are full stack devs out there who would run rings around me on the algorithmic questions. But will swear and rage obliterate their keyboard because there is a rogue 'div' not behaving as much as I will Nine Inch Nails my playlist because my ID's aren't matching what my database records should produce.

I am the dev you come to for a really complex multi state animated navigation system, GSAP is getting out of control. No worries, I'll build a library of re-usable animation functions to keep the bloat down. Need a custom grid system to house images, videos with comments revealing on hover. Absolutely. I gotcha. You want to experiment beyond the stars with anything visual. I am on it. I love visual development. It's why I list myself as UI / UX developer. I also love building fully involved applications.

My last ten interviews, not one of them had any relevant questioning on visual creative focus and not even a mention of animation development or creative ideation of possibilities.

I am writing this from the vantage point of a UI developer, I am sure back end focused developers have points to share that I have missed.

Please, don't say there is a framework for that. There is a point of being experts in a field that exceed what frameworks deliver. Frameworks are nice and efficient to have, but will never solve everything a project needs.

I look forward to hearing the thoughts and experiences of others. I am ranting at this point. Full Stop! I do advertise Dev on my resume. Ha!

Top comments (26)

Collapse
 
djnitehawk profile image
Dĵ ΝιΓΞΗΛψΚ

totally agree with you.
I can do full stack when it comes to my own hobby projects or whatever but I would never accept a job that requires me to be a full stack dev. my moto is do one (or a few related) things and do them right. rather than be a jack of all trades and a master of none kinda deal.
in my current gig, I'm the backend guy. Im the person in charge of everything behind the REST api. I've decided to specialize in .net core and mongodb sometime back and I feel like I've mastered backend pretty nicely.
imho doing fronent/js requires a totally different frame of mind and it's too easy to do shitty app design/architecture when one person has too much on their plate with multiple different technologies.
I admit there are a few out there who do full stack right and I respect their abilities. but the industry really need to understand the point you're making in this article.

Collapse
 
dbshanks profile image
Derek Shanks

I have nothing but love and appreciation for back end talent. It's not easy stuff back there. You are right, front end and back end are two very different mind sets. It is what works. Obviously you have a passion for back end. It'll prove its weight many times over. My passion is front end. I love making the visual experience worthy of the data a back end dev worked hard to ensure it displayed correctly in the first place.

There are a few full stacks I admire. Even then, I couldn't see them wrangling a museum archive of data and creating an engaging UI. An intense project like that would have to be split.

I would never want to touch the programming related to query'ing data for say an art museum. I have at least a dozen idea's that would make your data work proudly engaging though. It's time Mona Lisa smiles.

Thank you for your thoughts. I hope others will relate to some of our experiences.

Collapse
 
xr0master profile image
Sergey Khomushin

I fully support your point of view.

Collapse
 
anwar_nairi profile image
Anwar

100% with you on this one too.

I think today if you would sat with people and ask them what is full stack for them, you would never get the same answer.

For some, it would be a kind of developer that can do anything or can adapt to anything.

For some others, it's would be someone that can handle "every part of a web project to put it on production" (db, git, front, back, sys admin).

Or it could simply be the mighty db/front/back trio.

I really have nothing against managers, but when it comes to hiring for the correct profile, they get loss in this overwhelming mountain of CS concepts and loose the real, bare interest in pure competence.

For me, nobody is better hiring a dev profile than a dev. The manager have to rely closely on his current team, and do interview rotation with some trustful developers to get the true feedback of "do this person will technically fit the team". You can't ask a minister to hire your cooking chef, you have to delegate this responsibilty to the closest person in term of skill.

There is a lesson to extract from your experience, and so thank you for sharing it with the world, because I am afraid tech companies loose this point in favor of sellable profile with non-sense skills like knowing sort algorithm and the regular and boring questions.

To tech HR: challenge your candidate experience like this man on his ThreeJS projects, and challenge the related architecture, think process, and things he learnt! Everybody can learn and adapt, and everybody can bring something new and rich to your company if you dare to search for this in candidates!

Collapse
 
dbshanks profile image
Derek Shanks

Thank you! Your thoughts and assessment of my article is awesome.

I am very happy to see that many are understanding my thoughts on the strengths and weaknesses within the full stack role.

As a side note. There are a lot of really bad visual UI projects out there, accessibility problems. I think the full stack interview should be placing more emphasis on visual skill sets and balancing that with the strengths of other team members who may be better at back end related tasks.

Collapse
 
xr0master profile image
Sergey Khomushin

I recommend that you stop trying to keep up with this dreary new trend of calling everyone a full-stack developer. This is a new concept for greedy company owners who want to take two positions with one person and save money.

A full-stack developer is like a family doctor, he seems to know a lot, but nothing specific. But when your liver hurts, you go to the liver doctor, not the family doctor, right?

So, if you like doing front-end stuff and you are a real pro at that, then you can just start looking for a senior/advanced frontend developer job. You can also indicate that you are not bad at the backend, which will be a good bonus, but you should not emphasize this. Many companies with a serious front-end project will gladly hire you. IMO.

Collapse
 
khangnd profile image
Khang

Sorry to hear about the poor experience you have been having in the interviews. Here's a story of mine to share with you that might ease your mind a little bit:

I officially started my career at Bosch and have been working there for 1.5 years, so I still consider myself a fresher/junior dev. But since the day I joined, I have been working independently with a team of all foreigners (Austrians, Germans, and Indians), communicate only with my second language, which is English, and even without much guidance and mentoring from the seniors, since it is an organizational thing/management problem, everybody has to take care of the topics they are assigned. I didn't hate it, but in contrast, I appreciated it due to the fact that I could advance both in mind and skills much faster than most of my colleagues.

But one day, my Product Owner (Austrian) wanted to expand the team and employ another guy like me, so he discussed it with my manager (Vietnamese). Then my manager approached me and asked for the skillsets required for handling the topics as I am doing, and here comes the problem. After providing him the skill list (of course, the skill list is practical, no fancy sh*t, just enough to handle my topics), he developed a recruitment plan with HR and organize the interviews for the other seniors who have no direct connection to my work or topics. And so far, 2 candidates have been rejected, one of whom has 2+ years of exp, for the reasons they're not qualified from the tech interviewing round.

Of course, I'm not criticizing them since I'm just a junior dev, and there's rarely a case where one could get involved in the interviewing process, but since apparently, I'm the only one who knows best about my work, they should have at least share with me the content they would interview, so that I may have feedback or improvement. Instead, I highly suspect they went way above the skill list I provided for a perfect candidate and rejected them. So from my point of view, this could also be one of the many reasons.

Collapse
 
dbshanks profile image
Derek Shanks

Thank you for sharing such an insightful story into your experience. I can't imagine juggling English amidst many other whom I am sure is their second language as well. English is not an easy language to speak and understand. Multiple team members trying to communicate would surely be challenging. Your English is fantastic. Bravo!!

I feel your pain, I do seem to think that HR teams really lose focus on the right skills. The interview I had today, I was recruited for the interview. Someone dropped the ball. I highly doubt the company would hire me. It was a bad interview. It wasn't matched to my skill sets at all.

I know a lot of companies don't like asking people to work for free. I wish companies would go with a simple project. Simple concept. 48 hour turn around. Discuss the code base decisions. I feel that you would get a better view of a developer skill set in that manner and have a visual proof of example. If someone cheated and copied a YouTube video. It would be evident very quickly.

All the best, hope you get the team mate you deserve!!

Collapse
 
raullarosa_ profile image
La Rosa ✈️

Your simple project with 48hour turn-around is exactly how i find the junior developers for my teams lately. I work on the projects i hire for and i need candidates that can hit the ground running.

After a 15-30min video screening, i present the mini project, normally a subset of an application we currently work on. This way i also dont have to go ahead and solve it since it has already been done and reviewed by the team. Then, when the candidate comes back 48hours later, the team can see how the candidate (hopefully) solved it, we will have them run through their solution and then throw a new quick challenge that builds on it so we can see them live code. This whole process has been the most efficient not only for me to understand if they'll be a good fit technically, but also how they talk through problems and bounce ideas. Communication is key in a software team. Even when a candidate doesn't do as great, they walk away knowing what they have to work on IF this is the type of job they want to pursue. I've even had some people tell me after the project is sent that "this isn't the type of work they're best at or what they're looking for" so it saves us both time in the end.

Thread Thread
 
dbshanks profile image
Derek Shanks

That’s an interview process that I would love to work through. Yeah, it’s work on free time. However, coding doesn’t cost anything except time. As a developer I like new challenges and working through new ideas. Doing challenges like this also keep my skill sets sharp I don’t see it as free work.

As well, no one knows the code base better than the person who coded it. You know why you did certain things. You know how the arrays and functions connect. You’re looking at a solved challenge. Now, when you ask me a question about why I chose a certain method. I know the answer.

I love the idea of live coding on that same project I worked on. I know where everything is. It’s great that you present it as a team communication challenge.

Thank you for being a good interview process.

Collapse
 
khangnd profile image
Khang

Yep, that's exactly how the hiring should be done. Thank you and I wish you the best in your job hunting.

Collapse
 
panditapan profile image
Pandita

I honestly don't really like the term full-stack or front-end or back-end. I feel like it's limiting and it puts developers in teeny tiny boxes and in the end it only fomented in-fighting and issues between developers (the typical front-end is easier than back-end twitter fights).

We're all software engineers regardless of where our focus is rawr!

There's also the problem that some recruiters... don't really understand everything. I deal with desktop applications in WPF/UWP and while I did do a lot of things everywhere (requirements, design, ui, middle?, back, api, documentation, testing, dbs, etc.), I was considered the strongest in the UI and design side of the app. On a call with a recruiter, they told me I wasn't strong in front-end because I didn't know React. Which is fine I guess since I didn't come from a web dev background. I did find it a bit funny but, it's the fact that to be a front-end dev you MUST BE REACT GODDESS was kinda... eh.

I'm an XAML GODDESS RESPECT ME >:V is learning React anyway

Either way, I found another job where my XAML knowledge is more appreciated even though I continue to swim in all areas of the application.
/rant

But well, my advice is, if you haven't gotten any of those jobs it's because something really good is about to knock on your door! So don't lose hope, I'm rooting for you and I know that you'll soon find that dream job! c:

Collapse
 
dbshanks profile image
Derek Shanks

I feel your pain there. React is a great tool. However, it added a lot of complexity to the front end process.

A lot of visual developers who added the additional layers of full stack are getting blindsided with heavy handed software related questions.

Thank you for your cheering! I am hopeful that something will come soon. I am revamping my portfolio to be a lot more focused on visual creativity and less focus on my full stack.

Collapse
 
panditapan profile image
Pandita

"I feel your pain there. React is a great tool. However, it added a lot of complexity to the front end process."

Definitely! I found it similar to something I was already doing in WPF but if I was a complete newb (or 12y?) I'd be more lost than I already am XD

Though, if you ever feel like you need a cheerleader I'm here :D I definitely know you can do it and I'm sure your portfolio change will bear fruits! c:

Collapse
 
ingosteinke profile image
Ingo Steinke

Once a friend advised me not to call myself a full-stack developer, otherwise, all I would get was back-end job offers. Which is not far from the truth. So I wrote front-end web developer, and job offers changed to React and Angular JavaScript developer. :-)

These days, there seems to be a strong trend towards a back-end development mindset, focusing on algorithms and programming rather than web design, not to talk about usability, accessibility, page speed, and search engine optimization.

To me, full-stack is not only about front-end and back-end, but also DevOps and DevUX, but that is still only the technology stack involved. A good web developer, in my opinion, should keep and open mind and consider real world users and question requirements and tech trends that might seem obvious in the first place.

Thanks for your article, I hope you will develop a lot of good projects that are both fun and useful!

Collapse
 
dbshanks profile image
Derek Shanks

I am happy I’ve written this article along with all of the amazing feedback I’ve received.

I think your friend is very wise. Like you, I am going to change my presence to Creative Developer and lessen my full stack presence.

Developers I follow and admire have done the same thing. From the feedback I have gotten here including yourself. It’s the right move.

Cheers. All the best!

Collapse
 
arnelenero profile image
Arnel Enero

Let's face it—not all recruiters/employers ask the right questions in interviews. That's just the sad reality. The same way there is variance in proficiency/skills among us developers, there are interviewers that do a great job in asking the right questions to effectively select the right candidate, and then there are the other kind. 😂

So if you feel the lineup of questions didn't assess your qualifications well, then that job is probably not the right fit for you. What they're looking for is what they think they're looking for. It's their loss, at least partly.

Collapse
 
dbshanks profile image
Derek Shanks

The dev community has come forward with amazing analysis of the interview process.

Thank you for your kind and accurate assessment. After all of the great feedback. I am going back up to my front end skill sets and less emphasis on my full stack.

Collapse
 
afrowave profile image
Jimmy Gitonga

Another 100% agreement.

From what I have seen, the recruiters are stuck at some definition of full stack that is probably too narrow compared to what full stack is today. Once the GAFA companies set the recruiting trend, the industry has never moved on at the speed of the Internet.

This, in my view, is what "full stack" has become. Any of these main three areas are broad and deep. A modern dev can specialise in any or all(?!) and have an excellent career, spending many years in the area of choice.

Front-end:
-> UI -> Layout Design + HTML + CSS + SVG
-> UX -> CSS Animation + GSAP + WebGL
-> JS -> ES(Vanilla) + Component(React/Vue) + WebAssembly

This is how this Front-end Web journey looks like -> github.com/kamranahmedse/developer...

Back-end:
-> API -> REST + GrapQL
-> Business logic -> Code(programming language of Choice) + Algorithms + Data Structures -> Data Science + Machine Learning and AI.
-> Database -> SQL(No + Relational) + Cache + Scaling(Sharding + Replication)

DevOos:
-> Testing -> Continuous Integration + QA + Security
-> Deployment - Bare Metal/VM + Containers(Docker, Podman, ) + Orchestration(Ansible, Terraform, Kubernetes), + Scripting(Go, Python, NodeJS, Java, etc)
-> Cloud Provisioning-> CloudOS(Azure/AWS/GCD, DO, etc) + Static Storage(CDN, S3, etc)

When we say "full stack", we understand it as the Web Stack. We have not even talked of device specific stacks: Desktop, Mobile, IoT or VR.

Today, many of these areas blend into each other and that is what makes development on the Web stack frustrating for devs, as they chase tools and frameworks and for recruiters, as they chase the devs.

Collapse
 
dbshanks profile image
Derek Shanks

Amen! That’s awesome. I love the break down you demonstrated. It’s very accurate. Indeed, any one of those layers can happily employ someone.

Personally my low level knowledge every UI / UX including device types and accessibility factors. You know those HTML ARIA roles? Haha! I added WebGL and animation.

My high level is diverse. In the past year, I’ve worked with PHP, Python, Ruby and C#.

I lived in documentation during that period because my time in any of those language stacks was short enough that you could ask me a question now and I would falter. Yet, all those projects work and are deployed.

It be nice if interviewers could go with questions like - ‘If I ask you to build a project in Phoenix Elixir, what would your workflow look like?’

I can understand specifics in terms of like a company like SpaceX - but for web applications it doesn’t work.

In the past week, I’ve been working with AlpineJS - similar to VueJS templating. While React is my comfort zone. Showing me any React code is out of context of where my thought process is currently at.

Thank you again for such an awesome breakdown and support of the conversation. You rock!!

 
dbshanks profile image
Derek Shanks

You hit it right on. It is where I freeze. The interviewer said ‘what is wrong with this code?’

I don’t process code without context. If there is an error. I want to go higher up in my codebase to see what I missed either syntactically, maybe I am out of scope, used a wrong method on an array. Or just dumb assed a spelling error.

White board is great during collaborative idea rounds when the weight is only trying to progress not whether you get a job or not.

I’m a bit of a gamer. I look at my interviewers as boss battles. Haha!

Thank you! May the white board interviews snuff out gloriously.

Collapse
 
phantas0s profile image
Matthieu Cneude

Interview questions are a subset of every possible question about every possible knowledge a software developer can have.

In short: it's random.

Collapse
 
dbshanks profile image
Derek Shanks

There is still a whole interview process in which I strongly advocate my visual skills along with tools and libraries I use. It would be easy for the interviewer to pivot the conversation to discuss my visual strengths that counter balance my weakness with some algorithmic based questions.

In my last 10 interviews, this has not happened. Very little importance is being focused on front end visual development.
It’s a rough issue. It should be fixed to be more inclusive of a developers full technical abilities in the full stack realm.

Example, I am not the dev you would put on a financial banking app backend. I am the dev that would develop engaging user interfaces or talk about accessibility features to ensure visual impaired can use the app.

Collapse
 
phantas0s profile image
Matthieu Cneude

I understand how you feel... I'm not a frontend developer but I've a set of skills and opinions which are not the usual ones, and because of that I've a lot of difficulties in interviews. I've a good resume and everybody is happy about my work, but nobody cares.

The problem is (to me): companies don't even know what they want or why they have these interview processes. They're just copying everybody else who copy the Google and Twitter of this world.

The only solution I see and I try to develop: make friends and skip the interviews.

Collapse
 
dbshanks profile image
Derek Shanks

Thanks for your input, the conversation I am trying to discuss is that most people have a heavier influence on where their coding strengths are. Even in the full stack realm.

I do know all the backend. It’s just not as strong as my frontend. As well, because of React and other frameworks. Lines of question don’t change for front end either, at least not in any of my interviews. Still no focus on visual development.

From other comments here. I am not alone in that experience. The interview process should be balanced. Potential candidates deserve a win during these interview questions in areas they are most confident.

Collapse
 
gerifaltus profile image
Neftali Castellanos

Hola, me inscribí a este sitio solo para poder comentar.

He leído los comentarios que otros han escrito y tus respuestas, y puedo decir que estas tocando las puertas equivocadas o te estas vendiendo mal para los puestos de trabajo. De acuerdo a lo que indicas acerca de tu experiencia te veo como un FrontEnd developer con experiencia o especializado en interfaces de usuario (UX), en mi caso soy backend developer en java, con conocimientos y habilidades para hacer FrontEnd (sin llegar a diseñar interfaces, UX).

Creo que debes enfocarte en apuntar tus esfuerzos en aplicar para puestos de trabajo donde eres mejor, aprender a leer entre líneas los anuncios de los puestos de trabajo, ahí te puedes dar cuenta que es lo que están buscando. También en las entrevistas preguntar dudas que tengas acerca del puesto de trabajo pera saber si es lo que estás buscando.

En cuanto a los RH, muchas veces los que entrevistan no tienen los conocimientos técnicos y pasan por alto que los que deben dar el visto bueno es otra persona con conocimientos técnicos del área, como dice la frase, para un lobo un coyote.

Animo.
Salidos.