Trace Id is missing
June 08, 2023

STOPWATCH leverages Azure, Visual Studio, and .NET Core to Deliver an Omni-Commerce Solution

Upon its founding, STOPWATCH needed a platform and toolset that would enable it to go cloud-native from day one—so that it could quickly and efficiently deliver a solution to help consumer packaged goods companies understand how their products are being sold across every channel, from every perspective, in real time. The company chose Microsoft Azure, .NET, and Visual Studio, giving it everything it needed: fully managed services that let developers stay focused on meeting customer needs instead of managing infrastructure; a programming framework optimized for harnessing the power of both Azure services and open source; and a toolkit for pulling all of the different pieces of its solution together as a highly collaborative team.

Stopwatch

“We deal with a lot of data that changes by the hour—even by the minute—and we operate across a lot of different platforms and retailers, each with their own nuances. We need a platform that allow us to stay nimble, take risks, and quickly change direction when warranted. Put more simply, we need every advantage we can get.”

Will Brown, Principal Product Lead for Front-end and Data Discovery, STOPWATCH

Born in the cloud

Founded in April 2019, STOPWATCH helps consumer packaged goods (CPG) companies understand how their goods are being sold across every channel, from every perspective, in real time. The company’s software-as-a-service (SaaS) solution provides an “omni-commerce” approach addressing both online and brick-and-mortar channels. Trusted data and clear reports can be easily moved into a customer’s database of choice, delivered to users’ inboxes, or exported from the app for further analysis—with built-in alerting and directed actions driving immediate business results.

From its inception, STOPWATCH made the choice to be cloud-native. “We've been in the cloud from day one—we've never had any onsite servers,” says Will Brown, Principal Product Lead for Front-end and Data Discovery at STOPWATCH. “Making that decision has really enabled us to be more agile and to do things quicker than we would have otherwise.”

In choosing a cloud platform, STOPWATCH’s top priority was choosing the one that would help maximize developer velocity and empower the company to remain nimble. “We're a small team with some big needs,” says Brown. “We deal with a lot of data that changes by the hour—even by the minute—and we operate across a lot of different platforms and retailers, each with their own nuances. We need a platform that allows us to stay nimble, take risks, and quickly change direction when warranted. Put more simply, we need every advantage we can get.”

“Microsoft’s embrace of open source has enabled them to deliver a lot of really cool and innovative new things. And when an open source tool is hosted by Microsoft, on Azure, you know they’ve considered security as well.”

James Sampson, Director of Product, STOPWATCH

Choosing a platform to support organizational agility

STOPWATCH chose Microsoft Azure for several reasons, a big one being that its founding developers all had significant experience with .NET—enabling them to hit the ground running. “I’ve been a .NET developer most of my career,” says Zach Fuller, Principal Product Lead for Back-end Infrastructure and Security at STOPWATCH. “The ability to use .NET and Visual Studio to tie into Azure services and all the open source software that we can run on Azure has been a great fit for us.”

Adds Brown, “Azure was a natural extension of where we came from and where we needed to go. As we moved into the CPG space, it quickly became apparent that many of our potential customers were using .NET for enterprise-level data development. Microsoft .NET on Azure is a proven development framework and platform for the enterprise.”

STOPWATCH also liked how the broad range of fully managed Azure services would make its small development team more productive. “We knew that Azure managed services would make software development more efficient, enabling us to get more done in less time—and solve some very specialized problems very quickly,” says Brown. “Being all-in on Azure has been integral to the value we’re able to provide to our customers.”

In addition, Azure offered the on-demand scalability that STOPWATCH knew it would need. “We had to hit a very large scale very quickly, which meant that self-hosting wasn’t an option,” says Brown. “Azure provided on-demand scalability along with a pay-as-you go pricing model, providing yet another reason why it was a natural choice.”

Leveraging open-source software on Azure

At a high level, the STOPWATCH architecture can be broken down into a data import tier, a transactional tier, and a reporting tier. The web interface is written in Angular and hosted in Azure App Service, with Azure Kubernetes Service used for containerization and Azure Blob Storage used to store raw data. Data processing is powered by Azure SQL Database, with Azure Data Factory used for data integration, Azure Databricks for analytics, and Microsoft Power BI for reporting. Asynchronous processes are powered by Azure Functions, Azure Cache for Redis is used for caching, and Azure Key Vault is used for secrets management.

