3 Best Backend Developer Tools You Should Use

Every developer has a toolset that we will use while coding. These are tools that we live and breathe with at our jobs daily, and chances are, we can’t work effectively without them.

For the most part, everyone has their favorite code editor like Vim, Sublime Text, Atom, VSCode, etc., I am not going to bring those up. Also, using Git is indisputable and I believe we are all on the same page.

In this article, I will be sharing some of my favorite tools that I use as a back-end developer. If you are looking for tools recommendation beyond VSCode and Git, read on.


Pricing: Free
Photo Credits: Docker

Long gone are the days when you need to SSH into your production server and install the dependencies (i.e. Python, NodeJS, etc.) of your app before your application can run.

Today, with a Docker image, we could easily package up our code and all its dependencies into a Docker container that can run quickly and reliably from one computing environment to another.

Dockerizing Your Application For Different Computing Environments

Docker images are defined within special text files called Dockerfile, and it requires us to define all the steps explicitly inside the Dockerfile.

Here’s a simple example, if your application requires NodeJS and running npm install to work, we can simply define everything we need inside our Dockerfile i.e.:

# Example of a NodeJS application Dockerfile

FROM node
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
ENV PATH /usr/src/app/node_modules/.bin:$PATH
COPY package*.json /usr/src/app
RUN npm install
COPY . /usr/src/app
CMD [ "npm", "start"]

Example of a NodeJS application Dockerfile

We can use docker build -t xxx command to build our image and then docker run -d — name xxx -p xxx to serve our application.

The best part of this is that we can then use the same Docker image that was just built on a completely different computing environment (with Docker installed over there of course).

Learn more about Dockerfile and building Docker images here.

Dealing With External Dependencies

In a real-life scenario, our applications often require us to have external dependencies such as databases, message queues, etc. With Docker, we could easily download and run specific versions of the external dependencies that we want.

For example, to install the latest version of PostgreSQL, simply run:

# To download & run the latest postgres image:

docker run -d --name dpostgres -p 5432:5432 -e POSTGRES_PASSWORD=password postgres:latest

# To use psql:

docker exec -it dpostgres psql -U postgres

# To run shell within the same docker container:

docker exec -it dpostgres sh

Oh, now you need a Redis instance? Simply run:

docker run --name dredis -d redis

The best part about this is that we keep different versions of the same software running on our machine! If you haven’t started using Docker, I would highly recommend you try it out. It has made my life as a developer so much easier.

Insomnia REST Client

Pricing: Freemium
Free version (with gist sync plugin) is great enough for personal usage
Insomnia Rest Client
Photo Credits: Insomnia REST Client

Regardless of whether you’re a front-end or a back-end developer, it is common for us to integrate with 3rd party APIs or even develop our own set of APIs.

Typically, one would use API Clients such as Postman to test the functionality and performance of our API during the development.

While Post is no doubt the de facto standard for API testing and development, Insomnia REST Client — a light and easy-to-use alternative to Postman is hands down my favorite API client today.


Besides the cleaner-looking UI, one of the best features that I like about Insomnia is the ability to chain requests. Chaining requests means we can extract values from the responses of other requests and use them in the current request.

For instance, imagine you have an /user/update endpoint that requires a token and userId value from a /login endpoint.

In this case, you can use chaining requests to automatically run the /login request and extract the response from that endpoint every time you hit ‘Run’ on the /user/update request without having to switch to /login endpoint every time the token expires.

Besides, Insomnia also supports a bunch of community-written plugins which can come in handy such as faker.

As the free version of Insomnia does not come with cloud sync (which might be a deal-breaker for some), I personally use insomnia-gist-sync to sync all my workspaces for free.

Though I’d still highly recommend you get the paid version of it. It’s worth every penny!

Read more about Insomnia here.


Pricing: Freemium
I’d recommend you to switch to the paid version ($60 for perpetual license) for a better user experience. The free trial is limited to 2 opened tabs, 2 opened windows, 2 advanced filters at a time.
TablePlus Native App
Using TablePlus to connect to a database (Photo Credits: TablePlus)

As a backend developer, it is pretty common for me to perform database administration tasks with the help of a database tool.

TablePlus is a native tool with a modern-looking and friendly interface that you can use to create, query, edit, and save your databases in a very fast and secure way — it feels just like editing a spreadsheet.

TablePlus table view
TablePlus view of a database (Photo Credits: TablePlus)

What Can You Use It For?

  • Using conditional filters to narrow down data in your database table
  • With a spreadsheet-like view, one could easily modify data using the inline editing feature by simply double-clicking a cell
  • Writing custom SQL queries
  • Viewing multiple databases and tables in multiple tabs
  • Deleting, updating, or creating database tables and indexes
  • Exporting data as CSV, JSON, or SQL
  • Database restore and backup to your local machine
  • And many more

Supported Databases

As of the time of writing this, it currently supports PostgreSQL, MySQL, SQLite, MS SQL Server, Redshift, Redis, MariaDB, and CockroachDB.

Getting Started

Here are some amazing guides that are written by TablePlus to get you started quickly:

Hosted on Digital Ocean.