Hey! My name is Adrian, and I'm a well-rounded software engineer with over 10 years of programming experience. I've been working professionally for the last 5 years and in that time I've worked with a large amount of languages like Rust, C/C++, Java, Javascript/Typescript, PHP, Python, Kotlin, Swift, C#, x86 assembly, and many more. I also have experience with an ever-increasing number of related technologies including React/NextJS, Vue/Nuxt, Tailwind, HTMX, Axum, Express, Fastify, PostgreSQL, MongoDB, Docker, Kubernetes, and Git just to name a few.
Over the years I've had the opportunity to explore many different fields such as web development, mobile development, systems programming, embedded firmware development, game/graphics programming, compiler engineering, operating system development, and many others. Currently I'm employed full-time at Adom Industries Inc. where I work all across the software (and hardware) stack tackling exciting problems in robotics and distributed systems.
You can contact me on Discord (preferred) at @wowkster or by email at contact@adrianwowk.com for inquiries. If you are contacting me about an issue with a project, please open a GitHub issue on that repository instead. I will tend to it as soon as I can.
- kicad_lib - A Rust library for working with KiCad files
- mcp2518fd - A
#![no_std]Rust driver library for the MCP2518FD CAN FD controller - tmc2240 - A
#![no_std]Rust driver library for the Trinamic TMC2240 stepper motor driver chip - ads123x - A
#![no_std]Rust driver library for the TI ADS123x series of Delta-Sigma ADC chips - ads1220 - A
#![no_std]Rust driver library for the TI ADS1220 Delta-Sigma ADC chip - cdcx913 - A
#![no_std]Rust driver library for the TI CDCE(L)913 PLL chips - slcanx - An improved Serial Line CAN protocol written in Rust supporting CAN FD
A complete rewrite of the Linux userspace USB/IP stack in rust, written with performance, safety, and security in mind.
- New Rust lib crate for interacting with the
vhci_hcd,usbip_host, andusbip_vudckernel modules. - New
usbipandusbipdCLI tools- All existing functionality (legacy mode support)
- New JSON output mode
- Better error messages
- Nicer command argument parsing with
clap - Fixes some bugs in the original C implementation
- Written entirely in safe Rust (using
#![forbid(unsafe_code)])
objection (in development)
A simple S3 compatible object storage server written in Rust using Tokio and SQLite
- AWS S3 API Compatibility
- Per Bucket + Per Object Access Control
- CORS
- TLS
- HIGH Performance
- Cache Control
- Bucket Data Deduplication (optional)
- Access Logging (optional)
- Object Expiration (optional)
- Object Tagging
- Easy Backups
- IP Rate Limiting
- Web management UI
A from-scratch compiler for a custom systems programming language I'm working on. My goal with this project is to self-host the compiler and then use the language to write a full OS kernel and userspace with no dependencies.
The language itself is inspired by several other languages, notably Rust, C, and C++ with most of the syntax borrowed from Rust.
- Bootstrap compiler written in Rust
- Hand-written parser and type checker with a focus on providing good diagnostics
- Fully custom backend (no LLVM here) with an SSA optimization pipeline
- Hindley-Milner style type system
- Manual memory management without many of the footguns
- Built-in Option and Result types
- RAII guards for dynamic allocations similar to C++
- IDE support (LSP and Syntax Highlighting) coming soon
- Syntax-level macro system coming soon
A implementation of musical floppy drives in Rust
- Server written in Rust
- Parses MIDI files
- Sends MIDI events over USB serial to hardware client
- Embedded hardware client written in Rust
- Runs on Raspberry Pi Pico
- Custom USB serial protocol using CBOR
- Parallel and interrupt driven floppy drive driver
A 32-bit hobby operating system written in x86 assembly made to explore low level computing and the x86 architecture. It features a multi-stage bootloader which includes FAT12 drivers and a spec compliant BIOS disk IO wrapper. The kernel is still in the very early stages but supports interrupt handling, VGA text mode drivers, and memory paging.
- Stage 1 bootloader written in x86 assembly
- BIOS disk IO wrapper
- FAT12 file system driver
- Stage 2 loader
- Error tolerant design with error messages
- All fits into 512 byte boot sector (448 bytes when you subtract space occupied by BPB)
- Stage 2 bootloader written in x86 assembly
- Kernel loader
- GDT initializer
- 32-bit protected mode initializer
- Kernel written in x86 assembly (for now)
- VGA text mode drivers
- PIC programming
- IDT setup
- Interrupt handling
- Memory Paging
- PS/2 Keyboard Drivers
A minimal x86_64 OS kernel written in Rust.
- Interactive shell prompt
- Basic device/driver model
- File System driver support
- Kernel-space async task executor
A hobby project for mapping out the entire IPv4 address space with ICMP pings
- Server program written in Rust for sending out ICMP echo pings distributed temporally and across subnet regions
- GUI program written in Rust with raylib for visualizing the results in real time and after the fact
Cloaks+ (Founder/Previously CTO)
A character customization utility for Minecraft
- Backend in Node/Rust
- Frontend with Next.js and TS
- Discord Bot in Discord.js and TS
- Various Java/Kotlin Plugins
- Desktop App in Tauri, React, and TS
- etc
A CPU graphics library written in pure Rust
- Supports 2D drawing primatives (lines, circles, triangles, etc)
- Also has helpers for 3D graphics (depth buffering, projection matrices, etc)
- Leek - A programming language for edge computing
- Drown - A lightweight SQL database server and client implementation
- Rust wrapper for olive.c
- PNG sequence to Minecrtaft animation CLI tool
- Rust-based malware for windows
- VIM-style terminal text editor in Rust
- Typescript Minecraft Server Implementation
- Cards Against Humanity Online
- Adding Wi-Fi support for my TI-84 calculator
- Rust JVM implementation
- Remaking my personal website
- [aws (x86 Assembly Web Server)(https://github.com/wowkster/aws)