Location: Bristol, United Kingdom
About the Role
We are looking for talented, experienced software engineers to join our polyglot language team in the UK building SaaS applications for online retailers. We use Java, PHP, Go, Ruby, JS and SQL in a diverse suite of services. This role is primarily focused on performance around the design and use of data and will involve the use of many of our implementation languages and technology stacks.
As a Senior Software Engineer, you will:
Work in a small cross-functional team to deliver new features, improve existing features, prototype new applications, improve our SaaS infrastructure, develop in-house tools or integrate with partner services.
Work closely with other engineers, quality analysts, performance analysts, business analysts, system administrators, product managers, customers and partners.
Design, implement and test new components and products.
Diagnose problems seen in production and advise on solutions.
Expand your knowledge of programming languages and technical stacks.
Develop expertise in diverse technical and business domains.
Provide technical leadership to other engineers in your field of expertise.
Progress the state of the art in your field within the company.
Have the opportunity to grow into team or technical leadership roles.
To be considered for this role, you should:
Have 5+ years commercial experience designing and writing well-tested Java.
Have practical experience in most of our core languages (Java, PHP, JS, Go, Ruby, SQL).
Have commercial experience designing MySQL schema for transaction processing systems.
Hold a BSc (or equivalent) in a technical subject (comp.sci./science/engineering)
Have experience tracking down bugs in a production environment.
Have a proven track record of building reliable, scalable, maintainable, data-intensive applications.
Have a good understanding of network and application comms protocols (TCP, HTTP, REST).
Have experience designing concurrent and distributed applications.
Have a deep understanding of dependency management and modern build systems.
Have a good understanding of how SaaS applications are hosted and provisioned.
Be a good communicator.
Be a self starter.
Enjoy variety in your work and be willing to pick up new tools, technologies and techniques.
Have practical experience with search-optimised data stores (preferably the Elastic stack).
Working experience of other storage technologies (e.g mongodb, Cassandra).
Experience using Cucumber or equivalent for end to end testing.
Experience with the Continuous Delivery and DevOps styles of development.
Familiarity with tools to provision cloud infrastructure (esp. terraform).