Level up your software engineering skills with these 10 little known tools
Unlike what most people think, creating and developing projects doesn’t require a hefty toolset to get done. Many developers use the same old standard applications and stick to the same methodology of conceiving products and thus ignore a colossal number of libraries, websites, and applications that make your life so much easier.
In this article, we will explore some of these options and display each of their merits and the many ways they can assist your software development journey.
Ngrok: create public URLs for your locally developed applications
Let me set the stage for you. You’re developing an awesome web application. Maybe the best thing you’ve done to this day. However, this is a personal passion project. There’s no way you can show this to anyone without setting up a hosting service and going through a bunch of steps that probably cost money.
Worry not, Ngrok is a tool that creates tunnels to your localhost securely and exposes the port in which you’re running your application to the entire internet with a single command.
$ ./ngrok http 8080
Now you can share your creations with anyone in the world with a link that belongs to none other than you.
Chocolatey: install windows packages and applications directly from the terminal
We all know the infamous Linux apt-get or the macOS homebrew package managers. They make installing packages feel like a breeze. One of Windows’s biggest failures is their oversight on this specific aspect of a healthy developer experience.
Yet, we all know that most of us use Windows anyway. Most of us go through the hassle of installing virtual machines to keep Microsoft’s proprietary software in the palms of our hands. With chocolatey, you can now keep Windows without regrets. After installing it, you’ll get access to a multitude of packages right inside your terminal window. Want to install git?
$ choco install git
That’s it. No opening browsers. No shady installers. No drawbacks.
Quicktype.io: parse JSON objects in the blink of an eye in any language you want
We live in an increasingly connected world. Chances are that what you will be developing from now on will have access to the internet in one way or another.
What that means is that you’ll need to transfer data on a network. You will need to send payloads between your application and other destinations, and that needs to be efficient. JSON is a file format that conserves information in a minimal way and is often used to send data inside the body of an HTTP request.
With quicktype.io you can simply paste that very JSON file and it will give you the code that can extract data from it accordingly. It can save time and teach you conventional habits to code in that very language.
EnjoyCSS.com: graphically edit HTML components and get the code without writing a single letter
I know. Most people complain that the frontend is just a game, and the real programming happens on the backend. While there is some truth to that, this doesn’t mean that you can’t code layers of complexity on the frontend alone. Having time to do that, however, means that you will need to design consistent and beautiful components quickly instead of dwelling on how to center a div while other highly important JavaScript logic is waiting to be done.
EnjoyCSS is a website that eliminates a big chunk of inconvenience when it comes to CSS styling. It lets you visualize and edit your components within the website, and it spits out the code when you finish for all your copy-pasting needs.
Devhints.io: Cheatsheet for everything IT
No one remembers everything that involves a specific language let alone multiple of them. That’s why those who claim that they do are simply lying. There’s nothing wrong with having a cheat sheet of the most critical aspects of a given language while developing.
Devhints is a website that offers a collection of clean and well-designed cheat sheets that incorporates the things you will need the most when you’re developing a project.
You don’t even have to be coding; you can also use it for studying purposes and more.
Bonus: books.goalkicker.com (More thorough documents for in-depth studying)
StackEdit.io: write Markdown the right way
Being a developer doesn’t mean you get a free pass on writing good and clean paragraphs. While that does take an effort in linguistic skills, Markdown takes care of the presentation and translates your words into well readable lines.
If it’s used in conjunction with your code, it can give rise to some very well-formatted informative and impressive results. It’s also frequently used in GitHub Readme’s and GitHub Gists.
Bonus: overleaf.com (Used for LaTeX which is more advanced in nature than Markdown)
OpenVPN: the future of VPN
You don’t need me to tell you that VPNs are very important especially since privacy has become more and more diluted over the years. OpenVPN isn’t about that. It’s about how you set up your workflow around VPNs. With a simple .ovpn file, you can easily access a VPN with a single button. Many providers such as NordVPN or ProtonVPN offer solutions that involve OpenVPN which lets you get extreme flexibility in terms of options you’re using without downloading bloatware launchers and stuff like that. It’s a one-for-all solution.
Handbrake: control the quality of your videos
Being a developer means you will be interacting with all types of files. One of which is video files which in my personal experience are the hardest to manipulate. They can be dangerously large for databases or even internet traffic.
Handbrake is a solution for that since it lets you tune down the size of videos and even filter them for a specific platform like YouTube. Say goodbye to being stuck on a bug for weeks because your hosting provider can’t transfer a large video file over a network. (yeah don’t ask)
Bonus: FFmpeg (Used for converting videos from an extension to another and other cool stuff)
Postman: a practical way of sending mock API requests
There’s no doubt that if you work with servers or backends in general, you will always have to work with REST and RESTful APIs or even GraphQL.
Most developers use cURL or even “telnet” to send HTTP requests and check the status of their server’s endpoints. While working inside a terminal is great and all that, you’re depriving yourself of a huge chunk of information when you can use postman which offers tabs, request header customization, easier authentication and authorization, and a more consistent way of sending requests without memorizing infinite curl flags and other terminal shenanigans. Did I mention that it also shows JSON the right way?
Docker: use containers to develop faster and better
I hear what you’re asking. I thought we were talking about little known tools, no?
Yes, docker is certainly not the most obscure tool there is, but it is however heavily ignored. I can guarantee that you could’ve used docker for almost all your previous projects, but most people don’t. They think it’s just a knock-off of virtual machines.
The way docker works is that it creates virtualized environments where you can do anything you want. So far this is pretty similar to a VM. However, the way they achieve it is vastly different. Docker’s containers don’t operate in the same way since you don’t have to allocate specific physical measures for it to work. It doesn’t spawn its own kernel and it also doesn’t require large disk space in most cases.
You can use premade images to develop in all sorts of languages or spawn actual databases that you can use in your projects, or even work with full-fledged Linux distributions, and this is just scratching the surface.
Here’s an excellent quick video about docker in 100 seconds:
All in all, there are thousands and thousands of different resources that a developer can use, and this is the beauty of this field. Our article barely covered anything, but it served to showcase that you can always improve your workflow because once you stop evolving your skills as a software engineer, you will certainly become outdated sooner or later.