digitalferrari
Software Engineering Manager

Mike
Ferrari

Twenty years building software, leading teams, and untangling hard systems.

AI doesn't make coders obsolete. It makes the ones who still know how to code irreplaceable.

See the work
Mike Ferrari, software engineering manager

Twenty years building software. A publishing platform that peaked at 22 properties. ~1.5 million emails a year. 100,000+ registered users.

0
Registered users on a first-party data platform I built
0
Annual software cost eliminated through publishing automation
0
Storage & egress cost being cut by migrating images from S3 to Cloudflare R2
What I do

An engineer(ing) manager

I like building systems that solve real problems. Sometimes that's writing code. Sometimes it's finding a service that's costing the company a fortune and replacing it with something simpler. It always ends in helping people.

Over the years I've ended up wearing a lot of hats—software engineer, engineering manager, architect, DevOps, product owner. At a small company you don't get to stay in one lane.

I still like writing code. I just enjoy solving bigger problems than a single feature. Sometimes the answer is code. Sometimes it's architecture. Sometimes it's simplifying a process that's been wasting everyone's time for years.

Engineering philosophy

Computer science isn't going away. If anything, it's becoming more valuable. When everyone can generate code, the people who understand why the code works, how systems fit together, where the edge cases are, and what should be built in the first place become the bottleneck.

The keyboard stops being the limiting factor. Judgment becomes the scarce resource.

Mike Ferrari working
Still in the code — from wherever the work happens to be.
How I build now

AI writes the code. I still have to know how to.

AI-first workflows are here — I'm living it and finishing projects that I've had sitting around for years. I own the decisions; the agent implements them under my direction.

That's a real shift in how the work gets done, and I think it's where the industry is headed, not a shortcut we'll grow out of.

None of it works without the thing it looks like it replaces. I can only direct an agent well, catch a bad approach, or push back on a wrong abstraction because I know how to write and reason about the code myself. Vibe coding fails the moment the system gets complex enough to matter, if the engineer was AFK.

So I treat hands-on coding knowledge as a hard requirement, not a legacy skill. The agent is faster than me at typing. Judgment — knowing what to build and when to override it — is still mine to bring.

My Endeavors

Systems built to hold up.

01 / 2026Technical Direction · AI-built

SwiftSend — Serverless Email Platform

With AWS Pinpoint reaching end-of-support, I directed the from-scratch replacement for an 11-site newspaper network sending roughly 1.5 million emails a year — designed, built, and proven as a drop-in Pinpoint replacement, with the cutover scheduled for next month. I owned the requirements and drove the architecture; an AI coding agent implemented under my direction. The decisions were mine:

  • Fire-time assembly over patched timing hacks. I traced chronic stale-newsletter sends to a recurring campaign racing a cron job to overwrite content — a race condition three layers of legacy timing code had been built to paper over. I re-architected around content assembled at fire time with immutable dated sends instead, which makes stale sends structurally impossible and let me delete the workarounds.
  • Per-tenant isolation by construction, not by convention. A per-item multi-tenant authorization model was one forgotten condition away from a cross-paper subscriber leak. I chose resource-level IAM isolation — one DynamoDB store per publication — so that bug class can't happen, and each tenant's data stays cleanly portable.
  • A two-token paywall with no shared secrets. Swift Auth's access model pairs a send-time HMAC click token with a short-lived Ed25519 grant, verified in-process by the WordPress plugin against a public key. Because it's asymmetric, there's no shared secret sitting on any of the 11 sites for an attacker to steal in the first place — and no network call on the reader's hot path either.
  • Cut my own plan when the numbers didn't back it up. I'd planned to cache the suppression store for latency. Once I ran the numbers — seconds and about a cent per send directly, versus forcing every send worker into a VPC — the cache didn't pay for itself, so I dropped it. Owning the tradeoff means reversing it when the data says so.

AWS · SES · Lambda · EventBridge Scheduler · SQS · DynamoDB · Firehose · Athena · TypeScript · AWS CDK

02Platform

Registration & Identity Platform

Designed and built a registration platform spanning multiple digital publications, growing to more than 100,000 registered users and giving the business a real first-party customer data platform. Built the subscription and paywall systems alongside it — checkout, payment handling, fraud prevention, and institutional access across a network of publications.

