Rhythm Software, Inc.
We are looking for a Node.js developer responsible for developing new microservices for our product platform, and maintaining the operation of the existing 400+ microservices in our architecture. Our platform is built on AWS, serverless-first and consists of hundreds of Node.js microservices that run across thousands of AWS Lambda functions. With a loosely coupled architecture and aggressive unit, integration, and end-to-end testing coverage, each microservice is tied to a continuing integration & delivery pipeline that allows us to deploy to production dozens, sometimes hundreds, of times per day.
Your primary focus will be the development of server-side logic and your responsibility will extend all the way to the production infrastructure for each microservice. Since each microservice is self-contained and uses CloudFormation for Infrastructure-as-Code (IoC), you will develop not just code, but the resources the code needs to work.
In addition to business logic, the microservices you create will be loosely coupled and use event-based processing (SNS/SQS/Event Bridge) for orchestrating and handling complex activities such as order processing, product fulfillment, or customer messaging. You will own the API endpoints for your microservices and coordinate with front-end developers to ensure they have what is needed to create a quality customer experience.
We want - no, we insist - that our engineers stay abreast of technological developments, join meetups, and attend one major technology conference every year.
Essential Duties and Responsibilities
- Designing and developing new features for our Node.js microservices
- Coordinating with Angular engineers using the API endpoints you provide to develop UI features
- Defining AWS resources needed by each microservice: Lambda functions, DynamoDB tables, SQS queues, SNS topic, API Gateway endpoints, Step Functions and more
- Writing reusable, testable, and efficient code
- Building, deploying, and supporting new microservices as needed for new features
- Performing peer code reviews to ensure code meets quality standards
- Mentoring less experienced engineers
- Consulting on new hires and providing feedback on capabilities of engineering applicants
- Staying up-to-date on new technology and best practices then spreading your knowledge to the rest of the team