Skills & Experience Required:
Successful Candidates must demonstrate an appropriate combination of:
- 6 10+ years of experience as a software engineer.
- 3+ years of experience as a Staff or lead software engineer.
- Bachelor's degree in computer science or a STEM field.
- A portfolio of thought leadership and individual technical accomplishments.
- Full understanding of Agile software development methodologies and practices.
- Strong communication skills - both verbal and written.
- Extensive experience working with technologies and concepts such as:
- Behaviour-driven or test-driven development
- JVM-based languages such as Java and Scala
- Development frameworks such as Spring Boot
- Asynchronous programming concepts, including Event processing.
- Database technologies such as SQL, Postgres/MySQL, AWS Aurora DBs, Redshift, Liquibase or Flyway.
- No-SQL technologies such as Redis, MongoDB and Cassandra
- Streaming technologies such as Apache Kafka, Apache Spark or Amazon Kinesis
- Unit-testing frameworks such as jUnit.
- Performance testing frameworks such as Gatling.
- Architectural concepts such as micro-services and separation of concerns.
- Expert knowledge of class-based, object-oriented programming and design patterns
- Development tools such as GitHub, Jira, Jenkins, Concourse, and Maven.
- Cloud technologies such as AWS and Azure.