What We Do

Ephemeris Consulting Ltd provides software development services, i.e. bespoke development, consulting, coaching, and training. We focus on the “Hard Things”, those parts of a system where the easy or conventional approach isn’t sufficient. More often than not these challenges are in the area of software performance, be that throughput, latency, efficiency, or scalability. Perhaps you have a current performance limitation, would like to level up the team to meet upcoming challenges or would like assistance designing or reviewing of a new architecture that will take your organisation forward, get in touch, we may be able to help…

Background

Michael Barker has over two decades of experience in the software industry across a wide range of industries including exchange systems, finance, telecommunications and government. Michael spent 10 years working at LMAX Exchange, where he help transform its latecy from 1ms to sub-80µs, along with contributing to nearly every part of the system (matching engine, broker & risk management, messaging & reliablility infrastructure, survellience, monitoring…).

He has a fondness for concurrency and data structures, being the long term maintainer of the LMAX Disruptor and building multiple novel structures to support the exchange and broker.

More recently Michael has been heavily involved with the Aeron project, mostly bringing the C implementation of the media driver up to functional parity with the Java media driver and experimenting with alternative networking implementations, e.g. DPDK.

Philosophy

Back to Basics

We believe in focusing on the problem first, before jumping forward into a solution; and building to fit a need. This means understanding the domain and its challenges come first and tools, products, and frameworks take a back seat.

Keep it simple

Software easily and rapidly becomes complex. By striving relentless for simplicity we can stay on top of that complexity and ensure can solve the problem and remain fit for use.

Design for the future

As well as providing working software, a software development organisation needs to maintain a capability to continue to provide software. This means having a eye on how your systems will evolve over time. While we don’t have a crystal ball we can look at software archictecture and desgin in a way that will give us the greatest number of options in the future and better meet the challenges of tomorrow.