Tools of the Trade

What we use to get work done. By Andy Soell
Thu, Oct 13, 2016
Filed under: development, tools,

When we first started building web applications in the late 1990’s, all you needed was Windows Notepad and a copy of LeechFTP. As the languages and technologies have become more sophisticated, so have tools available. Today there is an astonishing number of applications, editors, and productivity suites at our fingertips all vying attention, promising to make your workflow simpler, faster, and more productive. Here at Mettle, we have landed on a handful of products that we use to build amazing software products every day.

Sublime Text 3

There’s a fine balance that many developers look for in a code editor. On the one hand, many developers just want a simple text editor that gets out of the way. The more code you can see at once, the more you can focus on what you’re writing. At the same time, many developers feel that a good editor should help by minimizing repetitive tasks and helping you navigate your project files as smoothly as possible. Sublime Text 3 is the perfect combination of these two goals. On the surface, Sublime Text 3 is a super fast and clean editor. If all you’re looking for is an editor that stays out of your way, Sublime Text can be that editor. It’s incredibly responsive, has built-in syntax highlighting and autocompletion for many popular languages. If you want your editor to do a little more for you, though, that’s where Sublime Text really shines.

With the addition of the Package Control add-on, you can quickly and easily add features to make Sublime Text even more incredible. Just a few of thea packages we have added give us the ability to quickly and easily format JSON data, highlight uncommited git changes, assist in writing inline documentation, and trigger Laravel Artisan commands from right inside the editor. Sublime Text can be as simple or as complex as you want it to be. It’s become an indespensible part of our project workflow and has saved us hundreds of hours of development time.

Sequel Pro / Postico / Datum

Working with application data is a major part of software development, whether you’re working with an all-purposes database in MySQL or MariaDB, massive amounts of geographic data using PostGIS and PosgreSQL, or embedded, lightweight databases in SQLite. Command line tools are great for quick adjustments, but having a competent GUI application that allows you to manipulate the structure and content can be invaluable.

Sequel Pro is a full-featured MySQL / MariaDB application for macOS. It’s lets you make direct connections to local and remote server instances, and even supports socket and SSH connections for when you need to connect to database on servers that firewall off the standard database ports. If you’re still in the dark ages of phpMyAdmin you will be amazed at how much time using a dedicated database management tool like Sequel Pro will save you.

If you’re more of PostgreSQL developer, you’re covered there as well. Postico is an equally capabile database management tool that we use whenever we’re working with PostgreSQL and PostGIS data. With support for multiple connections, connections over SSH, custom queries and advanced filtering, it makes Postgres administration much easier than the command line psql command.

Finally, just because a project calls for a more lightweight, portable database format doesn’t mean you shouldn’t have a full featured GUI to help navigate and manage it. Datum is a wonderful database management app that helps you query, build, and manage your SQLite databases.

Paw

We build APIs all the time, so it’s kind of important to use a tool that ensures that we can test the hell out of them. Paw is an incredibly capabile API tool that has become an indespensible part of our workflow. Before we even write a single line of code, we design and document our APIs in API Blueprint format and then feed it directly into Paw. Then, once the endpoints, routes, authentication, and test data has been put into place, testing is as simple as going down the catalog of endpoints and making sure that the proper data and status codes are returned. It has support for placeholder variables, which makes switching between local, test, and production environments a breeze, and best of all: You can set projects up for teams using their Paw for Teams service to make sure everyone has the latest API specs and tests. When we’re building an API, Paw is constantly up and running.

iTerm 3

Developers live in the command line. Whether it’s running gulp tasks, checking code in with git, or just quickly checking server logs, it’s important that the command line is as easily accessible as possible. That’s why we love iTerm 3. It can be configured to appear as if by magic with a simple keystroke (we prefer Cmd + Esc), which means you have the power of the command line at your disposal at any moment. It includes support for multiple terminals with any combination of tabs or split panes you like. Recently they’ve added some even better tricks through their shell integration script, like the ability to preview images right in the terminal via the imgcat command, as well as the ability to initiate scp file transfers by simply right clicking the name of a file in the terminal and picking the option from the context menu. Finally, there is the “toolbelt” sidebar that gives you quick access to snippets like recently accessed directories, command history, currently running jobs, and a paste history. If you’re still using the built-in Terminal.app, it’s time for an upgrade.

Screenhero

Mettle has been a fully-distributed company since the day we were founded, and that makes collaborating on a single codebase tricky. Screenhero has been a godsend in helping alleviate this problem. If you haven’t seen it for yourself, the whole idea sounds like magic: Two developers, who may be in the same room or an entire continent away, connect using the Screenhero software and share each other’s desktop. Beyond simply managing screensharing, what really causes Screenhero to stand apart in that it allows developers to each maintain their own cursor as they talk through the code together. Add voice and text chat, and suddenly being on a distributed team doesn’t feel so distributed anymore. We use Screenhero every day for everything from talking through a tricky CSS issue to collaborating on proposals and blog posts.

Summary

This is just a handful of the desktop applications that the developers at Mettle use every day to help build blazing fast web, mobile, and desktop applications. I’m sure that even a year from now some new tools will have entered the field, possibly replacing some currently indespensible tools, but this is a little time capsule of what we’ve found useful recently. Next up, we’ll share some of our favorite web-based applications that we use to build, design, test and deploy our projects.