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.
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
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
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
Free version (with gist sync plugin) is great enough for personal usage
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
userId value from a
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
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.
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.
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.
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
As of the time of writing this, it currently supports PostgreSQL, MySQL, SQLite, MS SQL Server, Redshift, Redis, MariaDB, and CockroachDB.
Here are some amazing guides that are written by TablePlus to get you started quickly: