During the recent Web Application #DevDiscuss, the discussion of Full-Stack developers came up. From there, the discussion delved into the best ways to describe developers and their focus.
A lot of people felt they had an understanding of the entire stack, but were not extensively skilled across all of it. This led to the coining of the phrase, "Jack of the Stack". Eventually, the conversation turned to describing other developer types. The common concept of the "T" engineer was one of the first to be thrown out.
The conversation was all downhill after that as a group of 4 of us tried to use the alphabet to describe different developers. Here is what Max, Laurie, James, and I came up with!
A - Academic
The developer who insists on CS purity over all else.
B - Bootstrap'er
The developer who insists all sites should just use Bootstrap for the front-end.
C - C Dev
The developer who doesn't want to learn anything else because C is where it all began for them.
D - Dev.to
The developer who posts constantly on DEV.
E - Everything
The developer that has general knowledge in a large number of areas, but also has a few areas where they have more depth of knowledge. This is a more realistic full stack developer definition.
F - F* It
The developer that writes their CSS inline, because F everything!
G - GIFs
The developer that always has a GIF with their PR!
H - Hater
The developer that only talks about how much they hate other programming languages.
I - I can do it all!
The developer ninja who wants to do everything themselves. The mythical 10x'er who probably causes more problems than they solve.
J - Javascript'er
The developer that thinks absolutely everything should be in JavaScript, from the databases to the front-end. Even if it means replacing everything!
K - Kick the Can
The developer that always insist on kicking the can down the road and solving the issue in a later PR.
L - Learner
The developer that rightly knows everything is about learning and is constantly trying to learn everything they can about all the things.
M - Mac
The developer that will not work on anything besides a Mac and they don’t understand why anyone uses Windows. Don’t get them started on Linux.
N - Narrow Minded
The developer with a singular focus on a particular stack to the point of recklessness. They want nothing to do with anything new.
O - O(n)
The developer who is obsessed with all things O(n).
P - Perfection!
The developer that writes the cleanest code, complete with descriptive names, comments, and a fantastic README.
Q - Quirky
The developer that mostly circles around the same tech with one disturbing aberration.
R - Recursion. Recursion. Recursion...
The developer that thinks of the recursive solution to everything.
S - Sassy
The developer that believes EVERYTHING needs a mixin!
T - Topic Expert
The developer that has a lot of general knowledge, but is also an expert on one specific topic.
U - Unicorn
The master full-stack developer, which likely doesn't exist.
V - View Challenged
The developer who decides to throw all the code inline in the view so the HTML is a jumbled mess no one can read.
W - What next?!
The developer that is constantly looking to work with the next shiny, new technology.
X - X marks the spot
The developer who nitpicks the incorrect semantics of every single PR, thinking it must be eXactly on the mark before being merged.
Y - Y isn’t this Accessible?
The developer focused on accessibility. They're so important they should be earlier in the alphabet, and are so essential to each word, you almost think it should be a vowel.
Z - Zzzzzz 😴
The developer that has an obsession with an obscure language that no one knows about, yet they want everyone to learn. It is enough to put you to sleep.
;
The developer who can’t take their mind off of programming, and at the end of the day they forget lists, like sentences, don’t end in semicolons;
SO, which developer can you relate to?! If you can relate to multiple of them, you might just be a "Jack of the Stack!"
BIG Shoutout to my co-authors who helped come up with all these different devs! HIGHLY recommend giving each of them a follow! 🤗
Top comments (34)
What's beyond full-stack? Because I'm simultaneously responsible for front-end, back-end, devops, and the damned office printers.
I think I'd end up doing this too if I didn't take so much pleasure in saying to people "sorry, you'll need to speak to IT Support for that". I've lost count how many times someone has come to me and said "my printers broken" and go on, what feels like, an hour long monologue before I lay that gem of a line on them.
Yes..... I do let them waste their breath telling me all about it first :)
Wish I could do that. Sadly, I am IT support. I split my days between writing code and jiggling loose monitor cables whenever someone's screen goes black.
I know right. In small businesses and startups, you have to do everything. Even get cookies and coffee ready for meetings.
The corporate devs have it easy, they can concentrate on only one thing... actually sounds a bit boring :D
Are you really sure that you actually exist? You might want to try pinching yourself. ;)
Even replacing printer inks 😄
Been there, done that, have the shrink bills to prove it 😂!
I class myself as a full-stack developer as, with reference to the above Unicorn comic strip, I do indeed "make the entire app" where I currently work. Literally everything, from back to front and front to back. That said, I certainly don't consider I'm a Unicorn "master" and Jack of the Stack may well be a fair assessment.
My letters change throughout the day ;P
(But seriously, I keep hearing about how full stack devs "don't exist" and can never "truly master" the full stack but I'm still waiting to meet one of these mythical single-enders that have managed to "truly master" their half)
What's even more mythical? The full stack designer/developer. Everything from Information Architecture to User Experience to Visual Design to HTML/CSS to Javascript to CMS integration...
Agreed. You're either a designer who can do some coding, or a coder who has a sense of design. Artist or technician, never both.
I really think it's 2 different types of brains.
I have to say I strongly disagree with you.
I started out as a designer, but over the 10 years as a professional web developer I've moved more and more to programming after finally started learning javascript about 5 years ago. I know a lot about print design, web design, frontend, backend, devops etc. When I work with specialists (i.e. people that stick to a single field), I'm usually not better than they are at what they do, but I'm often not that far behind.
How I got to this point? Time and environment. I started making websites in the mid 90's when I was about 10. My parents are in creative fields (architecture and interior design) and I started out doing a lot of visual design with computers as a teen. I started a web agency at age 22, and have since worked professionally in all fields: Project management, design, frontend/backend, devops, information architecture, you name it. Spending 60+ hour work weeks over a couple of years adds up to a lot of time and skills.
I'm also not alone, I've stumbled (albeit not often) across other people with similar skills. So yes, I actually consider myself a pretty good full-stack developer, and I'm confident as one too. While I do consider my strong suit to be in the visual field more so than programming, I can do much more than "some coding".
Sorry Adam, I should have been clearer.
My point is, IMHO, you need to be a little of both in this business.
If you're a designer, you need to be able to code and vice versa.
Of course designers can write good code, and coders can create good looking products.
However, I think it's difficult to have equally good skills in all areas because of the time it takes to develop and hone those skills.
I also suspect people are wired differently, and some things come easier than others.
Good on you for working on building up a variety of skills! Very often having a broad understanding of many things serves you well.
Thanks! Yes it does, most of the time. The downside is that I have trouble not wanting to have a say in parts of projects that are not necessarily within my area of responsibility. It's so much easier sometime to not know a lot about an area, because then you always trust those that you think are experts. The upside is that I'm generally wanted in projects due to my experience.
Sure, 100% equal skills is rare, but I don't really see that how it's relevant. You could apply the same argument to a developer who knows two different coding paradigms or two different languages. He/she will most likely be better than one than the other, but you wouldn't necessarily claim that it's impossible to be good at both those languages just because of that. Or, you could, but it wouldn't really mean much.
I do however think that there are traits that are more useful as a developer or as a designer. And I suppose developers are more prone to carry the traits that are better for programming and vice versa.
I think we as humans want to categorise things because it makes life easier, but life is seldom b/w. There's a lot of hues in-between.
UPDATE: Anyway, I think this discussion is excessive, most days I would agree with your original statement, because I also think most people are better than one than the other. I got little carried away by all the "anti-unicorn"-iness in this thread :)
Isn't every web developer with 15+ years of experience that kind of unicorn?
Heck, I studied computer graphics 23 years ago, got my first job as a web designer / 3d artist / web developer. Started with HTML slicing, then DHTML (ahah), at the same time I was working on personal PHP (2.0!) projects while doing ASP, Perl and other obscure Windows CGI stuff. Then migrated the Win NT internet connection sharing server to Linux because it would constantly crash (yes, you had to do auto dial-in and NAT manually back in the day) and stared using PHP3 to develop the new business websites. I learned CSS when Firebird (yes, before it got renamed to Firefox, that was v0.6 I think) around 2003, taught it to colleagues a few years later, worked on bespoke PHP frameworks, participated in design studios, orchestrating UX, UI and front-end dev, created style guides and design patterns, the list goes on.
Today I mostly do front-end because I think that's the most exciting part but I could still do all the rest, from design to Apache setup with front and back end in between.
That artist/designer/technician split is wrong imho. Web design is, well, design. It's not a painting or art for the sake of it. You need to be the kind of designer that is in fact a technician. Or, I like to use the term craftsman. There's no point creating an interface that is completely useless, or a tool that is so technically complex that it is also useless (on top of being ugly).
I hear you! I've been at this for a long time as well, since the days a hyperlink was leading technology. :-O
I followed a similar path, and agree the interesting stuff is on the front end these days and programming really is a craft.
You do need to code and have a sense of design. My point was you can do both and be good at it, but your probably a little better at one than the other by nature.
BTW, I love the idea that old programmers never die, they just turn into Unicorns. ;-)
That's an interesting assertion. So what about the many programmers who are artists (painters, musicians, poets, etc.)?
They are the true unicorns! :)
I mean designers (look of the product) vs coders (make it run).
Generally I find people are either better designers than coders, or vice versa.
There is overlap of course! Designers can code well and coders can make good looking products.
However, finding someone who is equally good at both is rare.
Personally, I enjoy both the technical coding and the creative designing, but I also know one comes easier than the other.
I suspect (pure opinion here) it's because of how our brains are wired, plus our experience / bias.
I also think the 10k hour rule applies too. You need to invest a lot of time to be really good, so the odds are a little more time was spent on one thing vs another.
Bottom line, coding and design go hand in hand. You should be able to do both. IMHO
However, if you're looking for someone who can create brilliant design and brilliant code, that's a reach.
That's fair. At one point I was probably an equally good programmer and violinist, but programming pays the bills and I haven't kept up with my music.
It seems like I've always wanted to be a unicorn haha. Excellent post!
This made me giggle. TYVM 🧜♂️
I think I am a T-shaped, Dev.to-shitposting, Js-challenged, L-driven Jack.
😂AH! I love it!!!!
Love it! And they stack so I can say I'm a
Hoping to add the
-PT
flags as well 🤓My dream is to become a F, "F* It" developer
May be I become JEL
Would you say you are JEL'in then 😉
R should be for the guy who insists on using RegEx in everything