Work — technical deep-dive
Technical MVP · research and technical evaluation only
VoxelEdge
A multi-service system for processing and visualizing volumetric medical images: a Cornerstone3D viewer in the browser, a Go API gateway, a Rust compute service, and a Python/MONAI imaging pipeline, talking to each other over versioned gRPC contracts. I designed and built all of it.
This page is the system I built end to end, described at the level of detail you would need to judge whether I can build yours. It is a technical MVP for research and evaluation, not a shipped clinical product.
The problem
A volumetric study is not a picture. It is a stack of hundreds of slices that only means something once it is reconstructed, and it is large enough that moving it is a decision rather than a reflex.
- The viewer runs on one workstation, so anyone who needs to look at the data has to go to that machine.
- The processing runs somewhere else, by hand, and the version that produced last quarter's output is hard to reconstruct.
- Every new experiment means another one-off script and another copy of the volume.
VoxelEdge is my answer to that shape of problem: put the viewer in the browser, put the compute behind a typed service boundary, and keep the volumes in object storage where every service can reach them without anyone emailing a drive.
Architecture overview
Four services and a shared object store. The browser never talks to compute directly; every request goes through the gateway, and the boundaries between services are versioned gRPC contracts rather than an informally agreed JSON shape.
Both the compute service and the imaging pipeline read and write through the object store rather than passing volumes between themselves, so a service can be restarted, replaced, or moved without the data following it around.
The stack, and why each piece is there
Six choices. Each one is a trade, and each one has a reason you can argue with.
-
Cornerstone3D web viewer
The viewing surface runs in a browser, so the person who needs to look at a volume does not need a specific workstation, an install, or a license seat. Cornerstone3D is a maintained, widely used foundation for medical image display, which is not a place I wanted to write something bespoke.
-
Go API gateway
One entry point in front of everything else. Go is deliberately boring here: fast to start, straightforward to deploy as a single binary, and easy to reason about when a request has to fan out to more than one service.
-
Rust compute service
Voxel-level work is where throughput and memory behaviour actually matter. Rust gives predictable performance without a garbage collector pausing in the middle of a large volume, and the compiler catches an entire class of memory mistakes that are unpleasant to debug in a numerical pipeline.
-
Python / MONAI imaging pipeline
Preprocessing and inference live in Python because that is where the medical imaging ecosystem lives. MONAI supplies domain-specific transforms and model tooling built for medical images rather than for photographs, so the pipeline is not fighting general-purpose defaults.
-
Versioned gRPC contracts
The service boundaries are typed and versioned, and the contract is checked into the repository. Services can then be changed or replaced independently, and a mismatch shows up as a build failure rather than as a malformed payload discovered at runtime.
-
MinIO / S3-compatible object storage
Volumes and derived artifacts go to object storage, not to a local disk that happens to be attached to whichever machine ran the job. The same code path runs against MinIO on a laptop and against a cloud bucket in a deployment.
Status
VoxelEdge is a technical MVP used for research and evaluation. Testing uses synthetic or properly de-identified data. It is not a shipped clinical product, and it is not marketed for diagnosis, prioritization, or treatment. A clinical application would need an intended-use determination and a regulatory pathway assessed by people who do that professionally. If you need a device pathway, that is work I do not take — named on the about page.
Need something built like this?
If you are working with imaging data, instrument output, or a pipeline that only one person knows how to run, tell me what you have. I read every inquiry myself and reply within two business days.