Ingestion
Getting data out of systems that were never designed to give it up. APIs, change feeds, and the flat file someone still emails every Tuesday.
What we do
We build the pipes your data moves through.
Rojomojo is a software development house. Ingestion, transforms, streams that hold their shape under load. Every pipeline is a signal chain — a source, a filter, and everything downstream inheriting whatever you let through. We build the filter.
Source, ingest, filter, transform, sink. Nearly everything we build is one of these, and the interesting part is never the boxes — it is what survives the trip between them. The face sits where the filter goes. That part is not an accident.
Every stream has two faces. Mirror the left half of the mark and you get the happy path — clean payloads, in order, on time. Mirror the right and you get the other one: the silent drop, the schema that changed at 3am. Drag the handle. Our mark sits at exactly 50, because that is where the work actually is — building for both.
The mark — 50
Four things, mostly. Each one is somebody's 3am problem before it is ours.
Getting data out of systems that were never designed to give it up. APIs, change feeds, and the flat file someone still emails every Tuesday.
Shape, clean, join, enrich. The unglamorous middle where most of the value and very nearly all of the bugs live.
What runs, in what order, and what happens when step nine fails. Retries, idempotency, dead letters, and no silent successes.
Knowing a pipeline is healthy without having to go and ask it. Lineage, freshness, and alerts that fire before your users do.
Open the filter on a 303 and it screams without ever losing the note. A pipeline under pressure should behave the same way: throughput climbs, the shape distorts, the data still arrives intact. Drag across the face — it bends as far as you push, and snaps back the moment you let go.
A sequencer is a schedule: which steps fire, in what order, how often. So is a pipeline. Toggle the pattern — the playhead does not care whether a step is switched on, it arrives either way. Your data behaves the same, which is the entire problem with a cron job you have stopped reading the logs of.
5 of 16 firing
Eight letters, four shapes. The whole name runs on R, O, J and M, which is why we could draw the wordmark from scratch instead of licensing one. Systems earn their keep the same way — a small set of primitives, composed. Two boxes and sixteen steps have carried more than most stacks ever will.
One face is a logo. Ninety-six is a flyer. A few billion is a Tuesday. Repetition is not monotony — it is structure, the same loop running until the pattern becomes the point. Event streams run on exactly that, and they fail in exactly one place: the moment one iteration is not like the others.
When the sink is slower than the source, something has to give. You buffer, you drop, or you slow the producer down. Systems that never chose still end up choosing — usually at the worst hour, and never in your favour. We make it a decision you took on purpose, in daylight.
Every signal has a floor. Ours is 90 pixels — below it the teeth and the smile drop under one pixel and the face turns to mush, so there is a second cut ready for exactly that range. Knowing where your system degrades, and having the fallback built before you need it, is most of the job.
Same four letters, same face, three different destinations. One source of truth rendered for wherever it has to land — which, put plainly, is what we spend our days doing.
Four colours, no exceptions. Red carries Rojo, ink carries Mojo, solar is the face, bone is the keyline that holds it on dark. A tight schema is what makes a thing legible at 3am — which is when you will be reading it.
Half of it is having a great time.
The other half knows how this ends.