DEV Community

Cover image for Tools that Make Me Productive as a Software Engineer
Mangabo Kolawole
Mangabo Kolawole

Posted on

Tools that Make Me Productive as a Software Engineer

As a developer, prioritizing your tools is essential because they are pivotal in achieving your goals. Being skilled is valuable, but the right tools can amplify those skills, leading to greater success in your field.

In this article, I'll share the tools I use daily to boost my productivity. These tools assist me in various tasks, including documentation, wireframing, development, testing, debugging, and research.

I've organized the tools into three categories: task management, development, and documentation.

Let's dive into these tools without further ado.

Task Management Tools: Keeping Things Organized

For a software developer, keeping tasks in order is very important. It doesn't matter if you're planning for the month, the week, or just today. It's helpful to have all your tasks written down so you can see how you're doing.

I mainly use two tools for this: Notion and Linear.

Notion

When you're a software engineer, you often need to organize your work, take quick notes, or even write some documentation on the fly. Notion is great for this.

Notion lets me sort out my thoughts, plan my content, and schedule my work easily. The calendar template is simple to use, you can change it how you like, and you can add many details like labels to keep track of your tasks.

I use Notion to plan out my content.

Notion Workspace

Notion is also good for teams to keep track of tasks. But, the next tool I'm going to talk about is even simpler for managing software development tasks.

I really don't like moving tickets around or spending a lot of time on ticket reports. This tool makes those tasks easier and a lot of developers I know like using it every day. This is why I want to introduce Linear.

Linear

I've tried using tools like Trello or Jira before, and I didn't really enjoy it. Trello is too simple and doesn't have many features, while Jira has lots of features but is complicated to use (even GitLab's Issue board seems better).

Then I found Linear, which is made for developers like us.

Linear makes it easy to automate your workflow and integrate other tools without making things complicated. And it's really nice to use. With Linear, you get:

  • Automatic updates to tickets based on what's happening with your PR/MR changes or advancements.

  • An easy way to copy the name of a branch.

  • A dark mode that's easy on the eyes.

  • Keyboard shortcuts that make moving around the app quick.

  • It's fast and fun to use.

With Linear, I don't spend much time on task management, so I can focus more on coding.

Now that we've talked about how I manage tasks, next, I'll share the tools I use for documentation.

Documentation Tools: The Backbone of Software Engineering

Documentation is a cornerstone of software engineering, so much so that it's often said the best developers spend more time writing documentation than code. It serves numerous purposes, from planning and hypothesis creation to tracking performance, educating users, and detailing features or bugs.

Here, I'll share the tools I use for documentation, which range from text writing to graphic creation.

Obsidian

While Notion is a fantastic tool and many might wonder why it's not my go-to for documentation, I find it leans more towards note-taking. Despite Notion's widgets enhancing its capabilities, I've recently needed a straightforward offline tool for organizing ideas and linking them effectively. Obsidian excels in this area, surpassing Notion in backlinking and idea organization.

Obsidian Interface

Obsidian provides an extensive suite of features for note-taking and knowledge management. Its knowledge graph visually represents note connections, facilitating deep dives into information. Full markdown support allows for flexible and powerful formatting.

The application's offline functionality ensures it's usable without an internet connection, and other features like spell check, API support, and the ability to publish notes as websites or use templates for uniform note structures stand out.

Knowledge Graph

I primarily use Obsidian for organizing my notes. Once organized, I transfer them to Notion for sharing, as Obsidian lacks sharing and syncing capabilities. Despite this, Obsidian remains my preferred documentation tool over Notion.

However, Notion and Obsidian can only help you write documentation. Well, how about some visuals? Let's talk about Excalidraw.

Excalidraw

The transition to remote work has made me miss the simplicity of brainstorming with a marker and whiteboard. When words fall short, visuals can bridge the gap in understanding complex ideas.

Excalidraw recreates the whiteboard experience digitally, proving invaluable for quick diagrams or illustrations that complement documentation.

Here's an example of a diagram I created to elucidate the React component lifecycle.

React Component Lifecycle Diagram

These tools form the foundation of my documentation practices as a software engineer. Next, we'll explore the development tools that enhance my coding efficiency.

Development Tools

My development tools changed a lot over the years and with the introduction and high usage of AI these recent times, I find myself discovering more tools that can help me be productive as a software engineer. But before talking about the AI tools, let's talk about the coding and testing tools.

I work as a software engineer using Django, Next.js, and sometimes Golang for development. I build APIs that serve data and/or interfaces that consume these data, so coding and testing my work is quite important. And this is where Jetbrains comes in.

