Software engineer · Remote from Harrisonburg, VA

I build software that does real work for real businesses.

Five years building enterprise web apps in TypeScript and Scala. On my own time I work directly with small businesses: I find the job someone does by hand every day, then build the AI tool or system that takes it over.

Open to full-time forward deployed and AI engineering roles, and to contract projects.

5 years professional Claude Code every day Fully remote

Work

What I've built

Each one is written up the way I scope a job: the problem, what I built, and what keeps it safe to run. Client names are left out unless they've said it's fine.

Shipped

In use today
Used car dealer, Virginia

LotReply: Marketplace lead responder

v0.3.4 shipped
ProblemBuyers message on Facebook Marketplace at night and on weekends. A slow reply loses the sale to the next lot.
BuiltA Chrome extension that checks the dealer's Marketplace inbox every few minutes, looks up the vehicle on the dealer's live inventory site, and has Claude draft a reply with the real price, mileage, and a Carfax link. Each draft lands on the owner's phone in Telegram with Send and Skip buttons. Replying to the card rewrites the draft.
GuardrailsNothing sends without the owner's tap. A daily reply cap keeps the volume human. It pauses itself if Facebook shows a security check, never negotiates or quotes financing, and texts the owner if the computer goes offline.
Handed offThe extension, a settings panel with a test lookup, one-click diagnostics that strip the API key, and a written setup guide for the dealer's staff.
StackChrome extensionClaude APITelegram Bot APIInventory lookupUptime heartbeat
My own product, for homeowners

Oakroom

Live oakroom.app
ProblemOn a custom home build, every faucet, tile, and light fixture is a decision with a budget allowance attached. The allowances live in a PDF from the builder, and the choices end up scattered across emails, photos, and store tabs.
BuiltA phone-first tracker for selections and allowances, room by room, made to use in a showroom. Snap a photo of the allowance schedule or a quote, or paste a product link, and Claude reads it into line items. Each category shows right away whether you're over or under budget.
BusinessEmail sign-in with no password, a free tier for one project, and a one-time $99 Build pass for unlimited items. I built it during my own house build.
StackNext.jsReactSupabaseVercelClaude API
My own product, for rural homeowners

weatherHouse

Live weatherhouse.app
ProblemHomes with a well, septic tank, propane, a wood stove, or a generator need upkeep that the big home apps ignore.
BuiltPick your home's systems from simple tiles and get a prioritized maintenance schedule, with the reason and a rough cost for each task. Local weather turns into tasks: a freeze warning means plug in the well house heater and drain the hydrants. Reminders arrive by email and web push.
BusinessFree for one home. $39 a year adds push weather alerts, full history, CSV export, task photos, and up to three homes.
StackNext.js PWAWeb pushSupabaseVercelWeather data
Family vacation rentals, Florida

Myakka House direct booking

Live myakkahouse.com
ProblemTwo rental homes booked only through Airbnb and Vrbo, which take 12 to 15 percent of every stay.
BuiltA direct-booking site with its own checkout. Guests pick dates and see the full price. The owner approves from an email, the guest pays by card or bank transfer through Stripe, and the payment confirms the stay and publishes the dates back to Airbnb and Vrbo. Availability merges both platforms' calendars, so nothing double-books. No monthly hosting bill.
Under the hoodStripe webhooks are the only thing that confirms a booking, including bank payments that settle days later, and a failed webhook can't lose a paid booking. Approval links are safe from email scanners that click everything. Tests cover pricing, calendars, payments, and email, plus a smoke test that walks the whole flow.
StackAstroCloudflare Pages FunctionsCloudflare D1StripeResendiCal sync
Same dealer

Facebook inventory sync

Live
ProblemAbout 160 vehicles posted one at a time on Marketplace and in local Facebook groups. The listings drifted from the website: sold cars still up, new arrivals missing, old prices, old posts buried in search.
BuiltA Claude agent that treats the dealer's website as the source of truth. Each run it marks sold cars, publishes new arrivals with their photos to Marketplace and the groups, matches prices to the site, and renews stale listings.
GuardrailsIt shows the full plan and waits for one approval before touching anything. Keeping the dealer's Facebook account in good standing comes before speed.
StackClaude agent skillsBrowser automationClaude Cowork

In progress

Building now
Car dealership

After-hours email lead responder

