Looking for payer portal automation? See the service
Michael Mortensen

Michael Mortensen

Software Engineer · Cloud Architect
Phoenix, AZ mvmorten.com github.com/mvmorten
Send me a message

About

I'm a software engineer focused on the unglamorous parts of building software: making it run, keeping it running, and making sure the next person to touch it doesn't dread it. Lately that means software that works where there is no API: pipelines that log into websites, read and write through the browser, and recover on their own when a page changes.

I care about pragmatic engineering: solve the real problem, measure the result, and remove toil rather than add tooling. Human-centered design shapes how I approach APIs, internal tools, and anything someone else has to use.

Selected work

Open source · built in publicBuilding

Dashboard Starter

An opinionated React + ASP.NET Core + SQL Server starter, built in public.

Problem

Most starters stop where the hard part begins. Every new business app ends up rebuilding auth, layout, and plumbing for the tenth time.

What I'm building

A production-shaped dashboard app you can clone, rename, and build your real product on: React and TypeScript, an ASP.NET Core API with hand-written SQL through Dapper, and schema changes as plain SQL scripts applied by an explicit migrate command. Every significant decision gets written up in a post.

So far

Live at dashboard.mvmorten.com, deployed to Azure on every merge once CI has checked the build and the schema against a real SQL Server. The API connects with its own login that can read and write data but can't change the schema.

ReactTypeScriptASP.NET CoreSQL ServerDapperAzure App ServiceAzure SQLGitHub Actions
Follow the build →
Healthcare software company · no-API data pipeline

From manual googling to nearly 50,000 facilities

Problem

Employees googled assisted-living facilities one at a time and guessed at emails. That approach couldn't get past a few hundred records.

What I built

A pipeline that collects records from government sources in all 50 states, enriches each through Google APIs, and validates every email for deliverability, with no human in the loop.

Result

Nearly 50,000 facilities structured, 11,500+ verified emails, and roughly 4 person-years of manual research replaced.

C#.NETPlaywrightAzure Container AppsService BusGoogle APIsZeroBounce
Architecture deep dive →
Telematics data platform · SaaS

From scattered prototypes to a coherent React codebase

Problem

The front end was a set of prototypes built by an outside team who knew the API but not React. It was full of dead code, had no consistent structure and no tests, so every change risked breaking something else.

What I built

I removed the dead code and reorganized everything into a coherent codebase, with consistent component and state management patterns the whole team could build on. I also built the front-end unit test suite from scratch. The first three months were hand-written; the last six were driven by Cursor and Claude Code.

Result

Front-end test coverage went from 0% to 98%. The codebase became much clearer to work in, with far fewer regressions.

ReactTypeScriptReact ContextSisense SDKASP.NETSQL ServerClaude Code
Case study →
FinTech data company · no-API publishing

1,000× publishing output, zero hand-keying

Problem

Hourly staff hand-keyed fund and marketing data into 30 partner sites that had no API. Every typo was a credibility problem, and every departure meant retraining someone on all 30.

What I built

An analyst-approved pipeline that logs into each site, publishes through the browser, then verifies every push in a fresh session, with a screenshot of each step.

Result

1,000× output, all 30 sites updated automatically, manual-entry errors eliminated, and 5× revenue growth over two years.

C#ASP.NETAzure VM Scale SetsAzure Queue StoragePuppeteerSharpSQL Server
Architecture deep dive →

Toolbox

AI and LLMs

Azure OpenAI and GPT-4 (prototype), self-healing browser automation pipelines, Claude and Claude Code daily (plan mode, one session per feature), Cursor previously, local models (Ollama, LM Studio)

Languages

C#, .NET, TypeScript, JavaScript, Python, SQL

Cloud and systems

Azure (Functions, Container Apps, Service Bus, App Service), distributed systems, queueing and concurrency, CI/CD, infrastructure as code, containers

Automation and frontend

Playwright, Puppeteer, React, ASP.NET MVC, human-centered design

Contact

Send me a note here and it comes straight to my inbox. I reply from my own address, usually within a business day. My full résumé, with roles and dates, is available on request.

Common interview questions are answered in the FAQ.

Get in touch at mvmorten.com/#contact.