DEV Community

Boby Santoso
Boby Santoso

Posted on • Originally published at bybobyy.com

1

Optimizing My Dev Workflow in 2025

Every Software Engineer has a development setup. Some keep it clean and minimal. Others turn their machine into a digital spaceship and a terminal that looks like it's from The Matrix. Either way, your development setup is personal and built around your role, your habits, and your tools.

This is how mine evolved. What started as a solid full-stack setup slowly turned into a mess. Instead of buying new hardware, I decided to fix the way I work.

My Daily Workflow

Most days look like this:

  • Writing code in VSCode. I usually have to juggle between 3 to 5 projects daily
  • Running local services with Docker
  • Managing multiple Node.js, React, PHP apps. Frontends and Backends
  • SSH, lots of it
  • Using Studio 3T or DBeaver for databases
  • Keeping a bunch of browser tabs open
  • Communicating via Discord and Teams
  • Listening to Spotify
  • Taking notes in Obsidian
  • Drawing flows in Excalidraw

It all works… until one day, my MacBook decided it had seen enough.

The Problem

Memory Overload

I'm using a base model MacBook Pro M2 with 8GB of RAM. It's a very capable machine, but my workflow was pushing it to the edge.

RAM hovered around 90%, with swap memory kicking in constantly. Everything started to lag. App switching, typing, even simple tasks like scrolling through files.

A few seconds of delay here and there might seem minor, but when you're in the flow, it breaks focus fast. I couldn't listen to music while coding. Even opening the browser could spike things. It got frustrating enough that I had to rethink how I worked.

What I Changed

From VSCode to NeoVim

I've used VSCode for years. It's great, no doubt. But when you have to juggle up to 5 projects daily, you'll find that it's going to block you away.
Mine feels heavy, especially with multiple windows and extensions. This is why I decided to find an alternative, until I started using NeoVim instead.

It's fast. With built-in LSP support, I still get syntax highlighting, autocompletion, and linting. The Vim keybindings are taking some time to learn, but the speed and responsiveness make it worth it. Or you can say that I never quit NeoVim because I don't know how to quit.

Replaced Docker Desktop with Colima

I replaced Docker Desktop with Colima, a lightweight alternative that integrates with Docker CLI. It's easy to toggle on and off, uses less RAM, and doesn't drag down the system.

Offloaded Docker to an Old Laptop

I had 2 old laptops sitting around, both 10 years old. I turned both into a home server. Installed Ubuntu Server, set up Docker, and now I run all my containers remotely. With Tailscale, I can securely connect to it like it's on the same network. This way, my MacBook doesn't have to run MongoDB, Redis, or RabbitMQ anymore. That alone freed up a lot of memory. I can even run other services like HomeAssistant, MailHog, Immich, etc.

Simplified My Terminal Workflow with Tmux

Instead of opening a bunch of terminal tabs or windows, I switched to tmux. It lets me manage multiple sessions in one window, split panes, and run different services side by side. It’s lightweight, keyboard-driven, and fits perfectly with NeoVim.

Ghostty

Initially, I used the Mac's built-in Terminal, but encountered issues with font loading. This led me to explore alternative terminal options. I initially chose Kitty, but after the official release of Ghostty, I made the switch. It has been running flawlessly for me.

Aerospace

Aerospace is a tiling window manager like i3 on Linux environment. This way I can manage my application windows and put them into different keys. I can navigate through my app windows very quickly with a shortcut:

  • Terminal: option + 1
  • Browser: option + c
  • Obsidian note: option + o
  • Spotify: option + s
  • Discord: option + d
  • Teams: option + t

And many more..

Conclusion

With this setup, I have to adapt with a more keyboard-driven dev workflow. I have to get used to use tmux for switching back and forth between projects. Then I have to get used to NeoVim with its keybindings. I live in the Terminal now.

Coding is much more fun, and that's what matters to me!

You can checkout my dotfiles, still work in progress, I used it daily on my Mac and Ubuntu servers.

Heroku

Deploy with ease. Manage efficiently. Scale faster.

Leave the infrastructure headaches to us, while you focus on pushing boundaries, realizing your vision, and making a lasting impression on your users.

Get Started

Top comments (0)

ACI image

ACI.dev: Best Open-Source Composio Alternative (AI Agent Tooling)

100% open-source tool-use platform (backend, dev portal, integration library, SDK/MCP) that connects your AI agents to 600+ tools with multi-tenant auth, granular permissions, and access through direct function calling or a unified MCP server.

Star our GitHub!

👋 Kindness is contagious

Explore this insightful post in the vibrant DEV Community. Developers from all walks of life are invited to contribute and elevate our shared know-how.

A simple "thank you" could lift spirits—leave your kudos in the comments!

On DEV, passing on wisdom paves our way and unites us. Enjoyed this piece? A brief note of thanks to the writer goes a long way.

Okay