What knowledge does a backender need in 2024?

Learning the backend from scratch and even updating existing knowledge and skills is not an easy task. Not only is most of your time spent at work and home, you need to constantly monitor development trends in order to remain a sought-after specialist.

Choosing a stack for learning is also not easy: there are so many languages, technologies, libraries and frameworks that it can be overwhelming.

We asked middle and senior backenders to answer the questions:

  1. What should a backender be able to do in 2023?
  2. What are the backend trends in 2024? What do you need to study to improve?
  3. What stack of specialists are missing on the market?

Here's what they said.

Do you study new technologies if they become popular in the market?

Yes, I learn new languages, work with new libraries and frameworks, even if my main job does not require it

Occasionally: I learn new things only if I feel that the knowledge could hypothetically be useful to me in my work

No, I haven’t learned anything new for a long time, and I only learn if the employer requires it

Answer

***

We remind you that you can ask your question to the experts, and we will collect answers to it if it turns out to be interesting. Questions that have already been asked can be found in the list of issues in the section.

If you want to join the ranks of experts and send an answer from your company or yourself, then write to experts@tproger.ru, we will tell you how to do this.

***

What should a backender be able to do in 2023?

Avatar of expert Konstantin Telnoy

Konstantin Telnoy

Senior Backend Developer

The ideal stack in 2023 for a backend programmer is:

  • Strongly typed Go or Java language;
  • Ability to work with any of the web servers for the selected language, for example, Echo/Gin for Go or Tomcat/Jetty for Java;
  • Databases – SQL (Postgres) and/or non-relational database – MongoDB/DynamoDb/…
  • Caches, for example, Redis;
  • Queues, Kafka, SQS;
  • Cloud providers – Amazon, Azure, Google Cloud;
  • It will also be useful if you have experience working with weakly typed languages, since you often have to work with situations where a quick solution was written in NodeJS or Python, but new services are written in Go or Java;
  • Metrics, knowledge of how they work and ability to work with standard packages like prometheus;
  • Principles and types of testing – unit, component, and integration tests.

Another important aspect is knowledge of the top-level architecture in order to quickly understand how services interact, what data flow and delivery guarantees are, and failure scenarios for the system as a whole. Here it is useful to understand what the CAP theorem is and what it is about, to know about optimistic and pessimistic locking, due to which the service will scale. The more experienced the developer, the more likely it is that he will also pass an interview for system design.

The demand for Go developers continues. The demand for microservice development is gradually decreasing – more and more companies are gravitating toward monolithization to reduce support and infrastructure costs. The databases still remain relevant. GRPC is becoming increasingly popular among communication protocols between services.

Was the answer helpful?

Answer

Avatar of expert Ilya Steshkov

Ilya Steshkov

Information systems developer, OZON FinTech

So the year 2023 has passed, which for some was the first year spent as an “IT specialist,” while others this year raised their grade (level) and moved to new positions and maybe to new companies. Naturally, all of the above is impossible without hard work and constant improvement of your skills.

Those who have just started their developer career have already done a lot of work, for which I have my respect, and I know firsthand that getting started requires a lot of effort, time and patience. But sooner or later we all encounter a certain plateau, when your first tasks no longer seem unrealistically difficult to you, and you don’t know how to approach the tasks of your senior colleagues, and many newcomers (intern/junior levels) today ask the question “How can I move forward?” by grade? What should I study to discover this new horizon?”

When we touch on the transition from the middle to senior grade, then everything is simpler, we are talking about approximately the same technical knowledge only with greater responsibility, because a senior is also middle, only with extensive experience in implementing business tasks and he is able to take responsibility for accepting global , architectural solutions, correct formulation of tasks, system decomposition, etc. But in the case of intern/junior, it’s just about improving skills in using technology.

Let's take a look at the stack. It is not entirely appropriate to talk about a specific stack, since it can change over time, just like the company where you work. But if we talk about the main stack of the average back-end developer, today it is:

YAP:

  • Java;
  • Golang;
  • Python;
  • PHP;
  • C#.

DB:

Cache:

System event management:

