I joined Truemark in 2021 as an associate engineer and was leading client applications as a senior 16 months later. Most of that work serves US healthcare clients, where one lost file or wrong price breaks trust.
I start by mapping how the work actually moves: who touches what, and where it breaks. Then I model it as explicit states and automate every step between.
How I ship a feature with AI:
Understand: the requirement, and the problem behind it
Research: how others have built it
Plan with AI: frontier models draft the plan in plan mode
Grill the plan: Q&A rounds where the model asks every question before any code
Slice: the plan becomes small, verifiable tasks
Agents implement: one task at a time
QA: I verify the work myself
Close the gaps: anything missed goes back to the agent until it’s right
Selected work
Helios (Medical translation)
One platform for medical translation projects, from file intake to invoice.
Before: Email threads and spreadsheets. After: One auditable workflow.
~20 files per project · 4–5 language pairs · up to ~100 tracked tasks
Read the case study
Client: US healthcare localization provider (NDA) Flow: Intake → Validate → Price → Route to vendors → Deliver → Invoice
Problem
Every file, in every language, needed its own vendor, deadline, and delivery. Coordinating that by hand was slow, risked lost files, and left no audit trail for clients who require one.
Architecture
Users
Clientsupload sources, receive delivery
Project managersprice, assign, track
Vendorsone per language
↓ HTTPS · Pundit policies
Rails 7 + React app
Intakefiles to S3, job record created
Job workflowone state per stage
PM dashboardslive status
↓ enqueue; the request returns immediately
Background · Sidekiq
Validate filesbad or missing files caught at upload
Split by language pairone task per file per language
Generate documentspricing, work orders, invoices
↓ store · broadcast
State & real-time
Databasejobs, assignments, audit history
AWS S3source and delivered files
ActionCablestatus to open dashboards
Simplified. Client systems omitted (NDA).
My part
Sidekiq pipeline that validates and routes multilingual files on upload
Automated pricing, turnaround, and vendor work orders
Live dashboards and role-based access
Key decisions
Background jobs for anything slow. Uploads return instantly; failed validation or routing retries safely.
Authorization as policies. One Pundit policy per model decides who can do what. Essential when clients, vendors, and staff share one system.
Push, don’t poll. Dashboards update the moment status changes, with no polling load.
Impact
Every hand-off automated.
Audit-ready history for every job.
More volume without more coordinators.
Built with Rails 7, React, Sidekiq, ActionCable, AWS S3, Pundit, Docker.
Quoting (Localization pricing)
Turns a translation request into an accurate, versioned quote.
Before: A spreadsheet per project manager. After: One shared rulebook.
larger file sets than Helios · large worksheets per project type
Read the case study
Client: Same client as Helios Flow: Request in → Worksheet estimate → Edit line items → New version → Approve → Hand to delivery
Problem
Price depends on word counts, language pairs, schedule, and client-specific rules. Each PM priced from a personal spreadsheet: quotes were slow, one job could get two prices, and a change request had no reliable record of the previous quote.
Architecture
Inputs
External intake systemsrequests with file lists
Project managersreview and adjust
↓ Rails API · Pundit: view, edit, approve
Rails 7 API + React 18 editor
Intake APInormalises requests
Worksheet rulesone worksheet each
Quote editorline items per language pair
↓ every save writes a new version
State & real-time
PostgreSQLimmutable versions, rules
AWS S3file lists, word-count logs
ActionCableco-editing sync
↓ approved quote hands off
Downstream
Approvalsubmit or reject
Delivery workflowwork begins
My part
Pricing-rule and version data model in PostgreSQL
Multilingual line-item editor with live co-editing
Integrations: external intake in, delivery out
Key decisions
Immutable versions, not edits in place. History, comparisons, and client disputes become simple queries.
Pricing rules as data, not code. A new client or project type is a data change, not a deploy.
Real-time only where it matters. Live sync runs on the editor alone, where several people touch one quote.
Impact
Faster quotes, less back-and-forth between PMs and sales.
One price per job, whoever quotes it.
Full revision history for enterprise clients.
Built with Rails 7, React 18, PostgreSQL, ActionCable, AWS S3, Pundit, Docker.
aListEngine (AI cataloging)
Photos in, auction-ready listings out, for auctioneers and resellers.
Before: Hours of writing per batch. After: Minutes, reviewed by a person.
live product · hundreds of photos per batch · 10 export platforms · iOS + Android
Read the case study
Client: Auctioneers, estate-sale teams, resellers · alistengine.com Flow: Capture → Split into lots → AI draft → Team review → Export
Problem
Every one-off item (antiques, collectibles, equipment) needs a title, description, condition notes, and price, formatted differently for each platform. By hand, quality depended on the writer.
Architecture
Capture
Mobile appbulk photos in the field
Web workspacefolders per sale, team roles
↓ batches sync
Rails + React platform
Lot splittingbarcodes group photos, duplicates removed
AI draftingvision + text models, 4 analysis depths
Rules engineorg and folder instructions, auction or retail pricing