Principal SW Engineer
The Principal Software Engineer will be a senior software engineer joining our engineering team and reporting to the Director of Engineering. The Principal Software Engineer is responsible for creating end to end features and functionality within our exceptionally sophisticated cybersecurity product. This includes serving as a technical leader, responsible for guiding the development and execution of high-impact projects from concept to deployment. This role entails providing architectural guidance, making critical technical decisions, and overseeing end-to-end feature development. The Principal Software Engineer collaborates closely with product managers, system architects, designers, and other engineers to define technical requirements and specifications, and execute them, while ensuring alignment with business objectives. They will also mentor junior staff and facilitate agile practices within their teams to drive effectiveness, efficiency, and team happiness.
- Technical Leadership. Provide technical guidance and mentorship to stream aligned teams. Lead architecture discussions and technical evaluations for consideration by System Architects. Plan, design and develop complex full stack capabilities. Lead by example, and be personally accountable for your team’s outcomes.
- Product Development. Collaborate with teams to execute end-to-end development of assigned features and services. Collaborate with product managers, product architects, and other stakeholders to define technical requirements and specifications, and build them. Quickly build new ideas to get user feedback
- Code Quality. Ensure the quality of the codebase through code reviews, unit tests, and automated workflows. Enforce best practices and coding standards. Lead by example, and be personally accountable for your team’s outcomes. Review code developed by other developers and provide feedback to ensure best practices (e.g., style guidelines, checking code in, accuracy, testability, and efficiency)
- Agile Practices. Facilitate agile ceremonies, such as stand-ups and retrospectives. Monitor the agile metrics and KPIs to improve team performance
- Strategic Planning. Create and review technical plans and documentation. Work closely with the design team and technical team to define new user interface behaviors, widgets and containers helping create a truly distinctive and extraordinary user experience
- Stakeholder Communication. Interface with leadership, product teams, teammates, and customers with extreme professionalism to ensure alignment of technical initiatives with business objectives. Collaborate with peers on technical design, work estimation and implementation of new UI features including visualization aspects and server interfaces/contracts
- Ability to manage concurrent initiatives and use effective judgment in prioritization and time management.
- Creative, self-motivated, detail and results oriented.
- Excellent analytical/problem solving ability.
- Excellent understanding of algorithms, data structures, web development, API design.
- Experience with relational and graph database systems including Postgres and Neo4j.
- Strong influence, negotiation, and relationship management skills
- Strong understanding and experience with solution design and flow
- Strong technical documentation and communication.
- Troubleshoot, debug, and upgrade software.
Supervisory responsibilities - No formal supervisory responsibilities, but we expect senior technical leaders to lead by example and communicate effectively and professionally both verbally and in writing with the ability to make and justify technical decisions within the scope of assigned projects/problems to solve.
We are a fully remote company, and this job may require up to 15% of travel to be successful. Job-related travel expenses are reviewed and must be approved by your manager.
- Bachelor's Degree in Computer Science, Computer Engineering or related field.
- 15+ yrs professional software engineering experience using modern object-oriented or functional languages (Python, Go, Scala, C++, TypeScript, etc).
- Extensive experience building SaaS applications on cloud computing platforms such as AWS, Azure, GCP, using container technologies such as Docker and Kubernetes.
- Experience delivering revenue generating features and capabilities to external customers
- Experience in the Cyber-Security industry.
- Expert proficiency in SQL and experience with various database architectures including relational (PostgreSQL) and graph (Neo4j).
- Experience building and using GraphQL backends.
- Experience with data engineering, analytics, enrichment, and data visualizations.
- Driven, self-managed, capable of conceiving and implementing solutions on your own and with a team
- A strong desire to continuously improve and learn new technologies in a fast-paced Agile development environment
- Excellent analytical and problem-solving skills, effective communication, attention to detail and high-quality work
Please note this job description is not designed to cover or contain a comprehensive listing of activities, duties or responsibilities that are required of the employee. Duties, responsibilities, and activities may change at any time with or without notice.