Newcastle upon Tyne, United Kingdom
Nick Schreiner
Full-stack engineer working across TypeScript and Rust. Currently building a warehouse management platform at Dropper AS.
About
Full-stack engineer at Dropper AS, a Norwegian warehouse-management SaaS, where I'm building the platform end-to-end — order intake through pick, pack, ship, and returns. I work across the TypeScript stack with React and Node.js, and reach for Rust when the problem calls for it. Bilingual in English and Russian.
Experience
-
Software Engineer at Dropper AS
Oct 2025 — Present
Working across the frontend on a small product team building the platform from the ground up — dashboard, packing workflow, warehouse mapping tool, and admin console; shipping the CI/CD.
- Built the mobile-responsive packing station — QR scanning, 5-minute keepalive heartbeats, and multi-box fulfillment state — for the order-fulfillment flow.
- Designed a custom 2D warehouse mapping engine in PixiJS — drag-and-drop racks and zones, obstacle-aware pick-route generation using A* (via ngraph) and TSP (nearest-neighbor + 2-opt), backed by a command-pattern undo/redo system for non-destructive edits.
- Shipped the returns workflow as a five-step wizard with explicit step transitions (find-order → form → details → shipping → success), supporting refunds, exchanges, repairs, and gift cards; integration tests cover the critical operations — approve, reject, resolve, receive items.
- Built the virtualized data-table layer on TanStack Table + Virtual — saved per-user views, batch actions, drag-to-reorder columns, async rendering — with type-safe column definitions; type-check and lint enforced in CI on every PR.
- Set up i18n infrastructure with type-safe translation keys across English and Norwegian; integrated Sentry for error tracking and PostHog for product analytics.
TypeScriptReact Router 7ViteTailwindHeroUI
-
Software Engineer at WHY Functional Nutrition Clinic
Jan 2024 — Oct 2025
Built a full-stack site and e-commerce platform for a London-based functional nutrition clinic.
- Designed and built the marketing site with React, TypeScript, and Express.
- Modeled and decoupled content via Contentful — 18 entry types covering programmes, packages, consultations, FAQs, and reviews — so the practitioner ships copy, pricing, and product changes without engineer involvement.
- Implemented Stripe subscription scheduling for multi-session packages — webhook-driven (customer.subscription.created), configurable phase iterations, auto-cancellation after N sessions across three product lines (consultations, packages, programmes).
- Added Mailchimp newsletter capture and bilingual content (English + Russian) with locale persisted in localStorage — implemented on React Context, no global state library.
ReactTypeScriptExpressContentfulStripeMailchimp
Side projects
-
Discord moderation toolkit where the defaults fall short.
Discord moderation toolkit — infractions with audit trails, ban/mute requests with reviewer sign-off, VirusTotal-backed URL reputation lookups, and structured event logging across messages, voice, threads, members, and moderation actions. Bun + Prisma + SQLite; Docker with pinned image digests, AsyncLocalStorage-propagated request context across crons and command handlers, graceful-shutdown Sentry flush, and a Bun /healthz endpoint wired to PM2-reload checks. CI gates every PR (lint, type-check, migrations, tests, audit); deploys via PM2 reload with pre-deploy database backups.
BunTypeScriptdiscord.jsPrismaSQLite
- github.com/Archasion/Magnolia
Magnolia
Rust Discord bot for Roblox DevForum communities.
Discord bot built on the Twilight ecosystem — tokio async, SQLite with Refinery migrations, serde_yaml config, and reqwest-driven external API integrations. Verifies Roblox DevForum (Roblox's developer forum) rank, manages roles based on verification state, serves an FAQ interaction command, and persists highlights data. Modular command/component handlers; anyhow error chains throughout.
RustTwilightTokioSQLiteRefineryreqwest
- github.com/Rodis-Infrastructure/azalea-web-config-editor
azalea-editor
Web UI for Azalea's configs — atomic saves with validation and rollback.
Full-stack config editor for the Azalea moderation bot — Bun + Hono backend serving a React frontend with Monaco editor and structured forms (react-hook-form + zod). Discord OAuth (identify, guilds), per-guild RBAC mirrored from the bot's permission model. Save pipeline: lock → validate → mtime-check → backup → atomic write → PM2 reload → health poll → rollback on failure. SQLite audit log and session store.
BunHonoReactMonacoViteSQLite
- github.com/Archasion/git
git-rs
Reimplementing Git's plumbing in Rust.
Reimplements Git's plumbing in Rust from scratch — SHA-1 content addressing, zlib-compressed object storage via flate2, and the core inspection commands: init, hash-object, cat-file, ls-tree. Operation-level error chains via anyhow keep failures debuggable when objects are malformed.
Rustclapflate2sha1
Skills
- Languages
- TypeScript · JavaScript · Rust · Python
- Frontend
- React · React Router · Vite · Tailwind CSS · TanStack Query
- Backend
- Node.js · Bun · Express · Hono · Prisma · PostgreSQL · SQLite
- Tooling
- Git · Docker · Sentry · PostHog · Vercel · GitHub Actions
Education
-
Newcastle University
-
New City College
Get in touch
The fastest way to reach me is by email: