AJ ONeal

Deep learner. Rule-Breaker. Edge-of-Box Thinker.
Go, Zig, Node, POSIX. Security. Protocol Whisperer.

Relevant Experience

2021

Senior Software Engineer (Node & Golang)

Dash Incubator DAO, ๐ŸŒ
  • Work on various low-level cryptocurrency projects in Node and Go
  • Proposed and implemented replacements for legacy tooling
2020

Software Engineer & Team Lead (Node & Golang)

Savvi Technologies Provo, UT
  • Refactored codebase to catch errors and secure routing
  • Introduced security policies and procedures for PCI-DSS and SOC compliance
Present2013

Contract Software Engineer (Golang, Node, Rust)

Root (therootcompany.com) Provo, Utah
  • Developed audio mixing solution for Sonos Radio with Rust
  • Developed IoT clean-room monitoring solution for large chip manufacturer with Go
  • Various Go and Node projects for web apps
20192018

Senior Software Engineer (Golang)

Big Squid SLC, Utah
  • Created Web APIs, Microservices, Database Integrations
  • Contributed patches to golang-migrate and fileb0x (gobindata)
20132010

Lead Software Engineer (Node, Golang)

SpotterRF Orem, Utah
  • Designed and implemented HTTP APIs for military IoT system
  • node.js, jQuery, DOM, Golang, Linux, ARM, DD-WRT
  • Reverse engineered Google Maps API to create offline maps

Selected Projects

Present2020

โšก๏ธ WebInstall.dev (Cross-Platform Installers & Cheat Sheets)

Effortlessly install developer tools with easy-to-remember URLs
  • curl https://webi.sh/golang@stable | sh
  • curl.exe https://webi.ms/golang@stable | powershell
  • A quick, minimal alternative to `apt` and `brew` for installing and updating "daily drivers" (go, node, rg, etc)
2020

๐Ÿ› ๏ธ GitDeploy (Golang)

Handle Webhooks from GitHub, Gitea, & BitBucket to trigger CI/CD
  • Static Site generation
  • Build artifacts and assets
2019

๐Ÿฅพ serviceman (Golang)

Mac, Linux, and Windows boot/login launcher manager
  • systemd (boot) on Linux
  • launchctl (login) on Mac
  • HKCU/Run (login) on Windows
2018

๐Ÿ”‘ Keypairs (Golang, Node, Browser)

Tools for DER-encoded ASN.1 x509 schemas for RSA and ECDSA
  • Native Golang, WebCrypto and node.js crypto for key generation, JWT, JWS, JOSE, & ACME
  • Hand-optimized codecs for ASN.1, DER, x509, PKCS1 (RSA), SEC1 (EC), PKCS8/PKIX, PKCS10 (CSR)
Present2016

๐Ÿšช Telebit.io (Golang, Node)

Reverse VPN, Proxy, and SNI-Router
  • A relay service that exposes localhost bound devices and services, as well as those otherwise trapped behind firewalls, paywalls, and other harsh networking environments, using SNI routing for end-to-end encrypted connections.
  • TLS, SNI, PROXY, SOCKS5. Originally prototyped with HAProxy and OpenVPN

Continued...

Selected Projects
and Contributions.
Present2015

๐Ÿ”’ Greenlock (1,000,000+ Downloads)

Most popular Let's Encrypt client for node.js
  • Automated HTTPS certificate issuance for Browsers and Node.js. CLI also works with Nginx, HAProxy, etc
  • Let's Encrypt v1/v2 (ACME draft-12) HTTP-01, DNS-01, TLS-SNI-01
2019

๐Ÿ”Ž pathman (Golang)

Cross-Platform, Cross-Shell PATH manager
  • Manages ~/.config/envman/PATH.env for `bash`, `zsh`, and `fish` on Mac, Linux, and Windows
  • Manages HKCU/Environment for `cmd.exe`, `powershell`, and `pwsh` on Windows
2018

๐Ÿ”“ sclient (Golang, Node)

Unwrap remote tls connections and serve locally
  • You can expose whatever.com:443 as localhost:3000 and then connect with telnet or netcat.
  • I wrote simply this because ssh -o ProxyCommand "sclient %h:443" example.com can fit in documentation on a single line while ssh -o ProxyCommand "openssl s_client -connect %h:443 -servername %h -quiet" example.com does not, and is hard to remember.

Additional Go Projects

Selections from my Go portfolio
  • Go Proverbs Poster [Poster] - For Code Reviews and Such
  • go-gitver [README] - Add (GoReleaser-compatible) semver to your go package
  • vfscopy [README] - For config inits and such - copy a VFS, such as http.FileSystem, to the native file system
  • dashmsg [README] - Gen, Sign, Verify, and Debug Private Keys and Messages
  • mssql-to-csv [README] - Eats MS SQL for breakfast and spits out CSV for lunch
  • csv2gdoc [README] - Creates a Google Doc table from a .csv

Additional Cryptography Projects

Created or improved various crypto-related projects
  • asn1-packer.js [README] - a dirt-simple ASN.1 serializer in less than 100 LoC
  • asn1-parser.js [README] - a dirt-simple ASN.1 parser in less than 100 LoC
  • BlueCrypt (JS) [Repos] - A collection of PEM, DER, JWS, SSH, and ASN.1 Keypair tools

Selected Contributions

Go Project Contributions

Improved various notable projects
  • archiver [commits] - co-maintainer, various fixes, updates, release, and PR management
  • Caddy & lego [commits] - improved documentation
  • curlie [commits] - fixed tty detection
  • Gitea [commits] - Contributed UXD and security patches to OAuth2 (SSO) login flow
  • godotenv [commits] - improved documentation
  • golang-migrate [commits] - fixed url parse bug
  • fileb0x (like vsfgen) [commits] - migrated to go modules, updated quick start guide
  • filepathx [commits] - migrated to go modules, published docs
  • namedotcom [commits] - migrated to go modules
  • vote-collector [commits] - updated for new voting rules
  • yq [commits] - corrected usage of MANPATH

Cryptography Project Contributions

Improved various notable projects
  • hdkey (cryptocoinjs) [commits] - updated RIPEMD160 package, improved docs
  • secp256k1 (cryptocoinjs) [commits] - corrected documentation
  • ยตRSA (node) [commits] - added usage examples

Education

20112008

Computer Science & IT

Brigham Young University Provo, Utah
Computer Science, Information Technology, User Experience Design (formerly HCI)