Consider working on genomics

Genomics needs more talented software engineers.

There is a significant gap between how software is currently developed in this space versus how it should be developed. The vast majority of genomics-related software is not written with speed or reliability in mind. Too often, projects have no documentation within the code itself and no tests. Instead, a single individual who built the tool and has worked with the code since its inception is solely responsible for ensuring that the results "still look good" between releases (in an ad hoc manner, no less)—a claim that I think is incredibly generous given the breadth and complexity of evaluating genomics results. This state of affairs makes it difficult for anyone other than the original author to contribute to these code bases, further cementing the one-maintainer policy.

This is not a good position for our field to be in. Many of the projects that are critical to the foundation of genomics are reaching or have eclipsed the ten-year mark. How much longer can we expect these individuals to single-handedly maintain these code bases? Further, without repeatable end-to-end testing, how can we be sure results aren't shifting over time in ways that are detrimental? Of course, this would not be the fault of the individuals who maintain the software, who are often brilliant: it's just simply not fair to expect individuals to ensure this consistency using their own, ad-hoc processses.

This field is ripe for innovation, particularly around the way we develop software, and I believe a revolution of sorts is needed to ensure the future viability of genomics at scale. Much of this innovation will likely be driven by software engineers who come in and learn the domain. From my experience, what works incredibly well is a partnership between biologists and software engineers: the biologists first come up with the first concept of the tool, which is purely focused on ensuring good results. After this first iteration is completed, engineers then come in and rewrite the tool using modern engineering practices with things like speed and reliability in mind.

So, if you're a software engineer who enjoys working on the cutting edge and wants to put your talents to work on something impactful, my charge to you is to consider joining the field of genomics. Contrary to when I started, there exists some relatively good material for testing out the waters in this fascinating domain (for example, just last week we published the learngenomics.dev site aimed at teaching software engineers the basics of genomics and bioinformatics). Often, it's not required to know the domain before you join a group, and they will teach you on the job.

For those interested, here are the places hiring in this space that I am aware of. Please reach out to me on social media if you know of more places that are hiring in this area. Note that this is not an endorsement of any particular organization or company, this is simply listing organizations that might be hiring for awareness—you'll have to do your own due dilligence to determine which one might be right for you.

In alphabetical order,

Edits