
Senior Software Engineer - EMS
Senior Software Engineer – EMS
Role Description
Kimbal is looking for a engineer with a strong emphasis on problem solving and ownership. You will build technology that makes the energy ecosystem smarter, more efficient, and more reliable, working on challenging problems at the intersection of software, data, and energy.
You won't always get perfectly defined requirements or a detailed implementation plan. We expect you to understand the problem, ask the right questions, break it down, design a solution, and take it all the way to production.
Key Responsibilities
- Solve complex and ambiguous engineering problems with minimal hand-holding.
- Decompose product and business problems into smaller, well-defined engineering problems.
- Design and build scalable, reliable, and maintainable backend systems.
- Write clean, readable, testable, and extensible code.
- Design APIs, services, workflows, and data models.
- Work with event-driven and asynchronous systems.
- Design database schemas and write efficient SQL.
- Analyze and optimize database queries and system performance.
- Participate in both Low-Level Design and High-Level Design.
- Own features end-to-end — from understanding the problem to production and beyond.
- Work closely with product and domain experts to turn real-world energy problems into software solutions.
Job Requirements
- 5+ years of software engineering experience.
- Strong proficiency in at least one programming language; Java, Python, or Node.js preferred.
- Strong Data Structures & Algorithms and problem-solving skills.
- Strong Low-Level Design skills and ability to write maintainable, extensible code.
- Good understanding of High-Level Design and distributed systems.
- Understanding of event-driven architectures and asynchronous processing.
- Strong understanding of relational databases, schema design, SQL, indexing, and query optimization.
- Enjoys solving problems where the solution isn't obvious and can work effectively with ambiguous requirements.
- Strong product decomposition skills, with the ability to understand the business problem behind a technical requirement.
- Makes thoughtful engineering trade-offs and doesn't require constant direction or hand-holding.
- Is curious and learns new technologies and domains quickly.
- Takes ownership, follows problems through to completion, and cares about simplicity, maintainability, and long-term engineering quality.
Why This Role?
You will work on problems that have a real-world impact. Our engineering challenges include optimizing energy storage and consumption, working with changing energy prices and demand, processing large amounts of energy data, and building systems that can make reliable decisions in a complex and evolving energy environment.
You don't need prior experience in the energy domain. What matters more is your ability to learn, reason about complex problems, and build excellent software.
If you enjoy going from Ambiguous Problem → Product Decomposition → System Design → Code → Production → Customer Impact, you'll fit right in.
Apply for this job
*
indicates a required field
.jpg?1769320091)