Sherlock Rebuild

Client
Role
Date
Location
The Sherlock Suite allows PG&Eβs desktop inspectors to mark up potential equipment problems on high-resolution images, further training computer-vision models to automatically detect potential issues and adding metadata to enable searchability of these images across the enterprise. Over 2019 and 2020, PG&E collected more than 5 million high-resolution images (up to 100 megapixel) of their Electric Transmission assets through drones, helicopters, and other means of data capture as part of their Wildfire Safety Inspection Program (WSIP). These images are ingested by Sherlock and analyzed using machine (AI) and human vision to assess maintenance needs.
I was the Lead Full-Stack Software Engineer on the Sherlock V2 Rebuild Project. Our mission was to rebuild the entire Sherlock Suite from the ground up, using the latest and greatest technologies, to allow for a more flexible and scalable architecture, while keeping the same user experience and functionality.
Personal Achievements
- πSinglehandedly laid the foundation for Sherlock V2 using Nx, NestJS, TypeScript, React, TailwindCSS, GraphQL, Prisma, Terraform and AWS to setup a monorepo for both micro frontends and backends.
- πImproved image download performance by 300% by making a series of optimizations in the network and cloud infrastructure.
- πImproved application resiliency and data loss prevention by disconnecting frontend state from backend persistence, instead piping all mutations through a transient state management layer that periodically syncs with the backend.
- πImplemented a series of micro-frontends with React and TailwindCSS for asset inspection, user management, audit logs and more.
- πImplemented a series of self-describing micro-backends supported by a single Data Model with NestJS, Prisma and Swagger.
- πImplemented a monorepo publication pipeline using Nx, Terraform and AWS CodePipeline to intelligently build and deploy the entire Sherlock Suite. The pipeline relies on Nxβs Incremental Builds and Webpack Module Federation to only build and deploy the micro-apps that have changed since the last deployment.