What is a back end developer (and how do I become one)?
Back end developers are often the unsung heroes of technology. Most end users will never interact with back end code, but websites and web applications wouldn’t work without their effort. At the same time, back end developers have a rich and varied career path they could follow. In this guide, we’re going through what it means to be a back end developer, the career opportunities available, and how to become one.
What is a back end developer?
Back end developers are responsible for server-side programming. They build the core foundation and functionality of a website, web page, or web application including database management, application programming interface (API) development, or web services connections to ensure the app is hosted properly.
Typical tasks for a back end developer
Depending on type of company and individual experience level, back end developers may be required to take on a variety of tasks including:
Building databases and caching mechanisms: The beginning of any website or web app is where the information will be stored. Back end developers are responsible for creating the origin databases and developing rules around caching so the page can load more quickly once the site is done.
Building and maintaining web servers: While databases hold a website’s information, servers ensure that the information is pulled from the database (along the rules coded by back end developers) and is displayed properly on the live site.
Writing APIs (REST and SOAP): APIs connect technology platforms together, a common necessity in development. Simple Object Access Protocol (SOAP) APIs use XML files to define explicitly how each technology should act and react. Representational State Transfer (REST) APIs does similar things to SOAP APIs, but requires HTML code instead of XML files, making it slightly more difficult to work with.
Coding core website functionality: Depending on what the site is supposed to do, back end developers will build the initial data calls for core functionality that front end web developers will later configure with HTML and CSS.
Building security protocols and encryptions: Augmenting databases and servers so the information is secure and encrypted, especially when dealing with sensitive user information like passwords or financial data.
Creating performance reports: Generating information about how the website is performing key tasks such as speed to recall information from the database. Alternatively, back end developers could also code an automated report generation engine for high-volume or frequent requests.
Handling backups: Making sure that all data is safely stored and backed up on a regular basis, just in case a new update or feature corrupts the live site and you have to revert back to the old version.
Frameworks and programming languages back end developers use
Back end developers work with a wide variety of programming languages, ranging from full stack languages like PHP or Python to back end and database languages like Java or Ruby.
Java: Java is a back end, general purpose programming language that can be used in a wide variety of web applications or websites (not to be confused with JavaScript, a full stack coding language). It runs on the Java Virtual Machine (JVM) that translates Java byte code into a language understood by computers.
Database languages: All websites need a place to store (and analyze) data. Common database solutions are Oracle SQL, MySQL, PostgresQL, and SQLServer.
Ruby: Ruby is a programming language that helps experienced users reduce confusion with novel features via the Principle of Least Astonishment (POLA). Because it’s a platform-independent language, it’s grown significantly in popularity since its inception.
Python: Used for both front end web development and back end web development, Python is a convenient and easy to read programming language.
PHP: PHP is a programming language that lets developers build complex features, similar to JavaScript. The key difference between PHP and JavaScript is that PHP is a server-side language, meaning it generates HTML code on the back end that can be modified on the front end. JavaScript is a client-side language, meaning it modifies existing HTML on the front end.
Version control: Like the name suggests, version control is making sure that updated versions of websites or apps are connected to the right file or sets of files. This ties into backups and encryption, and is critical for ensuring that new updates flow seamlessly and any older files are kept secure or handled properly.
C# and .NET: A programming language developed by Microsoft’s databases.
CMS building: Content Management Systems (CMS) ensure that you can write content on the website or web app being built.
Non-tech skills you need to be a successful back end developer
Successful back end developers know more than just code. They have a deeply analytical mindset with multiple characteristics that help them produce great code:
Problem solving: Back end developers are the first line of builders. They have to do their work in such a way that other team members (from a front end web developer, to designers, to marketers and salespeople) can do their jobs well. That means a problem solving mindset that can not only solve their own problems, but anticipate what problems other people might have.
Research: A lot of coding libraries are open source, and the development community is very open with how they solve problems. This means there are a lot of resources out there, but also that back end developers will need a good research mindset to wade through all the information to find the solution to their unique problem.
Empathy and care: Because back end developers are building the core foundation of a tech product, they have to build with empathy for the end user in mind.
Flexibility: Sometimes the way you think code should work doesn’t actually happen—that’s where flexibility to try something new is required to get the end solution acting the way you want. Different companies may also use different database or back end languages, so an individual will need flexibility to succeed throughout their career.
A sense of duty: Security is a critical element of back end development, so it’s important that back end developers feel a sense of duty to build strong, secure technologies.
Business mindset: A good back end developer needs to understand business outcomes—revenues, costs, and scalability—and bring that mindset into their decisions when it comes to which programming languages to use in a given project.
Collaborative: Back end developers are just one part of the tech team. They need to not only collaborate with each other but also work with front end developers, designers, IT infrastructure teams, and more.
Back end developer career prospects and salary
Web development, including back end development, is a fast-growing career. The Bureau of Labor Statistics estimates 8% growth from 2019 to 2029, which is higher than the average for all job growth.
Further, back end developers make a very good salary on average, and back end development is one of the highest paid tech roles out there.
Junior back end developer salary
The starting salary for a junior back end developer is around $70,000 annually, depending on location and how many programming languages you know.
Intermediate and senior back end developer salary
Intermediate developers see a fairly large salary bump, averaging around $85,000 annually.
With a few more years of experience, you could jump to a senior role earning over $125,000 annually.
Freelance back end developer pay rates
Freelance back end developers set their own rates and can earn anywhere from $60 to $100+ per hour for their work.
Backend developers compared to other types of developers
Back end web developer vs front end developer
While a back end developer works on server-side programming, front end web developers work on the client-side. Simply put, front end developers make sure that websites are usable and intuitive (and attractive) for end users. They work primarily with HTML, CSS, and JavaScript to take the functionality from the backend and present it in a way that’s appealing and meets company goals for user experience, user interface, or design.
Back end web developer vs full stack developer
A full stack developer is someone who can work with both front end and back end languages. Instead of building the backend then handing the work over to a front end dev, a full stack developer could work from start to finish. However, this doesn’t mean they always do—many full stack developers will collaborate with specialist front end or back end devs to accomplish complicated tasks.
Back end web developer vs mobile developer
Mobile application developers have a similar job to front end developers, but for smartphone apps instead of desktop websites. They take the work of a back end developer and augment it to meet usability requirements for app stores, such as the Apple App Store or Google Play Store.
The process to become a back end developer
Becoming a back end developer requires discipline, but the pathway is relatively well-worn from decades of people pioneering how to learn coding.
1. Learn the basics
The first step to becoming a back end developer is to familiarize yourself with all the core concepts of back end development, such as:
- Data structures
- Algorithms
- Learning how different languages function and why they were creating
- Graphic
- Tree logic
- Hashing
- Sorting and searching algorithms and how they work
There are a lot of free, open source guides to learning these languages such as Free Code Camp, and multiple free courses on platforms like Coursera or Udemy.
2. Pick your focus programming language
Once you have a broad familiarity with back end development principles, pick a core programming language—such as Ruby, Python, PHP, or JavaScript—and learn it.
If you’re stuck on which language to choose first, consider making your decision along the following lines:
- Pick the language noted in the job description for back end development roles at your dream company.
- Search for examples of what each language can build and pick the language that can produce outcomes you’d like to produce.
- Emulate companies you admire (for instance, Airbnb was built with Ruby and Wordpress builds its sites with PHP).
- Look up the founders and founding vision for each language, then decide based on which one resonates strongly with you.
As you gain experience in one language, the next ones become a bit easier. The key is simply to start.
3. Get in depth with databases
Every back end developer needs expertise in database building and management. After you build a basic understanding and pick your programming language, you need to dive into database management systems. This is the step where you not only build databases, but also build a collection of rules for how data is retrieved, stored, and moved in the database.
4. Learn frameworks
While programming languages—like Ruby—are how humans interact with computers, web frameworks—like Ruby on Rails—is how websites and web applications interact with databases and display features. After learning database management, learning the frameworks associated with your chosen programming languages will help you build fully-fledged websites and web applications.
The good news is that many web frameworks are either entirely open source or have open source libraries, meaning you can learn a lot from people who have already struggled with and solved multiple problems (then posted the solutions).
5. Create a portfolio
With knowledge of programming languages, database management, and frameworks, you should be able to build some rudimentary web applications or websites to put into a portfolio. This portfolio will become the basis of either your freelancing gigs or finding a full-time job.
Back end web developer portfolios should demonstrate the kind of work you want to get paid for, including:
- Building databases
- Creating intuitive functionality (even if it’s not super pretty on the front end)
- Demonstrating API development
While you may not have the front end skills to create visually stunning websites, if you can show that you know how to build core functionality, that will serve you well.
6. Choose between freelancing and employment
Once you feel confident in your skills and are ready to make money, you need to choose between freelancing and employment. While freelancers can earn more on a per-hour basis, you also have to manage your entire business, including clients, admin, invoicing, payments, and more. Employees, on the other hand, may earn a bit less than freelancers but they still earn good money, have more stability on average, and can learn more quickly on a team.
If going the freelancing route, be sure to set up business banking and invoicing before you close your first client.
7. Find gigs
If you’re looking for your first back end development role, check out these sources for job openings:
If you’re going down the freelance path, consider these sources for freelance job openings:
- TopTal
- Dice
- CodeMentor
- Developers for Hire
- Your own LinkedIn or Twitter network
8. Continue learning
Simply getting a job (or freelance gig) doesn’t mean you can slack off. There are a lot of ways to improve as a back end developer, such as:
- Cleaner code that gets the same thing done with fewer lines.
- Understanding scalable architecture to build more seamless products.
- Thinking about becoming a full stack developer by learning front end frameworks.
Think of your first few jobs or freelance gigs as paid opportunities to learn and try new things. Embrace mentorship, traditional learning through courses, and self-development by chasing your passions.
Back end development is the foundation of tech
Back end development builds the things people rarely see, but always appreciate when they are done well. As you think about your career in back end development, remember that at times it will feel like no one is recognizing your work.
Front end developers and designers win awards for beautiful websites and it seems like no one appreciates all the work you put into making the website work in the first place. However, know that back end development is an incredibly rewarding career, both financially and personally, because you’re building products that potentially millions of people will interact with on a regular basis.
As the world becomes more tech-forward, businesses need people who understand how to build strong technological foundations. Since the pace of technology is only accelerating, that means there will be opportunities for back end developers for years to come.