AWS Cognito · DynamoDB · Stripe · React · WordPress multisite

03Cost & Ops

Publishing Automation & Cost Optimization

Not every win is code you write. I found, evaluated, and deployed the WordPress-to-InDesign automation that took manual production work out of the editorial workflow — a tool that has eliminated roughly $220,000 in annual software costs for four years running. Recognizing the right tool and standing it up cleanly saved the company real money, without writing a line of new code.

WordPress · Adobe InDesign automation · Print production · Vendor & cost optimization

04AI Tooling

Internal AI Tools

Built AI-powered newsroom tools — Ask the Editor — that help editors review articles, generate constructive feedback, suggest follow-up stories, summarize documents, process audio, and automate repetitive editorial work. I've been integrating large language models into production software since before most newsrooms were talking about it.

OpenAI · Google · Mistral · Meta · Retrieval-augmented search · Transcription

05Open Source

Addressium — The Open-Source Pinpoint Replacement

A self-hostable, open-source replacement for AWS Pinpoint's email capabilities — multi-tenant newsletter and transactional email for publishers, with double opt-in, magic-link regwalls/paywalls, deliverability controls, and campaign analytics. Public on GitHub, with a live demo at addressium.com. I built it in a directed pair-programming loop with the Claude Code CLI: I owned the architecture, the technical decisions, and the review; the AI produced implementation against my direction. The decisions were mine:

  • Hexagonal architecture, not a framework default. I set the domain core behind ports, with in-memory adapters for tests and AWS adapters for production — so the business logic has no AWS dependency and the AWS topology (DynamoDB single-table, SES, Cognito, KMS, Lambda, API Gateway, EventBridge, Step Functions) can change without touching it.
  • Identity keyed on a stable ID, not the thing that changes. I keyed subscribers on their Cognito sub rather than email, so a subscriber changing their address is a non-breaking attribute update instead of a broken identity — and specified an inbound identity-sync webhook to keep it consistent with the main site's user pool.
  • Stateless auth over stored sessions. I chose KMS-signed, ES256 magic-link tokens for regwall/paywall access so readers don't need an account, with Cognito account creation as an explicit, feature-flagged step after verification — not a prerequisite to reading.
  • Reporting decoupled from the send path. I directed a separate CQRS read model — DynamoDB through Firehose into an S3 data lake, queried by Athena — so cohort analytics load never touches the transactional path, the same separation I'd already proven under load on SwiftSend.
  • Clicks over opens, on principle. I drove the engagement-based sunset/win-back automation and insisted engagement be measured on clicks, not opens — opens are unreliable under Apple Mail Privacy Protection — paired with an RFC 8058 one-click unsubscribe and a suppression / re-opt-in model built to stay compliant.

I ran the work as an issue-driven backlog: writing feature specs, sequencing merges, reviewing every change, and making the scope calls — what to ship, what to park, what to defer. I caught and corrected issues in review, including stripping vendor-specific and real-company references to keep the app genuinely vendor-neutral. My role was architect, technical lead, and reviewer; the AI's role was code generation under my specifications. Every design tradeoff, security decision, and merge was mine.

TypeScript · AWS CDK · DynamoDB · SES · Cognito · KMS · Lambda · EventBridge · Step Functions · Athena

06Independent

identithing.com

An AI-centric analysis tool that inventories assets, built for both B2C and B2B2C (with insurance carriers as the near-term market). Launched and live. I build these end to end, which keeps me honest about cost, tradeoffs, and what actually ships.

AI vision & analysis · Asset inventory · B2C / B2B2C · Serverless

07In progress

A quiet one, still in the workshop

A reading platform built around discovery — because finding your next book shouldn't feel like homework. Not ready to talk about yet. Ask me in an interview.

Recommendation · Discovery · Coming when it's good

Leadership & ownership

I became the technical owner of an entire publishing platform.

I've been Digital Development Manager at Swift Communications since July 2019, and over that time went from writing plugins to owning the whole thing — cloud infrastructure, authentication, subscriptions, payments, messaging, AI tooling, performance, and the engineering operations behind a network of high-traffic news and magazine sites that peaked at 22 properties and now runs 11.

