On this post we are focusing on what you need to know about and have experience with in a framework. Specifically, we are assuming that this framework is used as the backend framework and we have a frontend application built with react or angular that consumes it.
#1 Master Language Fundamentals
Data types
Conditional(if) statements
Iteration(loop)
Class
Method
Data structure(List, Set, Map)
OOP
File
etc..
#2 Configuration
How to create a project
How to include dependencies like packages your project will need
How to write/update a configuration file with what your project needs like aws, database, 3rd party API keys, etc
How to profile your configuration so your project can run in different environments(local, dev, prod) with the right configurations
How to structure your code so that it’s easy to work with
#3 MVC
Controller (POST, PUT, GET, DELETE, Upload, Download file requests)
View (JSON or HTML)
Model
Service
#4 Database CRUD Operations
ORM
JdbcTemplate
Connection threadpool configurations
SQL queries
#5 Security
Authentication
Authorization
#6 Dependency Injection
Dependency Object Container
Dependency Object Lifecycle
How to create a dependency object
How to use a dependency object
#7 Testing
Unit tests with a mock framework
Integration tests
#8 Cache
Redis
#9 Consumer APIs
Consume a 3rd party API like Stripe
#10 Deployment
Deploy project to a live environment like aws or heroku
Optionals
You can add the following as you go. Some of these are one time setups and some are devop stuff. Depending on your situation you might have to set these up in case of a small or startup company or they might have been in place already or a devop team is taking care of them.
# OAuth2
Login with 3rd parties like Google or Facebook
# API endpoint documentation
Swagger with Springboot
# Docker
# AWS Webservices
# Elasticsearch
# Batch Jobs
A backend engineer is responsible for the server-side application logic and integration of the work front-end engineers do. Backend engineers are usually write the web services and APIs used by front-end engineers and mobile application engineers. The application logic is calculated using a server-site programming language such as Java, C++, C#, Python, Javascript, etc which backend engineers must have a strong understanding of. They are also responsible for saving, updating, and reading data from the database which means they must have a decent amount of knowledge of databases.