You will work on different shaped problems across teams in Development and Operations. The problems could take the form of:
- Coding solutions to problems you find.
- Consultation & influence to Operations and Development teams as new functionality is built.
- Emergency incident response and co-ordination
- Facilitating Continuous Improvement
- Ensuring safe, predictable deploys and release of functionality to Production. Working with Development and Operations teams
- from idea inception through to Production readiness.
- Monitoring of our live systems, applications and services
- Early warning of issues, detection of service impact.
- Providing consultation of these cross-cuts to both Operations and Development.
- Working with our Service Delivery team to provide forecasting and capacity information from our monitoring tools.
- Increasing efficiency, performance and scalability of our systems.
- Owning and setting the standard for emergency response to Production issues.
- Are a Software Engineer who also likes Systems Engineering, or a Systems Engineer (aka Operations Engineer) who also likes
- Software Engineering.
- Understand that we don't solve all of our problems by writing code, that to be effective we need to equally balance technology,
- people and process.
- Believe that it is unacceptable to do things over and over again by hand that which can be done my machines.
- Are comfortable not only implementing solutions, nor finding solutions to problems but also finding problems and seeing them through that chain to implementation.
- You love solving problems of different shapes and sizes. These could be coding, performance, systems, distributed systems and/or
- design problems.
- You use the scientific method when solving problems. Breaking those problems down, observing, measuring, experimenting &
- formulating and modifying your hypotheses as you go. Documenting your work for your future self and those that follow.
- You’re able to work effectively with others from different fields across the technology departments and beyond.
- You are happy to change your mind as new information becomes available, you listen & consider others opinions as you discuss
- and you treat others with humility and respect to maintain a high-trust environment.
- You can effectively communicate your work to technical and non-technical colleagues both written and verbal.
- Familiarity with one or more systems programming languages (e.g. C#, C++, Java, golang, ...) & one or more scripting languages (e.g.
- Python, Ruby, golang, ...)
- Running systems in AWS or another cloud environment
- Linux / Windows
- Networking, TCP/IP & HTTP/HTTPS
- Relational Database concepts, other database types advantageous
- Experience with automation & orchestration frameworks (we use Chef, but you could have used Puppet, Ansible, Salt)
- Experience working with and designing highly available, large scale Production systems
- Understanding & experience of agile software development practices
- You will be directly contributing to our ability to provide a global, multi-tenanted, real-time service, with thousands of concurrent users on
- a continuously evolving platform that supports weekly releases with no downtime.
- In addition, you will be able to participate in a number of activities including:
- Coding Katas
- Lunch & Learn
- Training Courses and Conferences
What we offer:
- A friendly, supportive environment with opportunities to progress within the company
- Training along with a clearly defined career path
- Competitive package including a range of benefits
- An opportunity to work within an innovative, high-growth global technology business
A non-exhaustive flavour of the technologies and processes that we use are Continuous Deployment, Scrum-ban, TDD, BDD, AWS, Linux, Windows, IIS, C# .NET Framework, Core & mono, C++, Go, Python, RabbitMQ, Docker, MySQL, Chef, Jenkins, InfluxDB, Telegraf, Kapacitor, Grafana, Kibana, ElasticSearch, LogStash, NewRelic