I work on a product that runs on a variety of architectures, with code split across many GitHub repositories. We have a complicated build process. When making changes, I often struggle to find a way to run those changes efficiently (i.e. outside of the CI process). This is made worse when I need to make changes that also change the build process or need to run debugging tools like GDB.
When I onboarded, I was told that everyone has their own setup by people who've been on the team since its inception. It seems like people newer than myself have figured it out, even with how messy and changing everything is. However, I've been here for over a year and the team tends to work quite independently. Occasionally, folks will be quite helpful for a point or two, but generally everyone's stretched a bit thin and tends to focus on their tickets. My manager has also rebuffed any requests for collaboration or mentorship since I started, saying that I'm expected to be independent to show I'm ready for the next level. He did say I could that I could try to change the team's culture to be more collaborative if I wanted to take initiative, but that's not what's expected of a software engineer, especially if I want to do well and get promoted.
This question may be more about how to correctly get answers answered when you're no longer new, but I also feel that building (CMake, Docker, environment setup, package management, etc.) is slowing me down. Are there good processes for getting more efficient at building components/systems and unblocking yourself faster?
My first thought is to lead by example. Changing culture is hard, and it's not reasonable to come in and ask people to change the ways they're so used to (in your team's case, it's changing from a more "lone wolf" style to a more collaborative one).
In your scenario, you mentioned everyone has their own setup to build stuff.
but I also feel that building (CMake, Docker, environment setup, package management, etc.) is slowing me down
This is a classic big company thing - It was especially bad for me back at PayPal.
As a junior engineer, it will be very difficult to make these processes faster, so I recommend trying to "hack it" by finding something to do while these run. If the fresh build takes a long time, maybe you can start every morning with a rebase + fresh build and then use that time to review PRs? This sets you up to be more productive the rest of the day and enforces a healthy habit of doing code review daily.
Thanks, Alex! I really appreciate you thinking through this question and providing guidance.
I'll try to find ways to share productivity tips with my team and lead by example. That's a great idea to get the fresh build done each morning (or, if needed later in the day, to try to schedule other tasks for the initial build). Thanks again!