CI/CD:

  • GitLab/Hub pipelines;
  • Docker;
  • K8s (there is actually no need to go deeper here, but understand at the top level what Node is and what Pod is worth).

Also, some languages ​​cannot do without frameworks, for example Java – Spring, Python – Django, PHP – Laravel. Golang also has them, but I have never seen them in production in 3.5 years of working with this language.

So, at the current level, intern/junior, the developer must know:

  • basic coding skills (types, variables, functions, objects);
  • know the basic idiomatic constructions of the language he has chosen
  • be able to use SQL queries;
  • write unit tests;
  • correctly push the code into the repository and not get confused in the branches;
  • be able to use at least one framework of your language.

Was the answer helpful?

New question text

New question text

Answer

Avatar of expert Konstantin Leladze

Konstantin Leladze

CTO the Violet product

The ideal backend developer stack in 2023 includes the following technologies.

Programming languages

  1. JavaScript/TypeScript (Node.js): For developing the server side of applications.
  2. Python: For web application development, data science, microservices and artificial intelligence.
  3. Java/Kotlin: For large applications and scalable services.
  4. Go: Used to build high-performance systems and services.

Frameworks and libraries

  1. Nest.js (Node.js): For building fast and scalable web applications.
  2. Django (Python): For rapid development and security of web applications.
  3. Spring Boot (Java/Kotlin): For building efficient and reliable applications.

DBMS (Database Management Systems)

  1. MongoDB: For working with data in JSON format and NoSQL databases.
  2. PostgreSQL: For relational databases that ensure data consistency and reliability.
  3. Redis: For caching data and improving performance.

Containerization and orchestration

  1. Docker: For containerizing applications and making them portable.
  2. Kubernetes: For managing and orchestrating containerized applications at scale.

Architectural patterns

  1. Microservices architecture: To create modular and easily scalable systems
  2. Git: For code version control.
  3. Jira, Trello or similar services: For managing tasks and projects.

But I would like to note that the choice of technologies depends on the specific requirements of the project and the preferences of the development team.

Was the answer helpful?

Answer

Avatar of the expert Maxim Nyagolov

Maxim Nyagolov

Head of the development studio for mobile applications, web services and services in the field of AI and robotics at DigitMind Technologies LLC

In 2023, it was critical for backend developers to have deep knowledge of technologies such as Go (Golang), PHP, Python, JavaScript, and Ruby.

Go stood out due to its speed and ease of use, while PHP maintained its popularity due to widespread adoption and new updates.

Python continued to be popular for its versatility and simple syntax, while JavaScript and Ruby remained popular for their flexibility and efficiency in web development.

Database skills, especially MySQL and PostgreSQL, as well as an understanding of RESTful APIs and cybersecurity competencies were also important.

Was the answer helpful?

Answer

***

What are the backend trends in 2024? What do you need to study to improve?

Avatar of expert Konstantin Telnoy

Konstantin Telnoy

Senior Backend Developer

Distributed systems are trending. Event-driven approach, and with it work through queues and dividing systems into micro-services, NoSQL databases. The use of AI is also trending – from vector databases like Quadrant to GPT API integration for a wide variety of tasks.

Was the answer helpful?

Answer

Expert avatar Alexander Zakharov

Alexander Zakharov

Team leader of the development directorate of the software development company MyOffice

The demand for Go developers continues. The demand for microservice development is gradually decreasing – more and more companies are gravitating toward monolithization to reduce support and infrastructure costs. The databases still remain relevant. GRPC is becoming increasingly popular among communication protocols between services.

Was the answer helpful?

Answer

Expert avatar Vyacheslav Aksyonov

Vyacheslav Aksenov

Backend Java/Kotlin developer with 5+ years of experience

My name is Vyacheslav Aksenov, I am a backend Java/Kotlin developer with 5+ years of experience. I remember very well what the situation was on the market in 2018 and I clearly see what it is like now.

In order to understand what skills are needed for a beginner and an advanced backend developer now, you need to understand what you will be working with.

As a rule, a Java/Kotlin backend developer has to deal with distributed systems that contain a large amount of business logic, databases, message brokers and building interaction with frontend systems.

