Web & Software Development
Also open to software engineering roles, full-time or contract →
I build websites and custom software for small businesses that want practical solutions, not corporate ones — and I ship my own products the same way.
Services
A clean, professional website that represents your business and makes it easy for customers to find and contact you.
Tools built around how your business runs — not generic software you have to work around.
Not sure what you need? Let's talk through your business and figure out where technology would help — and where it wouldn't.
Open to work
Full-stack web, Android, or product engineering. I work end to end, directing AI coding agents through schema, implementation, tests, CI, and documentation, and owning the decisions and review at every step, and I've shipped products to real users on my own, not just to a demo branch.
Live in production
RidePrint — a full-stack SaaS platform with payments, third-party OAuth, and paid-tier features, running at rideprint.com.
6,500+ automated tests
Across five projects, with CI on every push and emulator-based instrumented tests on Android.
Public code you can read
Postmark, ShaftSchematic, Yearal and the engine visualizer are open on GitHub, with their tests and CI history alongside the source.
Selected work
Products I've built and shipped myself, and site work for local businesses. Every project below started from an empty repository, and every one is gated by automated tests and CI.
Products
A permanent service history and resale verification platform for bikes — the Carfax of bikes. Riders keep a maintenance record a buyer can trust, shops log work straight onto a customer's bike, and sellers list with that verified history attached. Riders log service records, sync rides from Strava, upload receipts that Claude Vision reads and pre-fills, and share the result by QR code. Shop access sits behind a mechanic clock-in gate, and privacy tiers are enforced in application code and again by Postgres row-level security.
Visit rideprint.comStack
Next.js 16 · TypeScript · Tailwind v4 · Supabase (Postgres + RLS) · Anthropic API · Stripe · Resend · Vercel
Highlights
A privacy-first Android SMS client that fully replaces the default messaging app, keeping its own local database so search, stats and backups work with no cloud account at all. Its MMS layer splits the carrier's byte budget across every attachment in a message — smallest first, with under-budget images donating their surplus to larger ones — so a multi-photo message compresses to fit instead of failing to send. Photo, video and voice-memo messaging; full-text search; conversation stats and calendar heatmaps; scheduled backup and merge-only restore. No cloud, no accounts, no analytics.
View on GitHubAn Android app for modeling marine propeller-shaft assemblies, built out of my own day job inspecting and repairing shafts at a propeller shop, where the drawings were being made by hand because CAD made the work slower rather than faster. A machinist defines a shaft, watches a live dimensioned preview, and exports the one-page technical PDFs a repair job calls for — without opening CAD at all. Multi-segment shafts with bodies, tapers, threads, liners and bolt slots; schematics, runout sheets, wear documents and undercut drawings, each with a blank write-in variant for marking up on the job.
View on GitHubAn interactive 3D visualizer for piston-engine geometry, built so the motion can be studied rather than just watched. Enter bore, stroke, rod length and compression ratio — or load one of sixteen real engines — and the crank turns on exact slider-crank kinematics rather than the usual sinusoidal approximation, so rod angularity is visible instead of averaged away. Renders inline-3, -4 and -6 layouts at their real crank-throw phasing, plots position, velocity and acceleration from closed-form derivatives, and compares two engines side by side at a shared scale.
Try it liveA local-first document archive that turns a drawer of scanned paperwork into something searchable, without a page of it leaving the machine. Drop in a PDF or a photo and it reads the text by OCR, applies AI-generated metadata — title, vendor, date, category — and files it where you can find it again. Covers 22 document types and image-to-PDF ingest, ships as a Windows installer, and is backed by 950+ automated tests and a nine-phase fault-injection test plan.
Small business sites
A site for a one-man race prep and performance shop in Duvall, WA — 15+ years of experience, 40+ custom cages built, recognized by SCCA, NASA, and LeMons. Showcases services including exhaust, alignment, coilovers, and Miata/MX-5 specialization. Built with the owner and revised to his notes.
View the demoA polished marketing site for a café in Mountlake Terrace, WA — est. 1993. Single-page and mobile-responsive, with a tabbed menu, an hours bar, photo sections, Google reviews, and an online-order call to action. Built on spec as a concept for the owner.
View the demoAlso built
Open source
Fixes sent back to the tools I use day to day.
Opened a pull request to an open-source Python terminal monitor published on PyPI — still open as of September 2026 — that adds recognition for the Claude 5 model family, corrected pricing that was billing a new model at a legacy model's rates, labeled auto-estimated limits honestly rather than presenting them as measured, and fixed metric bars that broke in narrow terminals.
About
I'm Chris Mendoza, a developer in Bothell, WA, just outside Seattle, working as PlusOrMinusTwo Designs. I have a B.A.S. in Application Development and a background that's taken me through IT support, restaurants, and — still, today — a machine shop floor.
I've worked alongside the kind of small businesses I now build for — and I know that what you need is something practical that actually works, not an overcomplicated solution from someone who's never been in the trenches.
That background shows up in the code. I machine and inspect marine propellers and shafts at Sound Propeller Services, and ShaftSchematic exists because I needed it there — the drawings were being done by hand, since CAD made the job slower rather than faster. RidePrint started as a problem I had as a cyclist and is now a live platform with a marketplace and shop integrations. I build with AI coding agents. My job is deciding what gets built, how it fits together, and whether it's actually right: reviewing the output, setting the test and CI gates, and using the software daily on real devices.
Contact
Have a project in mind, a role to fill, or just an idea you want to talk through? I'd love to hear from you.
Tell me a bit about what you're working on — a rough idea is enough to go on. If you're hiring, mention the role and I'll send whatever else you need.
Usually back within a business day. Prefer email?