Pros
- Your managers will always be technical and likely hold a PhD. They know what you are working on and can offer meaningful guidance. - The problems you encounter are real and difficult and you will never see the same thing twice. - Since it's an engineering research institution, your coworkers are curious, can think outside the box, and produce usable, real solutions. As a result, you will have very interesting conversations, both professional and personal. - All the state-of-the-art technology and practices are embraced and implemented so you will never feel like you are becoming rusty. - Taking vacation or sick time off feels more like a notice than a request. - You have a lot of autonomy to think and work on solutions you are building. - Experimentation is encouraged and you can (and should) propose and implement all kinds of ideas you might have. - The depth of knowledge needed to solve problems inspired me to pursue a Master’s degree in CS just for fun and challenge (I would never have imagined that a few years ago.)
Cons
- Every day will count toward whatever you are building, so there is not much “chill” time. You need to decide if you prefer a corporate job where there’s more meetings, less engineering, and your impact is smaller, or a role at CUBRC where you have 7+ hours a day of pure coding time, almost no meetings, and your individual impact is larger. - Science doesn’t always follow a direct path. You might build something for an unclear reason or the feature gets discontinued or thrown out. Its requester might have just wanted to see if it actually could work or how it looks if it was created. This is just the nature of research. For this reason, you should focus on the satisfaction of when your contributions are used and the skills you attained building the software.