Senior/Staff Program Analysis Engineer, Supply Chain
About Semgrep
Our mission is to make world-class software security available to everyone. This means building program analysis tools that are open source, easy to use, powerful, and fast. It also means building a team with security expertise and a passion for great developer experiences. Most of all, it means working with honesty and respect in a diverse community of dreamers and builders. We’ve redefined static analysis tooling by committing to all of these, and turned our project, Semgrep, into an essential safeguard for code at Snowflake, Dropbox, and more.
About the role
As a Program Analysis Engineer on Semgrep's Supply Chain team, you'll lead the development of advanced code analysis capabilities that power our dependency vulnerability detection tools. Other supply chain management tools exist, but they produce far too much noise to be useful or efficient. Security teams may file through thousands of vulnerabilities, informing developers that hundreds of their dependencies have introduced critical vulnerabilities and need updating, when in reality they are not even using those dependencies in a vulnerable way. Perhaps you’ve even felt this pain yourself!
Our goal is to cut through the noise: to make it easy to find and remediate the 2% of vulnerabilities that are actually reachable given the way our customers’ use their dependencies. We work to make supply chain security as simple and intuitive for our users as possible so developers can focus on their own mission.
You’ll learn about the application-security space, mentor other engineers on program analysis and functional programming, and collaborate with product managers and other engineers to create security tools our customers love. Through Semgrep's culture of transparency, you'll see and influence the decisions that make a startup successful. Your technical leadership will be key to making Semgrep a world-leading static-analysis project, giving you lasting influence not only at Semgrep, but in the world's developer community.
You will:
- Make fundamental improvements to Semgrep’s analysis capabilities to enhance the supply chain product offering
- Advocate for architectural decisions that make our code easy to reason about and allow us to scale with an exponentially growing number of users
- Help set technical and product direction, collaborating with the team to determine the future of the product, what features to build, and how to build them
- Help set the technical roadmap for our foundational analysis, listening to our users as well as program analysis engineers and security researchers across the company
- Understand our product roadmap, advocating for improvements to semgrep’s static analysis on behalf of our users and to address supply-chain-specific product gaps
- Advise and mentor other engineers via thoughtful code reviews, planning discussions, technical documentation, and formal mentorship
You are ideal for this role if you have:
- 5+ years of experience with program analysis, static analysis tools, or compiler development
- Experience working in a functional programming language (OCaml, Haskell)
- Technical leadership experience guiding cross-functional teams through complex engineering initiatives
- Passion for shipping quickly and safely, caring deeply about solving real problems for our users and allowing them to depend on us
- Strong understanding of software dependency management across multiple ecosystems
- Excellent and proactive communication, both verbal and written
Some examples projects you might work on include:
- Enhance
semgrep
’s callgraph analysis to handle virtual calls, dynamic dispatch, and context sensitivity to make our vulnerability detection more precise - Maintain a database of callgraphs for third-party packages that we can query and stitch in real time
- Work to identify undeclared dependencies (aka phantom dependencies) in customer projects to understand the full scope of their supply chain
- Identify and analyze software dependencies supplied as binaries or bytecode
- Identify breaking changes between different package versions according to customers’ usage of a dependency (callgraphs)
Compensation
Salary Range: $166,000-238,000 USD
Our compensation package includes equity and benefits in addition to salary.
Please note that the range listed is for someone based in the San Francisco Bay Area.
What we offer
Our goal is to competitively and fairly compensate every Semgrep employee with a system that equally rewards those who are vocal and those who are less comfortable making demands during the final steps of the hiring process. To that end, we generate internal compensation bands that are used when discussing and negotiating salaries. We update these based on market data to make sure they’re above the average for comparable roles.
We also invest in our employees’ well-being and long term success with comprehensive health plans, generous vacation time, 401k, learning stipends, and more. Our benefits are for everyone, so that you’re taken care of, and we work with individuals to make sure they have what they need, whether that’s quiet work space, adjusted hours, or something else.
Who we are
We have people from France and the Philippines, physics and philosophy, formal methods research and full fledged corporations. We’re new parents and new grads, aspiring authors and aspiring Americans, dog lovers and dogfooders. We get together often to bike, bake, and meet up in parks. In our interactions, we believe respect and honesty go hand in hand, and prioritize both.
Semgrep is an equal-opportunity employer seeking a diverse range of backgrounds. We value who you are — including your cultural heritage, your socioeconomic status, your age, your race, your gender, your sexual orientation, your disabilities. We value what’s vitally important to you — your family, your religion, your politics. We value what you love in this world — your music, your weekend pursuits. We believe in welcoming varied professional backgrounds, educations, and interests. If you’re exceptional in your role, believe in Semgrep’s mission, and treat Semgrep’s values as your own, you belong here.
Apply for this job
*
indicates a required field