Back-End Developer
Layman Explanation of the role:
Back-End Developer is the one who develops core computational logic for software applications on the server side. They work on development Languages, Database, and cache, Server, API (REST & SOAP). Their work pitches in for developing core logic for software applications and information systems.They are also responsible for connecting the content you see on the website to the content management system like Drupal. Backend developers also optimize them for increasing response time and efficiency. For example: Backend developers are like builders who build the house from foundation and are responsible for full construction.
Standard Job Description
As a Back-End Web Developer responsible for managing the interchange of data between the server and the users. Your primary focus will be development of all server-side logic, definition and maintenance of the central database, and ensuring high performance and responsiveness to requests from the front-end. You will also be responsible for integrating the front-end elements built by your coworkers into the application. A basic understanding of front-end technologies is therefore necessary as well
- Integration of user-facing elements developed by a front-end developers with server side logic
- Building reusable code and libraries for future use
- Optimization of the application for maximum speed and scalability
- Implementation of security and data protection
- Design and implementation of data storage solutions
- Good understanding of server-side CSS preprocessors, such as LESS and SASS
- User authentication and authorization between multiple systems, servers, and environments
- Integration of multiple data sources and databases into one system
- Management of hosting environment, including database administration and scaling an application to support load changes
- Data migration, transformation, and scripting
- Unit testing using Junit and load testing using jmeter etc.,
- Outputting data in different formats
- Understanding differences between multiple delivery platforms such as mobile vs desktop, and optimizing output to match the specific platform
- Creating database schemas that represent and support business processes
- Implementing automated testing platforms and unit tests
- Proficient knowledge of a back-end programming language {Depending on the specific case, a developer should have the knowledge of one or more of PHP, Python, Ruby, Java, .NET, JavaScript etc.}
- Proficient understanding of code versioning tools, such as Git
- Proficient understanding of OWASP security principles
- Understanding of “session management” in a distributed server environment
Ideal Candidate
- Backend developers should have expertise in at least one back-end programming language such as Ruby, python, Java, pHp.
- Should have expertise in Server side frameworks like Ruby is to Rails, Python is to Django/FLASK, php is to Laravel/Zend and Java is to spring ,hibernate and it is a platform independent language so is widely used for back-end development.
- He should be capable of managing a hosting environment along with the database administration
- He should be capable of handling the load changes on the website
- Should be able to manage hosting and database administration as well
- Knowledge on Front-end tech stack would be an added advantage as he must collaborate with front-end developers
- Expertise in handling servers such as MySQL, Oracle,MongoDB, Postgresql, and SQL Server. For server management expertise on Docker, Kubernetes, Nginx, Node.js, New Relic etc.
- Awareness on security systems at different layers of communication and Understanding accessibility and security compliance {Depending on a specific project}
- Knowledge on Linux is an added advantage
Key words
Ruby, python, Java, pHp,MySQL, Oracle, Postgresql,Docker, Kubernetes, Nginx, Node.js, New Relic, Back-end, Server-side, Ruby on rails, Zend, Django, Spring, Hibernate, Server, API, REST, SOAP
CTC Range
Junior Back-end Developer role(1- 4 years) 3.5 LPA – 8LPA
Senior Back- end developer role(4-8 years) 5.5LPA – 18LPA
Lead Back- end developer role(8 years onwards) – 12LPA onwards
Salary range varies with respect to the candidate’s academic pedigree and past experience.
Benchmark Profiles
https://www.linkedin.com/in/ashwaniyadav7491/
https://www.linkedin.com/in/adityasrivastava524/
https://www.linkedin.com/in/kranthi-kumar-chamarthi-028664a/ – ecommerce application specific back-end
Screening Questions
Screening questions can be categorized as below
- Programing Languages like pHp, Python, Java,Ruby etc.,
- Frameworks like Django, Laravel, Node.js, Ruby on rails
- Database and cache related questions like Knowledge on MongoDB, MySQL etc., and Knowledge on Caching mechanism like varnish, Memcached, Redis is a plus
- Server : Ability to handle servers like Apache, Microsoft IIS etc.,
- API (REST & SOAP) :Knowledge of creations and consumption of REST and SOAP services
https://www.fullstack.cafe/blog/backend-developer-interview-questions
Glossary of Industry jargons
- Database : A database is an organized collection of structured information, or data, typically stored electronically in a computer system
- Cache: With respect to Web backend development Web browsers and web proxy servers employ web caches to store previous responses from web servers, such as web pages and images. Web caches reduce the amount of information that needs to be transmitted across the network, as information previously stored in the cache can often be reused. This reduces bandwidth and processing requirements of the web server, and helps to improve responsiveness for users of the web
- Server:A server is a computer that provides data to other computers. … For example, a Web server may run Apache HTTP Server or Microsoft IIS, which both provide access to websites over the Internet.
- Ruby on Rails: Ruby on Rails, or Rails, is a server-side web application framework written in Ruby programming language
- Python:Python is an interpreted, high-level, general-purpose programming language.
- Django:Django is a Python-based free and open-source web framework
- FLASK :Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries.
- php :PHP is a popular general-purpose scripting language that is especially suited to web development.
- Laravel:Laravel is a free, open-source PHP web framework
- ZEND :Assist software developers with developing, deploying and managing PHP-based web applications
- Java:Java is a general-purpose programming language that is class-based, object-oriented, and designed to have as few implementation dependencies as possible
- Spring :Spring is an enterprise Java framework. It was designed to simplify Java EE development and make developers more productive.
- Spring Boot: Spring Boot is an open source Java-based framework used to create a micro Service
- hibernate:Hibernate ORM is an object-relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database.
- Docker : Docker provides the ability to package and run an application in a loosely isolated environment called a container.
- Kubernetes:Kubernetes is an open-source container-orchestration system for automating application deployment, scaling, and management
- Nginx:Nginx is a web server which can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache
- Node.js : Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside of a web browser.
- New Relic :cloud-based software to help website and application owners track the performances of their services.
- Memcache:Memcached is an open source distributed memory caching system. It is used for speeding up dynamic web applications by reducing database load.
- Redis :Redis is In-memory data structure store, used as database, cache and message broker
- jUnit : JUnit is a unit testing framework for the Java programming language
- Jmeter : JMeter is an Apache project that can be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications
- Security Systems : This term is used to describe the security followed while implementing web applications or any software applications to reduce the risk of Hacking, Malware attack etc.,