Skip to content

Open to SWE internships & roles

I build full-stack AI products and the production infrastructure behind them.

Computer Science @ University of Illinois Chicago (Software Engineering concentration). Currently a Software Engineering Intern at Mylon.AI and building MedBill Analyzer.

View projectsGet in touch

Karol Pawlowski - Resume

Chicago, ILGitHubLinkedIn

Featured projects

Things I've built and run.

Strongest first - each is a real system I designed, built, and operate end to end.

MedBill Analyzer · Current

Medical & Dental Bill Analyzer

Benchmarks charges against 9,800+ CMS fee-schedule entries to catch overcharges.

A full-stack web app that checks medical and dental bill charges against CMS Medicare reference rates: OCR extracts CPT/HCPCS codes and dollar amounts, a fee-schedule lookup flags each line as overcharged, within range, or unverified, and - for confirmed overcharges - Claude drafts a one-click dispute letter.

The React 19 + Vite frontend on Vercel calls serverless functions that proxy to a Python FastAPI backend on Modal behind a fail-closed shared-secret trust boundary. Uploads are validated by magic bytes with decompression-bomb guards and processed entirely in memory - nothing is ever stored. Every dispute letter is re-verified server-side against the CMS tables before it reaches the user, untrusted text is fenced off from the model to block prompt injection, and the whole pipeline is covered by 77 unit tests.

Bill upload
React 19 · Vercel
OCR
Tesseract · PyMuPDF
Code extraction
CPT / HCPCS · regex
Fee-schedule check
PostgreSQL · 9,800+ CMS rates
Dispute letter
Claude · server-verified
How a bill flows through MedBill Analyzer.

React · Vite · Python · FastAPI · Modal · PostgreSQL · Tesseract OCR · Claude API

Updated Aug 2026

StockSignal

ML Stock Price Predictor

A 3-layer PyTorch LSTM serving live training progress and 7-day forecasts.

Trains an LSTM forecasting model and serves its predictions through a REST API to a real-time dashboard.

The 3-layer PyTorch LSTM sits behind a FastAPI REST API; a React + Tailwind dashboard streams real-time training progress alongside 7-day price forecasts.

Python · PyTorch · FastAPI · React · Tailwind CSS

Updated Apr 2026

Self-Hosted Homelab

Cloud Infrastructure · 2023–present

13+ services and 20+ users running on bare metal - 99.9%+ uptime, zero open ports.

A self-hosted platform on Proxmox VMs with TrueNAS (ZFS) storage and Dockerized apps, including a GPU-accelerated media server with hardware transcoding serving 20+ users across streaming and photo services.

Remote access is zero-trust - Cloudflare DNS, a hardened VPS reverse proxy, and a Tailscale mesh VPN - so there are zero open ports while holding 99.9%+ uptime over three years.

13+
Services
20+
Users
99.9%
Uptime
0
Open ports
3 yrs
In production

Proxmox · TrueNAS (ZFS) · Docker · Linux · Cloudflare · Tailscale

Updated Aug 2026

Midea AC

Home Assistant Integration · HACS

Controls Midea air conditioners entirely over the LAN - the cloud is touched once at setup, never at runtime.

A Home Assistant custom integration (distributed through HACS) that controls Midea and Midea-OEM air conditioners locally over the network. It exposes a full climate entity - power, HVAC mode, target temperature, fan speed, and swing - alongside switches, sensors, selects, a number, and a fan entity for the extra features a unit supports: eco / sleep / boost modes, indoor and outdoor temperature, humidity, energy and realtime power, airflow angle, and a fresh-air module.

Built on the midea-local protocol library, it uses the Midea cloud account only once during setup - to discover devices and fetch each unit's local encryption keys - after which control is fully local (local_push, no runtime cloud dependency). Entities are generated dynamically from each unit's own reported capabilities, so only the controls your specific AC actually has ever appear.

Python · Home Assistant · HACS · asyncio · midea-local

1Updated Jul 2026

TetherDisplay

Local USB Display Streaming · iPad + Windows

Turns an iPad into a USB-C second monitor for Windows - a low-latency H.265/HEVC pipeline that's fully local with zero cloud, backed by 93 passing unit tests.

TetherDisplay uses an iPad (10th gen) as a USB-C second monitor for a Windows laptop. Since iPads have no native display input, this is a compressed-video streaming pipeline that runs over the USB cable: Windows captures a virtual display via Windows.Graphics.Capture, encodes it with NVIDIA NVENC for low-latency HEVC, streams it over usbmux (the same protocol macOS uses for device syncing), then decodes and renders on the iPad using VideoToolbox and Metal.