Let's go in order.

Programming languages

Right now, the leader in commercial large-scale development is Java version 1.8 and above. It is also clear that large “fashion” companies like Ozon and Avito rely on GoLang. Smaller companies use Python and NodeJS a lot. PHP is also found in some older systems. There is no point in trying to capture everything; if I were starting my development journey now, I would focus on Java or Go as the most promising options.

Working with databases

Experience with various database management systems (DBMS) such as MySQL, PostgreSQL, MongoDB and ability to design, optimize and maintain databases. As a rule, knowledge of PostgreSQL or Oracle syntax is sufficient. Be able to write SELECT/UPDATE/INSERT queries and describe table structures.

API and web services

Creation and support of an API for data exchange between the client and server parts of the application, as well as integration with external services. As a backend developer, you will have to design an API that will be used by any consumers – both frontend and backend. And you will also need to be able to implement them in the language of your choice. In the Java/Kotlin space, the undisputed industry standard is the Spring framework.

Application architecture

Understanding of the principles of building scalable and efficient application architectures such as microservices, application servers, etc. To apply this knowledge in your work, you will already be at least middle/senior level. But even at the beginning stage it will not be superfluous to collect information.

Safety

Knowledge of basic security principles when working with user data, including storing passwords, protecting against attacks, and encrypting data. In general, many of these rules for backend development are the same and do not require much attention to follow. But it will always be useful to learn how to avoid basic SQL Injection vulnerabilities.

Working with CI/CD platforms

Knowledge of CI/CD basics or how to run your application and what systems are used to automate these processes. The overwhelming majority now, due to historical heritage, use Jenkins; in newer projects they try to use GitLab CI.

Also, in addition to the so-called Hard skills, the developer needs to know the surrounding kitchen in order to feel confident in his work.

Version control

Experience using version control systems such as Git for codebase management and collaborative development. GitLab is now used as the standard for commercial development.

Testing

Skills in writing and automating tests to ensure the reliability and stability of the server side of the application. This applies to both writing unit and integration tests in code, as well as basic manual testing of your application. Having these skills makes it easier to understand how QA engineers, as well as Automated QA engineers, work.

Communication and collaboration

Ability to communicate effectively with other development team members, including front-end developers, designers, and testers. The biggest misconception is that a backend developer necessarily sits in the corner, writes code and doesn’t communicate with anyone. In fact, you are a team member just like everyone else. You need to be able to hear other people, be able to convey your thoughts, have a reserve of patience and politeness.

Understanding of basic software development principles

Knowledge of development methodologies such as Agile or Scrum and ability to follow programming best practices. Again, the classic for task planning now is Jira+Confluence, in smaller companies sometimes Trello. But any self-respecting company builds clear and transparent processes, and you, as a backend developer, need to be able to use these tools.

Back-end developers play a key role in creating robust and efficient web applications by ensuring they run reliably on the server side. In today's technological world, where digital products become an integral part of everyday life, this professional has a wide range of skills and responsibilities.

Backend developers are not only technical specialists, but also key members of the teams that create innovative and user-friendly digital products.

With the rapid development of technology and constant changes in market demands, backend developers continue to improve their skills and keep up with the latest trends in the industry. Their role is becoming increasingly important to ensure high performance and security of web applications, and their contributions remain integral to a successful digital world.

Avatar of expert Ilya Steshkov

Ilya Steshkov

Information systems developer, OZON FinTech

Essentially, moving to the next level is a smooth process, and it involves gradually getting deeper into what you use every day. For example, you write an SQL query, yes, it can work and do what is required in the task, but then a situation arises that under heavy load it works unacceptably slowly, and then you dive into building the correct index in the database, read-through cache and others optimization. That is, by facing problems and finding solutions, you gain experience, simultaneously immersing yourself in technologies with which you are already familiar.

