Software Engineer — Web Developer — UI/UX Designer

Howdy, I'm
Jackson Schacher

Full-Stack Engineer

Full-stack software engineer with 4+ years building, deploying, and scaling production web applications. Strong in React/Next.js, Node.js/TypeScript, distributed REST API design, and AWS cloud architecture — owning systems end-to-end, from design through production rollout, monitoring, and long-term maintenance. Uses AI coding agents daily to accelerate delivery.

4+
Years shipping production code
10+
Apps & projects built
3
Credentials in dev & design
Jackson Schacher
01

Selected Work

A commander theme with its five high-impact picks; "Hidden gem" marks strong cards outside the popular staples
01 / 05A commander theme with its five high-impact picks; "Hidden gem" marks strong cards outside the popular staples
01
Full-stack web app · AI data pipeline · 2026

edh-tool

Popularity-ranked deck tools steer every Commander player toward the same cards. edh-tool uses AI-tagged card data to find the strong ones nobody is playing.

  • 12,580
    cards tagged by AI
  • 792
    commanders with themes
  • $12.41
    for the full tagging run
Problem
Sites like EDHREC rank cards by how often they're already played, so a strong card nobody has heard of looks exactly like a weak one. Players end up building the same decks.
What I built
An offline Python pipeline that has Claude tag each card against an 80-tag vocabulary and write themes for each commander, a dependency-free JavaScript scoring engine, and a Next.js site with theme recommendations, a browser-based deck builder, and Moxfield/Archidekt export.
My role
Solo developer, with Claude Code as a pair-programmer: product design, the AI pipeline, the scoring model, and the full-stack site, from Postgres schema to UI. I compared models against a hand-tagged set before committing to the full run.
Outcome
12,580 cards tagged and 4,463 themes generated across 792 commanders, live at edh-tool.com. Trimming the model's output format cut output tokens by 68% while still matching hand tags just as closely, bringing the full tagging run to $12.41.
Stack
Next.js
TypeScript
Python
Claude API
PostgreSQL
Vercel
Tailwind
How it works

One scoring engine everywhere

Each card's score is fit × commander synergy × quality × popularity × art match, computed by a single pure-JS module that runs in the API routes, the CLI, the tuning bench, and the tests, so a score on the site is the same score everywhere. Five picks per theme are drawn by seeded weighted sampling, so a player's list stays stable while they build, and two players with the same commander still see different cards.

Separating unknown from bad

The obscurity bonus uses log rank, because popularity follows a power law, and it's gated by the model's quality estimate so obscure junk never gets lifted. Across 200 simulated players, each theme surfaces 21–40 distinct cards.

Choosing the model with data

Sonnet and Haiku tagged the same 221 cards and were scored against hand tags. Haiku found tags about as often but rated weak cards 0.59 versus Sonnet's 0.34, which would have broken the gem filter. I picked Sonnet and cut cost with the Batch API and a slimmer output format instead of a smaller model.

Candlestick chart with crosshair, watchlist, and order-book ladder on the simulated feed
01 / 04Candlestick chart with crosshair, watchlist, and order-book ladder on the simulated feed
02
Desktop app · C# / WPF · .NET 10 · 2026

Live Trading Screen

Market data arrives far faster than a screen can draw it. This real-time trading screen stays responsive at up to 17,000 order-book updates per second.

  • 17k/s
    book updates handled
  • <1 ms
    chart draw per frame
  • 82
    xUnit tests
Problem
A trading UI that redraws on every market message either crashes from cross-thread access or freezes under thousands of queued UI calls per second.
What I built
A read-only Windows trading screen with a hand-drawn price chart, an order-book ladder, and a watchlist, fed by Kraken's live WebSocket order books or an offline simulator. Plain-English labels throughout make it readable for someone who has never traded.
My role
Solo developer, with Claude Code as a pair-programmer. I set the product direction and the core architecture, made unit tests a requirement, and reviewed, ran, and QA'd the code against live data. It was my first WPF app and my first C# in over five years.
Outcome
The UI does the same work whether 60 or 17,000 updates arrive per second, and the chart draws in under 1 ms per frame. The 82 unit tests caught a real price-rounding bug on DOGE/USD during development.
Stack
C#
.NET 10
WPF / XAML
WebSockets
Multithreading
xUnit
Claude Code
How it works

