Let me take you on a journey to the land of unicorns. The land of lollipops instead of trees, cotton candies for clouds, and paths made of brownies. In this land, you can find many species. Full-Stack developers amongst them.

🚨 This article is highly opinionated and contains a lot of opinions, I am looking forward to learning about your thoughts and experiences in the comments section.

Who is a Full-Stack developer?

Many different websites with online classes or job offers define “Full-Stack developer” as

“A person who builds and maintains both the front-end and the back-end of a website.”
Cursea.org

There is nothing wrong with this definition, but it is incomplete. Lately, with growing interest in DevOps methodology (and all of its branches), infrastructure emerged as a “hidden” thing behind Web development. Not all companies invest in Cloud specialists. Some believe it is a part of the backend job, while others might not be aware of that. Yet, it is still there, and it is still growing strong. As a side note, that is one of the reasons why we started with this blog. For me, it was the inner push to learn, and writing blog posts is a great motivation for that!

Also, one must remember UI and UX! Oh, how many times was my patience tested when someone asked me to come up with “a nice and pleasant UI,” “you can surely squeeze this extra button in,” or “you know about UX, right?”. And this is just the tip of the iceberg. Yes, I can come up with a nice solution. Yes, I know SOMETHING about user interfaces and user experience. But this is just SOMETHING. Who cares. It has to be done, and as a front-end developer, you should know how to. Thanks.

So keeping that in mind, I would extend the definition above making something like this:

“A person who builds and maintains both the front-end and the back-end of a website while also actively developing and maintaining infrastructure and introducing ideas for new or updated UI / UX”.

Now it is more to my liking!

Why the Unicorn?

It all sounds noble and beautiful.

“One Person to rule it all […] one Person to bring it all and in the darkness bind it”.

J. R. R. Tolkien

Or something along those lines. It fits pretty well, actually, and describes the situation accurately. Frequently, you end up being a one-man orchestra bringing together all of the pieces — specialists in everything. There is nothing you cannot do. Everything you touch turns into candies or a rainbow. Sounds like a Unicorn. Have you ever seen a person so good to call themselves a specialist in every area of web development? Okay, some do this, but are they so? Can you be a specialist in frontend, backend and infrastructure? You can indeed be good at it, but specialising takes something more. So, yeah, unicorns – everyone has heard of them, but no one ever saw one.

Imposter syndrome

And then it enters, all in white – the Imposter Syndrome. It is not spoken about enough. You have to know everything about so many things it can overwhelm you. From my personal experience, this one is the worst. I have been working for many years and still feel stupid sometimes. It is probably not specific for full stackers, but they might be exposed to this one more.

Let’s consider my example. I am good at front-end development, but my day has only 24 hours. There is not enough time to do everything. I cannot count how many times I have been surprised by full-time front-end developers with something new (to me), something I had to learn about. The same happens with the back-end, not to mention infrastructure. It is overwhelming. Sometimes, you might just have to fake it until you make it. Power through, read on things, and learn.

Specialising

We talked briefly about specialising already. It is physically impossible to be a specialist in everything. Even Sheldon Cooper had his field of speciality. At some point, you will have to choose what to focus on more. For me, this field is back end (I am still far from world-class specialists, but I am getting there.. wink, wink).

However, this does not mean that I forget about other things. As long as I made my “ops” journey publicist with this blog, you do not see the time and effort I put into the front end. Frontend architecture has been undermined way too much for too long, and this should be changed. Does this make me a specialist in this field, well, no. It makes me better at something I am already good at.

Specialising takes time, effort and will to grow within a small area of a more prominent topic. Even saying to specialise in the backend is too much. The back end is a general topic that consists of many smaller pieces. For years, I have been working with the backend for frontend and MVC patterns along with domain-driven design, and here, I feel comfortable. Here is where I put the vast majority of my focus. This does not mean that I do not have experience with anything else. Entity Framework, Dependency Injection, messaging queues and much more I know about, I dare say I am (was) good at all those, but what I have is a solid base to build up.

I am sure that by now, you understand my point. Choosing your area of specialization is important, yet very challenging.

Product struggle

Oh, how many times have I been “playing” a Product Owner/Manager, whatever naming suits you best. As long as understanding business and customer needs is crucial in the developer’s work, managing the expectations and defying the scope for features should not. Doing that teaches you a lot, but unfortunately, it also takes your precious time, the time you could spend coding.. or participating in SCRUM meetings. If you have a PO/PM who includes you and shares business insights but shields you from all the noise and chaos on that side of the barricade, treasure him/her!

It is not all that bad

Being a Full-Stack developer is not all that bad and challenging. There are tons of us out there in the wilderness, after all. People continue to choose this path. And I must say that it is understandable. There is no better feeling than looking at a finished product or feature and knowing you handled it all. You faced and overcame challenges on “both sides of a barricade”. For a moment, you might feel like you actually are this mystic unicorn in Candyland.

You also get to know and work with people from different fields if you are lucky enough. You can work with both front-end and back-end developers, bridging those two worlds and introducing colourful visions of front-end to grey and sad backend. Not everyone likes it, but if you ever end up as the only full stacker in a company full of one of those, you might end up doing this exactly.

What it takes to be a Full Stack developer

Now, having it all said, let’s compose a list of attributes that a Full Stack developer should have. Let’s build our own perfect Unicorn.

  • “Dry” ingridients
    • 2 cups of Scalable Front-End Architecture
    • 2 cups of Robust Back-End Mastery
    • 1 cup of Real-Time Features
    • 1 tablespoon of Authentication Techniques
    • 1/2 cup of Complex Databases
    • 1 tablespoon of Performance Optimization
    • A dash of CI/CD Tools
    • 2 teaspoons of DevOps Mastery
    • 1 teaspoon of Advanced Security
    • A sprinkle of Scalability & Resilience
    • 1 Cup of Communication Skills
  • “Soft” ingredients
    • 1/2 Cup of Problem-Solving Skills
    • 1/2 Cup of Collaboration and Teamwork
    • A Dash of Adaptability
    • A Pinch of Empathy
    • A Handful of Curiosity

Mix well and try not to burn (out).

So now, which unicorn are you?

Before you leave, check out our previous post on managing Blobs in Azure with .NET and React!