
My Tech Journey
From a Ghanaian internship to Salesforce — the people, detours and lessons that shaped a decade in web development.
Read more →I'm Laud Tetteh, a software engineer in Seattle with 12 years of experience building and operating web platforms.
At Salesforce/Tableau I work on tableau.com — a site drawing roughly 13 million visits a month (Semrush estimate, 2026) on a large enterprise Drupal installation. I co-own much of the automation behind it: the CI container images, the composite Actions our workflows are assembled from, the gated pipeline that deploys to production four times a week, and the nightly extract-transform-load job that keeps the team on clean data. I didn't write that pipeline — I inherited it, and I've spent four years making it better without breaking the team that depends on it. I built the site's public pricing calculator, and I led its analytics re-platform.
I take the release rotation, lead the weekly operations review, and carry the pager.
On my own time I design, build and maintain Beacon Essentials, a production e-commerce platform in Ghana, and The Rig, an open-source framework for making AI coding agents reliable.
Tableau Marketing Engineering
I work on tableau.com — a top-5,400 global site drawing roughly 13 million visits a month (Semrush estimate, August 2026), running a large enterprise Drupal installation of about 58 custom modules, 3,500 configuration files, and a hundred-spec end-to-end test suite.
I co-own the automation that moves code and data through our environments. I didn’t write this pipeline — I inherited it, and I’ve spent four years making it measurably better without breaking the team that depends on it. That’s a five-image CI container suite in a private registry, reusable composite Actions covering dependency caching, test setup and registry auth, and a gated pipeline promoting integration → dev → test → production with commit-SHA parity checks at each hop and a programmatic gate that blocks the production deploy if the previous stage’s checks didn’t pass. Four releases a week run unattended. A nightly ETL — extract, transform, load — clones production down to test and dev, prunes and sanitizes it, and provisions test users, so every engineer starts the day on realistic, safe data.
Two pieces are mine outright. I designed the branch-scoped dependency cache keys that eliminated a cross-environment cache-poisoning failure mode — a class of intermittent build failure that is genuinely hard to see. And I own credential rotation across cloud IAM, source control and service accounts, always verifying a clean deploy on the new keys before retiring the old ones.
I built the current Tableau Pricing Calculator — the tool that lets you configure editions, licenses and add-ons and see what they cost. It’s a React front end on a Drupal REST API I designed, with multi-currency logic and cached exchange rates handled server-side, payload contracts negotiated with the frontend team, an accessible responsive UI, analytics instrumentation, and end-to-end Cypress coverage.
I also authored the technical architecture for a bulk content-ingestion system that moves up to 100 CMS nodes in a single operation, built both its admin interface and its backend, and ran cross-team user acceptance testing that deliberately fed it out-of-order payloads to prove it wouldn’t corrupt state. And I rebuilt the authentication gating on product download pages with a kill switch operators can flip from the CMS — because the useful question about a gate isn’t whether it works, it’s how fast you can turn it off at 2am.
I’ve been doing marketing-analytics engineering for a decade. It started at Moz in 2016 with Adobe DTM and Segment, and at Tableau I led the site’s GA4 data-layer re-platform — ten-plus event types, custom deduplication so nothing double-counts, consent-aware cookie handling, and customer-relationship-management (CRM) interactions integration. Effectively every conversion event the marketing organization measures runs through it. I also built metadata export tooling that lets analysts join traffic data against CMS metadata; it has been reused across two migrations and re-requested more than a year after I first built it.
I’m a contributing engineer on the multi-year re-platform of the site off Drupal and onto a consolidated enterprise WordPress multisite with a decoupled Node.js frontend — content transformation, Terraform-managed environment configuration, GraphQL integration, and phased traffic cutover at the CDN, without interrupting global marketing operations.
Before we migrated one path namespace I validated 469 redirect rules against thirty days of CDN traffic — 99.98% matched across 2.15 million redirect events. Migrations break on the 0.02% you didn’t check.
I take the release rotation as Release Engineer of record — owning user acceptance testing and production deployment coordination, and signing off the change request. For about two years I’ve led our weekly operations review, where post-deployment triage happens and where I report site health, production errors and open issues to stakeholders. I asked for that rotation. I’m on the on-call roster, and I wrote the working agreement that governs it — what constitutes a page, what waits until morning, what a responder owes the next shift — which went from draft to org-wide adoption inside a quarter.
When product download links started intermittently 404ing, I ran the investigation: quantified the blast radius from logs at roughly three thousand affected users, traced it to a build artifact that never landed in a gated storage bucket, and coordinated the fix with release engineering. I led a cross-team discovery comparing observability platforms for properties moving onto the new architecture, engaging three partner teams to set the organization’s forward monitoring approach. And when a new engineer joined and hit the wall our Drupal setup puts in front of everyone, I wrote the onboarding guide I wished existed and paired with them through their first pull requests — it’s what we hand new people now.
Stack
Migrated portions of moz.com from CakePHP to Craft CMS, partnered with the UX team turning design comps into marketing pages, and worked with business intelligence to implement page-load and event tracking through Adobe DTM and Segment — the start of the analytics-engineering thread that runs through everything since.
Stack
Seven years building, inheriting and migrating WordPress and Drupal platforms for public-sector and university clients, owning the relationship end to end from requirements through delivery.
For the University of Hawai’i’s William S. Richardson School of Law I inherited and maintained a Drupal platform — course database, personnel directory, events calendar, student classifieds, job listings, and a portal gated to @hawaii.edu accounts — then led the data migration when the site was rebuilt onto WordPress. For King County’s 4Culture I was webmaster and wrote four custom WordPress plugins, all public on GitHub, and coordinated an accessibility and SEO overhaul under county compliance deadlines — screen-reader and keyboard-navigation testing alongside the design and content teams, plus custom Drupal hooks that automated meta-tag population and schema-markup injection. I built the South Seminole & North Orange County Wastewater Transmission Authority site from scratch to WCAG accessibility compliance.
I also introduced automated build and test pipelines to client projects years before it became my specialty, and did enough schema export and transformation work that platform migration became a through-line rather than a one-off.
Stack
2008
BA, Business Administration
2005
HND, Civil Engineering
Third-party evidence of the thing that is hardest to claim about yourself.
“Laud was awesome to work with at Moz. As a marketer, I appreciated his communication style the most as well as his speediness. My job was to request new landing pages and updates to our marketing pages… I really appreciated that. I'd recommend Laud for any marketer or designer looking for a front end developer, and to any dev team who can work well with marketers. He also has a great can-do attitude, adorable twins, and a super solid goal to help his community.”
The only thing I’ve shipped that you can click. It’s the tool on tableau.com that lets you configure product editions, licenses and add-ons and see what they cost — a React front end on a Drupal REST API I designed, with multi-currency logic and cached exchange rates resolved server-side rather than in the browser, payload contracts negotiated with the frontend team, an accessible responsive interface, analytics instrumentation, and end-to-end Cypress coverage.
Stack
These three are one story, in order.
A production, invite-only AI agent that gives approved visitors — recruiters, colleagues — a conversational way to ask about my background. It answers from approved sources only and doesn’t guess, adapts its tone and focus per invite, and is administered entirely in-app: content, modes and even the LLM provider are configurable without a redeploy. Every AI call routes through a provider-agnostic abstraction layer, so swapping providers doesn’t touch business logic. Two-role JWT auth keeps visitor and admin strictly separate. I wrote the product requirements and architecture documents before I wrote any code.
It’s also what broke. Building it across dozens of sessions with AI coding agents, each session surfaced a new failure mode — agents forgetting decisions, drifting from the project’s conventions, leaving no audit trail of why anything was done.
Stack
So I generalized the fix. The Rig is an open-source framework that gives AI coding agents persistent structured memory, enforced workflows, a task lifecycle engine, and a git-hook layer that won’t let a commit through without secret scanning and a properly formatted conventional message. Nine lifecycle hooks cover protected-path write restrictions, commit gating, context-compaction checkpointing and subagent context injection. MIT licensed, 300+ commits, with a bats test suite running in CI. I piloted it on 4Culture.org — a real multi-contributor production platform — rather than only on my own machine.
Stack
And then I used it. Beacon Essentials is a production e-commerce platform in Ghana that I designed, built and maintain — and it runs on The Rig. The interesting constraint was never technical: checkout had to work the way that market actually buys, which meant WhatsApp deep-link ordering with a conventional cart as fallback, Mobile Money as the primary payment rail, and order tracking built around dispatch-rider delivery. FastAPI and MongoDB on the back, Next.js on the front, a mobile workspace alongside them, all in one Turborepo monorepo; pre-signed S3 media so the API never serves binaries; Docker and GitHub Actions to deploy, with linting, tests and secret scanning enforced on every commit. 540+ commits and 450+ pull requests over a year.
That last part is the real test of The Rig — it’s the framework running against software that takes money, not a framework with a README.
Stack
Built solo and by hand in 2019–2021, before AI coding assistance existed. Laravel and MySQL: 38 Eloquent models, 62 controllers and 359 Blade views over a three-level organizational hierarchy of diocese → circuit → branch. Barcode-based attendance check-in, a messaging subsystem with threads and drafts, Algolia-backed search, SMS through Hubtel — a Ghanaian gateway — push notifications, bulk Excel and CSV import/export through a staging table, and a full store with cart and checkout. I wrote its deployment automation by hand too: a shell script doing a git clone and an atomic directory swap while preserving uploads across releases, with companion database backup crons. Years before I had CI/CD tooling to do it for me.
Choosing Hubtel in 2019 and Mobile Money in 2025 is the same instinct six years apart — build for how that market actually transacts, not how the textbook says.
Every architectural decision in it is one I made and still live with. It’s here to answer the question every engineer is quietly being asked in 2026: is the person good, or is the tooling good?
Stack
Occasional notes on the systems I work on.

From a Ghanaian internship to Salesforce — the people, detours and lessons that shaped a decade in web development.
Read more →
A pro bono Laravel app for a Ghanaian Methodist church that grew into a multi-branch platform with an Android app, reporting and 50k-record load testing.
Read more →Contact
Have a project in mind, or just want to say hello? Send a message below.