Experience researching and implementing new and innovative software technologies and standards
Experience with designing and developing highly scalable and fault-tolerant distributed services for high throughput and low latency from the ground up in a complex production system
Excellent understanding of key design patterns (creational, structural, behavioural) and architectural patterns including MVC, Microservices Architecture, Functions as a service (lambda functions), serverless design, Async Programming Patterns, Reactive and Event Driven Programming
Experience with SQL and NoSQL databases (MongoDB, Elastic Search), KV stores (Redis etc.), Message Queues (RabbitMQ, Kafka etc.), Event-Driven Compute Frameworks (Step Functions, Lambda Functions), Stream and Batch Data Processing (Apache Spark, Flink) in production
Excellent understanding of Object-oriented, Reactive and Event-Driven programming concepts
Good understanding of functional programming concepts
Willingness and ability to pick up new object-oriented and functional programming languages suitable for the job
Experience building and shipping scalable microservices and APIs
Demonstrable experience with integrating, refactoring, and troubleshooting services in a large production system
Experience with developing and deploying assets in the cloud - preferably AWS and Kubernetes using IAC (infrastructure as code)
Experience with JavaScript frontend and backend development frameworks (React, Angular, Node etc.)
Comfortable deploying software with CI / CD tools including Jenkins, Harness, Terraform etc.
Strong understanding of the SDLC (Software Development Lifecycle) and product development processes
Experience architecting, designing, developing, testing, and delivering software in an agile environment
Familiarity with cybersecurity concepts is an asset
5+ years of experience in building and shipping scalable microservices and APIs
2+ years of experience leading/mentoring other technical contributors on standards and best practices