Skip to content
View wowkster's full-sized avatar
🖥️
Probably Programming
🖥️
Probably Programming
  • Adom Industries Inc. @adom-inc
  • Texas, USA
  • 11:10 (UTC -06:00)

Highlights

  • Pro

Organizations

@CloaksPlus @SIS16 @leek-lang @summit-guidance @adom-inc @RiptideOS

Block or report wowkster

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
wowkster/README.md

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.

wowkster

Contact

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.

Open Source Work Projects

  • 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

Notable Personal Projects

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, and usbip_vudc kernel modules.
  • New usbip and usbipd CLI 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)

Smaller Side Projects (In various stages of completion)

Pinned Loading

  1. drip drip Public

    A compiled systems programming language tailored for operating system development

    Rust 2

  2. riptide riptide Public

    A PoC for an OS kernel written from scratch in Rust. Will eventually be ported to drip.

    Rust 1

  3. dinOS dinOS Public

    A hobby operating system created to learn more about low level programming

    Assembly 3

  4. floppier floppier Public

    An implementation of musical floppy drives in Rust

    Rust 2

  5. adom-inc/kicad_lib adom-inc/kicad_lib Public

    Rust library for working with KiCad files

    Rust 12 8

  6. adom-inc/mcp2518fd adom-inc/mcp2518fd Public

    #![no_std] Rust library for interacting with MCP2518FD CAN FD controller chips.

    Rust 11 6