Research Software Engineer
Skills
Computer ScienceSoftware DevelopmentAnalytical SkillsComputer SimulationsDatasetsOptimizationOptimization Techniques
What the job involves
The main requirements, responsibilities and hiring steps.
Requirements
- 4+ years of production software engineering experience (Python, C++, Julia, or other applicable languages)
- Experience working across the software/research boundary, preferably in machine learning, optimization, quantitative trading, power systems research
- Familiarity with software development best practices, including version control, code reviews, CI/CD, and testing
- Experience analyzing computational results with tooling such as Jupyter notebooks and matplotlib or equivalent
- Ability to proactively communicate and work cross-functionally to define and implement solutions in a complex technical environment
- BA / BS / Master's degree in a quantitative discipline (e.g. Computer Science, Mathematics, Mechanical Engineering) or equivalent practical experience
Nice to have
- Domain experience in simulation of real-world assets (physical batteries, autonomous vehicles, etc.)
- Working knowledge of modern cloud infrastructure and containerization tools
- Experience with SQL-based databases
- Experience with speed/memory tradeoffs operating over large-scale datasets
- Experience with optimization techniques, modeling packages, and solvers
Day to day
- Design, develop, and maintain features for a utility-scale battery simulation platform
- Create a platform for visualizing and inspecting battery simulation results that enables actionable insights from performance and risk metrics
- Serve as a subject matter expert on simulation run mechanics and energy market logic
- Build tools for the ingestion and processing of time series data from various internal and external sources
- Assist in product development strategy, design, planning and productivity
