Principal Engineer
The Principal Engineer is responsible for playing a hands-on role in the software development of our day-ahead and intra-day auctions module throughout the entire Software Development Lifecycle (SDLC), managing a small 1-3 person team. The principal engineer will also be responsible for peer reviews, pull requests, best practices, and helping to drive our products forward along with pursuing our continuous improvement approach. This is a great opportunity to further develop your software engineering career at a company with strong growth ambitions in a dynamic and future-looking industry.
Responsibilities:
- Communicate effectively and proactively with customers, stakeholders, and the product team, actively participating in requirements refinement to develop shared understanding to ensure that we verifiably build the right thing.
- Maintain up-to-date expertise in relevant programming languages, tools, and technologies and awareness of organizational policies and standards and modern software development practices, techniques, tools, and platforms to ensure that we verifiably build the thing right.
- Actively participate in Agile ceremonies to enable effective management of work in progress and identify opportunities for improvement.
- Design, document, develop, refactor, debug, test, maintain, monitor, and support secure, high-quality software applications and services, associated infrastructure, and tooling in collaboration with colleagues to create well-engineered solutions that provide value to our customers.
- Lead and participate in design reviews and code reviews, giving and receiving objective feedback to support colleagues and ensure quality.
- Assist and support estimation, planning, scheduling, and resourcing activities.
- Mentor, support, and encourage software engineers of various abilities to facilitate skill and knowledge development through advice, coaching, training opportunities, and leading by example to help the team scale.
- Measure, monitor, and review our software, processes, and practices; identify and implement improvements to improve efficiency and effectiveness.
- Identify candidate technical approaches to support business requirements and assess their feasibility and relative merits to objectively identify the most appropriate approach.
- Determine the root cause for the most complex software issues and develop practical, efficient, and permanent technical solutions to address the issue and process improvements to prevent the recurrence of similar issues.