Research engineering tips for SWEs. Starting from a more SWE-based paradigm on writing 'good' code, I've had to unlearn some stuff in order to hyper-optimise for research engineering speed. Here's some stuff I now do that I wish I'd done starting out.
Use monorepos.
Experiment code as a journal.
Refactor less (or not at all).
Good SWE practices. There are still a lot of things that SWEs do that I think researchers should do, namely:
main always has working code.main. Makes your commit history easier to read. My current setup
Collaborate via PRs. Sometimes you'll need to work with other people in the same codebase. Here, only make commits through PRs and ask for review before merging. It's more important here to apply 'Good SWE practices' as described above.
Yeah, I agree with all this. My main differences are:
Generally i think there may be a Law of Opposite Advice type effect going on here, so I'll clarify where I expect this advice to be useful: