If you've ever loaded a moving van, you know it can be a bit like playing a game of Tetris as you maneuver boxes to take full advantage of your space and not waste trips. Now imagine playing this real-life Tetris game with thousands of trucks around the world—that's the challenge tackled daily by Coyote Logistics. The third-party logistics provider helps customers with freight to ship (shippers) connect to trucks and drivers in their network (carriers) that are looking for cargo to move. Through this process, they help shippers find the most efficient way to move their freight and help carriers access opportunities to keep their trucks full and moving.
Technology is at the heart of how Coyote Logistics solves these optimization problems. "We don't sell software, but software underpins nearly everything we do to deliver value to customers," Director of Software Architecture and Delivery Jon Kose explains.
That means the company has to stay ahead of technology trends. Last year, it started migrating to GitHub to take advantage of its platform of cutting-edge tools like GitHub Copilot, GitHub Codespaces, GitHub Actions, Dependabot, and GitHub Advanced Security. About 80% of the company's code has been migrated to GitHub. "It's great that we've been able to move piece-by-piece," Kose says. "It doesn't have to be a 'big bang,' where everything changes for our users overnight. We can take our time to move deliberately and focus on the repositories that GitHub’s features will benefit the most."
GitHub Copilot is one of the newest tools Coyote Logistics adopted, and it's already saving developers time and effort, enabling them to focus more on high-value work and less on nitpicky details. "It used to take me twenty or thirty minutes to write a Terraform configuration," Cloud Delivery Engineer Gavin Borgeson says. "Now it saves me ten minutes." Once Borgeson has written the base configuration, GitHub Copilot is able to fill in the rest of the details.
With GitHub Copilot, now we can code as fast as we can think. The time it saves by keeping us focused is immeasurable.
Enterprise Architect Chris Taylor says that some of their developers were initially skeptical, but quickly realized that GitHub Copilot makes their jobs easier and more efficient. He compares it to having an extra arm. "With GitHub Copilot, now we can code as fast as we can think," he says. Plus, it removes the need to context switch between writing code and looking up details. "Instead of having to open a browser, search for something in Stack Overflow or Confluence, and then go back to your code editor and figure out how to incorporate what you learned, you can just generate what you need with GitHub Copilot. The time it saves by keeping us focused is immeasurable." Copilot has energized Coyote’s developers, because now they can really focus on innovating, rather than sinking time into less rewarding tasks like writing and debugging regular expressions.
The company's developers are already exploring the experimental features found in GitHub Copilot Labs, such as Brushes, which enables developers to transform code in a variety of ways, including automatically cleaning it up to adding types. Even non-developers are getting in on the fun. "People who never thought they would code are now coding," Taylor says.
All the time we'd have to spend going back and forth with a developer setting up a new custom workflow is compressed significantly with GitHub Actions.
GitHub Actions is another massive time-saver for Coyote Logistics. Developers can build their own automations to solve their individual needs, or choose from several pre-approved actions with compliance policies baked in, instead of engaging in a lengthy back-and-forth process with the delivery engineering team. Taylor estimates it saves the delivery team around an hour per day per developer, freeing them up to focus on mission-critical CI/CD pipelines used across multiple teams. "All the time we'd have to spend going back and forth with a developer setting up a new custom workflow is compressed significantly with GitHub Actions," he says.
Meanwhile, Borgeson's team uses GitHub Advanced Security to reduce the amount of manual code review they must do. For codebases not hosted on GitHub, every single pull request has to be manually reviewed, which can mean dozens of code reviews per day. But, for repositories on GitHub, his team can use Advanced Security to flag pull requests with potential issues, while automatically approving low-risk changes. It's already resulted in up to a 50% reduction in manual reviews for those code bases.
Likewise, Dependabot makes it trivial to resolve known security issues in dependencies by automatically generating pull requests with fixes. “Dependabot gives visibility into security issues with our code and helps our managers understand when they need to step in,” Software architect Scott Atkinson says. Dependabot doesn't just make Coyote Logistics’ code more secure. By automatically keeping dependencies up-to-date, Dependabot also prevents build issues or other problems that arise when developers might be using different versions of the same dependency.
Employees across the company are also using Codespaces to avoid manually setting up local development environments. Atkinson says Coyote Logistics was considering building its own container management solution when Codespaces came along, but he found that Codespaces provides a far better management and developer experience than local development environments without the need to invest in custom tooling.
"With Codespaces, we don't have to walk all of our developers through configuring a local environment for a particular application," Atkinson says. "Once it’s running, you can share it and anyone in the company can use it. It's perfectly reproducible." That's particularly useful for quality assurance teams that previously spent a fair amount of time setting up an environment just to run a single 15-minute test. Codespaces also cuts down on time lost from context switching, as developers can move from one development environment to another with ease.
"Codespaces makes training much easier," says Enterprise Architect Justin Ivins. "I don't have to make sure each person downloads a local container management solution and unzips all the right files to the right locations. They just spin up a Codespace, fire up some containers, and we can get started right away."
Atkinson says he doesn't do any local development anymore. Nor does he bring his work laptop home with him. "I just log in to a Codespace when I need to do something from home and make it happen," he says. "It just works. I hardly ever have to rebase anything anymore." He expects that most of the company will follow his lead within the next six months.
From GitHub Copilot to Actions to Codespaces, what started as a piece by piece migration has paid off for Coyote Logistics. "The small value-add features really opened the door for our developers and increased our momentum. The potential for returns in time savings was realized very quickly," Atkinson says.
Developer experience is often forgotten, so having tools like GitHub Copilot for developers has made us more excited to come to work and innovate. It's brought new life and energy to our teams."
That value goes far beyond saving developers’ time—they're also happier. "Developer experience is often forgotten, so having tools like GitHub Copilot for developers has made us more excited to come to work and innovate," Taylor says. "It's brought new life and energy to our teams."