I'm Peter Klingelhofer
A creative software engineer.
Environmentally-motivated. Building technology for people and the planet.
About Me
Senior software engineer focused on building the data infrastructure behind climate and clean-energy work. I care most about systems that hold up over time: clean architecture, durable data models, and observability over quick shortcuts.
At Energy Vault I build the backend and data pipelines that quantify the climate impact of grid-scale energy storage: Python ETL across Flyte, Ray, and Trino on Kubernetes; real-time analytics for anomaly detection and forecasting; and tracking of carbon emissions avoided across the deployed portfolio. I work across the stack in TypeScript and Node.
Before software, I earned a Master's in Ecology & Evolutionary Biology and spent six years in environmental regulation, assessing the impact of operations on soil, water, and air. Environmental work has been the throughline of my whole career, and it is why I want to keep building for sustainability, renewable energy, and mission-driven organizations.
That path has also made me a strong communicator across audiences. From explaining findings to the public and operators in the field to translating between product, data, and engineering teams today, I am at my best bridging technical and non-technical stakeholders.
Outside of work, I've played saxophone for over two decades and have a long background in digital signal processing, including a piece that aired on NPR.
Skills
Projects
Carbonlens
Real-time carbon-intensity API aggregating multiple grid data sources, with emissions-compliance reporting (CSRD / SEC / SB-253) and Green SLA monitoring. Python backend, React dashboard, containerized with CI/CD.
Exhale App
Cross-platform breathwork screen-overlay app. Published on the Mac App Store, with Windows and Linux builds via GitHub Releases. Originally Swift (macOS), rewritten as a multi-platform Rust workspace with a custom wgpu/WGSL GPU renderer.
Carbon-Aware Dispatcher
Carbon-aware CI/CD: schedules pipeline runs for when the grid is cleanest. One drop-in workflow file, 10 grid-data providers, 200+ zones, templates for GitHub Actions, GitLab, Bitbucket, and CircleCI.
uwebsockets.js-helmet
Security middleware for uWebSockets.js, bringing Helmet-style hardened HTTP headers to the high-performance uWebSockets server.
Bebop
Jazz reharmonization engine: ensemble chord recognition (six sources, consensus vote) then tiered reharmonization (7ths, ii-Vs, tritone subs, Coltrane changes), rendering voiced MIDI, audio, and an auditable HTML report. The reharmonization is deterministic music theory, not AI; ML is used only for the optional audio chord-recognition step.
Contact
My inbox is always open. Whether you have a question or just want to say hi, please don't hesitate to send me a message!