There are many options when it comes to which software or platform you decide to use for your daily tasks at work. I've decided to write a list of common tools that we use in our development department because I thought it would be helpful for everyone else out there.
A new software takes a bit of time to adapt, get used to, and understand. We've all been in a situation where we’re not really satisfied and have to start all over again with another tool. Let’s just admit it: It’s not a great feeling!
If you ended up on this page, it’s most probably because you know how important software development tools are and how they increase the efficiency and productivity of a team. In this list, you will find great programming tools we use at Apiumhub, as well as toold we use to make our day more efficient. So no, you won’t only find programming tools, but it’s still what we use on a daily basis as programmers!
We all use our terminal. It really depends on what you are working on; some of us use it every day while others could be using it once a week. But at the end, we all use it! The terminal is a command line where you can execute processes. It’s quite useful and makes your job much faster. You can move between files, download apps, and many other things with just one command instead of going through the whole menu.
When it comes to working with various open terminals in different processes, Tmux is one of the most useful tools. What is Tmux? It’s a terminal multiplexer that enables you to have several independent terminals in one terminal. It’s about dividing the window into panes or tabs within the terminal and makes it easier to move through.
If you’re interested, here’s a short Tmux cheat sheet that might come in handy.
Docker provides a software containerization platform that enables you to package your application or software in a filesystem. This container could be moved and executed anywhere. You will find everything that you need to run: code, system libraries, etc. This means that the software will be running the same and will not depend on its environment.
Why should you use Docker? Well, as containers have a different architectural approach, they are more efficient, they can run on any computer, on any infrastructure, and in any cloud. Docker enables you to spend more time on creating new features, fixing issues, and shipping software. It also makes it easier to collaborate among developers and system admins because it creates a common framework. Finally, Docker permits you to ship and scale the software faster.
Intellij is an Integrated Development Environment. An IDE integrates all the tools that you need to develop a platform, so it has a code editor, a compiler, a debugger, etc. What we like about Intellij is that it has auto-completion and it’s really user-friendly and therefore easy to use. It also helps to quickly navigate through your code, provide error analysis, and offer handy quick fixes. It increases our productivity a lot.
Slack is an amazing app that we all use for team communication. It’s great because we can use it basically everywhere (it has a native app for iOS and Android), and since we’ve been using it, we have reduced emails sent internally. We have a team for each department but also have one for the whole company! It’s quite practical: you’ve got “channels” that you create for whatever you want (projects, teams, topics, etc.) and you can easily navigate between channels. You also have the option to have direct private messages with certain members of your team. The drag and drop is really nice to use, you can share all sorts of files and add comments to them, or tag people. You can also search your full history.
Everyone uses a web browser obviously, and Google Chrome is one of the most popular out there. I love Chrome because it has a clean and simple UI. I found it to be very fast and I love that it syncs my bookmarks on all my devices. There’s a huge library of extensions and add-ons, it fills out the forms automatically, and I can search straight away from the address bar. Finally, the developer’s console is very quick and easy to use and makes life easier for front-end developers.
Feedly is quite nice to use. It’s a sort of news feed where you can easily read the news that interests you. It’s very easy to use and has a minimalist design and personalized interface where you can organize all your favorite publications, YouTube channels, blogs, etc. and you then receive updates if there are new stories and videos that are published! It's very practical for staying up-to-date with what interests you.
Jira was developed for agile teams to plan, track, and release software. Obviously, as we breathe Agile, we also use Jira. It helps a lot when it comes to project management. We found it great because it’s very customizable and has powerful features and tools for every phase of development. In one place, you can manage the team backlog, visualize the work in progress, and generate reports.
Git is an open-source version control system for software projects. When a developer is working on something, he or she has to regularly do changes to the code until he or she reaches the last version.
A version control system saves every change made, allowing others to collaborate, make changes, and contribute. You will also find a copy of the code of every developer’s work. Git enables you to synchronize team work and to work with the code, actualizing it at any moment. It’s one of the most popular because it manages very well conflicts (focuses on the file content) and permits you to create ranges of code. I personally believe that if you don’t find Git on a list of software development tools, you should absolutely skip the page.
GitHub is a Git repository hosting web. It’s a type of dropbox for software projects where you can find code. When uploading your project, you have the choice of making it public or private. It’s a great place to network and meet like-minded people, share projects, discover others, etc. The community is huge and the project base even bigger.
11. Stack Overflow
Stack Overflow is the bible of any programmer. It’s not because it’s not on top of this list of software development tools that it’s not one of the most important! It’s a question-and-answer site with the largest community of programmers. In this library, you will find all the answers to your questions, going from how to change the color of a text to how to change the kernel of a Linux. It’s a great place to learn and share knowledge.
12. Sublime Text
Sublime Text is a text editor for source code and we don’t only love it for its nice user interface!
There are a lot of shortcuts that enable you to open files and jump between lines easily. You can change many lines at once due to the multiple selection option. You don’t need to go through the menus; you can just search for what you need. You can also switch between projects easily. The plugin API is strong!
Jenkins is an open-source automation server, more specifically, a Continuous Integration server. You can picture this software development tools as if it were the middleman between your code and your build server because it regularly looks for changes on your server and once they're found, it sends them to the build server. What is great is that there are amazing plugins for jenkins making your life easier.
Confluence is a software that we use for team collaboration. We can put together ideas, requirements for the product we are working on, and documentation to build it better. It’s great because it’s very easy to create projects and everyone can contribute. You can also find company information, so basically everyone stays up-to-date on the same page.
Spotify is our favorite music service. It gives you access to millions of songs. You can play your favorite songs, discover new tracks, build playlists, and more really easily. It has an amazing user interface, you can play music on all your devices, and the mobile app is as good as the web app. One amazing option of the premium account is that you have access to your music offline. Oh, and yes, of course we listen to music while working!
We use YouTube for almost everything (personal and professional reasons). It’s quite nice to check out tutorials and tips of other pros in the industry, meetups we’ve missed, etc. Also, there’s always a funny video out there!
We actually use Skype quite a lot. We’ve got a team in Barcelona, one in Vietnam, and another one in Andorra, we sometimes work with clients that are in different countries. We also often work remotely. We’re very flexible, but we still need to work in teams. This means that we often have to get on a call with a client or with our team. Skype is great, the connection is good, they regularly make updates, and it’s totally free. You also have the group call option, which is quite nice!
I really hope you enjoyed going through this list of tools. This doesn’t mean that these are the only programming tools we use or that those are the only good ones; it’s just what we use here and what we believe to be helping us a lot in our daily work as software developers.
If you’ve got other suggestions of software development tools, leave it in the comments section. We’re always happy to discover new things!