Software
This is a showcase for some of my personal software projects. You can find out more about my professional accomplishments on LinkedIn.
MiniAASM
aasm do
state :transmitting, initial: true
state :waiting_confirmation
state :terminated
event :work_succeeded do
transitions from: :waiting_confirmation, to: :transmitting
transitions from: :transmitting, to: :waiting_confirmation, guard: %i[hold?]
# ...
A Finite-state machine library intended to be compatible with lightweight implementations of the Ruby language using 100LOC and only standard libraries. Inspired by Heroku Postgres State Machines.
Alpaca Desktop
Experimental OSX menu bar widget for Alpaca (a local proxy supporting NTLM authentication for command line tools). Built to reduce toil involved in installation and configuration for several hundred engineers.
Forward Proxy
$ forward-proxy --binding 0.0.0.0 --port 3182 --threads 2
[2021-01-14 19:37:47 +1100] INFO Listening 0.0.0.0:3182
[2021-01-14 19:38:24 +1100] INFO CONNECT raw.githubusercontent.com:443 HTTP/1.1
Minimal forward proxy in 150LOC and using only standard libraries. Useful for development, testing, and teaching. Automated tests simulate a range of destination scenarios including slow network, stream responses, and X509 certificates.
React Instagram Feed
Simple React component to render a Instagram feed. Used an unofficial client-side integration method to avoid having to use a server-side access token. Archived as a result of Instagram fixing their Cross-Origin-Request policies.
Gomem
import "github.com/jamesmoriarty/gomem"
// Open process with handle.
process, err := gomem.GetOpenProcessFromName("example.exe")
// Read from process memory.
valuePtr, err := process.ReadUInt32(offsetPtr)
// Write to process memory.
process.WriteByte(valuePtr, value)
A Go library to manipulate Windows processes. Useful for developing process memory based security exploits. Automated tests manipulate and verify its own process memory via Windows APIs.
Cloudformation Cheapest NAT
Cloudformation for a NAT auto-healing instance running on Spot. Featured in Last Week In AWS.
Gohack
Experimental Go language CSGO computer game exploit. Automated tests use stubbed external processes to avoid needing binary compatibility.
Call Graph
A Ruby library to capture execution and create call graphs. Useful for illustrating Law of Demeter violations.
Lisp
$ lisp-repl
ctrl-c to exit
> (begin
(> (define incf
((> (lambda (x)
(((> (set! x (+ x 1))))
(> (define one 1)
(> (incf one))
2
>
Minimal Lisp interpreter in 75LOC in Ruby using only standard libraries. Inspired by Google Research Peter Norvig’s Lis.py.
Nebula
A prototype 2D Javascript space shooter. Simple physics, unit behaviors, parallax effects, and particles.
Scorched Earth
A pure JRuby Scorched Earth clone and using only standard libraries. Implemented with an event-driven architecture. Dynamically generates color pallettes utilizing Triad Mixing and CIE94 color distances. Headless automated tests enabled through null pattern graphics context injection.