I'm a full stack software developer with a love for building tools.
I love the challenge of building complex distributed systems for large scale transactional and analytical streaming workloads for domains such as high frequency trading, data engineering and anomaly detection.
I've been fortunate enough to work with many great languages and tools over the years and have enjoyed the opportunity to publish much of my work as open source code. I'm the author of the most popular Elixir trading libraries through the tai toolkit which can be composed as a full CeFi/DeFi trading platform called prop.
I've learned a great deal about building reliable distributed systems in the presence of errors through the Elixir/Erlang OTP ecosystem and have applied them in a golang streaming lakehouse based on the kappa architecture to help tame dataflow to productively build ambitious, data driven & reactive applications in a library called tabletop.
Check out my profile to learn more...
- llm-http-api - HTTP API for LLM with OpenAI compatibility
- pydanticutils - Pydantic utility helpes
- typerutils - Typer utility helpers
- quartutils - Quart utility helpers
- winion - A producer/consumer async runtime for Python
- odbc-scanner-duckdb-extension - A DuckDB extension to read data directly from databases supporting the ODBC interface
- duckdb-extension-template-zig - A Zig template for building DuckDB extensions
- zodbc - A blazing fast ODBC Zig client
- spoke - Universal data connector
- transit - A bytes first implementation of the Kafka API within an S3 keyspace
- utc - Universal transpiler collection
- tif - Lightning fast tabular diffs, patches and merges for larger than memory datasets
- duckdb-nix - Nix flake for development with multiple DuckDB versions
- odbc-drivers-nix - Nix flake for ODBC drivers
- bun-nix - Nix flake for bun.sh
- gnu-cobol-nix - Nix flake to build GnuCOBOL and GnuCOBOL Contrib
- kcctl - Nix flake for kcctl
- xxdnix - Nix flake for xxd supporting wider columns
- odbc2parquet-nix - Nix flake for odbc2parquet
- flytectl-nix - Nix flake for flytectl
- nix-home - Nix home-manager configuration
- tai - A composable, real time, market data and trade execution toolkit
- prop - An open and opinionated trading platform using productive & familiar open source libraries and tools for strategy research, execution and operation.
- workbench - From Idea to Execution - Manage your trading operation across a distributed cluster
- history - Download and warehouse historical trading data
- wrap - Build, Publish & Deploy Elixir Infrastructure to the cloud with Docker & Terraform
- libcluster_gce - Google Compute Engine (GCE) clustering strategy for libcluster. It currently supports identifying nodes based on GCE labels
- clustered - Elixir cluster utilities
- stored - Store & retrieve structs against various backends with a simple lightweight API
- juice - Reduce in memory data structures using a lightweight query language
- ordered_nary_tree - A map based implementation of a pure Elixir ordered n-ary tree
- ecto_term - Ecto type for Erlang term format
- enumerati - Filter and order an enumerable collection of structs
- with_env - Manage the Elixir application environment within a context
- navigator - Global navigation between multiple Phoenix endpoints
- notified - An Elixir library for application notifications
- notified_phoenix - Phoenix live views for notified
- paged_query - Ecto query helpers for pagination
- slurp - An EVM block ingestion toolkit for Elixir
- slurpee - A GUI frontend to manage blockchain ingestion with slurp
- ex_bitmex - BitMEX API Client for Elixir
- ex_deribit - Deribit API Client for Elixir
- ex_binance - Binance API Client for Elixir
- ex_bitstamp - Bitstamp API client for Elixir