That platform serves roughly 24 million readers a year and on the order of 48 million annual sessions. I inherited a strong foundation from the team before me and have kept it fast, reliable, and evolving ever since.

I led the engineering and digital-operations team — developers, designers, customer service, a videographer — set the standards, managed vendors, and ran incident response. I've mentored developers and delivered technical training to hundreds of employees.

I enjoy helping engineers grow about as much as I enjoy solving the problems myself.

Local newspapers have been declining for decades, and we've had several rounds of layoffs. I went from managing a small engineering team to spending the past three years as the only engineer responsible for our platform. The team got smaller, but the systems still had to perform.

I'm still hands-on. Right now I'm migrating our newspaper images from Amazon S3 to Cloudflare R2, reducing storage and egress costs by roughly $7,000 per month (about $84,000 annually). The same approach can be applied across the rest of our publications, with another six figures in identified annual savings.

Mike Ferrari
Before software · around the world

U.S. Navy veteran. I trained a division of sailors and built custom tools to track dry-dock maintenance and work schedules, back when most of our automation lived in spreadsheets. Eagle Scout and Order of the Arrow.

I've spent the last decade working remotely while living in different parts of the world, mostly in Southeast Asia, with extended stays in Mexico, Croatia, and India. Even while overseas, I've kept North American business hours. Working across continents taught me to communicate clearly, document decisions, and build systems that don't depend on everyone being in the same room.

Mike Ferrari traveling

Values I still carry

I earned Eagle Scout as a teenager, but the principles stuck. They still influence how I lead teams, approach engineering problems, and work with people.

Technical background

The Systems I've Worked On

I care less about specific languages than about building systems that are reliable, maintainable, observable, and easy to change. I've designed and maintained automation across AWS, led engineering teams, and delivered technical training to hundreds of employees.

  • Authentication & Identity
  • Publishing Platforms
  • Newsletters & Email
  • Cloud Infrastructure
  • Digital Asset Management
  • AI Integrations
  • Search
  • Payments
  • APIs
  • Automation

Technologies

JavaScriptTypeScriptPHP Node.jsPythonBash SQLReactWordPress AWSLambdaLambda@Edge CloudFrontCognitoSES API GatewayEventBridgeDynamoDB AthenaFirehoseAWS CDK MySQLPostgresRedis DockerStripeOAuth 2.0 REST APIsLLMs / AI
Where it started

My career has never really been about software. It's been about solving problems. Software just happens to be the tool I use most often.

Phase 01 · 2017–2019Advertising operations

Advertising Specialist, Swift Communications

I started in advertising operations at Swift Communications, a newspaper company — running campaigns through Google Ad Manager, coordinating launches across editorial, sales, and operations, and becoming the person people asked when nobody else had the answer.

My first software projects weren't products—they were internal tools that eliminated repetitive work and helped people do their jobs faster. That mindset has shaped every system I've built since.

Google Ad ManagerProgrammatic Advertising Campaign AnalysisRevenue Operations Client ConsultingDigital Publishing
Phase 02 · 2019The pivot

Asking for the job I hadn't done yet

In 2019, our Digital Development Manager accepted a job at another company. Before he left, he pulled me aside and encouraged me to apply. During my interview with the IT Director, I said, "I want to build things that can only be accomplished with the help of a team." A month later, I was promoted into the role.

Team LeadershipPlatform Ownership Stakeholder Communication
Phase 03 · 2019–presentPlatform engineering

Cloud architecture, and eventually, the whole platform

I grew into the job I'd asked for: building a registration platform on modern cloud infrastructure, managing our dev team during our full CMS migration from WordPress to Naviga Writer and back again — the second move when leadership cut the cost — training roughly 200 people through both, and now SwiftSend to replace Pinpoint and keep our 1.5 million newsletter emails flowing. It's the same instinct as that first spec-checker — find where a process is carrying more friction than it needs to, then remove it and automate processes — just aimed at bigger systems now, with a team of agents instead of just myself.

Cloud ArchitectureSoftware Architecture Engineering ManagementAI Integration
Get in touch

Building things that solve real problems.