The Software Engineer’s Toolkit: What Tools Do Shortcut Engineers Use?
Tools. You probably use various ones to accomplish work and get through the day. Do you ever wonder what tools other people use to accomplish work and get through the day?
Wonder no further. In this blog post, we explore the software development tools our own software engineers at Shortcut use to help solve their problems and meet their goals, and to continue to help make Shortcut your favorite issue tracking tool.
From general, to front-end specific to back-end specific, here’s a look at what tools and programs our software engineers are using to get through their days.
General Across-the-Board Tools
- Kibana: a diagnostic/debugging tool for our API calls
- Sentry: for detecting issues before they get reported
- Amplitude: for analysis of app usage patterns
- CircleCI: CI/CD
- GitHub: version control
- LaunchDarkly: feature flag management and targeting
- AWS: cloud server infrastructure and services
- Terraform: infrastructure tooling
- Architecture decision records (ADRs)
- Vega-lite: data visualization
- Shortcut: issue tracking, project management, and product collaboration - duh! We put the flow in your workflow: Try it for free.
Front-End Specific Tools
- React: for componentizing the application
(Legacy: Caveman MVC)
- TypeScript: in most of our new code
- Emotion: for styling control over React components
(Legacy: Less CSS)
- Apollo Client: data access
- Webpack: packager and build tool
- Storybook: where our design system resides
- Yarn: dependency and workspace management tool
- Jest: testing framework (+ react-testing-library)
(Legacy: Karma test runner)
Back-End Specific Tools
- Clojure REPL
- Cursive IDE
- YourKit profiler
- Kaocha (testing tool)
- Clojure tools.deps
- Cider debugger
- Scope capture (https://github.com/vvvvalvalval/scope-capture)
The Stuff We Use the Most
Here at Shortcut, we’re big into text editors and integrated development environments (IDEs) for frontend and backend web development.
Some examples include: VSCode, Emacs, IntelliJ, and Neovim.
We also use terminals for navigating across directories (i.e. folders) and executing commands. iTerm is a commonly used terminal app. Many of the IDEs referenced earlier also have built-in terminals.
We use Git and GitHub for version control management of code. When we push code changes to GitHub, we like the way it shows the Git differences of code additions and deletions. We submit Pull Requests of code we want reviewed by our peers.
The Stuff We Really Like
We really like GitHub’s Pull Request (PR) review system. When we submit a PR, there are a variety of automated checks that perform actions such as running tests and generating previews of the app with the applied code changes for manual testing.
PRs are collaborative places for the code author to provide useful descriptions of their changes, and for reviewers to highlight specific areas of the code that could be improved in real-time.
We require all PRs to be approved by at least one person before merging the code changes into the main branch.
We like the programmability of Emacs.
Integrated development environments (IDEs) let us perform many functions within one application: writing code, debugging, testing, version control, and running a development REPL (read-eval-print-loop).
Join Our Discord Community
We like to think we're not the only people out there who like talking about the software development process. What tools do you use? Join our Discord and let us know.
As one of the only places where no one will fall asleep if you say the word DevOps, we’d love for you to join our ongoing conversations. Sometimes we even talk about stuff that’s not even about software engineering, or engineering tools, because, you know, like you, we have real lives too.
Sign Up for Shortcut For Free
Do you use Shortcut for issue tracking or project management? If Shortcut isn’t already one of the useful tools in your toolkit, then please, by all means, give us a whirl and sign up for a free trial.