Kushagra GoyalStack

← The Stack

Configuration

Configuration is where the hardware becomes something a customer can order. Instead of creating a new design for every request, I work on defining the choices customers can make and the combinations that stay valid.

What I work on

This is the center of my current role.

Example

A server may allow several processor, memory, storage and accelerator choices. The configurator gives the customer flexibility while keeping those choices inside a buildable envelope.

A configurable server, simplifiedIllustrative options, not a real catalog
0 of 3 expansion slots used

Memory slots follow the number of processors, not the number of cores.

A configurable model gives customers choice without turning every deal into a new engineering exercise.

Three lists that have to agree

What a platform can physically support, what the catalog offers, and what the factory will actually build are three different lists. Many configuration problems start when they drift apart.

When they do, a configuration passes the configurator and then stops at the factory, which is where fixing it costs the most. Keeping the three aligned as parts change is most of the job.

  1. What the workload actually has to do.

  2. Against validated points rather than from scratch.

  3. Each choice point has a supported set.

  4. Inside the supported set, or an exception with a route.

  5. What the factory will build from.

  6. Where being wrong costs the most.

In development

I am also building ConfigDesk in Lab: a way to ask configuration questions in plain language and check the answers against rules like these.

ConfigDesk