Of course, it is much better to find yourself in a situation where an emerging threat to your performance does not cause you to panic; you have already read about it somewhere, or even tried it in a pet project. Therefore, I recommend constantly developing. For example, by devoting even 30-50 minutes a day to reading a book by Martin Klepman about high-load applications or Steve McConnell about perfect code, you will significantly advance as a specialist in your field. Klepman will give you an understanding of the principles and nuances of building large distributed systems, teach you how to solve data consistency problems and how individual components in such systems interact. McConnell will teach you how to think correctly when writing code, and build a specific pattern for writing good and testable code. This will be a good foundation.

In terms of delving deeper into the language you use and its eco-system, it is difficult to offer anything other than the official documentation; reading the habr is also useful, but do not forget to check the information in the official doc, not just reading the article “diagonally”, but trying to write something using what you learned from it.

Also today, microservice architecture and Domain Driven Development are strongly promoted. In this regard, a sufficient resource for understanding will be Microservice Architecture – it seems there is everything there to find out how it’s done.

By the way, don’t forget about communication skills; the further you want to grow, the more you need to communicate in a team, interact with other teams, properly build processes, clarify business requirements for the product, etc. Robert Martin’s book “The Ideal Programmer” helped me a lot here. It’s not about technical knowledge, but it puts an understanding of the generalized image of that same ideal programmer who knows how to say no when needed, work in a team and be effective in a rapidly changing environment.

Was the answer helpful?

Answer

Avatar of expert Konstantin Leladze

Konstantin Leladze

CTO the Violet product

Trend 1 – Microservice architecture

The trend toward microservices-based systems that are scalable, flexible, and easily upgradable continues to evolve. Developers are interested in tools for managing and monitoring microservice architectures.

Trend 2 — Serverless Computing

Serverless computing, or “serverless” computing, is a cloud computing model in which developers can perform individual functions or parts of code without managing the server infrastructure. In this paradigm, users only pay for the computing resources they actually use while performing their functions, rather than keeping servers always available.

Trend 3 – Graph Databases

To effectively represent and process complex relationships and dependencies in data. Learning technologies such as GraphQL may also be relevant.

Trend 4 – Working with big data and analytics

As data volumes increase, skills in working with big data and analytics tools continue to be in demand.

Trend 5 – Containerization and Orchestration

The use of containers (such as Docker) and orchestrators (such as Kubernetes) remains an important consideration for deploying and scaling applications.

Was the answer helpful?

Answer

Avatar of the expert Maxim Nyagolov

Maxim Nyagolov

Head of the development studio for mobile applications, web services and services in the field of AI and robotics at DigitMind Technologies LLC

In 2024, we see an emphasis on the development of metaverse technologies, the integration of AI and ML into the backend, as well as the use of edge computing and blockchain technologies. We especially highlight developers who are proficient in NestJS and TypeScript, which allows for a modular architecture and strong typing to improve efficiency and reliability in development.

Was the answer helpful?

Answer

***

What stack of specialists are missing on the market?

Avatar of expert Konstantin Telnoy

Konstantin Telnoy

Senior Backend Developer

There are currently many vacancies in Go and Java.

Many projects in various startups are actively being rewritten on Golang, as well as new projects are being developed from scratch.

Java is well represented in the FinTech sector – banks, insurance companies, trade, many integrators and also large companies in general.

Was the answer helpful?

Answer

Expert avatar Alexander Zakharov

Alexander Zakharov

Team leader of the development directorate of the software development company MyOffice

It seems like everyone is missing. 🙂

If you are currently choosing a stack, I would advise going to Go – quick entry and a large number of vacancies.

But if you already have expertise and want something new, then I would look towards Rust – in the long run it may be a good bet.

Was the answer helpful?

Answer

Avatar of expert Ilya Steshkov

Ilya Steshkov

Information systems developer, OZON FinTech

Today there is a shortage of specialists in this particular stack on the market:

  • Understanding the tools (languages, databases) and why you use them
  • Ability to write readable and structured code that can be covered with tests
  • Understanding of building distributed systems (micro-service architecture)
  • The ability to understand a problem before you begin to solve it, clarify, ask questions, and be easy to communicate.

Someone may be waiting for me to write a set of tools that you need to know in order to advance, but my opinion is that a developer is not a set of tools, but a set of skills and systems thinking that will allow you to come to a solution to a problem using any suitable set of tools.

