HACKER Q&A
📣 somebrownguy

Transitioning from Front end to Back end


Hello HN - long time lurker, first time poster.

In my 4-5 years as a developer I've always been in the frontend world, I have it enjoyed it and continue to enjoy it; however, I feel that the pool for frontend jobs is becoming more and more smaller. I don't mind keeping up with the latest tech, in fact that helps me my ADHD - new things always entice me. I like to think that I am good having joined a big tech company if that means anything.

Still I feel way to overspecialized, I would like to become "full-stack" with a frontend focus. I have read up on backend system design and find that interesting, lots of reading but no implementations (I have no real experience).

I would like to learn more about backend on the side, how would you guys go about doing this? Tutorial hell?

tldr; spent all my time on frontend, would like to learn backend, how should I go about doing this?


  👤 techdragon Accepted Answer ✓
You’ve got two major paths in front of you.

1 -> JavaScript/Typescript on the server side and the node.js ecosystem.

2 -> Everything else.

Once you decide which one of these you want to explore you can just do some research and play around with the documentation of a framework or two and start building up experience building APIs and small matching demo front end UIs that use them.

There’s a lot of potential framework choices behind 2 so don’t feel daunted. Step one should be choosing a language to learn first and you might want to do that based on your own level of existing familiarity with a language or use this as a chance to learn a new one.

Some of the back end frameworks are going to be a very close match to your experience building front end tools as they are designed to efficiently create APIs for front ends to use. A few will even have interesting things that bride the gap between front end and back end, like C# and ASP.Net (or ServiceStack) have Blazor which is bringing C# code to the Browser via WASM. Or LiveView from the Phoenix framework in the Elixir language which automagically renders backend partial updates and sends them quickly to the front end with minimal extra code, a feature so nice several frameworks now have their own versions of it, including one for Django (a Python framework) which doesn’t even use Web Sockets (most live view setups tend to use WebSockets)… regardless of what you chose to check out first, don’t be afraid to try a few backend frameworks to get a feel for things since there’s a big difference between more minimal ones like (using Python examples) Flask and FastAPI “micro frameworks” and more fully featured frameworks like Django and Django Rest Framework.

Good luck on your new journey!


👤 logicalmonster
Well, you have a pretty good starting point. Since you work on the frontend, you should already have a pretty good idea of what an API takes as input and spits out as output, so you already know what sort of data you need to work with on the backend. And assuming that you're fairly up to date with JavaScript, you basically already know a lot about how to work with Node.js, if that's the tool you want to learn.

What kind of company do you work with? Do you have a backend engineer who you can approach and ask to mentor you? Express your interest in learning more about the backend and seeing if they can guide you through building some simple features entirely by yourself. You can start out with evaluating the spec you're given, building the backend, going over any feedback with them, and then using your frontend knowledge to finish that feature entirely yourself. Don't be discouraged about some of the complexity about databases and setting up complicated infrastructure: that can take a while to start to figure out. But if you can get an experienced backend engineer to help you with some of that tricky deployment/infrastructure stuff and just focus on the API you need to build, you can probably gain good experience through that.

Of course, politics being what it is in some companies, a company who wants to restrict employees ambitions to keep them cheap and working for them without threat of being poached into a better role, or a backend engineer that is trying to protect some fiefdom, might give you some grief for thinking about stepping into something new.

If your company isn't a help, a good potential option is joining a startup. In many cases, developers will have to wear multiple hats to try and get a new product off of the ground, so there might be an opportunity to take on some backend tasks there.