The Software Development Practices This Founding Engineer Swears By

by Alton Zenon III
November 19, 2019

No two engineering teams are the same.

Whether they’re powered by five software developers huddled in a garage or 500 engineers spread across the globe, every company’s engineering unit operates with a unique combination of practices, tools and strategies that breed success for their business. 

Engineers at Etsy push code through on their first day — albeit small, inconsequential changes — to get early hands-on experience with the company’s development process. If eventually, larger changes take place that aren’t ideal, the company also practices blameless postmortems. At the DevOps platform GitLab, engineers are organized into small, specialized teams, where staff are given a project and are encouraged to work through its entire stack, regardless of whether they are trained on the front end or back end. Another staff member then checks the work and approves a code merge. 

At Upbound, Founding Engineer Jared Watts shared some behind-the-code details about their engineering practices, which help companies scale and optimize their services on multiple public and private cloud networks. He stressed the importance of a review process through static analysis, unit testing and other checks, which help create bug-free solutions. 

While the easily-alterable Golang is their language of choice, Watts said a culture of collaboration is what keeps everyone in sync. 

 

Upbound team in group photo
upbound

How does your software development team define their best practices? 

Having a review process with quality gates is really important. For instance, we run unit and integration tests, do static analysis and code coverage, check code smells, perform linting and do other reviews. I also think it’s a great idea to use some of the existing services out there, like SonarCloud, instead of writing homegrown scripts and doing it all yourself.

To know whether some services are good, you have to take them for a trial run. You need to see how comprehensive their checks and tests are, and you can also see what the rest of the development community is excited about.

Diverse perspectives can help offer solutions where people can be prone to get stuck in their own heads.”

 

What role does your company culture play in determining your best practices?

We have a culture of supporting each other. It’s important to collaborate and pair up with other people, often before you even get to the code review process. This is important because you get multiple perspectives — a checks-and-balances approach — and the collaboration of your efforts is greater than the sum of two separate parts. Diverse perspectives can help offer solutions where people can be prone to get stuck in their own heads.

 

How does your team balance a need to incorporate best practices into their work with the desire to try and test new methodologies and strategies?

We are heavily involved in the Go ecosystem and it has a very normalized set of tools that naturally promote consistency through their behavior, format, codebases, tests and best practices. This makes it easier to get into a new code base, contribute to it or review it. One of the things I love about Go is that it’s easy to identify things that stand out or don’t belong as it relates to fixing bugs.

Also, the concept of observability and troubleshooting is significant because, in production, you will always run into a case you didn’t prepare for that will cause bugs. Anything you can do to lower the cost of finding the root cause of that issue will help you get those bugs fixed. Instrumentation, eventing and logging are critical for observability. 

In terms of cost, it can get very expensive the later you wait to fix a bug or identify it in the software development lifecycle. For instance, finding an issue in a unit test can be fixed from an engineer’s machine inexpensively, and in a staging environment, it’s slightly more. But the last place you want to be finding and fixing something is in production. There are trade-offs there around the speed of delivery, but in general, early quality assurance focus on test scenarios and coverage is very important. 

 

Jobs at Upbound

Seattle startup guides

LOCAL GUIDE
Best Companies to Work for in Seattle
LOCAL GUIDE
Coolest Tech Offices in Seattle
LOCAL GUIDE
Best Benefits at Seattle Tech Companies
LOCAL GUIDE
Women in Seattle Tech