Location: Bristol, United Kingdom
About the role
We use Java, PHP, Go, Ruby, SQL and JS in a diverse suite of hosted services for online retailers. As we grow, we need more data from our services to drive improvements. As our customers grow, they need more data to make business decisions. We are looking for a Senior Software Engineer to join our team in Bristol and help us push the platform to new heights of performance and scalability while rolling out new features to support business insights and analytics.
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.
Develop new infrastructure to support data analysis features.
Instrument and analyse distributed systems for performance and business metrics.
Diagnose problems seen in production and advise on solutions.
Provide technical leadership to other engineers in your field of expertise.
Progress the state of the art in your field within the company.
Develop expertise in diverse technical and business domains.
Expand your knowledge of programming languages and technical stacks.
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 implementing in any of our performance critical languages (Java, Go, JS, SQL).
Have practical experience in most of our core languages (Java, PHP, JS, Go, Ruby, SQL).
Have practical experience with search-optimised data stores (preferably the Elastic stack) or analytics databases.
Have practical experience with application performance monitoring tools (metrics, logging and tracing).
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 components for concurrent and distributed applications.
Be a good communicator.
Be a self starter.
Enjoy variety in your work and be willing to pick up new tools, technologies and techniques.
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.
Basic understanding of, or interest in, data analysis methods.
Familiarity with tools to provision cloud infrastructure (esp. terraform).