Software Engineer

Summary Description:  Our engineering principles are primarily based on collaboration with Pair Programming, small feedback loops with Test Driven Development, Trunk Based Development and Continuous Deployment, backed by a foundational layer of Infrastructure as Code, Observability, a Zero Bug Policy and accountability with Collective Ownership.

How we work: We have a lightweight process. We do pair programming and we have a strong focus on knowledge sharing. Our teams are self-organised and cross functional.

Duties and Responsibilities:

  • Own end-to-end product features from ideation, automated testing and implementation to deployment and monitoring.
  • Embrace “You build it, You run it” with ownership of the entire infrastructure across multiple deployment environments.
  • Continuously learn new domain and technical concepts to maintain a deep understanding of the product strategy and system architecture.
  • Leverage diverse partners in the multi cloud ecosystem to maximise productivity and empower the business to focus on building our core intellectual property.
  • Improve our code standards, maintainability, developer experience, data privacy, security, scalability, resilience and fault tolerance.

Experience and Skills:

  • Experience with developing highly scalable, resilient applications.
  • Deep understanding of computer science fundamentals, engineering principles, automated testing, networking protocols and distributed systems.
  • Excellent verbal and written communication skills with the ability to understand and explain complex concepts to technical and non-technical audiences.

Tech Stack

  • Go, AWS Serverless, Event Sourcing, Lambda, SQS, SNS, Dynamo, Aurora Postgres, Terraform, DataDog, BuildKite, GitHub, Trello, Netlify, React JS and CloudWatch