I'm a JDK author and security researcher from Manchester, United Kingdom. My OpenJDK work is mainly around HotSpot, with a particular interest in JIT compilation and garbage collection. I like the parts of the JVM where profiling, generated code, runtime behaviour, and memory management all meet.
Outside the JDK, I'm interested in reverse engineering, obfuscation, compilers, bytecode tooling, and low-level systems. My security research has included work around the Windows kernel and CVE-2026-58532, an integer overflow I found in tcpip.sys. I also write about JVM internals, security, and reverse engineering.
OpenJDK PRs (2026)
- #32035: 8388827: Unused Gen.CodeSizeOverflow
- #32015: 8309776: x86: Improve the code generation of MinF/D nodes
- #31929: 8387855: G1: Separate G1ParScanThreadStateSet and shared state
- #31875: 8388120: [s390x] c2: c_return_value is redundant
- #31873: 8387467: ZGC: Use shared thread-local _nmethod_disarmed_guard_value
- #31872: 8387996: Remove reference to -d64 from serviceability tool manpages
- #31858: 8387991: Optimize execution of runtime/Thread/TestSpinPause.java
- #31851: 8382841: Revert annotation parsing changes from libgraal
- #31836: 8387937: C1: aarch64: two-arg add_debug_info_for_branch looks obsolete
- #31719: 8386802: ClassFile Util.entryList should consider non-RandomAccess lists
- #31661: 8365887: Outdated comments in String::decode
- #31527: 8368889: Use if-with-initializer for LogTargets
- #31378: 8384834: Remove CompilationMode flag
- #30889: 8382534: Some opto methods should return bool instead of int
- #30867: 8379722: C2: assert that result is used for CallLeafPureNode in final graph reshaping
- #30103: 8378177: AllowExtshm flag cleanup on AIX