“Microsoft is a great choice for a managed services provider,” says Brown. “As a small company that’s working with some really big customers, we need to be able to scale quickly and confidently, and Azure lets us do just that. There are many benefits to having all of our services hosted on Azure, including the knowledge that Microsoft will always be building-in new functionality and integration features—on top of what we already have.”

While STOPWATCH can meet most of its needs using fully managed Azure services, Fuller also appreciates how the platform also provides strong support for open-source software. “Azure and open source are very complementary,” he says. “Being able to leverage open source tools and software on Azure allows us to operate faster, be more flexible, and ultimately get to where we need to be more efficiently. If we can find a really good open-source tool that helps us get from point A to point B faster, then we’re going to use it every time.”

Adds James Sampson, Director of Product at STOPWATCH, “Microsoft’s embrace of open source has enabled them to deliver a lot of really cool and innovative new things. And when an open source tool is hosted by Microsoft, on Azure, you know they’ve considered security as well. There’s virtually no chance that you’ll encounter anything malicious, which is always a bit of a concern with open source.”

A productivity boost enabled by .NET Core and Visual Studio

While Azure as a platform gave STOPWATCH the capabilities it needed, it’s .NET and Visual Studio that empowered them to put the power of Azure to use. The company started-off using .NET Core 2.1 and Visual Studio 2017 and is now on .NET 6 and Visual Studio 2022. During that time, developers have adopted several new features as they’ve been introduced. “We're using dependency injection in .NET to write better and more scalable code—and are using Entity Framework for connecting to databases in a very expedient manner,” says Fuller. “The great thing about .NET is that you can host it anywhere. We started using containers on Linux early-on, and they’ve become integral to how we deploy and scale our application.”

Several new features in Visual Studio also increased developer velocity. One such feature is Git Explorer, which eliminated the need to use other tools to explore Git repositories. “I recall when they added the Git Explorer within Visual Studio,” says Fuller. “All of a sudden, I no longer had to remember all the bash commands for GIT. Instead, I could view pull requests and see the history of a particular piece of code within Visual Studio. I remember thinking 'Wow… now I can uninstall other pieces of software!’ It was absolutely huge.”

IntelliSense—a general term for various code editing features that include code completion, parameter info, quick info, and member lists—has also been helpful. “I remember writing just a simple loop after I upgraded to Visual Studio 2022,” recalls Fuller. “As I started to type, IntelliSense started to complete my code. I hit tab to accept it, and then IntelliSense gave me a little bit more. Within a few seconds, I wrote the entire line of code by hitting tab three times.”

Support for TypeScript—a strongly-typed language that builds on JavaScript—has proven equally useful. “I write most of my server-side code in C#, a typed language,” says Fuller. “For me, trying to work in an untyped language like JavaScript can be difficult at times. With TypeScript, I can easily jump in and work on our Angular-based front-end code when needed. It’s fantastic being able to contribute and make an impact everywhere.”

Adds Brown, “Being that we’re a .NET shop, we use a lot of structured models, relational databases, and so on. The ability to keep our types in line between .NET and TypeScript gives us a huge productivity boost and is something we’ve really come to rely on in our projects.”

Hot Reload has also proven useful, enabling developers to modify source code while an application is running. “One of the few headaches about working with C# code was that you had to recompile a lot,” explains Fuller. “With Hot Reload, everything is done on the fly. You can change your code and immediately see the results, which really helps with debugging and troubleshooting.”

Fuller also appreciates how he can use extensions within Visual Studio. “I use Visual Studio extensions all the time,” he says. “Being able to tailor the IDE to the way I work helps me be even more efficient whenever I’m writing code.”

The productivity gains provided by Visual Studio 2022 extend to the company’s DevOps environment as well. “Visual Studio 2022 gives us a great feedback loop with our deployment pipeline,” says Brown. “We can access the Git Provider in Azure DevOps through Visual Studio, which makes iterating on our code a frictionless process. We’re able to stay within Visual Studio to work through our backlog and burn down our sprints, with full visibility into everything that’s going on within our DevOps pipelines. Within those pipelines, we’re using PowerShell to automate everything that we can.”

