Backend

Backend Developer

A look behind the curtain

Backend Developer

A backend developer develops the necessary, but non-visible parts of the code.

The Backend Developer architects and develops the code that runs on the server. While this code is not exposed to the user, it can dramatically affect the performance of the website or service.

Skills

Speed

The latency between client and server is crucial. If the Backend Engineer can squeeze more in a few milliseconds, the client code will be able to react quicker to the user.

Programming language choice

Since the backend code is not exposed to the user, Backend Developers have a wider choice of programming language. Any language that is not an impediment to hiring, is an option. This can be the secret weapon of a company. Choosing a language / framework / library specifically design for concurrency — Like Erlang or Elixir — can make a messaging application much more performant. Choosing a language with higher safety guarantees, or with an easier deployment, can make the project much easier to debug, or require less resources — number of servers, less CPU and RAM — and have an impact on how quick and profitably a company can scale.

Deployment

While on most teams Dev-ops will take care of deployment, a good Backend Developer knows a lot about how her application will be deployed. Choosing between Microservices or Monolith will also affect the day to day in the job. Any improvement in ergonomy will be a benefit.

Security

Since the Backend code runs on the server, it is important to have as few security flaws as possible. An error in the backend could lead to access to data and other servers, and to the compromise of the customers. With the added complexity of Microservices, there are more moving parts and more things to know to keep the architecture as safe as possible.

To expand your skills

Here are some resources to expand your skills as a .

Cross-platform with Xamarin

https://dotnet.microsoft.com/apps/xamarin/cross-platform

Overview of .NET in Unity

https://docs.unity3d.com/Manual/overview-of-dot-net-in-unity.html

Types and Programming Languages

https://www.cis.upenn.edu/~bcpierce/tapl/

When to use Rust and when to use Go

https://blog.logrocket.com/when-to-use-rust-and-when-to-use-golang/

The Go Developer's Quickstart Guide to Rust

https://dzone.com/articles/the-go-developers-quickstart-guide-to-rust

Modern Compiler Implementation in ML

https://www.goodreads.com/book/show/258558.Modern_Compiler_Implementation_in_ML

Three Things I Wish I Knew When I Started Designing Languages

https://www.infoq.com/presentations/language-design-process/

Open-source and crowd-sourced list of conferences around software development

https://confs.tech/