Coding mistakes can cost a business dearly. More than just a typo made by a developer, some mistakes made in software development can bring serious consequences, like the trading glitch that cost Knight Capital $440M.
Eli Hooten is the CTO of Codecov, a tool used to check the work quality of software developers. The company name is a reference to the developer term “code coverage,” a metric and methodology of testing individual portions of software.
Eli explains the use of Codecov to Launch Engine, saying, “So, when you write software, you write tests for your software. And, all a test is, is another small piece of code that… executes the code you just wrote for the function of your product, and makes sure that it behaves properly.”
Giving readers an example, Eli says that if he wrote a piece of code that adds two numbers together, like “X+Y=Z,” then that code’s performance may be tested by inputting variables into the code. So, for the sample code of “X+Y=Z,” if Eli were to input the code variables as “2+3” and get the executed output of “5,” then he could test whether or not his piece of code worked.
“When you’re testing software, you need to understand how much of the code you have written for your business is tested,” he says. “So, if I have 100 lines of code I have written for my business, I would like to know that I had tests for all 100 lines. If anything changed in my business code, I would know about it.” This “confidence metric” is understood by developers as the number of tested lines of code divided by the total lines of code, and lets entities know how well their code is tested.
Eli says that a lot of problems emerge from the practice of code coverage, and that the individual processes used by developers might differ from one employee to the next. As a tool, Codecov comes into play as a layer of code coverage that handles some of the code coverage testing for developers in a way that’s standardized from both one employee to the next, and from one company to the next.
So, instead of individual employees within different companies all trying to recreate chicken noodle soup based on their own practices, Codecov gives users a standard list of ingredients and cooking directions so that they can all have the same baseline recipe.
After joining the company at the tail end of 2018, Eli says that Codecov has seen a lot of growth. From a personnel standpoint, the team has grown to 20 full-time employees and several contractors spread across the globe. In addition, Eli says that the demand for standardized code coverage has bumped the Codecov userbase and revenue “substantially.” Over 1M software developers now use Codecov, including Amazon Web Services (AWS) CodeBuild.
Since Codecov is a software development tool designed for risk management, Codecov is in the middle of ratcheting up how it is able to reduce the risks attached to software development outside of just testing code. For 2021 and beyond, Codecov will look into other risk mitigation strategies, including how code is deployed, as possible products or services that it can sell.
As an example, say an engineer wants to ship (deploy) a code change from the testing environment to the production environment. This raises questions like: “How important is that change?” or “How old is the code?” or “How often do users interact with this particular section of code?” The questions might dictate how the code gets deployed in the first place, and what additional risks are lying in wait for a potential code change. Codecov’s proposed additional features would explore making questions related to code risk easier to answer—and with greater technical oversight. Larger companies with more software developers would be able to use these technical safeguards and spend more time working on other parts of the development process. As a result, software that changes constantly might get recommended updates deployed faster through such processes.
Eli says, “Just because we’re called ‘Codecov’ doesn’t necessarily pigeonhole us into a code coverage company. We don’t just have to be about code coverage.”
Since businesses are investing more in technology, removing the risk of software changes means preventing an armada of potential disasters from hurting a company, including theft, data breaches, or even loss of human life due to an unforeseen software failure. Eli tells Launch Engine that since Codecov is one of a handful of companies dedicated specifically to code coverage as a primary function of what they do, they’re able to serve the space well.
“It’s pretty easy to do code coverage. It is almost impossible to do it well,” Eli says to illustrate the difference between Codecov and other tools made for such testing. “It is very, very hard to build a product that’s incredibly meaningful around code coverage in a way that Codecov builds it.”
A few things have helped Codecov succeed as a company. Years of experience and single-minded dedication to the code coverage process certainly did the trick. Eli says that there’s been an upshot in the number of companies acknowledging code coverage as a valuable form of testing, since some entities in the software world don’t see the value in such a methodology as a software development tool.
Besides its focus, another advantage Codecov has is that it’s been an advocate for remote working options since Eli joined the company. The company has been entirely remote for years, which meant that they were ideally suited to maintain productivity through the pandemic.
“I am drawn to fully remote companies because I like this idea that success doesn’t have to come out of certain locations in the world. We don’t have to be in Silicon Valley. We don’t have to be in New York City or Austin… If you choose to be remote, you can uplift and make people successful anywhere in the world,” he says. Eli believes that since software has the unique characteristic of working anywhere in the world, software companies ought to honor that characteristic and not restrict their employees geographically. He notes that diversity in location can equal diversity in perspectives, and that those many values can help a company become more successful—particularly since all software is a shared experience.