In build
ProblemEmail leads that come in after closing sit until morning, and by then the buyer has moved on.
BuildingA responder that answers overnight email leads with accurate inventory details and a clear next step. The dealer asked for it, and LotReply grew out of it.
StackClaude APIEmailInventory lookup
Same dealer

Deal intake from a photo

In build
ProblemEvery sale means typing the same customer and vehicle into the dealer management system, then again into the state titling system. It's slow, and typos cost money.
BuildingSnap the buyer's ID, paste the vehicle link, and the deal fills itself in both systems. Webcam first, then phone camera, then a barcode scanner.
StackClaude visionDealerCenterCVR titlingBrowser automation

Also scoped: a posting planner for the same dealer that recommends which sites, which Facebook groups, and which listing city to use for each vehicle. The spec and market research are done.

Client websites

Live
  • 2026 Bridge of Love MinistrySite for a 501(c)(3) ministry serving people in urgent need and supporting local churches in Ukraine: missions, impact numbers, YouTube field updates, newsletter signup, and a Give page. Next.js on Vercel. bridgeofloveministry.org
  • 2026 Alpine ContractorSite for a licensed plumbing and home building contractor in Harrisonburg, VA: services, finished projects, upcoming spec homes, the team, and a contact form. Next.js on Vercel. alpinecontractorllc.com

Earlier work

On GitHub
  • 2022 iRepair websiteClient site for a repair business. Angular 13 on Firebase Hosting. Code
  • 2021 Valley Electric websiteSmall site for an electrical contractor in Harrisonburg, VA. Code
  • 2021 Parts ordering appMobile-style ordering UI in Angular and Bootstrap, with a Spring Boot API behind it. UIAPI
  • 2021 Maps shortcut for ChromeChrome extension: highlight an address on any page and search it in Google Maps from your saved starting point. Code

Experience

Where I've worked

Current · 5 years Full time

Software Engineer

Healthcare technology company. Name shared on request.

  • Front end in Angular, PrimeNG, and TypeScript for the patient portal and related apps, including a shared notes UI library.
  • Backend APIs for orders, order status, reorders, payment processing, patient notes, contact management, and patient search, including Scala services built with SBT and ScalaTest.
  • Payment and subscription flows in the front end, and production debugging with Sentry.
  • Made the case to the tech leads for upgrading to Angular 22, including the PrimeNG license it requires.
Before software

Service and parts

Independent car dealership

  • Years behind the service and parts counter. It's why I can sit down with a dealer and quickly tell which chores are worth automating.

How I work

Sit with the people doing the work, then build

Whether I'm on your team or on contract, a project runs the same way.

Watch the real chore

I sit with whoever does it today and learn which systems it touches and what a finished job looks like.

Scope it plainly

One page: what gets built, what it costs, and when you'll see it. If it can't be done well, I say so up front.

Ship early on real data

You see it working on your own data before it's finished, and we adjust from there.

Make it safe to leave running

Approval gates, rate limits, alerts when something breaks, and a guide your team can follow. You own the code and the accounts.

Contract work: fixed price Working demo before final payment 30 days of fixes included

About

Engineer who used to work the counter

I'm Dennis. I've spent five years as a software engineer, building Angular front ends and Scala services in healthcare. Before that I worked at a car dealership for years, mostly in service and parts, so I know what a Monday of manual data entry feels like.

Most of what I build now uses Claude to handle the parts of a job that used to need a person reading a screen. I use Claude Code every day, and I like the customer-facing side of the work: figuring out what someone actually needs, then building it with them.

I work fully remote from Harrisonburg, Virginia.

What I'm looking for

Full time: forward deployed, AI, or solutions engineering roles where I build directly with customers. Fully remote.

Contract: automations, AI assistants, connecting systems that don't talk to each other, and small sites. Businesses anywhere.

Tools I use

AIClaude CodeClaude APIAgent skillsVision extractionBrowser automation
Front endTypeScriptAngularPrimeNGReactNext.jsAstro
Back endScalaNodeJava / Spring BootCloudflare Workers + D1SupabaseFirebase
IntegrationsStripeResendTelegram botsiCalChrome extensionsSentry
Dealer systemsDealerCenterCVRCarsforsaleFacebook Marketplace

Contact

Hiring, or have a project?

Send a few lines about the role, or the job you want off your plate. I reply within one business day.

dvmarchuk4@gmail.com
Opens your email app with this filled in. If nothing opens, copy the address instead.