Software development
Web and mobile apps for learning, practice and business administration. We build the interfaces and the backend services they need.
Explore development
We build AI tools, apps and payment solutions. We work alongside your team, from planning through to handover.
Talk through a problem
Cats-ActorsActors and messaging in Scala.
EventStoreEvent storage, delivery and replay.Web and mobile apps for learning, practice and business administration. We build the interfaces and the backend services they need.
Explore developmentAPIs, event-driven systems and real-time services. We build and connect the services a business runs on, including custom frameworks.
Explore integrationsSystem design, project management and technical handover. We work alongside existing teams and help startups find a team to continue development.
Explore architectureWe advise companies during acquisitions and sales. We review the technology, investigate technical questions with the teams involved and document findings to support decisions.
Explore due diligenceWe prepare tailored technical courses and use code, infographics and interactive explanations to help people understand difficult ideas and put them into practice.
Explore generated landscapes, Fourier analysis, neural networks, simulations and fractals.
Explore educationWe also support learning through Julian’s Pathfinder.
Alongside client work, we share libraries and build apps for others to use. Try them, share feedback or contribute to our open-source projects.

A Scala library for actors and message passing, built on Cats Effect. It helps organise concurrent work and manage failures.
class Counter
extends ReplyingActor[IO, Int, Int] {
def counting(total: Int):
ReplyingReceive[IO, Int, Int] = {
case amount =>
val next = total + amount
context.become(counting(next))
.as(next)
}
override def receive = counting(0)
}
An ordered message log with live delivery and replay. It stores events and delivers them to the services that need them.

A PDF reader that reads aloud and keeps your place. Highlight passages, add notes and take them with you.

Find your vocal range and practise with exercises suited to it. Follow a piano guide, see your pitch as you sing and track your progress on your device.
We’re Roberta and Mark. We build software, work alongside teams, teach and write about what we learn.

