Manuel Solalinde's CV
Full Stack Developer: Manuel Solalinde (manolosolalinde@gmail.com)
A full-stack web platform that lets production and petroleum engineers visualize, analyze, and annotate real-time data from gas wells. It brings high-frequency sensor readings (pressures, flow rates, temperatures and other UDCs), daily production volumes, and engineering-calculation plots together in a single interface β replacing slower custom Power BI reports and delivering a far more responsive, interactive experience.
The system is a React + Redux single-page application backed by a FastAPI service, secured by corporate Azure AD single sign-on, and deployed on AWS. It reads high-frequency and daily data from S3 parquet files (queried and resampled on the fly with DuckDB) and stores comments, saved well groups, and usage logs in PostgreSQL.
The platform is organized as a portal of focused sub-applications, all sharing a common left-pane settings / right-pane interactive plot layout:
Visualizes high-frequency time-series sensor data for a single well. The engineer selects a facility/well (from a list or directly on an interactive ArcGIS map), picks one or more sensors (UDCs) and a time range, and reads an interactive Plotly chart. Comments and annotations can be added directly on the data to flag events or share observations with teammates.
Overlays a single UDC/sensor across many wells on one chart, each well a differently colored line β ideal for portfolio-level checks such as spotting underperformers, confirming a fleet-wide trend, or finding the odd well out. Selection is capped (max 5 wells, 2 sensors) to keep responses fast.
Displays daily production volumes (gas, oil, water) and engineering-calculation plots for selected facilities, with a toggle between the two plot types. Engineering plots include a material-balance-time chart and other calculation-based views.
The Portal is the landing hub β a grid of cards linking to each application. The Admin Dashboard surfaces usage statistics and API-call logs, with role-based admin access enforced on the backend.
The application runs on a stateless AWS architecture: the FastAPI backend on ECS Fargate, the React frontend on App Runner, with a Lambda DB-updater on a daily EventBridge schedule.
How it fits together:
Data sources: PostgreSQL (comments, saved well groups, API-call logs, a wells reference table), S3 parquet (high-frequency sensor data, daily production data, external comments), DuckDB (on-the-fly querying and resampling of the parquet data), and the ArcGIS API (short-lived map tokens). All API endpoints except the health check require an Azure AD bearer token, enforced on every endpoint.
CI/CD: Deployments are automated with GitHub Actions, which builds and pushes the Docker images, runs the backend test suite, and updates the AWS services.
A significant share of the work focused on making large time-series payloads fast and the service resilient under load:
float64 to float32, substantially reducing the backendβs memory footprint; guided by tracemalloc / memory_profiler profiling.jsonable_encoder with ORJSONResponse, cutting response times for large engineering-data payloads.ThreadPoolExecutor) for multi-well requests, improving throughput on multi-core hosts.429 Too Many Requests past a configurable limit, with the frontend showing a βserver busyβ message instead of failing silently.Note: Screenshots and architecture diagrams are omitted, as they display proprietary client data and systems. Available on request, subject to client approval.