Would you like to see your work have physical impact on our planet? Do you want to build cloud software that controls a fleet of hundreds, potentially thousands, of industrial-scale clean energy devices in the field?
We're looking for candidates who are ready to get their hands dirty, are as passionate about energy storage as we are, and will do whatever it takes to bring a new energy storage system to market!
What You’ll Do
As Jr Software Engineer, you’ll be developing the software that turns our Refrigeration Battery hardware into smart storage devices. You’ll directly work with and contribute to cutting-edge physical modeling and energy management algorithms, and you’ll build them into applications that will bring those algorithms to life, thereby having a real-world effect on our customers’ energy savings.
You will work directly with the CTO, the Lead IoT Cloud Engineer, and the Director of Controls Development on the following strategic initiatives:
- Build software services that apply analytical and numerical physics, thermodynamics, and fluid mechanics models, from the IoT edge to the cloud, to improve energy savings.
- Design a cloud service & APIs to connect energy management appliances to clients.
- Enhance our embedded IoT software to leverage your new cloud functionality.
- Build a web-based analysis platform for generating actionable reports on our system’s performance.
- Generate metrics to drive beautiful and intuitive displays of energy savings data in our web apps.
- Many other engineering / software projects not specifically outlined here.
Who You Are
(a general guide - we can bend these rules for an incredible candidate!)
- B.S. in any engineering, computer science or similar discipline.
- Experience or academic background in thermodynamic systems and process systems engineering.
- Comfortable researching and implementing heat transfer and fluid dynamics principles in software.
- Python required (we use 3.7), with an interest in learning other domain-specific languages.
- Comfortable using Linux (or OS X) and the command line.
- Interested in learning and contributing to a wide variety of software projects, including web backend, IoT Edge, creative data analysis, and control using machine learning algorithms.
- Experience with technologies from our preferred stack a plus, or can demonstrate the ability to learn new libraries and technologies rapidly.
- An enthusiastic self-starter who can work with minimal supervision, generates novel and creative solutions to tough problems, and is willing to put in the effort it takes to get this energy storage startup off the ground.
- Passionate about technology innovation, product development, energy engineering, and energy storage.
Our Preferred Stack
- Data processing, modelling, and analytics: Pandas, Numpy, SciPy, Matplotlib, CoolProp, Jupyter notebooks
- APIs, data pipeline: Python, Flask, HTTP REST APIs
- Embedded software: Python, Raspberry Pi, Modbus
- Databases: MongoDB, InfluxDB
- Cloud: Docker containers, AWS, Terraform
What You Get
- Compensation in base salary and equity.
- Healthcare and 401k.
- “Honor system” PTO policy (no specified limits) and flexible work schedule.
- Expense weekday lunches and dinners (estimated $5,000/year value).
- Snacks and drinks on tap (suggestions welcome!)
- Numerous social activities, including team happy hours and barbecues.
- Access to the ferry, Bay trail, Richmond waterfront, gym within walking distance.
The Fine Print
- As startups go, the work is demanding, but we’ll make every effort to find an arrangement that works.
- Some travel, mostly local.
- Occasional on-call rotation (can be done at HQ or remotely)
Bonus Question
Please answer any or all of the following questions. Use Python, Java, or your language of choice. Thanks!
1) Given an incompressible fluid flowing through a short section of horizontal pipe, write a function to calculate the outlet pressure if the inlet pressure, inlet velocity, and outlet velocity are known.
2) Write a function to calculate the pressure drop in a pipe given the flow velocity, density, viscosity, and pipe diameter, and pipe length, assuming the Reynold’s number is less than 2300.
3) Given the differential equation f'(x) = x^x, write a function that uses Euler's method to approximate the value of f(x1) given an initial condition (x0, f(x0)) and the value of x1.