Odds & Ends

What’s Your Favorite Engineering Tool? Featuring Verdigris’ Jonathan Chu

What’s your favorite engineering tool? is a Q&A series where we explore how some of the most successful leaders at startups and large companies use their resources to accelerate their product development. This week, we’re featuring Verdigris‘ Co-Founder & Chief Technical Officer Jonathan Chu

Jonathan is the CTO and Co-Founder of Verdigris. He has co-authored several publications and holds patents on specialized silicon algorithms, deep-packet inspection, and robotics. Jon was a principal scientist at IBM and holds dual masters in CE and Public Policy from Carnegie Mellon.

What is your favorite engineering tool?

This is more of a practice than a tool, but we’ve found Continuous Integration (automated testing for development releases) to be extremely valuable.

Continuous Integration allows our team to move fast and break things… without actually breaking things. We protect our code with automated testing of isolated units. Whenever new code is pushed to the central repository, the tests are automatically run and any failures force a rejection of the code commit. We can identify the specific failures quickly, then debug and fix the issues before they reach a production environment.

An example of what a continuous integration cycle looks like.

HOW HAS CONTINUOUS INTEGRATION  HELPED ACCELERATE YOUR DEVELOPMENT EFFORTS?

Testing and continuous integration requires a large investment upfront, but it also pays huge dividends later on. It helps us protect the features in our product, and develop with confidence that the product (still) works for all cases. It allows us to cascade code into staging and production environments without going through a checklist of things to verify before release.

HAVE YOU USED CONTINUOUS INTEGRATION IN AN UNCONVENTIONAL OR CREATIVE WAY TO ADDRESS YOU AND YOUR TEAM’S NEEDS?

We’ve actually attempted to extend this paradigm across our entire stack. For example, our embedded and machine learning code also goes through tests and regression before release. We have even implemented it outside of the engineering organization, building self-testing into our operating model and accounting books to reconcile differences and find mistakes before they impact our business.

IS THERE A SPECIFIC FUNCTIONALITY OR USE OF CONTINUOUS INTEGRATION THAT YOU WOULD LIKE TO IMPLEMENT?

Our hardware footprint prevents us from fully testing our embedded code in software. We are currently trying to automate and load our test suite onto a set of physical test rigs. This will save us time when manually testing hardware before we release firmware updates.

 

Thanks for reading this installment of What’s Your Favorite Engineering Tool. Interested in getting these in your inbox every few weeks? You can subscribe here. Would you like to have your favorite engineering tool featured? Send us a message.