# jmcph4.dev # > This is the personal website of Jack McPherson, an Australian computer scientist and martial artist. He is currently a backend Rust (and sometimes Python) engineer at tplus; previously he was a security auditor and Lighthouse developer at Sigma Prime, worked at a crypto prop trading firm, and was a core developer at the first Arbitrum-native perpetual swaps protocol. This file is the only LLM-generated text on the site; all other prose is written by hand. See the [AI Usage](https://jmcph4.dev/ai.html) page for his full policy on the use of AI. ## Contact Information ## | Medium | Value | | --- | --- | | Email | See the [hiring page](https://jmcph4.dev/work/hire.html) | | GitHub | [jmcph4](https://github.com/jmcph4) | | Twitter/X | [@secjack_](https://x.com/secjack_) | ## About ## - [About Me](https://jmcph4.dev/about.html), currently just a Kurt Vonnegut quote about buying envelopes one at a time - [AI Usage](https://jmcph4.dev/ai.html), his policy on AI: no LLM-written copy on the site (this file excepted), with LLMs used only for generating bibliographies from curated URLs, proofreading drafts before a human does, and converting hand-drawn diagrams into Mermaid or SVG - [Interest Areas](https://jmcph4.dev/interests.html), what he is currently researching or working on: security tooling (program analysis and automatic fuzzing), TEE programming, LLM evaluation harnesses, RAG systems for small to medium enterprises, and formally verified, sandboxed WASM state machines with instruction-level instrumentation ## Professional Background ## - [Why you should hire him](https://jmcph4.dev/work/hire.html), a summary of experience (six years of production Rust, Python, and Solidity for trading systems, perps exchanges, and blockchain protocols, plus vulnerability research) and availability for contract work - [Summary of his work](https://jmcph4.dev/work/index.html), current role and previous positions in detail - [Open Source Work](https://jmcph4.dev/work/oss.html), his own projects (`blocktop`, `mevcat`, Ironlobe) and contributions to others (e.g., Heimdall) - [Lighthouse Contributions](https://jmcph4.dev/work/lighthouse.html), pull requests and issues on the Lighthouse Ethereum consensus client and discv5, by release - [Private Projects](https://jmcph4.dev/work/private.html), closed-source topics he is working on and would like to hear from others about - [Ancient History](https://jmcph4.dev/work/ancient.html), older contributions, including to AutoTrader and the Tracer Perpetual Pools smart contracts ## Blog Posts ## The blog index is at [https://jmcph4.dev/posts/](https://jmcph4.dev/posts/) and there is an RSS feed at [https://jmcph4.dev/rss.xml](https://jmcph4.dev/rss.xml). Newest first: - [*Minimising Exchange Latency in the Cloud*](https://jmcph4.dev/posts/minimising-exchange-latency-in-the-cloud.html), a tutorial on finding the best cloud region for latency-sensitive trading - [*It's Not a Push-up Competition*](https://jmcph4.dev/posts/its-not-a-pushup-competition.html), a brief note on push-ups and the meaning of life itself - [*Not So Direct I/O*](https://jmcph4.dev/posts/not-so-direct-io.html), an answer to a DBMS interview question on direct file I/O - [*Decoding Solidity Metadata*](https://jmcph4.dev/posts/decoding-solidity-metadata.html), a tutorial on decoding Solidity metadata from deployed bytecode as well as a discussion of decentralised file distribution - [*Announcing blocktop*](https://jmcph4.dev/posts/announcing-blocktop.html), announcement post for blocktop - a minimalist TUI block explorer for Ethereum - [*Let's Talk, Succinctly*](https://jmcph4.dev/posts/lets-talk-succinctly.html), a brief tutorial on writing programs for the SP1 zkVM - [*On Work*](https://jmcph4.dev/posts/on-work.html), a brief expository essay on how to conduct knowledge work - [*Using Dasy From the Comfort of Foundry*](https://jmcph4.dev/posts/using-dasy-from-the-comfort-of-foundry.html), a brief tutorial on how to set Foundry up to use the Dasy smart contract programming language - [*State of the New Cairo 1.0 Compiler Stack*](https://jmcph4.dev/posts/state-of-the-new-cairo-1-compiler-stack.html), a walkthrough of the Cairo 1 compiler codebase - [*Arithmetic Circuits From the Ground Up*](https://jmcph4.dev/posts/arithmetic-circuits-from-the-ground-up.html), an introduction to arithmetic circuits with accompanying Rust source code - [*Eth to Cairo, Part 1: A Misadventure With Transpilation*](https://jmcph4.dev/posts/eth-to-cairo-part-1-a-misadventure-with-transpilation.html), a sort of failed tutorial on transpilation from Solidity to Cairo - [*Towards a Principled, Intuition-Capturing Model of Economic Class*](https://jmcph4.dev/posts/towards-a-principled-intuition-capturing-model-of-economic-class.html), a brief expository essay on strictly defining economic class in terms of factors of production - [*Viewing EVM Bytecode Unix Style*](https://jmcph4.dev/posts/viewing-evm-bytecode-unix-style.html), a tutorial on how to view EVM bytecode using Unix-like tools - [*Rust Iteration with Either*](https://jmcph4.dev/posts/rust-iteration-with-either.html), a description of a pattern for programmatic iteration in Rust ## Wiki Entries ## The wiki index is at [https://jmcph4.dev/wiki/](https://jmcph4.dev/wiki/), with sub-indexes for [exploit writeups](https://jmcph4.dev/wiki/exploits/) and [CTF solutions](https://jmcph4.dev/wiki/ctfs/). - [*Artificial Neural Networks*](https://jmcph4.dev/wiki/ann.html), an overview of artificial neural network architecture and how it works - [*Ethernaut Solutions*](https://jmcph4.dev/wiki/ethernaut_solutions.html), solutions to the Ethernaut smart contract security wargame - [*Generic Receive Offload*](https://jmcph4.dev/wiki/gro.html), a technique for reducing CPU workload by deduplicating incoming network packets - [*Intel Management Engine*](https://jmcph4.dev/wiki/ime.html), a look at the highly privileged and controversial Intel Management Engine subsystem - [*MEV Unbundling*](https://jmcph4.dev/wiki/mev_unbundling.html), an analysis of attacks that violate the atomicity guarantees of proposer-builder separation protocols - [*Peermaps*](https://jmcph4.dev/wiki/peermaps.html), notes on Peermaps, an open-source project for decentralised geospatial data - [*Programming Problems*](https://jmcph4.dev/wiki/programming_problems.html), solutions to various programming problems - [*Volume Weighted Average Price (VWAP)*](https://jmcph4.dev/wiki/vwap.html), an explanation of the volume weighted average price metric with accompanying Haskell code - [*Arcadia Finance Exploit*](https://jmcph4.dev/wiki/exploits/arcadia.html), a writeup of the $2.5 million USD exploit of Arcadia Finance on Base - [*GMX Exploit*](https://jmcph4.dev/wiki/exploits/gmx.html), a writeup of the ~$42 million USD reentrancy exploit of GMX - [*Swapp Protocol Exploit*](https://jmcph4.dev/wiki/exploits/swapp.html), a writeup of the ~$1.3 million USD exploit of the abandoned Compound Finance fork Swapp Protocol - [*DownUnderCTF 2025 Solutions*](https://jmcph4.dev/wiki/ctfs/duc/2025.html), solutions to DownUnderCTF 2025 challenges ## Optional ## Lists and miscellany. A full index of every page on the site is at [https://jmcph4.dev/directory.html](https://jmcph4.dev/directory.html). - [Reading List](https://jmcph4.dev/reading.html), papers, essays, and books he recommends (no affiliate links) - [DeFi Reading List](https://jmcph4.dev/defi-reading-list.html), a mirror of an annotated reading list of academic research on DeFi, frontrunning, and arbitrage that he wrote at the start of 2020 and no longer maintains - [Films of Influence](https://jmcph4.dev/films.html), films that have influenced him, in no particular order - [Wizards](https://jmcph4.dev/wizards.html), people he considers "wicked smart", in no particular order - [Random Paper](https://jmcph4.dev/randpaper.html), a button that sends you to a random arXiv or bioRxiv paper via the OpenAlex API