open position

Software Engineer, Distributed Systems

About us

Weave Grid builds software to make it cheaper and safer for utilities to serve electric vehicles, add renewable energy resources, and save customers money. Our mission is to drive rapid decarbonization in the global transport and power sectors by intelligently connecting electric vehicles to the grid.

We are currently in market with early utility clients, and we must rapidly build and deliver product improvements to serve existing customers and win new deals from our deep pipeline. As a rapidly growing company, we are building a thoughtful, capable team that can adapt with our rapidly evolving circumstances.

Industry context

We are living through historic changes in the ways people use transportation — a sector that is now one of the largest and fastest-growing sources of greenhouse gas emissions.

Electric vehicle (EV) sales are growing at over 60% a year, with vehicle manufacturers spending billions to get ready for an electric future. Boston Consulting Group estimates EVs will account for over half of all vehicle sales by 2030. Electric utilities see massive opportunities in this transformation, as the rise of EVs could drive more growth in energy demand over the next 10 years than any decade since the 1950s.  

‍Larger EV fleets can also help support renewable energy sources on the grid. But to accommodate growth in EVs, utilities will need to make substantial investments in infrastructure and technology. Weave Grid's software helps meet the challenge of our transition to electrified transport.

Culture and mission

Beyond your core skills and track record, you are someone who will expand the culture and cumulative wisdom of the team as a whole. This can take many forms - relevant past projects, hard-won perspective from personal history, an unusual or adjacent skillset, a motivating passion, and so on. We are whole individuals, not just functional role-fillers, and we value everything that you can bring to the team.

Finally, you should be strongly motivated by Weave Grid’s mission. Energy and transportation expertise are not necessary, but it is important that you are passionate about tackling the climate crisis head on, by improving societal and environmental health.

Compensation and location

We are looking to fill this position as soon as possible. Compensation will include competitive salary, equity, and benefits. Weave Grid is based in San Francisco but is open to considering remote candidates in the US for some roles.

About the role

WeaveGrid’s Core engineering team is responsible for our internal data services and products, which process, store, and combine data from many different sources including electric utilities and EVs. These systems underpin all of our products, and their quality and performance are central to our business. 

We are searching for a backend engineer passionate about designing and running distributed data processing systems, which transform information from many different sources into powerful insights and real-time optimization decisions and lie at the heart of all WeaveGrid products . This individual will work closely with other infrastructure engineers, as well as data scientists and data engineers.

Our current system is built entirely on AWS, with much of our processing taking place in containerized services managed by Kubernetes. We use AWS's native queueing and messaging services, as well as tools such as Redis. We are currently largely a Python shop, and a solid grounding in that language and its ecosystem is preferred, but more important is that you bring practical experience building and running data processing systems in demanding settings.

We are a small team, though growing fast. You appreciate that the specific responsibilities described here may evolve as the company expands.

Core Responsibilities
  • Maintain and improve the performance, robustness, and feature velocity of our existing data processing systems
  • Design/deploy new data processing pipelines as our requirements evolve through further product development
  • Adjust our overall architecture and technology choices as demands on our systems evolve
  • Collaborate closely with data engineers and data scientists to support and “host” the algorithms and application-level capabilities that they develop

About you

You are passionate about building and running distributed, cloud-native applications; you naturally break systems into components such as processing workers, job queues, and storage units. You enjoy balancing tradeoffs between system aspects such as scalability, reliability, simplicity, understandability, feature velocity, isolation/multi-tenancy, and more.

You have experience building, maintaining, or evolving distributed applications in practical contexts; ideally, you have seen at least one such system through its entire life cycle, from design to maturity.

You understand that building and running reliable distributed systems is a team sport, and you enjoy collaborating with other smart, creative, and down-to-earth engineers. You are comfortable with agile software engineering practices, and you are focused on results and shared success.

To meet the needs of this role, you will bring
  • Experience with a range of distributed services and architectures, including at least one system across the entire lifecycle
  • Familiarity with the fundamental pieces of data processing systems sufficient to play a major role in their design and refinement
  • Working familiarity with some of the primary messaging, queueing, or processing frameworks
Apply to this job