We're on a mission to build the best platform in the world for engineers to understand and scale their systems, applications, and teams. We operate at high scale—trillions of data points per day—allowing for seamless collaboration and problem-solving among Dev, Ops and Security teams globally for tens of thousands of companies. Our engineering culture values pragmatism, honesty, and simplicity to solve hard problems the right way.
The Team:
Datadog Application Security Management (ASM) allows customers to manage application security risk with continuous, real-time monitoring of vulnerabilities and threats against your web applications, serverless applications, and APIs, in production. Automatically integrated with Application Performance Monitoring (APM) distributed tracing and code-level context, Application Security Management empowers development, operations, and security teams to build and run secure applications in production.
The Opportunity:
We are looking for a software engineer to work on our open-source Node.js library . On top of working on the daily life of this open-source project, it includes working on the ASM integrations (HTTP, GraphQL, gRPC...) and security monitoring features such as attack attempts or code vulnerability detection. Come and join us to build amazing open-source software!
What You’ll Do:
- Develop mainly in Node.js and interact with components written in C++, Rust and Python.
- Help define the architecture, design and implementation of ASM for Node.js with the help of the rest of the team.
- Work closely with the other six ASM library teams through working groups and RFCs.
- Collaborate with the ASM platform teams to make new product ideas happen.
- Ensure that your quality criterias are met thanks to our shared testing platform, health metrics, performance monitoring metrics, etc.
- Write code that instruments thousands of Node.js applications around the world.
- Advocate for and represent Datadog in the Node.js community.
- Learn more on the Node.js internals and its engine.
- Closely collaborate with the Datadog Node.js Guild, including the APM Tracing and Profiling teams, living in the same library.
Who You Are:
- You’re a solid Node.js programmer or polyglot that would have no trouble adjusting to Node.js. For each language you know, you think idiomatically to leverage the best features of the language for a particular problem.
- You have some knowledge of garbage collectors, language interpreters and virtual machines, and you’ve dealt with concurrency and parallelism.
- You have a knack for readable, robust, reliable code and put that in practice by writing piles of clean, correct, well-tested, performant, idiomatic code, and you are prepared to do so in Node.js.
- You have Node.js library packaging experience.
- You have experience with widely used web frameworks (like expressjs, nextjs), and test frameworks (like mocha).
- You have experience in writing code using advanced programming concepts such as metaprogramming and monkey patching.
- You care about performance, both in regard to time and space, and have experience in measuring and optimizing code to that end.
- You keep yourself up to date in library ecosystems and language communities, and you frequently dive into the code of your dependencies to get the best understanding of their behavior.
- You want to work in a fast, high growth startup environment.
- You communicate about your work efficiently, and without guidance.
- You have a BS/MS/PhD in a STEM field or equivalent experience.
Bonus Points:
- You’re a master Node.js programmer: you avoid pitfalls and quirks of the language like callback hell, object mutation, and tricky asynchronous code; you dived into some of the Node.js and v8 internals; you use modern syntax and language features.
- You have experience with tracing features of Node.js, like AsyncLocalStorage and diagnostics_channels.
- You keep yourself up-to-date regarding the Node.js language and its library ecosystem and community.
- You have experience interfacing Node.js with foreign code, e.g via N-API/NAN bindings.
- You have experience with C/C++, Rust or Python.
- You have experience with GitHub Actions.
- You have experience with code telemetry and introspection.
- You have experience in maintaining open source projects, you have public Node.js projects on GitHub, you own npm libraries.
- You have experience with customer support.
#LI-CA2