Portfolio
Around five years building software across healthcare, fintech, eCommerce and enterprise SaaS, with recent work focused on applied AI. A selection of projects, grouped by type.
AI & Machine Learning
Agentic Assistant for PLM and CAD
An LLM agent that takes plain-language requests from an engineer and carries them out against SolidWorks and 3DEXPERIENCE data.
- Tool-calling loop with a typed action schema, so each step maps to a real API call
- Retrieval over engineering documents and part metadata
- Confirmation step before any action that writes to model or PLM data
EEG Connectivity Analysis Pipeline
Processing pipeline for recordings from a four-channel EEG headset, built to run the same way across subjects.
- Blink and saccade artifact removal tuned for low channel counts
- Band-power extraction and connectivity metrics across electrode pairs
- Batch runs with per-subject reports
Product Catalog Enrichment
Normalises supplier product data and drafts descriptions, with a review step before anything is published.
- Attribute extraction and mapping into the store taxonomy
- Description and meta text drafting with per-category rules
- Background jobs so large catalogue runs do not block the admin
Document Intelligence Service
Semantic search across contracts, specifications and internal documents.
- Ingestion with parsing, OCR, chunking and embedding
- Vector search with metadata filters and keyword fallback
- Results limited to documents the user already has access to
eCommerce
Bulk Order Import
Replaced manual entry of emailed order spreadsheets with a validated upload.
- CSV and Excel upload with row-level validation and a preview step
- SKU and customer code mapping to the buyer’s own part numbers
- Background processing with a per-row error report
Multi-Store nopCommerce Build-Out
Several storefronts on one install, each with its own catalogue, currency and tax rules.
- Shared theme and checkout with per-store overrides
- Shipping and tax provider plugins for multiple markets
- Customisations kept in plugins to protect the upgrade path
Headless Storefront
New storefront in front of an existing commerce backend, so the shop could be rebuilt without touching order processing.
- Statically generated product and category pages with revalidation
- Cart and checkout against the existing commerce API
- Faceted search with filter state held in the URL
Full-Stack Development
Voice Calling App
In-app calling between users and out to ordinary phone numbers, including when the app is closed.
- Twilio Voice SDK for client-to-client and outbound PSTN calls
- FCM push to wake the app for incoming calls
- Express backend issuing access tokens and serving TwiML routing
Pharmacy and e-Prescription Platform
Connects patients, prescriptions and pharmacies through a single fulfilment workflow.
- Prescription upload with pharmacist review states
- Fulfilment queue, order tracking and delivery status
- Role-based access with an audit trail on clinical records
Admin and Reporting Portal
Back-office application covering accounts, entitlements, usage and month-end reporting.
- Server-side paging, filtering and export on large tables
- Scheduled report generation with email delivery
- Shared React component library across screens
Content Automation Workflows
Fetches article content from a source site and reduces it to clean text for downstream use.
- HTTP fetch and HTML parsing to isolate the article body
- Normalisation and de-duplication before storage
- Retry and error branches for failed pages
System Integrations
QuickBooks Accounting Integration
Keeps customers, invoices and payments in step between the product database and QuickBooks.
- OAuth 2.0 flow with token refresh and per-tenant credentials
- Idempotency keys on sync operations to prevent double posting
- Webhook handling plus a scheduled reconciliation pass
ERP to Storefront Sync
Moves products, prices and stock levels from the ERP to the storefront.
- Delta sync on change timestamps rather than full catalogue pushes
- Queue-based transport so ERP downtime delays the sync instead of breaking it
- Configurable field mapping and unit conversion per feed
Payment and Shipping Gateways
Payment and carrier integrations behind a common provider interface.
- Hosted and embedded payment flows with 3-D Secure and refunds
- Webhook verification and replay protection on status callbacks
- Live carrier rates, label generation and tracking updates
Microservices & Cloud
Monolith to Microservices
Extracted capabilities from a large .NET application one at a time while it stayed in production.
- Service boundaries drawn around business capabilities, each with its own data
- API gateway in front, monolith still serving anything not yet moved
- Asynchronous messaging between services
Kubernetes Deployment
Standardised how services are built, configured and deployed across environments.
- Multi-stage Docker builds with configuration supplied through secrets
- Liveness and readiness probes, resource limits and autoscaling
- CI/CD pipelines running build, test and deploy on merge
Distributed Caching Layer
Caching applied across services, with invalidation driven by domain events rather than fixed expiry times.
- Redis distributed cache with an in-memory first tier for hot keys
- Output and response caching on read-heavy endpoints
- Tag-based invalidation and hit/miss metrics
Working on something similar?
Full-stack engineer based in Finland, currently working on applied AI, .NET platforms and eCommerce systems. Happy to talk about any of the work above.
Get in touch