And of course, I can’t help but recommend just being active in your work, taking on tasks that you haven’t taken on yet, not being afraid to propose solutions, even if they are not entirely correct, after discussion with senior colleagues they will turn into correct ones and you will be able to accept the experience of your seniors in discussion process. Be open and don't be afraid to make mistakes – it's part of the journey. If you want to have something that you have never had (a higher grade) – do something that you have never done.

And always remember – any large and complex system is a lot of small simple blocks correctly assembled together.

Was the answer helpful?

Answer

Avatar of expert Konstantin Leladze

Konstantin Leladze

CTO the Violet product

I would highlight:

  1. Go (Golang): The Go programming language is becoming increasingly popular in developing high-performance and efficient applications. It is well suited for creating microservices and processing parallel tasks.
  2. Rust: Rust gains attention due to its performance and high security when working with system-level code. It can be used to develop high-load applications.
  3. Kotlin (with Spring Boot): Kotlin as a language and Spring Boot as a framework are becoming popular in the world of Java development. Kotlin is often used in combination with Spring Boot to develop modern and robust applications.

Was the answer helpful?

Answer

Avatar of the expert Maxim Nyagolov

Maxim Nyagolov

Head of the development studio for mobile applications, web services and services in the field of AI and robotics at DigitMind Technologies LLC

There is currently a shortage of specialists in the market who are proficient in modern technologies, including AI, ML, edge computing and blockchain. Metaverse and cybersecurity skills are also in demand. Developers with experience using NestJS and TypeScript to build scalable web applications are especially valuable.

I would recommend backend developers to continue learning and mastering new technologies. It is important to focus on learning modern development approaches such as working with the metaverse, AI and ML, as well as strengthening cybersecurity skills. It is equally important to master NestJS and TypeScript, which open up new horizons in web application development.

Was the answer helpful?

Answer

Avatar expert Timur Syrma

Timur Syrma

Lead development engineer, Gazprombank

In recent years, microservices have become one of the current architectural trends in the field of software development. Amazon, Netflix, The Guardian, Twitter, PayPal, SoundCloud have already started using microservice systems on the cloud. In China, Tencent, Baidu, Jingdong, Taobao, 360 Search also began to migrate to microservice architecture. For example, Tencent's WeChat system contains more than 3,000 microservices hosted on more than 20,000 machines. Netflix's online service uses more than 500 microservices, involving 5 billion microservice interactions per day. Each Amazon page contains between 100 and 150 microservice calls.

Using this approach involves building applications as a set of small, independent services that interact with each other through an API. This approach provides greater scalability and flexibility because each service can be developed, deployed, and managed independently.

On the other hand, building microservices makes it easy to move applications between different environments, such as development, testing, and production, without the need for code changes. Which in turn increases the speed and quality of development, as well as the process of delivering the solution to the client.

Together, this helps improve development efficiency by allowing smaller, task-focused teams to work independently on different parts of the application.

Thus, it can be concluded that containerization and microservices are rapidly gaining popularity as a way to build and deploy software, and their use is expected to continue to grow in the coming years.

I would recommend that IT specialists improve their competencies and develop an understanding of various technologies and tools for building microservices. In my opinion, knowledge of the following technologies will help you be in demand in 2024:

Containerization

  1. Docker for creating, deploying and managing containers where microservices will run.
  2. Kubernetes for orchestrating and managing containerized applications.

Communication between services

  1. RESTful API and GraphQL to define interfaces through which microservices can communicate.
  2. RabbitMQ, Kafka to provide asynchronous communication and messaging between microservices.

Monitoring and Debugging

  1. Prometheus, Grafana for health and performance monitoring of microservices.
  2. Elasticsearch, Logstash, Kibana for centralized collection, storage and analysis of logs.

Was the answer helpful?

Answer

***

We remind you that you can ask your question to the experts, and we will collect answers to it if it turns out to be interesting. Questions that have already been asked can be found in the list of issues in the section.

If you want to join the ranks of experts and send an answer from your company or yourself, then write to experts@tproger.ru, we will tell you how to do this.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *