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