We are looking for a Senior Principal Software Engineer who can design, develop, test and support complex systems. This position will involve developing new features to our existing codebase as well as coordinating with the R&D teams to fix bugs with the existing code.
You will work with product management and the user experience team to help define requirements and implement various solutions in a small, agile development environment. This will require the ability to independently research new technologies and tools and the skills to integrate them into the existing framework.
In this role, you should be able to work with little supervision and also collaborate with team members as needed. The individual and team goal will be to develop high-quality software that is aligned with user needs and business objectives. You should have excellent organization, communication and problem-solving skills, experience in agile methodologies is a plus.
- Bachelor's + 12+ years of related experience
Skills & Competencies
- Demonstrates high personal integrity and ability to earn trust from others.
- Demonstrates a growth mindset, seeks feedback often and is effective in continuous personal and professional development.
- Participates in self-directed learning activities aimed at developing expertise within technical domain, including reading relevant publications, participating in domain forums or groups etc.
- Organizational Skills
- Written and Verbal Communication skills
- Strong background with Angular, Vue, React, or similar front-end frameworks
- Experience with Python and Django, or similar back-end web frameworks
- Experience with cloud environments
- Set direction for high-impact and/or long range strategic or technical projects
- Work collaboratively within an Agile Team to write high quality, testable code that meets the Definition of Done
- Actively participate in user experience, requirements, and design discussions
- Participate in design and code reviews with other engineers
- Develop and utilize unit, component, and end to end tests in an effective manner
- Actively participate in test plan reviews
- Develop high-quality software and architecture
- Investigate and resolve reported issues
- Develop processes and procedures to reduce failures
- Continuously improve the complexity of automation and monitor systems
- Drive opportunities to increase efficiency and productivity through best practices
- Ensure software utilizes and is compatible with the emerging technologies