Skip to content
keegan@portfolio:~$
$ cd ..

keegan@portfolio:~/projects/msa-grid$ cat README.md

MSA Grid

Connected-safety platform for industrial gas detection

My role: Full-stack — front-end, back-end and cloud infrastructure · Software Engineer, Safety iO

Overview

Safety managers need live visibility of gas-detection fleets and the people carrying them. When a detector alarms in a hazardous environment, the data has to arrive reliably and immediately — this is life-critical software, not a dashboard. Customers worldwide run fleets of 300–3,000 detectors each, with the busiest keeping around 1,500 online at once.

Highlights

  • Build Angular front-ends with NGRX state management and i18next internationalisation for a globally deployed product.
  • Build Node/TypeScript REST APIs backed by PostgreSQL and DynamoDB.
  • Own production AWS serverless infrastructure — Lambda, API Gateway and Step Functions — scaling horizontally with concurrent demand.
  • Ship weekly to production through automated Bitbucket Pipelines and Jenkins pipelines across demo, staging and production environments.
  • Keep ~90% test coverage across unit, integration and end-to-end suites using Jest, Testing Library and Playwright.
  • Added an AI pull-request reviewer to CI that tracks reviewed commit hashes so it only reviews new changes.
  • Halved engineer onboarding from 2 days to 1 by overhauling developer documentation, and have mentored 13+ engineers.

Architecture

High-level architecture

Ingest

  1. IoT device
    gas detectors
  2. Amazon EventBridge
  3. Kinesis Data Streams
  4. AWS Lambda
  5. RDS for PostgreSQL

Serve

  1. S3 + CloudFront
    Angular app
  2. API Gateway
    Lambda authorizer
  3. AWS Lambda
  4. RDS for PostgreSQL

Alert

  1. AWS Lambda
  2. Amazon EventBridge
  3. Push notifications
Device data is ingested through an event stream, served to the Angular app through an authorised API, and alarms are pushed to users.