Concentrated Solar Power

Project Details:

Control engineering

  • 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 software–firmware 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.
  • Modified Nullsoft NSIS scripts achieve desired installer behavior on build servers.
  • Wrote code analysis tools to ensure code satisfies certain rules.

Testing

  • Used Microsoft Visual Studio Unit Test Framework to create hundreds of unit tests.
  • Designed automated tests and used Microsoft Test Manager to design test plans and debug failed tests.
  • Designed deploy tools (Python) for running automated tests on VMs including database deployment.
  • Created unit-testing framework for firmware where previously one had not existed.

additional information:

  • Categories : Programming
  • Location : eSolar, Inc., Burbank, CA
  • Position : Control Software Engineer
  • Supervisor : Quoc Pham
  • Date : 2015 – Present
  • URL : www.esolar.com