Computational geometry · Graphics · CAD

I build the geometry layer underneath graphics software.

The part that has to be correct, not just look right. Product configurators, CAD-like editors and the algorithms under them — offsetting, booleans, hit testing, nesting, numerical tolerance, and the degenerate cases that break naive implementations.

Seam allowance · live bodice front allowance 10.0 mm · max deviation 0.00 mm
sewing line cutting line — seam allowance Every point measured back to the sewing line, every frame.

What I'm hired for

01

Geometry algorithms

Offsetting, booleans, self-intersection removal, point-in-polygon, nesting and tolerance handling — written from scratch when a library's edge cases don't match the domain, and tested against the degenerate inputs rather than the pretty ones.

02

Browser graphics

Three.js, WebGL, Canvas 2D and SVG. 3D product configurators, CAD-like editors and interactive diagrams, built to stay responsive with thousands of entities on screen and to behave the same on a laptop trackpad and a touchscreen.

03

The backend under it

Rails, Java and Node. API design that keeps a graphics front end fast, background-job architecture, and LLM pipelines with spend ceilings and circuit breakers so an integration can be left running unattended.

Selected work

04 projects
Open source Canvas 2D · no dependencies

Polygon Offset Playground

Offsetting a polygon looks like moving every vertex outward along its angle bisector. It is the first thing you would write, and it is wrong — not because it self-intersects, which on most shapes it doesn't, but because it lands at the wrong distance. On the demo's star at 68 px, the worst point of the naive result sits 123.6 px from the source polygon. In CAD or cutting, that distance is the point: it's the seam allowance, the tool radius, the kerf.

The robust pass offsets each edge along its own normal, fills convex corners with an arc fan, trims reflex corners to the offset-edge intersection with a miter cap, then densifies and filters samples by their true distance to the source. The readout measures both, live, while you drag the vertices.

Open source library TypeScript · React · Angular

looks-glassy

Refractive glass components for React and Angular, built on physics-based SVG displacement maps rather than a backdrop blur pretending to be glass. A framework-agnostic core generates the displacement map and builds the SVG filter; thin React and Angular packages wrap it.

Refractive index, glass thickness, bezel width, surface profile, specular angle and saturation are all parameters, so the effect is tuned like an optical material instead of dialled in by eye — with graceful fallbacks where the filter chain isn't supported.

Ongoing Automation engineer

Prompt Ops

I build the automation systems at Prompt Ops, a Brazilian studio that wires AI into the tools a business already runs — CRM, customer support, internal operations — rather than adding one more app beside them.

The work is integration and tuning: connecting existing systems, shaping prompts and workflows for accuracy and cost, and putting in the guardrails that let an automation be left running unattended instead of watched.

Architecture case Rails · Sidekiq · PostgreSQL

LLM outreach pipeline

A six-stage pipeline where the interesting part is everything around the model call. Daily and per-record spend ceilings are checked before the request rather than after. A circuit breaker opens on provider failure and the workers re-queue with a delay instead of burning their retry budget — and it only counts API errors, so a bug in my own code raises through instead of hiding behind an open circuit.

Sources are pluggable behind one interface, deduplication leans on a unique index rather than check-then-insert so concurrent workers can't both win, and nothing reaches a recipient without passing a human approval gate. Each stage sits behind its own feature flag, switchable without a deploy.

Day job

Tech Lead on a pattern-making platform for the apparel industry. Its output drives a cutting machine, so the geometry has to be right in millimetres — "almost" wastes real fabric. Before that: CAD and vector graphics tooling, enterprise Java banking systems, and Rails at scale. Background in Systems Analysis and Physics.

Stack

Graphics & geometry
Three.jsWebGLCanvas 2D SVGGLSLCAD data formats
Front end
TypeScriptAngularReact RxJSJest / Karma / Cypress
Back end & infra
Ruby on RailsJava / Spring BootNode.js PostgreSQLRedis / SidekiqAWSDockerCI/CD

Available for freelance work

Configurators, CAD-like tooling, geometry algorithms and the graphics work that sits between design and manufacturing. Remote, working across European and North American hours.