Ensuring that changes to legacy systems didn't affect production stability was taking too long.
Thorn builds technology to defend children from sexual abuse. Their work focuses on finding victims of child sex trafficking quickly and eliminating child sexual abuse from the internet. Thorn partners with tech companies, law enforcement, and other NGOs to build products to find vulnerable child victims faster. Thorn's software has helped law enforcement reduce investigation times by 60%, ensuring that more children are found, faster.
Determining which code relied on legacy architecture was difficult. Developers took too long to ensure that changes to legacy systems didn't affect production stability.
“Ensuring that changes to legacy systems didn't affect production stability was taking too long.”
Over 9,000 officers in 38 countries rely on Thorn to identify child victims of sexual abuse. Any downtime reduced Thorn's ability to identify these children.
Tech debt and upkeep of legacy code were problematic. Previous attempts, such as cloning all repositories locally and using grep to find references, were inadequate when considering simultaneous development by multiple teams across many different projects, repositories, and branches. Determining if all the different microservices were properly in sync when removing legacy application code was painful.
Thorn Software Engineer Jacob Gillespie deployed Sourcegraph and synced Thorn's entire list of repositories within minutes. With Sourcegraph, Thorn could search over the contents of every repository, in any or all branches in seconds. Sourcegraph code search gives Thorn the ability to find references to deprecated systems.
Sourcegraph is now essential to their code review process.
“In pull requests, team members include links to Sourcegraph code search to prove all references to a deprecated system have been removed, giving the reviewer confidence that the code is safe to merge.”
Thorn's developers removed or modified deprecated systems, eliminating huge amounts of tech debt. This benefited all areas of the architecture, including not only application code, but also build, deployment, logging, and monitoring systems—any tool that supported the deployment and uptime of the application.
Using Sourcegraph provides critical support to Thorn's mission. Every start-up has to make choices about when to rebuild their systems and when to move forward accruing technical debt. Modern microservice architecture makes the application deprecation process challenging.