I’m passionate about developing tomorrow’s essential technology. I work remotely as a software engineer in the high desert at sunny Santa Fe, NM.

Fullstack software engineer

Working remotely from Santa Fe, NM (2020-) for PowerFlex (2019-)

Electric vehicle charging stations and battery systems for buildings

I work remotely building software to facilitate adaptive load management for large-scale electric-vehicle charging station deployments, and energy storage at PowerFlex, a recently acquired subsidiary of EDF Renewables, which is itself the North American branch of the renewable energy branch of an enormous multinational French energy company Électricité de France that powers much of the world using nuclear, solar, and wind energy.

I recently started working on energy storage systems (BESSs: large scale battery systems in the range of 150MWh), which are used to help businesses reduce energy costs and build resilience against downtime of the electrical grid.

I write mainly Python, and also Rust, Bash, YAML (for Kubernetes and Github Actions), and JavaScript/TypeScript.

My achievements using Python

I spent lots of time refactoring or rewriting older Python code to help it be more maintainable and readable. I rewrote one our most important programs for charging electric vehicles using asynchronous Python code. This makes it easier to read and extend.

I introduced many techniques at work to help us ship reliable Python code:

  • Type checking with Pyright and Mypy, this includes adding thorough and accurate types to important parts of our code.
  • Running tests and code checks in parallel to reduce time to get useful feedback while developing and to release our software to a development environment faster.
  • Using DRY Docker compose files to test various configurations of our software.
  • Building Python wheels for Alpine and Debian to reduce time spent waiting for C/C++ compilation.
  • Using Pydantic for fast and easy data validation, as well as nice auto-generated documentation.
  • Profiling asynchronous code with Yappi.
  • Object oriented code to improve organization and maintainability.
  • Building documentation from the source code using Sphinx and many useful Sphinx plugins.
  • Fast, consistent formatting with Black and Isort.

San Francisco Bay Area (2018 to 2020)

Researcher and Tutor at New Mexico Institute of Mining and Technology in Socorro, NM

Computer Repairman in Santa Fe, NM

More

  • See my LinkedIn for current position(s) and more detail.

What is Full Stack Software Engineering

A software engineer builds and improves software systems based on the user’s requirements.

A frontend software engineer would develop end-user facing components; this includes development of a user interface. A backend software engineer would develop the “server-side” systems that might store and process data for the frontend.

A full stack software engineer is a sort of generalist software engineer that performs all necessary roles of frontend and backend engineering.

What I do

I can work on any part of a software system. Most of systems that I’ve worked on can be described as web-apps or mobile-apps (frontend); with extensive server-side components for data processing and management (backends). These systems are in daily use by many users for many purposes. I specialize in techniques that are most common today:

  • creating and improving programs written in dynamically typed languages Python and JavaScript
  • storing data in SQL databases including Sqlite and Postgres; and no-SQL databases including Mongo
  • using open web protocols including HTTPS for communications between all kinds of computers
  • using the style language CSS and the markup language HTML for creating pleasant, accessible, logically arranged user interfaces

I search for the potential to use strongly typed languages like OCaml, Haskell, and Rust to ensure greater effectiveness of software systems.