Skip to content

What is this?

I was listening to the podcast episode Academic software | OMGenomics podcast and they pitched an idea that was near and dear to my heart.

The idea would be that instead of putting the support purely on the Creator scientist or on their lab that they are about to leave because they’re finishing their PHD right now or their postdoc instead of putting that there and also like the software might be kind of crappy and so on so I was thinking let’s have a program kind of like Teach for America that trains software Engineers by having them refactor and improve academic tools and maintain them oh I love that yeah so it’s like you know it’s like a way to train software Engineers more seasoned software Engineers like us I guess or like your average worker at the big tech companies could have a lot of fun doing this they can mentor these like uh trainee software Engineers on best practices like giving them ideas for how they could like oh how can you make this web app more lean so it’s front-end only how can you like do all this and you involve the original scientist Creator so that they can also learn how to make the software better in the future so they don’t like keep repeating the same mistakes over and over again like they can learn to make better software yeah and I mean in some cases you could even skip over the training program and just have people like at Google or Microsoft or something like helping engineer yeah just like mentoring scientists who are building software so that when you or I are like starting out and we’re just like I don’t really know how to do this we could like have a mentor who knows how to make good software that could just like point us in the right direction even that would be an improvement right yeah and just like I haven’t seen any programs like that but I feel like both sides would benefit a lot from that yeah and that would I mean the fact that it would be like a volunteer basis would solve the issue that no one

Key Ideas

  1. Academic software often lacks proper support, especially when the original creator (e.g., a PhD student or postdoc) leaves the lab.

  2. The proposed solution is a program similar to Teach for America that trains software engineers by having them refactor, improve, and maintain academic tools.

  3. Seasoned software engineers from big tech companies could mentor trainee software engineers on best practices and help them optimize the software (e.g., making web apps more lean and front-end only).

  4. The original scientist creator would be involved in the process, allowing them to learn how to make better software in the future and avoid repeating the same mistakes.

  5. In some cases, the training program could be skipped, and experienced engineers from companies like Google or Microsoft could directly mentor scientists who are building software.

  6. Having a mentor who knows how to make good software could significantly help scientists who are just starting out and lack software development expertise.

  7. Both sides (software engineers and scientists) would benefit greatly from such a program.

Overall, this project is just one way of addressing the common problem of poorly maintained and suboptimal academic research software by leveraging the expertise of seasoned software engineers to train and mentor both junior engineers and scientists in building better software.