What you will do:
Design, document and deliver well-thought-out solutions as part of our microservice architecture while partnering with a small team of developers and QA engineers.
Essential Duties and Responsibilities:
- On-time delivery of software solutions fully aligned to business and technical requirements.
- Design, document and deliver well-thought-out solutions as part of our microservice architecture in partnership with the Product Team.
- Work closely with cross-functional project teams to develop new or additional functionality. Maintain velocity while minimizing defects.
- Establish a test-driven culture.
- Bachelor's degree in Information Technology, Computer Science, Software Engineering or a related field or equivalent experience.
- 6 or more years of experience in software development.
- 4 or more years of experience in technical architecture, solution/application architecture, application development or middleware design.
- Experience designing and developing scalable and highly available cloud-based solutions on AWS, Azure or GCP.
- Experience with multiple database technologies such as MySql, Postgres, Oracle, MongoDB or Cassandra.
- Experience designing for large scale, highly available, fault-tolerant transactional and analytical systems in a dynamic environment.
- Proven experience building microservice or SOA architectures using SOAP or REST/GraphQL.
- Master's degree in Computer Science, Computer Engineering, Information Technology or equivalent Engineering field.
- 8 or more years of experience in software development.
- 4 or more years of experience using one or more of the following: Node.js, Java, Python or Golang.
- Experience with searching and caching tools and technology such as Elasticsearch, Solr, Ignite or Redis.
- 2 or more years of experience leading a software development team in the delivery of complex and challenging software solutions.
- 1 year of experience with Docker.
- Experience with Kubernetes.
- Mobile development experience using Objective-C/Swift, Java or React Native.
- Familiarity with design patterns.
- Technical knowledge of infrastructure components such as Network, Storage, Linux/Windows and IT security.
- Able to handle changes in priority and requirements, without loss of enthusiasm.