The stack spans two systems: Windows host service in C++ (IddCx virtual display, WGC capture, NVENC encode, clean-room usbmux transport) and a Swift/Xcode iPad app (PeerTalk tunneling, VideoToolbox decode, Metal render). All protocol logic is portable, compiled, and tested in WSL (93 unit tests pass); Win32/WinRT/GPU code is written against citation-backed docs and verified on hardware. Security: TOFU pairing + libsodium AEAD encryption. No Wi-Fi, no LAN, no cloud - only the USB cable.

Virtual display
IddCx · Windows
Capture
Windows.Graphics.Capture (WGC)
Encode
NVIDIA NVENC · H.265 / HEVC
Transport
usbmux · libsodium AEAD
Decode & render
VideoToolbox · Metal · iPad
How video flows from Windows to iPad over USB-C.

C++ · Swift · Windows API (IddCx, WinRT, D3D11) · NVIDIA NVENC · VideoToolbox · Metal · libsodium · CMake · Protocol Buffers

Updated Jul 2026

KVDatabase

LSM-Tree Storage Engine · C++17

Serves ~2.9M reads/sec from a from-scratch LSM-tree - the storage-engine design behind RocksDB and LevelDB, with zero dependencies beyond the standard library.

A persistent key-value store built on a Log-Structured Merge tree in pure C++17. Writes hit an fsync'd write-ahead log and a sorted in-memory memtable, then flush to immutable on-disk SSTables; reads check the memtable, then each SSTable newest-to-oldest - a per-table bloom filter skips the ones that can't hold the key (no disk I/O at all), and a sparse index seeks the rest to within a 16-record scan.

Range scans do a k-way heap merge over the memtable and every SSTable, newest source winning per key with tombstones filtered out; compaction folds all tables into one and drops deleted keys. A rewritten-atomically manifest survives crashes mid-write, and a WAL replay on restart never loses an acknowledged write. CI builds with -Wall -Wextra -Werror and runs the assert-based suite twice - plain, then under AddressSanitizer + UBSan.

Write
WAL (fsync'd) · memtable
Flush
immutable SSTable + manifest
Read
bloom filter · sparse index
Scan
k-way heap merge
Compact
merge · drop tombstones
How a key moves through KVDatabase.

C++17 · LSM-tree · Bloom filters · Write-ahead log · Make · GitHub Actions

Updated Aug 2026

Experience

Where I've worked.

Mylon.AI · Now

Jun 2026 – Present · Remote

Software Engineering Intern

Building a multi-tenant RAG tool that lets university staff query institutional documents in natural language with cited answers - a 10-week MVP for design-partner institutions. Built on FastAPI / React / TypeScript with Supabase, pgvector, and Voyage AI embeddings; isolated tenants with Postgres Row-Level Security and signed JWT tenant claims. Stood up the backend/frontend scaffolding, a live /health endpoint, and a GitHub Actions CI pipeline (lint + tests on every PR).

Player One Amusement Group

Jan 2023 – Jan 2026 · Chicago, IL

Service Technician - Technical Apprenticeship

Diagnosed and fixed hardware and software failures across 20+ arcade systems at 8 locations, completing 100+ on-site repairs a year through systematic root-cause debugging. Configured, calibrated, and validated newly installed units.

About

Product, ML, and the infrastructure underneath.

Karol Pawlowski

I'm a CS student at UIC (Software Engineering concentration, graduating December 2027) who builds full-stack, AI-powered products and runs the self-hosted infrastructure they live on.

That trifecta is the point: I ship product, train and serve ML models, and operate the production infrastructure underneath - most visibly a homelab I've run for three years. I'm equally at home in a React frontend, a Python backend, and a Linux box wiring up networking.

I learn by building real systems end to end and keeping them running, then reaching for the next problem that forces me to learn something new.

Education

B.S. Computer Science - Software Engineering concentration

University of Illinois Chicago

GPA 3.34 / 4.0 · Expected December 2027

Relevant coursework

Data Structures · Object-Oriented Programming · x86-64 Assembly & Machine Organization · Theory of Computation

Certifications & achievements

  • AWS Certified Cloud Practitioner (2023)
  • 3rd Place - Capture the Flame 2026 CTF, Beginner Division (3-person UIC team; sponsors: Zebra Technologies, CompTIA, SANS Institute)

Skills

The toolkit.

What I actually build with - grouped, not ranked.

Languages
C++ · C · Python · JavaScript · TypeScript · Java · SQL · HTML/CSS
Frameworks
React · Vite · FastAPI · Node.js · Tailwind CSS · REST APIs
Cloud & DevOps
AWS · Vercel · Modal · Docker · Git · Linux
Data & ML
PostgreSQL · PyTorch · Pandas · NumPy · scikit-learn · Tesseract OCR · Claude API
Infrastructure & Networking
Proxmox · TrueNAS (ZFS) · Tailscale · Cloudflare · Nginx Proxy Manager · Pi-hole

Open to SWE internships & roles

Let's build something that stays up.

I'm looking for software engineering internships and roles. Email is the fastest way to reach me - I reply quickly.