The tools I use as a Software Engineer to stay productive

The tools I use as a Software Engineer to stay productive
Photo by Nina Mercado / Unsplash

As a software engineer, I’ve learned that the right tools can make all the difference in speeding up your workflow. Today, I’m sharing the tools that have become essential to me, helping me save time, reduce errors, and write cleaner code. From VS Code to Chrome DevTools, these tools are part of my everyday workflow, where I use them to solve real-world problems. Whether you’re just starting out or already a seasoned pro, I’m sure you’ll find something useful here. Let’s dive in!

Code editing

VS Code & Extensions

After experimenting with a few different editors, I’ve settled on Visual Studio Code (VS Code) as my go-to. I’ve used everything from Sublime Text to Atom, and even tried heavier IDEs like IntelliJ, but VS Code hits that perfect balance of being lightweight while still packing a punch with its features. Here’s why it’s my favorite:

  • Extensive Extensions: This is the dealbreaker for me. The massive ecosystem of extensions in VS Code means I can tailor it exactly how I need it. Whether it’s for specific languages, debugging, or productivity hacks, there’s an extension for pretty much everything. It’s like a Swiss army knife for coding, and I can’t imagine working without these customizations.
  • Lightweight: VS Code is fast like, really fast. It doesn’t bog down my system, and I can have multiple projects open without my machine grinding to a halt. Even though it’s lightweight, it still packs powerful features you’d expect from more resource-heavy IDEs.
  • Active Community and Regular Updates: One of the best things about VS Code is its active community and constant updates from Microsoft. It’s regularly evolving, with new features and improvements being rolled out all the time. That means I’m always using an editor that’s keeping up with the latest tech trends.

There are so many reasons I love VS Code, but let me highlight the top extensions that have become essential in my day-to-day activity.


My Top 5 VS Code Extensions

Quokka.js

This one’s a game-changer. Quokka.js is perfect for prototyping JavaScript code with instant inline output. It lets me see the result of my code as I’m typing it, no need to open a browser or console. It’s a real-time feedback loop that makes testing small snippets or ideas incredibly fast. Whether I'm working in JavaScript or TypeScript, Quokka.js is my go-to when I need to quickly validate code.

Git Graph

Navigating Git through the command line can be a pain when you’re dealing with multiple branches and commits. Git Graph makes it so much easier by visualizing the entire Git workflow. I use it mainly to navigate between commits, see my branches, and manage my Git history visually. It’s made version control a much smoother process for me.

Turbo Console Log:

Let’s be real, console.log is still the most popular debugging tool for a lot of us. With Turbo Console Log, I can add and remove console.log statements in seconds. This extension speeds up the process of inserting meaningful log messages, which is a lifesaver when debugging large chunks of code.

Todo Tree:

Every developer leaves TODOs in their code as reminders. I use a lot of TODOs in my code to mark things I need to come back to later. Todo Tree scans my entire project for TODOs and FIXMEs, and displays them in a nice, organized tree view. This is perfect for when I need to quickly jump to something I’ve flagged earlier. No more manually searching for those little comments buried in the code.

Browser debugging

Chrome DevTools

As a JavaScript engineer at DataDome, I spend a lot of time in the browser debugging issues with our JS SDK and assessing the performance of our code. For this, Chrome DevTools has become indispensable.

I used to be a hardcore console.log fan just throwing logs everywhere and hunting for bugs that way. But once I got the hang of the debugger, my whole approach changed. Now, I can pause the code, inspect variables, and step through it methodically, which is a total game-changer for tracking down tricky bugs.

Here are the key DevTools I rely on:

  • Local Overrides: A lifesaver when debugging customer-specific issues. With Local Overrides, I can make changes to live sites without needing to redeploy. This allows me to test fixes and new SDK versions in real-time, making troubleshooting faster and more efficient.
  • Network Tab: The Network tab is crucial for monitoring API calls, tracking down failed requests, and debugging latency issues. I use the throttling feature to simulate slower network speeds and see how our JS SDK performs under different conditions. It’s also great for recording network sessions, which I can share with teammates to debug issues collaboratively.
  • Performance Tab: Before updating our JS tags, I jump into the Performance tab to assess how changes impact load times and memory usage. It helps pinpoint any bottlenecks so we can optimize the overall user experience.

Command line tools

Amazon Q for command line

Amazon Q (formerly known as Fig) has quickly become one of my favorite tools for working in the command line. It's not just for AWS services but it helps autocomplete commands for nearly anything I’m working on, making my terminal life a lot easier.

