I’m Hugo: a programmer and technologist specialising in distributed systems, databases and graph-data problems. Besides the topics I focus on for work, I really enjoy programming small games or tools as a form of problem solving and creativity.
I’ve spent the last 8 years working at Neo4j, first on the high-availability features of the database and now on future architectures for the Aura managed service. Prior that I worked as a Research Engineer at Newcastle University, building software for research projects from Higher Education to Bioinformatics.
Worked on
In addition to a number of small open source projects on my github , here are a few interesting things I’ve worked on “behind closed doors”:
- Several large extensions to Neo4j’s Raft implementation including mulit-raft, leader transfer and observers/non-voters.
- An eventually consistent discovery service for Neo4j clusters built upon CRDTs and gossip.
- Techniques for sharding graphs, optimising data distribution for the query workload being executed over the graph.
Published
Here are a few papers I have co-authored in fields of graph and database research:
- RIOT: Replicated Independently-Ordered Transactions (SIGMOD)
- TuskFlow: An Efficient Graph Database for Long-Running Transactions (VLDB)
- Mammoths are Slow: The Overlooked Transactions of Graph Data (VLDB)
- TAPER: Query-aware, Partition Enhancement for Large, Heterogenous Graphs (Distributed & Parallel Databases)
- Loom: Query-aware Partitioning of Online Graphs (EDBT)
- ProvGen: Generating Synthetic PROV Graphs with Predictable Structure (IPAW)
