The HDQC Principal Software Engineer is responsible for joining a product team and contributing to the software design, software development, and overall product lifecycle for a product that our users love. The engineering process is highly collaborative. In addition to pairing, Software Engineer Principals field questions from other product teams and encourage cross-team collaboration. They also play an active role working with 3rd party vendors as well as the open-source community. Software Engineer Principals create foundational code elements that can be reused as well as architectural diagrams and other product-related documentation. They also define service level objectives for products. In addition, Software Engineer Principals may be involved in product configuration, performance tuning and testing as well as production monitoring. As a Software Engineer Principal, you will be an extremely knowledgeable Engineer on the product team and are expected to build and grow the skillsets of the more junior engineers. There is also an expectation that the Software Engineer Principal will demonstrate expertise around modern software design and development.
Delivery & Execution: Collaborates and pairs with other product team members (UX, engineering, and product management) to create secure, reliable, scalable software solutions.
- Documents, reviews and ensures that all quality and change control standards are met.
- Writes custom code or scripts to do "destructive testing" to ensure adequate resiliency in production.
- Creates meaningful dashboards, logging, alerting, and responses to ensure that issues are captured and addressed proactively. Contributes to enterprise-wide tools to drive destructive testing, automation, or engineering empowerment
- Identifies product enhancements (client-facing or technical) to create a better experience for the end users.
- Identifies unsecured code areas and implements fixes as they are discovered with or without tooling.
- Mastery of a modern scripting language (preferably Python), a modern web application framework such as Ruby on Rails, Spring MVC, and Node.js, writing SQL queries against a relational database,a version control systems (preferably Git)
- Proficient in a CI/CD toolchain, destructive testing methodologies and tools, a cloud computing platform and the associated automation patterns they provide, production systems design including High Availability, Disaster Recovery, Performance, Efficiency, and Security, defensive coding practices and patterns for high-availability, modern microservice-based architectures and methodologies, successful application of design patterns, test-driven development and effective unit test creation, a NoSQL database, query optimization and troubleshooting, effective data modeling within both SQL and NoSQL databases, designing and implementing RESTful web services.