I'm passionate about developing tomorrow's essential technology. I've worked as a full stack software engineer in the San Francisco Bay Area.
Fullstack software engineer
Bay Area (2018 to 2020)
I build software to facilitate adaptive load management for large-scale electric-vehicle charging stations 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 work on several embedded systems, web-apps, and on the official PowerFlex Android app and iPhone app. Based in Los Altos, CA in Silicon Valley. 2019–
Researcher and Tutor
- 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:
- 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.