Reflex

Build vs. Buy: The Platform Dell Couldn't Buy

A build vs. buy software decision at Dell scale: the platform 6,000 engineers needed was not for sale, so one engineer built it. Software Dell owns, with no vendor lock-in.

Reflex logo
Dell logo

1

Engineer built and shipped the entire application

6,000+

Engineers in the organization the platform is built to serve

2,000+

Customer setups recreated and running at once, on machines Dell already owns

Founded
Round Rock, Texas, 1984
Investors
NYSE: DELL
Website
dell.com
Dynamic Lab: internal VM management app built with Reflex

Trying to get labs set up for all 6,000+ users was difficult. We'd have workstations under people's desks. Other people would set up servers and they'd be the only ones using them. It was very difficult for someone coming in entry-level to say "I want to learn how to use this product" and be able to jump in and get up and running.

JLSenior Principal Engineer at Dell

Meet Dell, one of the largest technology companies in the world, with over 100,000 employees and hardware running in businesses everywhere, from storage systems like PowerScale to the servers and laptops on every office floor. Underneath the scale, Dell's situation looks like any engineering company's: products to build, customers to support, and support teams whose speed decides whether those customers stay.

Behind those products sits a global support and engineering organization that needs to replicate, debug, and validate customer environments every single day. To do that, they needed a piece of software that nobody sells.

Six thousand engineers, one bottleneck

When a Dell customer reports a problem, a support engineer needs a test lab that matches that customer's setup. How quickly they can get one often decides whether the case is resolved the same day or over several days.

For years, that was a bottleneck. Labs lived on workstations under desks and on shared servers, and only a handful of senior specialists could configure a fresh one to match a specific customer. Everyone else had to ask one of them.

JL, a Senior Principal Engineer at Dell, was tasked with making labs self-service, so that any engineer could replicate a customer's environment in minutes. Dell had already tried twice: both earlier versions of the tool worked, but they demanded specialist steps and cost skilled engineers time they should have spent solving customer problems. The third version, Dynamic Lab, would be as easy to open and use as any website.

The software Dell needed wasn't for sale

Self-service infrastructure provisioning is a category you can buy. What Dell needed was not.

To be useful to a support engineer on a live case, Dynamic Lab had to stand up a PowerScale cluster on a specific product version, with the backend networks and configuration matching what a particular customer was running. That meant the application had to know things only Dell knows, and connect to systems only Dell operates:

  • Dell's products, down to individual versions and cluster topologies
  • Dell's existing automation, the Jenkins and Ansible jobs the team had already built and refined
  • Dell's Python backend services for VM scanning and data collection, written long before the app existed
  • Dell's hypervisor estate, running on internal ESXi, vCenter, vSAN, and NSX
  • Dell's identity system, with Okta SSO for 6,000 potential users
  • Dell's access path, with an embedded Guacamole-based SSH client so engineers reach provisioned VMs from the browser

A general-purpose provisioning product could have delivered a fraction of that and asked Dell to adapt its process to the rest. That pattern is how companies accumulate SaaS sprawl: a portfolio of near-fit products, each covering a fraction of a need and each adding a renewal to manage. For a tool meant to remove a bottleneck for 6,000 engineers, adapting the process was the bottleneck.

So the real choice was never build or buy. It was build it, or keep routing six thousand engineers through a handful of specialists. For how to run this decision on your own tools, see our build vs. buy framework for internal software, and for the buy side of the same decision, see how the World Bank replaced the Tableau dashboards it used to buy.

The old build vs. buy equation

That choice had historically been a bad one, which is why the bottleneck had survived so long.

Everything behind the tool already existed. The services that gather the data and build the labs were Dell's own, written by JL's team. What was missing was an interface anyone could use, and the conventional way to build one meant a second technology stack to maintain, a separate skill set to keep on the team, and another set of dependencies to take through Dell's procurement process.

JL spent six months evaluating those options, and half a year of a senior engineer's time produced no viable path. His own earlier attempts at an interface had been, in his words, "hacked-together HTML" that "looked like garbage and were tough to use as an end user." That standard would not hold under the Dell brand. This was the old equation: buying meant a product that could not reach Dell's systems, and building meant either a team Dell was not going to staff, or a result that looked like garbage.

