Dev API (Developer for API/Middleware, Java/NodeJS/Python)
Position Information
Software Engineer - API Development / ID:003 / Dept: Engineering
Job Description
The API development team is responsible for building middleware to span the entirety of the product platform to include data access, data enrichment, and high speed query brokering. Developers are expected to own design and development of core features on the platform. The team operates under Agile development principles and ships frequently.
Responsibilities
-
Design and develop the API tier of the product suite to enable data enrichment across a variety of disparate sources
-
Develop and maintain the RESTful routes specific for product components
-
Be able to automate development processes for API functions as required
-
Own features from design to delivery including participation in end of sprint product demos
-
Collaborate with multi functional team in various physical locations
-
Troubleshoot issues with the product as reported from Support or QA
-
Other projects as assigned
Requirements
-
Mid to Expert level Node.js experience or equivalent Ruby/Python experience and willingness to pick up Node
-
Knowledge of Javascript frameworks and standards (Lodash, Node.js native libraries [events/fs/etc], Express, Harmony/ES6)
-
Strong understanding of OOP, design patterns, and data structures
-
Experience designing, building and testing REST APIs
-
Experience with MongoDB
-
Experience working on a team to ship major features and releases
-
Able to communicate, collaborate, and work effectively in a distributed team
-
Familiarity and experience with Agile process
Desirable Qualifications
-
Start-up experience
-
4 year CS degree or equivalent experience
-
Advanced and demonstrable knowledge of the Javascript language, such as prototypal inheritance, scope binding, and developing OOP codebases
-
Experience with AMQP, RabbitMQ, or ZeroMQ
-
Experience with scale and high traffic applications
-
Basic understanding of web / REST security concepts, to include common vulnerabilities
-
Understanding of network protocols, distributed systems, and real-time embedded systems