Designed algorithms for effectively contolling flux distribution on solar receivers for fields of over 20,000 heliostats.
Liberal use of multithreading for Monte Carlo simulations.
Analysis of control system under varying environmental conditions.
Created reduced-order model of receiver tower (SolidWorks) for use in simulations (VBA and Python).
Software development
Worked on various components of control system using .NET framework.
Designed and developed control software in C# and performance-critical C++14.
Improved speed of existing simulations by ten times and reduced memory footprint.
Debugged existing code including fixing bugs filed years previously.
Upgraded legacy code from Visual Studio 2010 to Visual Studio 2013.
Designed database tables using Microsoft SQL Server.
Interfaced with database with SQL using Entity Framework.
Used PRTG to monitor performance over time for long-running tests.
Used WinDbg to help debug resource leaks.
Used Visual Studio performance tools to analyze code for lock contention, excessive garbage collection, thread blocking, etc.
Developed diagnostic service to regularly analyze power plant control system for problems and correct if possible.
Firmware engineering
Migrated softwarefirmware interface library from combination of legacy Managed C++ and native C++ to latest C++/CLI (~20,000 lines of code changed in two weekends).
Rewrote majority of interface library to meet necessary performance requirements.
Fixed numerous legacy bugs involving firmware and interfacing with firmware.
Worked with firmware code (embedded C) to identity bugs and understand undocumented behavior.
Cleaned up issues with improper use of Kiln/Mercurial respositories.
Build engineering
Development of internal development tools using Microsoft Visual Studio SDK.
Configuration of Microsoft Team Foundation Server build servers and development of build tools (SDK).
Created command-line completion utilities (C++ and Lua) using GNU Readline (side project) to improve usability of control software.