The UI pulls, the feed never pushes

A background thread keeps a private order book per market and, after every change, publishes an immutable snapshot by atomically replacing a dictionary entry. A 60 Hz timer on the UI thread is the only path to the screen, so there are no locks, no per-update dispatcher calls, and the UI can never see a half-updated book.

Bounded by design

Price history is sampled at 10 Hz (about 3,000 points per market over 5 minutes), so memory and drawing cost don't grow with feed speed. Prices are stored as integer ticks so floating-point dust can't create duplicate levels.

Hand-drawn controls

The chart (line and candlestick, crosshair, live time axis) and the ladder render directly in OnRender instead of thousands of per-cell elements, costing 0.5–0.8 ms of UI-thread time per frame. Live and simulated feeds sit behind one interface and are fully interchangeable.

01 / 04The flock sweeping past the fixed underwater camera at Lower Granite Dam
03
Interactive 3D data visualization · Three.js · 2026

Salmonid Data Sim & Visualizer

Fish-passage counts are numbers in a spreadsheet. This turns ten seasons of real Snake River salmon data into a living underwater scene you can scrub through.

  • 10
    seasons of real data
  • 5
    species in the flock
  • 1
    draw call per species
Problem
Columbia Basin Research's daily fish counts are public but dense, and hard to feel as anything more than a table.
What I built
A Three.js flocking simulation of the salmon run passing Lower Granite Dam's underwater camera, with GPU caustics and light shafts, plus a HUD, season drawer, and labeled fish viewer driven by real daily counts.
My role
Solo developer, with Claude Code as a pair-programmer: concept, simulation, shaders, data wrangling, and UI.
Outcome
Ten counting seasons (2006–2015) swap in place from a season selector, with five tracked species driving the flock and each species drawn as a single instanced mesh.
Stack
Three.js
GLSL
Boids
Vertex Animation Textures
Data visualization
Vercel
Claude Code
How it works

One sun, one light

The water's fresnel shading, the riverbed, the light shafts, the drifting silt, and the fish themselves all sample the same real-time caustics texture, so moving the sun slides one light net across the whole scene instead of several effects drifting out of sync.

Cheap, believable motion

Flocking runs as 2D boids over a spatial grid, mapped to world X/Z only at render time. Each fish is a skinned mesh baked to a Vertex Animation Texture, with tailbeat rate derived from real per-fish swim speed.

One timeline

The HUD chart, data drawer, and fish-viewer sparkline share one date-to-x mapping, so the scrubber never reads differently against two curves.

02

About

I came to software the long way around, and it's the reason I build the way I do.

Before I wrote production code, I spent seven years supporting children with disabilities, most of them non-verbal. When someone can't tell you what's wrong, you learn to watch what they actually do, measure it, and change the environment instead of the person. I still build software that way.

When I'm not coding, I'm fishing Idaho rivers, which is how ten seasons of Snake River fish counts became one of my projects.

  1. 01
    2013

    The Palouse

    My first tech job was installing relay antennas to bring internet to rural customers across the Palouse, then helping them and local small businesses get set up. Lesson one: technology only counts once it works for the person using it.

  2. 02
    2014–2021

    Behavioral support

    Throughout college I worked as a behavioral support specialist in Boise and Lewiston, Idaho, mostly with non-verbal kids. I logged and analyzed behavior every day to figure out what each child needed, turned it into data-driven support plans, and learned to stay calm and structured when a day went sideways.

  3. 03
    2020–2026

    Software engineering

    My B.S. in Virtual Technology & Design from the University of Idaho blends programming, 3D modeling, animation, and human-centered design, taught in project-based studios where every year ends in a portfolio review. Add a 500-hour full-stack program at CodeWorks, and it led to 4+ years at Sekady Capital owning products for 15,000 users end to end. Now I build with AI agents every day, and I still measure whether the thing actually helps.

