Lead Software Engineer
Location: US Remote
Ready to make a difference ?
ICF is seeking a Lead Software Engineer to lead the hands-on development and continued evolution of the Demand Response Optimization Program (DROP), a client-facing software product that helps utilities plan and evaluate programs designed to manage electricity demand. DROP brings together customer, program, device, and energy-usage data so utility teams can organize participants, plan operational activities, evaluate results, and improve future program performance.
The successful candidate will combine deep software-engineering skills, product thinking, strong communication, and an AI-first mindset. They will translate analytical methods and client needs into secure, reliable, maintainable software while contributing engineering improvements across Sightline ADAPT.
The Opportunity
DROP has progressed from an analytical concept into a product with automated workflows supporting customer and device assignments, program operations, data preprocessing, telemetry processing, performance analysis, and reporting. The next phase requires disciplined software engineering focused on reliability, extensibility, repeatable deployment, and continued product improvement.
This is a senior individual-contributor role. The Lead Software Engineer will remain hands-on, provide technical leadership to contributing engineers, and collaborate on roadmap decisions, engineering standards, delivery risks, and shared platform needs.
Why you will love working here:
Quality of life: Flexible workplace arrangements, work-life balance
Investment of the community: Donation matching, volunteer opportunities
Investment in you: Tuition reimbursement, access to professional development resources, 401k matching, Employee Stock Purchase Plan
And many, many more (Ask your recruiter for more details!)
What you will be doing :
Software Development and Technical Leadership
Design, develop, test, document, implement, and maintain DROP components across the user interface, APIs, data services, and analytical workflows.
Build capabilities for customer and device assignments, cohorting, program planning, telemetry processing, baselines, performance analysis, reporting, and related demand-response workflows.
Refactor and modernize existing code to improve maintainability, performance, modularity, security, and reuse.
Lead design decisions, code reviews, troubleshooting, and implementation guidance while coordinating broader technical decisions with the engineering team.
Mentor contributing engineers and analytical developers assuming formal people-management responsibility.
Product Development and Client Delivery
Partner with product leadership, utility consultants, and analytical specialists to understand user needs and translate them into product capabilities, technical requirements, acceptance criteria, and implementation plans.
Provide technical options, estimates, dependencies, and delivery risks to support roadmap, sprint, and release decisions.
Support client implementations, technical discovery, demonstrations, proposals, scopes of work, and solution reviews.
Communicate capabilities, limitations, technical tradeoffs, and delivery risks clearly to technical and nontechnical stakeholders.
Production Engineering and Data Integration
Improve automated testing, CI/CD, logging, monitoring, error handling, data validation, deployment practices, and operational documentation.
Develop and maintain data-intensive Python and SQL workflows in Microsoft Azure and Databricks environments.
Integrate DROP with utility data sources, DERMS platforms, APIs, telemetry feeds, storage services, Microsoft Fabric, Power BI, and client environments as applicable.
Collaborate with data engineers to define reliable schemas, interfaces, data-quality controls, and secure configuration patterns.
AI-First Engineering and Product Innovation
Use AI-assisted engineering tools to improve development, testing, documentation,…