Lead Software Engineer (Azure Machine Learning)
100% Remote
Prefer someone in Baltimore, MD area
Essential Duties and Responsibilities:
- Design, develop, and maintain software solutions for forecasting and optimizing distributed energy resource loads to increase market participation revenues.
- Collaborate with data scientists and analysts to create predictive models and algorithms.
- Implement and optimize algorithms for real-time data processing and analysis.
- Work with product and business teams including key stakeholders to understand customer/business problems, build tests to validate hypothesis and translate learnings into technical solutions.
- Document technical specifications, processes, and procedures.
- Mentor and guide junior engineers, providing technical leadership and support.
- Lead technical discussions and decision-making processes.
- Ensure best practices in software development and architecture are followed.
- Drive innovation and improvements in technology and processes.
- Continuously monitor and improve the performance of existing systems.
Requirements:
- Bachelor’s or Master’s degree in Computer Science, Engineering, Mathematics, or a related field.
- 12+ years proven experience in software development and architecture with 3+ years in technical leadership role.
- 5+ years of experience with a focus on complex optimization and forecasting models and experience across the full machine learning lifecycle on Microsoft Azure, from data preparation and model training in Azure Machine Learning and Azure Databricks, to deployment and monitoring using Azure DevOps including CI/CD pipelines, Git Repos, Artifacts Repository (NPM, Nuget, etc.).
- Proven ability to design, develop, and implement robust and scalable cloud-native applications with microservices architecture using C# and .NET Core, including SQL Server database design, development, and optimization, along with extensive experience building and integrating RESTful web services.
- Strong skills as a team leader, with a passion for developing people and teams, including demonstrated experience leading long-term software teams and mentoring junior engineers on object-oriented coding and best practices.
- Knowledge of optimization techniques and algorithms (e.g., linear programming, integer programming, heuristic methods, familiarity with statistical modeling and time series analysis).
- Expertise in designing and implementing robust automated testing frameworks and scripts to validate cloud-native applications deployed on Microsoft Azure. This includes expertise in testing at all levels: unit, integration, and performance, with a focus on Azure services and infrastructure.
- Excellent problem-solving skills and attention to detail.
- Working experience with Agile, Scrum, and/or Kanban teams.