Hello, all. I’ve recently started a new role as a research software engineer for a neuroscience lab, after a few years in industry (still pretty junior) and I’m having trouble adjusting to the environment. From my understanding I’m the first software engineer brought on in ~2 years, and that has brought some friction. But beyond that, the habits and nature of researchers/scientists/academics is… well, odd to me, especially in comparison to a traditional software shop. I am quite fascinated by the research, and it is groundbreaking, so I intend to stay for some time, but I am still looking for guidance.
Has anyone gone through this transition, in particular as a relatively junior dev? Just looking for any thoughts or advice, that might help me make the best of a new role, and adapt to a research environment. Thanks.
1) do some reading on the field, hopefully something written for the non-Ph.D. student; you will never be able to keep up with the pros but it will help you to understand what you are being asked to do
2) no one cares about your software's internals but you, probably, which has two major consequences: no one is interested in the great thing you did to the internals, and no one will keep you from getting lost in a rats nest of unmaintainable code.
3) you will need to do a bit of "code for you", stuff like unit tests and refactoring for better readability and maintainability, but no one wants to wait on you doing before you do the thing they want done. So, just allocate something like 25% of every task or project to that kind of thing, as just administrative overhead. Don't bother telling anyone else about that, except at a very high level if they ask. It's like a chauffeur getting the limo an oil change or other maintenance: the boss just wants to say "get me from A to B", and you have to make sure that the stuff to keep the car running in good order gets done without him having to tell you to do it.
4) you will not be able (or allowed) to do as much of (3) as you want, just do what you can