Coding Tools

Jetbrains provides powerful, very powerful IDEs that just make work easier for you. I strongly believe that they make the best IDEs for developers. The fact that you can start coding right away without configurations is a big plus I believe.

This is one of the reasons I left using VsCode (Well, I still use it for quick projects or less complex projects) as I need to synchronize every time before ensuring that I can start working. For example, when starting a Next.js project using Webstorm, I can just select options of running Eslint, prettier on each save, but also automatically configure git hooks that can execute before writing a commit.

The Webstorm IDE has also a nice UI for running a project in debug mode and it is just powerful. I experienced it also on Pycharm and Goland. These IDEs are too powerful and straightforward to use.

Do not get me wrong, VsCode is ready powerful but when it comes to doing basic tasks without much hassle or configurations such as: searching, refactoring, Git tasks (fetch, pull, push, PR/MR management, etc).

Kudos to the Jetbrains team for making such powerful tools.

Testing: Insomnia, Postman

At first, I used Postman for testing APIs because it had a lot of features. But I switched to Insomnia because it was easier to use and kept everything organized. The big problem with Insomnia was that it deleted all my saved work when it made me create an account to keep using it.

This made me go back to Postman after a year. Postman hadn't changed much, but it had some new and better features that I really liked. Now, I'm back with Postman because it feels like something I know but also has new stuff. Insomnia was simple to use, but having to log in every time I opened my laptop was annoying. It could have been great, but these problems made me look for something else.

Now, I'm looking at trying Bruno, a new tool I heard about. Bruno has all the features you'd want, like support for websockets. What's great about Bruno is it only costs $19 for a one-time payment, which seems like a good deal. I want to see how well it works for me and if it's as good as it sounds. I'm excited to try it out and maybe talk about it later.

AI Tools

I often use ChatGPT and Phind.ai for writing technical articles, debugging, and brainstorming solutions. While some may have reservations about their responses, I find them as helpful guides, supplementing my own research.

Phind.ai is particularly valuable for providing links for further exploration and enhancing the research process.

Other AI tools like Copilot and Codium.ai integrate well with popular editors and IDEs, such as VSCode, enhancing your skills and productivity.

Effective use of AI in coding requires a clear understanding of your goals. It's not recommended for beginners to start coding with AI without a solid grasp of the underlying technologies and clear communication skills. Once you have these skills, AI tools can significantly benefit your work.

Conclusion

This is the first time since a lot of time that I have written an article that is not about coding. As productivity is an important aspect of software engineering, I am looking to write more about tools or strategies that help me be a better software engineer.

If you have questions or feedback about this article, please share them in the comments. Your input helps make this resource better for everyone. Below are the resources we used in this article.

That's all for now. Happy coding!πŸš€

Top comments (51)

Collapse
 
bdmorin profile image
Brian

Lots of tool overlap.
hurl.dev/ could give you an all in one for insomnia and postman
Coda.io could replace obsidian, and notion, and jira

Mermaid or terrastruct can give you programmatic diagrams

Thanks!

Collapse
 
koladev profile image
Mangabo Kolawole

Tanks @bdmorin

Collapse
 
marasheed profile image
Rasheed

Thanks.
I checked coda.io/
For personal with integrations it cost $10/month per Doc Maker
Any cheaper alternate ?

Collapse
 
bdmorin profile image
Brian

I may not have the full lay of land, but Coda seems to have a unique spot between airtable and notion. Coda let's you turn data into interactive documents. I'm not aware of any other service that does this. Doesn't mean they don't exist.

Collapse
 
valentiniljaz profile image
Valentin IljaΕΎ • Edited

Yo, this article is super cool! I checked out Excalidraw and I'm totally gonna use it in the future.

Also, I find it helpful to have a set of micro tools ready at my fingertips. Check out webacus.dev

Collapse
 
koladev profile image
Mangabo Kolawole

thank you @valentiniljaz

Collapse
 
marllongomes profile image
Marllon Gomes

i'll use it too, helps a lot for drafts

Collapse
 
rishabk7 profile image
Rishab Kumar

Great post, lots of overlap.
Haven't used Linear and Obsidian.
Huge fan of the Postman VS Code extension and Notion.
Also look into Thunder Client, was using that before the Postman.

Collapse
 
koladev profile image
Mangabo Kolawole

I will check Thunder Client. It looks interesting

Collapse
 
tqbit profile image
tq-bit

A heads up here. Thunderclient is great for solo work, our team had to drop it because it changed its git feature to paid-only over night, making our collections useless.

We're using Bruno now, it has an open source version as well