Sampson also uses Visual Studio—albeit not like the typical developer—in his Director of Product role at STOPWATCH. “I can use Visual Studio to spin-up our application and run our software, which helps me stay in lock-step with our development team,” he says. “I can see the changes they’re making to our product in real-time, without having to ask someone for a demo or wait for the changes to go through the entire development pipeline.”

Enhancing real-time developer collaboration

The company’s development toolset is also enabling strong collaboration. Visual Studio Live Share, which enables developers to collaborate in real-time regardless of location, has proven especially useful for a company that was founded soon before the COVID-19 pandemic hit and everyone had to start working remotely.

“From a collaboration standpoint, Live Share is huge,” says Fuller. “It’s helping us scale our development team in that, when you bring in new people, they need to learn the code base. Being able to sit potentially hundreds or thousands of miles apart and look at the same piece of code together definitely helps get everyone on the same page much faster.”

Such capabilities have proven especially useful when working with junior developers. “Live Share is great for mentoring junior developers; there’s really no substitute for being able to go ‘hands-on’ with them,” says Brown. “It lets us see what they’re seeing whether they’re editing code, compiling, or debugging. Of course, Live Share is also great when our senior developers need to quickly put our heads together and solve a problem.”

Microsoft Teams has also proven to be a huge collaboration aid. “We’ve used Teams heavily from day-one, taking advantage of how it integrates with things like Azure Boards and Azure DevOps work items for sprint planning,” says Brown. “Git pull requests and things like that are integrated with Teams as well. Having everything together in one place and accessible via Teams lets us have the ad-hoc discussions we need to keep everything moving forward—especially as we were forced to transition from working together in an office to everyone working remotely.”

Delivering a sophisticated solution to meet the diverse needs of CPG customers

STOPWATCH’s chosen platform and toolset has empowered its developers to deliver a unique solution that solves real-world problems faced by CPG companies. “Imagine a group of employees who work at a CPG company,” says Meagan Bowman, CEO at STOPWATCH. “They’re in different roles, such as brand management, finance, inventory control, and advertising. And in the digital age, all of those functions are intertwined—meaning those people need to work together. The challenge that we saw was that there was no software to support that.”

Continues Bowman, “When you log into STOPWATCH, you see a modularized dashboard with alerts that are designed specifically for you. Say you’re a brand manager for a dog food company. You’ll have 15 to 20 alerts every morning, representing decisions you can make that are within your purview to answer. Down the hall, the person in inventory management is also receiving 20 to 30 alerts. Our software basically builds a game theory algorithm that says, ‘If employee A makes move X, then change options for employee B to Y.’ And what that does is facilitate interactions between employees in different roles across the organization. Everybody sees their own view of the business and the executives have a consistent view over everything. We’ve heard from customers that, to get ready for a board meeting, they used to do massive data dumps out of SAP or Oracle. Today, they’re just logging into STOPWATCH and everything’s right there.”

While the people at STOPWATCH deserve the credit for delivering this solution, it’s the developer toolkit they’re using that enables them to do so. “Our mission is to empower unique talent and secondly, to operate as a world-class team, and thirdly, to solve exceedingly complex problems with speed and simplicity,” says Bowman. “Azure, Visual Studio, and .NET are key enablers for meeting all three of those goals. It’s a really powerful combination: managed services that enable us to stay focused on meeting customer needs instead of managing infrastructure; a programming framework that’s optimized for harnessing the power of both Azure services and open source; and a toolkit for pulling all of the different pieces together as a highly collaborative team. With the power of Microsoft behind us, we’re able to operate at the level of a large enterprise, take on competitors that are much larger than us, and deliver a unique solution to real-world customer needs. Since choosing Microsoft, we haven’t regretted it once.”

“Microsoft is a great choice for a managed services provider. As a small company that’s working with some really big customers, we need to be able to scale quickly and confidently, and Azure lets us do just that. ”

Will Brown, Principal Product Lead for Front-end and Data Discovery, STOPWATCH

Take the next step

Fuel innovation with Microsoft

Talk to an expert about custom solutions

Let us help you create customized solutions and achieve your unique business goals.

Drive results with proven solutions

Achieve more with the products and solutions that helped our customers reach their goals.

Follow Microsoft