About the Position
Contrast is looking for a talented back-end server-side engineer to join our team developing instrumentation agents for NodeJS, specifically supporting ExpressJS, Sails, Koa and HapiJS frameworks. This team works with the internals of NodeJS and does not building web applications. It's not a front-end or full-stack position. You would be joining the larger “agents organization”, which includes engineers working in Ruby, Java, PHP, Perl, GoLang, .NET, and Python.
Writing instrumentation agents is a responsibility we take very seriously at Contrast. An instrumentation agent is a module that profiles code and performs monkey patching and/or duck punching of code in the runtime.
Our customers trust us enough to run our agents directly in their applications. We're looking for an engineer to exercise that power carefully, to help us build a quality, thoroughly tested agent that our customers run with complete confidence.
Please include a link to your Github or BitBucket account, as well as any links to some of your projects if available.
More About You
- Love all things String related...specifically String Literals and String Objects
- Understanding and willingness to monkey patch (duck punching) NodeJS code in order to engineer a reliable, working solution.
- Possibly contributed to the NodeJS project on GitHub
- Experience writing NodeJS services using ExpressJS, Koa, Sails, Meteor, DerbyJS and/or Hapi
- Experience with popular NodeJS ORM frameworks like Sequalize.
- Experience building NodeJS packaging via NPM.
- You have experience or desire to learn Lua.
- Have a deep understanding of NodeJS dependencies and sub-dependencies.
- Build, ship, curate, and iterate on Contrast Security agent features.
- Own your work. Whether a nasty bug or an awesome feature, you put your name on every line of code.
- Be a team player. You love to work with others to find the right solutions.
- You must love to code and have a strong passion for making software more secure.
- You’re a true scientist and think about algorithms and regular expressions while you sleep.
- You approach problems from a product perspective, thinking through how the user will interact with what you're building.
- You have strong communication skills. You ask questions, let others know when you need help, and tell others what you need.
- You're a problem solver. You believe the best work is the result of finding the simplest solution to complex challenges.
- You see the big picture. You understand how the code you write interacts with systems and services, both internally and externally.