# Criston Mascarenhas

Senior Software Engineer

I figure out hard problems and turn them into products.

Currently at [BarrierBreak](https://www.barrierbreak.com/), based in Karnataka, India.

Senior software engineer building accessibility platforms, developer tools, and shipped products: browser automation, multi-tenant SaaS, native apps, and libraries. TypeScript, React, Node.js, PostgreSQL, Swift, and Rust.

- [Contact](https://criston.dev/contact)
- [Résumé](https://criston.dev/criston-mascarenhas-resume.pdf)
- [GitHub](https://github.com/crstnmac)
- [LinkedIn](https://www.linkedin.com/in/devcriston/)

## Selected work

- [A11yInspect](https://chromewebstore.google.com/detail/a11yinspect-accessibility/giaolcgipopikbjonacmaokkeiaolmfp): Real-time WCAG accessibility testing inside the browser, on live production pages. (Chrome extension · BarrierBreak)
- [A11yNow](https://www.barrierbreak.com/a11ynow/): Browser-driven automated accessibility engine with versioned WCAG rule mappings. (Accessibility testing platform · BarrierBreak)
- [SemPDF](https://sempdf.criston.dev/): Zero-dependency TypeScript library for generating, tagging, and editing accessible PDFs. (TypeScript PDF library)
- [Before Meeting](https://criston.dev/products/before-meeting): A macOS menu bar app that keeps your next meeting from sneaking up on you. (macOS menu bar app)
- [StackWatch](https://criston.dev/products/stackwatch): Privacy-first server monitoring and control for Linux boxes, straight from your Android phone. (Android server monitoring app)
- [Myna Notes](https://criston.dev/work/myna-notes): Live meeting transcription that stays on your Mac and inside an editable note. (Private meeting notes · macOS)

## Writing

- [Instrumenting a Fail-Closed License Server](https://criston.dev/writing/observability-license-server): A push-based Alloy → Loki + Prometheus stack for a licensing service where downtime stops customers generating PDFs, and the three production bugs it caught in its first week.
- [A Safe Masked UAT Refresh Pipeline with Dokploy and Greenmask](https://criston.dev/writing/safe-masked-uat-refresh-pipeline-dokploy-greenmask): How I set up a repeatable PostgreSQL UAT refresh flow that reads production, masks sensitive data with Greenmask, and restores only into a disposable UAT database.
- [Building a Production-Grade Accessibility Scanning Platform](https://criston.dev/writing/building-a-production-grade-accessibility-scanning-platform): An architectural deep-dive into A11yNow, the distributed web accessibility auditing backend I built at BarrierBreak. Browser pooling, distributed scheduling, multi-auth, error resilience, and a 600MB Docker image.
- [Building a Scalable Browser Automation Platform for Accessibility Scanning](https://criston.dev/writing/scaling-browser-automation-for-accessibility-scanning): Page pooling, LRU-cached browser instances, multi-auth, stealth, and adblock, all in one Node.js service. A deep-dive into the browser automation layer I built for A11yNow at BarrierBreak.
- [Why We Built Our Own Accessibility Engine (And What "Accuracy" Really Means)](https://criston.dev/writing/why-we-built-our-own-accessibility-engine): Most accessibility scanners sort the world into violations and passes. We think that's the wrong model, and here's the thinking we built around instead.

See also: [llms.txt](https://criston.dev/llms.txt), [sitemap](https://criston.dev/sitemap.xml).
