Principal Software Engineer, Snyk Code (sast)

Snyk Snyk · Enterprise · London, United Kingdom

Principal Software Engineer on the Snyk Code team, focusing on advancing the quality and accuracy of SAST analysis through program analysis, rules, and data-driven feedback systems. The role involves setting technical vision, architecting core systems for continuous improvement, solving complex technical challenges in program analysis, and mentoring senior engineers in the context of AI-assisted development.

What you'd actually do

  1. Set Technical Vision: Define and champion the long-term (12-24 month) technical roadmap for Snyk Code's program analysis capabilities. Identify and prioritize the foundational investments needed to maintain our industry-leading performance and scale for an AI-driven world.
  2. Advance Analysis Quality: Architect and lead the development of the core systems that drive the continuous improvement of our SAST analysis. Design the data pipelines, feedback mechanisms, and automated testing frameworks required to systematically measure and enhance the accuracy, coverage, and performance of our analysis engine.
  3. Solve the Hardest Problems: Tackle the most complex, ambiguous, and cross-cutting technical challenges in program analysis. This includes designing novel techniques for analyzing new languages and frameworks, ensuring the reliability of our findings at scale, and building systems that are resilient to the explosion in code volume.
  4. Lead Through Influence: Drive technical consensus across multiple engineering teams and groups. Author the critical design documents and RFCs that align the organization on a coherent technical strategy. Your technical leadership will be crucial in unifying efforts towards common, extensible solutions.
  5. Hands-On Technical Contribution: Remain deeply hands-on, making critical contributions in code, design, and debugging our most challenging problems. You are the expert others turn to for guidance and the person who can dive in to unblock the most critical projects.

Skills

Required

  • At least 10 years of commercial software engineering experience
  • Proven track record of leading the design and delivery of large-scale, complex, and ambiguous technical projects
  • Extensive experience as a technical leader, setting the technical direction for a significant product area or multiple services
  • Deep and demonstrable background in Computer Science
  • World-class expertise in at least one of the following domains: static program analysis, application security, or applied machine learning for code
  • Deep, practical understanding of compiler theory, language design, and data-driven systems
  • Proven ability to design, build, and evolve highly complex, distributed systems, particularly those involving rule engines, large-scale data processing, or compiler/interpreter technology
  • Mastery of one or more core programming languages (e.g., Go, Python, Java, C++, Rust)
  • Ability to quickly become proficient in new technologies
  • Exceptional ability to lead through influence
  • Outstanding written and verbal communication skills
  • Strategic, scalable approach to building systems
  • Relentless focus on automation, reliability, performance, and operational excellence
  • History of successfully mentoring and growing senior engineers

Nice to have

  • PhD or MSc in a relevant field such as Programming Languages, Compilers, Machine Learning, Application Security, or Static Analysis

What the JD emphasized

  • driving our technical future
  • tackling our most difficult and strategic challenges
  • quality and accuracy of our SAST analysis
  • program analysis
  • data-driven feedback systems
  • foundational systems
  • scale our analysis in the new era of AI-assisted development
  • intersection of Program Analysis, Machine Learning, and Application Security
  • solve our most complex technical problems
  • invent them
  • feedback loops
  • data-driven architecture
  • core technology
  • continuous improvement of our SAST analysis
  • automated testing frameworks
  • systematically measure and enhance the accuracy, coverage, and performance of our analysis engine
  • complex, ambiguous, and cross-cutting technical challenges
  • novel techniques for analyzing new languages and frameworks
  • reliability of our findings at scale
  • systems that are resilient to the explosion in code volume
  • technical consensus
  • critical design documents and RFCs
  • coherent technical strategy
  • unifying efforts towards common, extensible solutions
  • deeply hands-on
  • critical contributions in code, design, and debugging
  • unblock the most critical projects
  • mentor and elevate
  • key mentor and force-multiplier
  • technical excellence
  • PhD or MSc in a relevant field such as Programming Languages, Compilers, Machine Learning, Application Security, or Static Analysis
  • World-class expertise in at least one of the following domains: static program analysis, application security, or applied machine learning for code
  • deep, practical understanding of compiler theory, language design, and data-driven systems
  • design, build, and evolve highly complex, distributed systems
  • rule engines, large-scale data processing, or compiler/interpreter technology
  • Mastery of one or more core programming languages
  • Exceptional ability to lead through influence
  • outstanding written and verbal communication skills
  • impactful design documents, RFCs, and presentations
  • strategic, scalable approach to building systems
  • relentless focus on automation, reliability, performance, and operational excellence
  • successfully mentoring and growing senior engineers

Other signals

  • AI-assisted development
  • Machine Learning
  • data-driven feedback systems
  • program analysis
  • static analysis