How important is scientific background for bioinformatics development?
Why are we trying to understand genome sequencing?
How does machine learning help scientists analyze molecular mechanisms and functions?
What is retrosynthesis?
I would never think that knowing answers to those questions would help me be a good developer. But here I am, writing meaningful bioinformatics software with other science graduates and combining the two fields I’ve studied in my academic and professional life. So let’s talk about how having a scientific background helps our team build cutting-edge bioinformatics software.
How did I get here? My short story of becoming a bioinformatics developer
I think it’s fair to say that no one just wakes up one day and says, “I’ll become a bioinformatics developer.” In my case, I don’t think there was ever any actual decision. Rather than that, it was a consequence of a few choices. The first one was majoring in chemical engineering, which greatly expanded my knowledge about chemistry, biotechnology, mathematics, and even economics. During my studies, however, I started programming, and by the time I finished, it was clear to me that it was what I wanted to do as a job.
But the world of science caught up to me anyway when I found a job offer from Code Poets 3 years ago. They were looking for a developer for bioinformatics projects. It was a perfect fit. By the way, we’re still searching, so you can apply here.
What are the critical characteristics of bioinformatics compared to other industries and types of programming?
There are a few crucial factors that make bioinformatics a truly one-of-a-kind programming job. Perhaps the most important is the end-user persona. Most of the time, bioinformatics software is supposed to help scientists in fields such as proteomics, immunoinformatics, DNA sequences, genome analysis, evolutionary biology, and more. In order to create beneficial software, developer teams must understand scientists’ challenges, ongoing issues, and daily processes. It’s immensely helpful to understand their language and the way they think. The task is far from straightforward, especially for those who have never stepped their foot in the laboratory.
Another aspect is the need to analyze enormous amounts of data and the use of modern technologies. Bioinformatics is an incredibly data-heavy field that greatly benefits from cloud computing, AI, machine learning, and the free flow of information between companies and academics. Therefore, one of the significant challenges is to make those processes as fast and efficient as possible, so knowing those technologies is often instrumental. But besides the cutting-edge concepts and technologies, it’s good to know some good ol’ Python.
The use of Python for science-related software
Over the years, Python has become a go-to programming language for science. It’s relatively easy, it has an extensive base of libraries and even a specific set of open-source tools for bioinformatics and computational biology called BioPython. Therefore, a vast majority of bioinformatics and cheminformatics software is developed in Python, and that’s why we specialize in it. I even wrote an entire article about it a few months ago.
Speaking the language of science
Expertise in programming languages makes us good developers, but the scientific background, knowing the terminology, understanding of biological processes, and laboratory workflow make us good bioinformatics developers. Those aspects make the development process much faster, more efficient and help avoid mistakes.
Sometimes elementary but time-consuming mistakes.
During our work with L7 Informatics, we stumbled upon a piece of software that was developed by someone without a scientific background. It was a management tool for lab workers. Technically, there was nothing wrong with the code itself, but it wasn’t suited well for its purpose. Why exactly?
Well, anyone who ever worked in a lab would know that the most popular test-tube rack has 96 slots, but the developer obviously couldn’t know that crucial fact and made it for just 20. For scientists, it’s basic knowledge, so the lack of that knowledge resulted in hours of extra work, because the tool had to be redesigned.
Little details like this stack up during everyday work. A team that lacks the experience and knowledge, no matter how good it is, will need much more time to learn the ins and outs of scientific processes.
Another crucial aspect is communication. During any software development project, the agency must understand the client’s business challenges and build the software that solves them. With bioinformatics projects, those challenges include research, chemical engineering, and other biology and chemistry-related issues. Having a team of science-savvy developers makes this task much more manageable and faster. We’re able to grasp the idea much quicker because we understand the domain and speak the same language.
Is it necessary to have a scientific background to build bioinformatics tools efficiently?
Yes and no. The truth is, any capable developer can work on bioinformatics software to some extent, but it’s necessary to have at least one member in a team who understands precisely the purpose of the project, can communicate with the client, and lead the project in the right direction. We couldn’t imagine working on projects such as Synthia efficiently without our academic knowledge and previous experience with life-science software.
A general team-building strategy that has worked for us greatly is creating a diverse group of people with different experiences and skillsets. It’s fair to say that the search for an experienced full-stack developer with Ph.D. in biology has much lower chances of success than finding 3 or 4 team players that specialize in different areas of science software development. Additionally, having just one person with such expertise tends to increase their responsibilities, and therefore, risks.
Working with a science-savvy team
In our case, we have 6 developers with science degrees including myself.
Katarzyna Rzęsikowska has a Ph.D. in chemistry with a specialization in computational chemistry. She started programming by necessity during her Ph.D. studies and learned that it’s right up her alley (even more than chemistry). Much like her friend from the University, Joanna Wojnarska, who also had very little programming experience next to a super-impressive academic portfolio with Ph.D. in chemistry and two master's degrees: in physics and chemistry. Another scientist who stumbled upon programming is Marcin Sołek, who initially wanted to find a field that would help him put his passion for genetics to use. Bioinformatics turned out to be his answer.
Andrzej Drabarek, on the other hand, started programming long before he finished his Master of Science in Chemistry. Similar to Jakub, who has been a computer science engineer before deciding to get his Master’s in bioinformatics.
There are many different paths to becoming a bioinformatics developer. What matters, in the end, is teamwork, synergy, and the ability to communicate. Speaking the same language of science makes the job much more straightforward.
The value of bioinformatics experience
Having an academic degree and coding skills is one thing, but there’s an immanent business aspect we can’t forget about when it comes to software development. The experience from previous bioinformatics projects allows us to be active participants and consultants in a project, in addition to just executing the client's idea. Especially since we’ve worked for both startups and big corporations. Moreover, in the case of Synthia (formerly Chematica), we’ve started working with the company when they still were a startup and after some time, the product was purchased by a large corporation, Merck.
Working on such fascinating projects that genuinely contribute to science and help solve scientists’ problems is addictive. So, if you’re looking for a skilled bioinformatics development team that will understand your domain, we’re here for you. Let us know about your project.