Jr Software Engineer: Data Science & Machine Learning

Richmond, California, United States Full-time

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 our 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 energy management data science 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.

Your Responsibilities

You will work directly with the Data Scientist, the Lead IoT Cloud Engineer, and the Director of Controls Development on the following strategic initiatives:

  • Build software services that apply optimization and machine learning concepts, from the IoT edge to the cloud, to improve energy savings.
  • Design APIs to connect energy management appliances to clients.
  • Assist our data science team in creating analysis and machine learning algorithms, and converting them into production software.
  • Develop embedded IoT software that leverages our cloud platform, optimizations, and ML algorithms.
  • Generate metrics to drive beautiful and intuitive displays of energy savings data.
    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 data science, analysis and machine learning.
  • Comfortable taking Python scripts or Jupyter notebooks and developing them into production software.
  • Comfortable researching and developing solutions to difficult problems in optimization and forecasting.
  • 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 Questions

Please answer any or all of the following questions. Use Python, Java, or your language of choice. Thanks!

1) Given a string representing a Roman numeral, write a function to compute the Arabic numerical equivalent. For example,

roman_to_arabic("MDCCLXXVI") 

should return

1776.

2) Write a generic function to compute various scenarios for the following optimization problem: A farmer owns X acres of land. She profits P1 dollars per acre of corn and P2 dollars per acre of oats. Her team has Y hours of labor available. The corn takes H1 hours of labor per acre and oats require H2 hours of labor per acre. How many acres of each can be planted to maximize profits?
Test the function for the following cases:
a) X = 240, Y = 320, P1 = $40, P2 = $30, H1 = 2, H2 = 1
b) X = 300, Y = 380, P1 = $70, P2 = $45, H1 = 3, H2 = 1
c) X = 180, Y = 420, P1 = $65, P2 = $55, H1 = 3, H2 = 2

3) Given the set of data points, construct a piece-wise linear best-fit approximation (R^2 > 95%) to the curve. https://www.dropbox.com/s/8fxxgkrhej7xb0a/jsed_curve_fit.csv?dl=0 

 

Apply for this opening at http://axiomexergy.recruiterbox.com/jobs/fk0jifr?apply=true