Staff Backend Software Engineer
Our Mission SPAN is enabling electrification for all We are a mission-driven company designing, building, and deploying products that electrify the built environment, reduce carbon emissions, and slow the effects of climate change.
- Decarbonization is the process to reduce or remove greenhouse gas emissions, especially carbon dioxide, from entering our atmosphere.
- Electrification is the process of replacing fossil fuel appliances that run on gas or oil with all-electric upgrades for a cleaner way to power our lives.
- Enabling homes and vehicles powered by clean energy
- Making electrification upgrades possible
- Building more resilient homes with reliable backup
- Designing a flexible and distributed electrical grid
- Design and develop new features and subsystems in the SPAN Cloud to support a variety of end users from homeowners, installers, fleet and utility partners.
- Work cross-functionally with product and design teams to learn about our customers, identify solutions and develop the features that solve their needs
- Collaborate between firmware, frontend and backend engineers on projects to seamlessly build a cohesive product
- Work in our Kotlin and TypeScript cloud with gRPC, REST APIs and GraphQL as well as communicating with our IoT devices over MQTT.
- Design APIs and data specifications for internal and external users, including large-scale B2B enterprise clients.
- Mentor and collaborate with team members, sharing knowledge and best practices to elevate the entire engineering organization
- Maintain and evolve services over time, including planning for scaling, major version upgrades, and long-term technical debt management
- 8+ years of experience as a backend engineer with a track record of taking ownership of projects and features.
- Experience collaborating with engineers from multiple domains to complete projects
- Experience with Cloud-native platforms like AWS, GCP, Azure (we use AWS)
- Experience collaborating with coworkers in shared code base using industry standard tools and processes including version control, type systems, linting and unit testing
- Understanding engineering principles and processes to design robust, scalable and resilient systems
- 8+ years of professional experience in a common backend programming language and a desire to work with Kotlin, TypeScript, and Python
- Strong JVM expertise with deep understanding of JVM internals, performance tuning, and memory management with proven track record of maintaining services over time, including planning for scaling, major version upgrades, and managing technical debt
- Deep experience with Apache Kafka including topics, consumer groups, stream processing, and event-driven architectures
- Container-based deployments such a kubernetes
- r Spring Boot
- Internet of Things (IoT) products (e.g. AWS IoT, Google Cloud IoT, something homegrown) or other hardware component A variety of different datastores (e.g. SQL and noSQL, key-value stores, document stores)
- gRPC or GraphQL APIs
- Products with a rich mobile app
- Infrastructure as code tools like Pulumi or Terraform etc.
- Familiarity with Data Engineering technologies such as Flink and Spark
- App store payments or Stripe billing integration
- B2B enterprise APIs and partner integrations
- Experience with tenant isolation patterns (inside a broader multi-tenant architecture)