Designs and creates new software by analyzing requirements and implementing and testing programming applications in support of Energy Analytics services. Significant ingenuity and latitude is expected. The Principal Engineer represents the Scrum Team at a global level and assures that the voice of the team is heard in architectural decisions.
- Work closely with Product Management to design software that accurately models business logic, objects, and relationships.
- Design and develop server-side code for web-based, SaaS software applications that support Web Applications.
- Design and develop software subsystems that communicate in real time to external services using Web Services and/or APIs.
- Model data in a variety of database technologies, including relational and NoSQL databases.
- Mentor and assess Software Engineers on Scrum Team in order to find ways to increase velocity of team by finding ways to increase skill set and capacity of individual engineers.
- Work with Product Management early in story development to represent the Scrum Team in order to achieve alignment.
- Represent the Scrum Team and perform high level estimates for Road Map initiatives along with Director of Engineering.
- Work with other Principal Engineers and architects to keep consistency in development patterns and technology use as well as designing reusable software frameworks and components.
- Build software applications that are deployed to the cloud as part of a continuous integration.
- Ensure that the team completes testing tasks for all developed code by leading by example.
- Work closely with software, data, and security architects to utilize a variety of cloud resources.
- BS/MS Computer Science degree or equivalent experience preferred.
- BS/MS non-Computer Science degree plus other software related training.
- Expert level understanding and proven development skills using Object-oriented programming languages and techniques.Eight years of software development experience.
- In-depth experience developing client-server applications.
- Experience architecting and developing distributed systems.
- Experience working on SaaS, cloud-based services.Expert level C# .net development skills.
- Expert skills working with relational and NoSQL database technologies.
- Work as part of a team in an Agile development environment.
- Mentor other team members, focusing on junior members.