Collapse
 
xl5 profile image
Andy R • Edited

Thanks I'll try some of those, I use JIRA and yes it is overcomplicated or rather tries to do too much but it's not good at reporting either, we use Confluence for documentation but it's not free. I like Postman but always end up going back to Fiddler for some reason. I used wireshark for the first time in ages the other week to diagnose a local issue. But checkout. http files also in. Net if you use it. I've stopped using resharper now also. I will try some of your recommendations thank you πŸ™‚

Collapse
 
koladev profile image
Mangabo Kolawole

Thanks for the recommendations @arabbetts

Collapse
 
algonzalez profile image
Al Gonzalez • Edited

Thanks for sharing.

I'll be looking at Linear and Phind as well as revisiting Excalidraw.

Some tools I use include:

  • Mermaid in markdown and draw.io for diagrams
  • dbdiagram.io to generate ER diagrams
  • Hoppscotch instead of Postman (once they required an account)
  • I also use .http files in Visual Studio Code and Visual Studio to call API endpoints

Not sure why, but a lot of the images on the Linear's web site are not showing up for me. At least not the ones from cdn.sanity.io links.

Collapse
 
goforgold profile image
Shashwat • Edited

I find Github CoPilot pretty useful in generating AI based completions. It really saves a lot of time and works for all the programming languages and IDEs I work on.

Collapse
 
koladev profile image
Mangabo Kolawole

This is definitely true. It has been a long time I used Copilot but I have learned that it got really really good

Collapse
 
kyledev008 profile image
Kyle Cox

Just to add to the Obsidian tool. What makes it even better is that it's completely free, and you get every feature that you would if you paid, the only thing you actually pay for is their sync feature, which you don't have to stick with either. I personally use Obsidian for all my note taking, task tracking, and basically everything else outside of my code editor, because it also has a fairly large collection of extensions, like one called Remotely Save which let's you sync your local changes to the cloud of your choice, even a self hosted cloud. So I've got mine currently synced to OneDrive, which allows me to take my notes and tasks to the mobile app without having to pay for anything I don't already pay for.

The main motivator for me personally to choose Obsidian is because their payment model aligns with my personal views on developer tools, and that is that you get all the features for free if all you need is your solo setup, bit you only pay if you want to be able to collaborate in a business setting where paying becomes relatively negligible. That I feel creates an incentive to make your software work well enough that people will want to pay you for it (they have a donation model as well). So instead of locking basic features behind a pay wall for a cash grab, you need to make your software sell itself by it doing its job well.

Collapse
 
koladev profile image
Mangabo Kolawole

This is exactly what I feel about Obsidian and their business model too.
The project is still evolving and they are adding more features. The quality and the UX of this software speak for themselves.

Collapse
 
sm0ke profile image
Sm0ke • Edited

cool list.
Ty K!

Collapse
 
koladev profile image
Mangabo Kolawole

thank you @sm0ke

Collapse
 
emmabase profile image
Emmanuel Eneche

Great πŸ‘ . Postman extension on VS code is great too.

Collapse
 
koladev profile image
Mangabo Kolawole

Definitely @emmabase

Collapse
 
glissadist profile image
RorySuda

I love Obsidian & Linear! I just checked out Bruno and it looks great. Thanks for the recs!

Collapse
 
koladev profile image
Mangabo Kolawole

you are welcome @glissadist

Collapse
 
darshitdev profile image
Darshit-dev • Edited

You can explore Apidog also , It is full featured proof API client

Collapse
 
koladev profile image
Mangabo Kolawole

the UI looks interesting. Might check it

Collapse
 
kevinbism profile image
Kevin Ramirez

When you talk about documentation, how do you share the documentation in your team? You create a website or share your Obsidian/Notion?

Collapse
 
koladev profile image
Mangabo Kolawole

It depends.

If it is private, I will just leave it in Obsidian.

Otherwise, I will just copy/paste the content in Notion and share it. Notion is very powerful on the collaborative side of things.

Collapse
 
brense profile image
Rense Bakker

I didn't know linear... Haven't used it yet, but I think I'm already in love 😁

Collapse
 
koladev profile image
Mangabo Kolawole

You will definitely love it. It saves a lot of time πŸ˜…

Collapse
 
alina_kostenko profile image
Alina

Our Streamdal team loooves excalidraw

Collapse
 
unip profile image
Abdurrahman Al Hanif

What about clickup.com or monday.com?

Collapse
 
koladev profile image
Mangabo Kolawole

I am not using those.

However, I used monday.com as an alternative to JIRA a few years ago.