HACKER Q&A
📣 octopoc

How do you manage your dev environment?


My company has problems with its local dev environment. We spend quite a bit of time debugging it. So I was wondering, how do people manage their dev environments?

- How many operating systems / IDEs do your developers use?

- How does your tech stack influence how you manage your dev environments? (e.g., running Kafka in the cloud and connecting to it from a local process)

- Do you run all production services or a subset?

- Do you have different dev environments for different kinds of work in the same team? E.g., frontend devs don't need breakpoints in the backend but backend devs do.

- Do you use cloud dev environments are have you stuck with local?

- What is the size of your team / company? I ask because managing dev environments for 1000 developers will be different from 100 or 10.


  👤 shortrounddev2 Accepted Answer ✓
> How many operating systems / IDEs do your developers use?

My company issues everyone a macbook, but we're not required to use them. I don't like Apple or its products, so I choose to use a Windows laptop. I have a coworker who uses Ubuntu. IDEs are up to the user, but we have a jetbrains subscription to use all of their IDEs. Only a few of us do Java on the team, but I use VSCode instead of IntelliJ because I don't like Jetbrains UI design. Other people on the team do javascript/node in VSCode, and SQL stuff in datagrip, while I use dbeaver for database stuff.

> How does your tech stack influence how you manage your dev environments

I try to make everything we do runnable locally. We also host almost everything ourselves rather than paying for managed services. Our data collection pipeline can be run in docker so I created a docker compose file which runs all of our microservices together on a network for testing. Since we do Java and Node, the only real consideration about how to make things cross-platform on our different machines is path separators, which I sometimes run into and always patch when I see non-portable paths (/ characters) being used.

None of what we do relies on shell scripts, so we're free to write whatever we want. I use powershell for some helper stuff and other devs use bash, but not much.

> Do you run all production services or a subset?

The only thing we don't run locally is our logging services, since we just print those to the console. Other than that, any service we need to debug can be run locally (though not always all at once)

> Do you have different dev environments for different kinds of work in the same team? E.g., frontend devs don't need breakpoints in the backend but backend devs do.

Frontend devs need breakpoints as much as backend devs do. But again, we keep our dev environments agnostic of everything except for the build tools. Many of my junior engineer coworkers don't even know how to use breakpoints without me holding their hand. I've written launch.json files for my coworkers so they can attach vscode to chrome to debug react, but I've yet to see any of them use them

> Do you use cloud dev environments are have you stuck with local?

Our local machines are far more powerful than the instances we pay for in the cloud, so we prefer to do development locally. It's also easier to test changes real time with hot reloading than it is to re-deploy over and over again, though my boss tends to do just that.

> What is the size of your team / company

50 employees, 8 engineers