Martin Dao

I keep support queues calmer, releases safer, and data easier to trust.

I trace recurring issues to their root and ship reusable fixes: automated checks, runbooks, and small tools.

Focus Areas

Incidents · Releases · Pipelines

By concern

Choose what matters to you, then see the proof.

Start here

If you care about incident handling

Start with Alert Triage Dashboard, Alert Correlation Viewer, and DB Overload Recovery.

Shows how I triage alerts, run RCAs, capture evidence, and communicate recovery work.

If you care about release confidence

Start with Cypress CI Gate, Webhook Contract Checker, and Shadow DOM Selector Tests.

Shows how I prevent regressions with CI checks, contract validation, and reliable test coverage.

If you care about data reliability

Start with RevOps Pipeline Monitor, League Match Data Pipeline, and Req Parser & Router.

Shows how I catch pipeline, reporting, routing, and validation issues before they spread.

Technical Skills

Incident & Escalation Work

Triage escalations and produce reusable runbooks.

Quality & Release Confidence

Turn fragile releases into repeatable checks.

Data Quality & Pipeline Reliability

Trace data issues to their source and prevent propagation.

Tooling & Automation

Ship tools that turn one-off fixes into repeatable processes.

Technologies & Tools

Support & Operations

Datadog
Grafana
Prometheus
Slack
PagerDuty
Zendesk
Jira
Active Directory
Entra ID
Okta
SAML 2.0
SCIM 2.0
Postman
Newman
SQL
Log Analysis
RCA
Runbooks

QA & Testing

Selenium
Cypress
Playwright
Vitest
TestNG
Maven
k6
Appium
Selenoid
BrowserStack
Axe-core
Applitools
Percy
ReportPortal
Healenium
Contract Testing
CI/CD

Data & Analytics

SQL
PostgreSQL
dbt
Airflow
Snowflake
Databricks
Apache Spark
Prefect
Terraform
Power BI
Tableau
Python
pandas
NumPy
scikit-learn
XGBoost
NLTK
TextBlob
Plotly
ETL
Data Validation

Engineering & Platform

Node.js
JavaScript
TypeScript
Java
React
Vite
Tailwind
Express
Docker
GitHub Actions
JWT / JWKS
OAuth / OIDC
RBAC
Webhooks
Azure

Project Portfolio

Each project ships with live demos, runbooks, and the reasoning behind key decisions.

Support

Alert Triage Dashboard

Reduces alert noise and keeps triage, incident context, and RCA notes in one place.

React 19 • TypeScript • Vitest
Support

SLA Triage Board

Surfaces SLA risk and queue pressure so the on-call team knows what to grab first.

React 19 • TypeScript • Tailwind
Support

Alert Correlation Viewer

Groups noisy alerts by likely root cause so Datadog floods don't slow down triage.

Node.js 18+ · Vanilla JS
Support

RCA & Status Tracker

Status page and RCA workflow for active incident communication.

React 19 • TypeScript • Vite
Support

IAM Debug Console

Debug JWKS rotation failures, permission misconfigs, and tenant isolation issues in one place.

Vanilla JS • HTML/CSS • JWT/JWKS
Support

DB Overload Recovery

Guides recovery decisions and evidence capture during database overload incidents.

Node.js 18+ · PostgreSQL
QA

Cypress CI Gate

Regression tests and API contract checks that run in CI on every push.

Cypress · JavaScript · GitHub Actions
QA

Playwright Docker Tests

Headless browser tests in Docker, built to reduce flaky test failures.

Playwright · Java · Docker
QA

Webhook Contract Checker

Catches webhook contract violations, replay failures, and out-of-order events before production.

Node.js · Vitest
QA

Selenium UAT Gate

SQL-validated UI tests for UAT sign-off and release gate checks.

Java · SQL · Selenium
QA

Shadow DOM Selector Tests

Intent-based selectors that reach inside Shadow DOM without brittle CSS hooks.

Playwright • Vitest • Vanilla JS
QA

CI Flaky Test Tracker

Tracks flaky tests and pipeline health so reliability regressions don't slow down deploys.

GitHub Actions · Vitest · Node.js
Data

RevOps Pipeline Monitor

Catches pipeline stage leakage and velocity drops before they hit revenue reports.

Node.js · SQL
Data

League Match Data Pipeline

Validates match data at scale across Azure and Databricks, with dbt handling transforms and tests.

Azure • Databricks • Apache Spark • dbt
Data

Steam Review Sentiment Pipeline

Cleans review text, scores sentiment, and flags labeling anomalies in game review data.

Python · XGBoost · TextBlob
Data

Req Parser & Router

Parses requirement docs into work items and routes them to a review queue for cleaner handoffs.

Python · NLTK
Data

dbt Freshness & Quality Checks

Layered transforms, freshness alerts, and dbt-based data quality checks in one pipeline.

Node.js · Express · dbt · Vitest
Data

Game Sales Segmentation Analysis

Clusters global game sales data to reveal regional market segments and genre performance.

Python · Scikit-learn · Plotly
Data

Market Sentiment Mapper

Maps social sentiment to product positioning for signal extraction.

Python · NLTK · XGBoost
Support

Webhook Reliability Monitor

Sync engine with webhook reliability checks and retry logic for integration debugging.

Node.js · Webhooks · Multi-Protocol · Sync Engine
Security

JML Access Reviewer

Automates Joiner-Mover-Leaver access reviews across Active Directory, Azure/Entra, SAML, and SCIM.

IAM SCIM SAML Identity Lifecycle