03

Core Expertise

Front-End Development

4+ years

Crafting fast, responsive, and accessible interfaces with TypeScript, React, and Next.js, plus Vue, Angular, and Tailwind. Focused on performance, data-heavy views, and cross-browser reliability.

Back-End Development

4+ years

Building scalable APIs and server-side systems with Node.js/TypeScript and Python. Engineering RESTful integrations across distributed services, with PostgreSQL, MySQL, MongoDB, and DynamoDB data modeling and query optimization.

Cloud & DevOps

4+ years

Designing AWS infrastructure (Lambda, EC2, S3, CloudFormation, CodeBuild, CodePipeline, Amplify) for distributed workloads and API services serving 15,000 active users. Docker, CI/CD with GitHub Actions, and production monitoring with CloudWatch and OpenSearch.

Software Architecture

1+ years

Architecting maintainable, scalable systems and owning them end-to-end — performance, reliability, observability, and long-term maintainability. Comfortable evaluating trade-offs and guiding technical direction across teams.

UI/UX Design

6+ years

Designing intuitive, user-centered experiences using Figma and Adobe Creative Suite. Skilled in research, wireframing, prototyping, and usability testing to deliver clean, thoughtful interfaces.

AI-Accelerated Development

1+ years

Shipping with Claude Code as part of the daily workflow, plus custom agents, skills, and MCP (Model Context Protocol) integrations to speed delivery, raise test coverage, and automate documentation.

04

Toolkit

Languages
TypeScript
JavaScript
SQL
Python
C#
HTML 5
Frameworks & Libraries
React
Next.js
Node.js
Vue
Angular
.NET
Tailwind
Sass
Bootstrap
Vuetify
Material Design
Data & APIs
REST
PostgreSQL
MySQL
MongoDB
DynamoDB
Cloud & DevOps
AWS
Docker
CI/CD
GitHub Actions
Observability
Git
Mapbox
Atlassian
Jira
VS Code
Testing
Jest
Cypress
Playwright
Mocha
AI Development
Claude Code
Custom Agents & Skills
MCP
05

Experience

Sekady Capital logo

Full-Stack Software Engineer

Sekady Capital — Fruitland, ID

  • Owned major product areas end-to-end across the full stack, including the fund control dashboard and inspection wizard, from design through production rollout, instrumentation, and long-term maintenance.
  • Engineered RESTful API integrations across distributed services using Node.js/TypeScript, reducing integration failures and improving cross-service data consistency under load.
  • Designed and maintained AWS infrastructure (CloudFormation, CodeBuild, CodePipeline) supporting distributed workloads, background processing, and scalable API services for 15,000 active users.
  • Built data aggregations and optimized data inflow in Vue/Next.js, cutting page load times by 80%.
  • Set up integrated testing and automated test runners, cutting code review and deployment time by ~30% while reducing production incidents.
  • Reduced third-party geolocation and map-rendering costs by ~$2,000/year with no loss of functionality.
2021 — 2026
Developmental Concepts | Consumer Direct Care Network Idaho logo

Behavioral Support Specialist

Developmental Concepts | Consumer Direct Care Network Idaho — Boise & Lewiston, ID

  • Supported children with disabilities, most of them non-verbal, logging and analyzing daily behavioral data to develop data-driven support plans.
  • Resolved high-pressure situations using structured crisis-management techniques.
  • Worked independently and autonomously with clients across a varied caseload.
2014 — 2021
Galexis Technology logo

IT Support Technician

Galexis Technology — Pullman, WA

  • Installed and configured relay antennas to deliver rural internet service across the Palouse region.
  • Provided customer support on basic to complex computer and network issues.
  • Advised small businesses and individuals on network solutions, security concerns, and technology setup.
2013 — 2014
06 — GET IN TOUCH
Open to new opportunities

Let's build something great.

Whether it's engineering, front-end, or product design, I'm interested in roles where I can build and ship things people actually use. Reach out below, or grab my resume.

Download Resume
© 2026 Jackson Schacher — Built with Next.js, React, and MUI. All rights reserved.