The reason I love this tool is because whether it’s AWS, Git, Docker, NPM, or just my local development environment, it suggests the right command syntax and flags automatically.

Oh my Zsh

Before discovering Amazon Q, I relied heavily on Oh My Zsh for its autocomplete feature. It was a great way to speed up typing in the terminal, especially when navigating directories or running repetitive commands. While Amazon Q has since taken over as my main command line assistant, Oh My Zsh still has a special place in my setup.

Oh My Zsh’s themes and plugins made my terminal experience more personalized and fun. I used plugins like zsh-autosuggestions, which provides smart command suggestions based on my command history, and zsh-syntax-highlighting, which highlights commands as I type, making it easier to catch mistakes before executing them. If you enjoy customizing your terminal experience, I recommend exploring this awesome collection of Zsh plugins to enhance your terminal even further.

Oh My Zsh is still an excellent choice for those who prefer manual control without the AI-driven extras Amazon Q offers.

System-level productivity

Raycast

If you’re on macOS and haven’t tried Raycast, I highly recommend it. It’s like Spotlight on steroids, allowing me to quickly search for apps, files, or even run custom scripts with just a few keystrokes. I use it to launch GitHub repositories, find files, and execute terminal commands without ever leaving my keyboard. It’s a real productivity booster.

I used to rely on Spotlight for basic tasks, but Raycast just offers so much more. The speed alone is worth the switch, but what really sold me are the integrations. What really makes Raycast stand out is how it integrates seamlessly with other apps. For example, I can instantly open recent VS Code projects or search through GitHub repositories directly from Raycast. It even connects with Spotify, allowing me to search for music and control playback without switching windows. These integrations fit perfectly into my workflow and save me a ton of time.

While Raycast offers a pro tier, the free version has everything I need for daily use. It includes app launching, custom commands, and integrations with tools like GitHub and Slack, which covers 99% of my tasks. If you want to take your macOS productivity to the next level, the free tier is more than enough to get started.

Testing and mock data generation

When testing backend systems or UIs, having realistic data is essential. Here are the tools I rely on for generating and managing mock data:

Mockaroo

Manually creating mock data is tedious and inconsistent. That’s why I use Mockaroo to generate large datasets that mimic real-world data. Whether it’s user profiles or product inventories, Mockaroo lets me create thousands of test records instantly.

Fake Data chrome extension

For front-end testing, the Fake Data Chrome Extension allows me to quickly insert dummy data into forms. It’s great for testing form submissions with different inputs, without needing to manually type everything in.

SessionBox

SessionBox is a tool I’ve come to rely on whenever I need to test different user accounts or roles on the same app. Instead of opening multiple browsers or using incognito windows, SessionBox allows me to manage multiple logins within a single browser session. This makes it perfect for scenarios where I need to log in as both an admin and a regular user, or test multiple accounts simultaneously without constantly logging in and out.

Online utility tools

Transform

Transform is one of those tools that seems simple on the surface but makes a huge impact on my workflow. I use it all the time to quickly convert data between different formats, saving me hours of manual work.

  • JSON to TypeScript Types or Mongoose Schema: Anytime I’m working with JSON data from third-party APIs, I use Transform to convert those JSON objects into TypeScript types or Mongoose schemas. This helps me quickly integrate external data into my codebase without having to write the structures manually.
  • JSON to SQL Tables: Whenever I’m working with relational databases, I use Transform to convert JSON data into SQL tables. It’s super handy when I need to quickly set up database tables based on a complex JSON structure.
  • CSS to Tailwind: When I started building my portfolio, I decided to give Tailwind CSS a try. I used Transform to convert traditional CSS into Tailwind classes, which made the learning curve much smoother and saved me a ton of time. It’s a fantastic tool for anyone transitioning to Tailwind.

Let's wrap up

It’s clear that the right tools can make or break your workflow. In this post, I’ve highlighted the most important ones that have helped me simplify my tasks, write better code, and debug faster. But there’s more if you're curious about my complete list of tools, you can check them all out on this page.

Now, I’d love to hear from you:

  • What tools do you rely on in your day-to-day work?
  • Do you have any favorite extensions or utilities that have transformed your workflow?

Feel free to leave a comment below and share your thoughts! Also, if you found this post helpful, don’t forget to share it with your network or subscribe for more tips like these. Let’s keep the conversation going!