In the latest edition of our day-in-the-life series, we hear from Chris Mitchell, Software Engineer about his journey to the engineering team at Ginkgo Bioworks.
How did you become involved in your industry and what led you to work with Ginkgo on the software engineering side?
I actually don’t have a formal education in computer science. I earned my Ph.D. in Biochemistry, Cellular and Molecular Biology from Johns Hopkins and I’ve been a self-taught programmer since the age of 16. Throughout my academic career in the sciences, I spent a lot of time in the lab and became closely acquainted with the huge amount of data and repetitive manual tasks that come with running experiments. For me, software was the perfect way to bridge two worlds I was closely ingrained in to solve some major inefficiencies I was experiencing first hand in the lab. I landed at Ginkgo after someone from the company found my GitHub page and saw some of the tools I was building – new analytical tools for mass spectrometry and sequencing data, as well as a project to enable reproducible data science. After meeting the team at Ginkgo, I was blown away at how quickly they understood the nuances of my work and the caliber of the team. So began my formal entry as a software engineer in the life sciences.
Tell us a little about your role and the impact you have at Ginkgo.
On a fundamental level, Ginkgo could not exist if it weren’t for automation, and automation can’t exist without software. Thanks to the level of automation Ginkgo has brought to the lab, we’ve reached new heights in scale, iteration, data and reproducibility in the synthetic biology industry.
The software engineering team at Ginkgo works with people across a number of different areas, including product management, lab work, analytical pipelines, sales and more. Software is the underlying technology that allows our platform for organism design to operate at such a scale, so it’s essential that we are constantly communicating with every team to ensure things are running smoothly, we’re addressing bottlenecks quickly, and building for the future.
To illustrate how the engineering team’s work affects the larger mission at Ginkgo, I can share a little about one of the projects I’m working on right now. We’re currently working to find a better way for our different users to interact with sequencing data. Sequencing data is used at nearly every stage at Ginkgo: the DNA Fabrication team uses it to verify synthesized sequences, the Build team uses it to verify strain constructs, and the Test team uses it to understand how the transcriptome and other genomic elements contribute to a given phenotype. There are also other indirect users such as data scientists trying to build models to improve future engineering efforts.
Thus, we have a diversity of users – some work with 10,000 samples and some only work with 3-4. It’s really challenging to build a UI and analytical capabilities that capture both ends of the scale in an accurate and consistent way but it is incredibly important. Users need to make informed decisions with as little margin of error. To enable that, we need to build software that permits quick, global insights into their data but also provides the ability to drill down to the most basic elements of a given data type. Users also need to be able to analyze and refine parameters
without rerunning entire workflows that can take hours to complete.
Many people would probably be surprised to hear that you’re a software engineer at a biology company rather than a tech company – what’s that experience been like for you?
A common problem for any software is being built on legacy infrastructure that makes it hard to adapt as technology evolves. Luckily, Ginkgo’s founding team made some smart decisions early on about which stacks we’d build the technology on and we’re continuing to reap the benefits on the developer side. Since then, the leadership and culture at Ginkgo has continued to embrace change and as a developer, I feel empowered to explore and implement new technologies.
For instance, when I came to Ginkgo we were using VMs to run our applications and now we are entirely Docker-based. Similarly, all our UI development is now in React and GraphQL to stitch our data together. These choices have made it so we can standardize the developer experience in terms of spinning up services but still allow some exploration on the underlying tech stack. For example, we have microservices written in Ruby on Rails, Django, Node and Go, which largely were chosen on the basis that the language was the best suited for the particular microservice’s task.
On a more philosophical level, part of the reason why I love working on Ginkgo’s engineering team is that we are building an entirely new frontier. So much of today’s developer role is focused on making something run a half a second faster or increasing ad engagements by 2 percent. Instead, I get to apply those same frameworks and technologies to solve novel problems in synthetic biology, like how to predict the metabolic network for a piece of genetic code.
How have you seen the role of the developer evolve?
The biggest change I’ve seen over the years is a stronger desire from developers and engineers to want to leave a lasting legacy with their work. People in this industry are realizing the power and importance of the technology they work with and want to put those efforts toward bigger problems that can change the world. You’re starting to see developers looking for opportunities where they can have a larger impact and applying their skills to solve big problems in healthcare, sustainability, autonomous vehicles and more.