One engineer. One week to a working tool.

JL started prototyping Dynamic Lab in Reflex and had a working demo within a week. Every backend service he had already written, including the VM scanners, the Jenkins and Ansible coordination, and the data collection logic, could be reused directly. No rewrite. No separate frontend team. No new toolchain.

With Reflex, I could put together demo pieces within the first week that could functionally take and display the data. I could get data in and out, and it just worked. Total game changer.

JLSenior Principal Engineer at Dell

The engineer who understood the problem was the engineer who shipped the solution. No outsourcing, no second team to brief, no handoff between the people who knew the infrastructure and the people who could build a UI.

I am not coming from an app development background at all. Being able to say "OK, I want tabs, I want this color, I want the content to look like this" was what made it a lot easier.

JLSenior Principal Engineer at Dell

Any engineer. A working lab in minutes.

Today, any Dell support engineer, not just a handful of specialists, can pick a product, pick a version, and have a complete working copy of a customer's setup ready to troubleshoot in a few minutes.

This lets a user jump into a fully working PowerScale cluster where we've configured the backend networks and everything else. They can match what the customer is running, bring in different clients, replicate the issue, and solve a case faster.

JLSenior Principal Engineer at Dell

Dynamic Lab is still in production beta, and already more than 200 Dell engineers use it every day, keeping roughly 2,000 live test setups running at once, all on equipment Dell already owns, with no outside vendor involved. Next comes the rest of the rollout: the more than 6,000 engineers the old process, waiting on a handful of specialists, was holding up.

What started as one senior engineer fixing his own team's bottleneck is now how Dell's entire support and engineering organization gets customer problems solved: software Dell built once and owns outright.

How it was built

This section is written for your technical team. In short: nothing Dell already had needed to be replaced.

View the technical details

The whole application, backend and interface, is a single codebase in the language Dell's infrastructure team already works in. In practice, that let the team:

  • Reuse their existing backend services for VM scanning and Jenkins/Ansible coordination without modification
  • Build the full browser interface from Reflex's ready-made components (cards, tabs, dropdowns, popovers, and built-in theming) instead of designing one from scratch
  • Let engineers sign in with their existing company login, through Dell's Okta SSO
  • Let engineers connect to their provisioned VMs directly from the browser, through an embedded Guacamole-based SSH client
  • Let engineers watch their cluster build in real time, with live progress streamed from the underlying Jenkins jobs
  • Self-host the entire application on Dell's internal ESXi / vCenter / vSAN / NSX infrastructure
  • Keep extending in the same stack: a Reflex-based management server that places a gateway in each target environment (making Dynamic Lab fully hypervisor-agnostic via Ansible and Terraform), Reflex's built-in upload component for machine images, and a SQLite-to-Postgres migration for higher concurrency

All the stuff we had done in the previous app was Python-based. This just made it really clean and easy. It was a lot easier to onboard.

JLSenior Principal Engineer at Dell

It also meant JL could ship a polished interface without staffing a frontend specialist. And it standardizes the team on a single language, which matters for a tool that needs to outlast any one contributor and scale to thousands of users. The whole application stays readable by the team that has to extend it, without context switching.

I can look at the Reflex code and I know what's happening. And that makes it a lot easier.

JLSenior Principal Engineer at Dell

Dell owns it, so it keeps growing

Dell owns the application, so there is no vendor lock-in and no roadmap but Dell's. JL is extending it with:

  1. Taking Dynamic Lab beyond Dell's own facilities, so it can also run inside customer and partner environments
  2. Letting the people who create lab templates add the files they need themselves, directly through the app
  3. Scaling the platform from hundreds of engineers to thousands

The first item says the most. A tool built to solve an internal bottleneck is now being extended toward customer and partner environments. It is not a purchase Dell avoided. It is a capability Dell has.

My early attempts at building a webUI were just hacked-together HTML. They looked like garbage and were tough to use. Reflex is the opposite. It looks good, runs well, and the performance has been great.

JLSenior Principal Engineer at Dell

See what your team could build.

Tell us about your workflow. See how Reflex can help you turn it into an application.