Schibsted Media Group is an international media group with 6800 employees in 31 countries.
From Mexico to Malaysia, from Brazil to Norway – millions of people
interact with Schibsted companies every day: We ensure that all sorts of
things can be sold, from new and old sofas to coffee machines and any
sort of valuable items. We also make it possible for news reports to be
read and watched whenever, wherever and in any way users want. These two
examples are just some of the ways our services empower people all
around the world in their daily lives.
Schibsted Technology is the technology division within Schibsted, with offices in many cities around the world, including in London, Stockholm, Barcelona and Oslo.
Our philosophy is built on keeping an open mind, challenging ourselves
and the status quo. If you are driven, ambitious, not afraid of
challenges and thrive on finding new solutions, we want to hear from
you.
One of the missions of Schibsted Technology is to develop
the global product platforms and technology infrastructure necessary to
create developer pipelines, big data processing, media management,
payment, security and identity systems. With over 250 million monthly active users under
our belt, we are able to harness huge amounts data to provide insights
on a global scale. Together with our deep local expertise, we have a
winning combination.
At Schibsted Technology we face a massive scale in highly critical production environments on
a daily basis, a huge amount and diversity of users, large systems,
lots of great teams and employees, etc. This massive scale comes with
unique challenges both from technical and operational perspectives. If
you want exposure to large scale environments as well as exposure to
best of breed technologies (AWS, Mesos, Spinnaker, Docker, ...) this
role is for you.
We are currently looking for a
creative and talented individual with a passion for technology to
create an server application runtime to run services effectively both in
cloud providers and on-premises hardware. Your primary responsibility
will be to manage a team (the CRE team) developing and implementing a
large-scale cluster system able to run heterogeneous applications
developed by Schibsted engineers in a number of cloud providers and
on-premises hardware.
Our services are global
scale deployments of different services such as developer productivity
tools, image and message processing systems, big data and map-reduce
clusters, database and no-sql backends and many more. At all times you
will be just a git clone away from real code to contribute to. We
specifically have to support hundreds of services and hundreds of
instances for 200M+ external users, using dynamic service discovery
systems, leveraging dynamic load balancing and routing. Service to
service interaction is done using circuit breaker frameworks and similar
reliability techniques. Near 100% uptime is done using deployment
techniques such as blue/green or canary releasing. For internal services
(like delivery pipelines and build systems), we support more than a
thousand developers.
The runtime cluster
system you are tasked to create is able to run all the described
services (and more!) in the most reliable and efficient way, while
ensuring our engineers love deploying apps. Moreover, all applications
must seamlessly discover other services, connect with them in a secure
way, handle networking and storage dynamically, log status and
performance as well as seamlessly recover from all sort of failures.
You
will work closely with the SRE team as well as Schibsted engineers to
advocate sensible, scalable systems design as well as supporting the SRE
on creating the best tools to diagnose, resolve and prevent production
issues. Be prepared to lead your team to work based on its technological
expertise but backed up with hard data.
We strongly believe
in continuous improvement of always-on systems so we relentlessly work
to achieve near complete resiliency of everything we do. This means no
actual end-user downtime and seamless upgrades as well as being
proactive to the needs of our engineers.
Join us to create an amazing CRE team.
Responsibilities
- Lead: hire and manage a team of geographically distributed engineers, working closely with engineering leads across Schibsted
- Invent: identify hidden areas of improvement in any process or system, including changing established rules or procedures
- Create:
lead the creation of the Common Runtime Environment, a cluster system
able to run heterogeneous distributed applications having modern
features like service discovery, service-to-service routing, efficient
resource packing and fast deployment
- Protect: improve
the reliability and availability of Schibsted systems by gathering hard
data, designing systems and creating or adapting code for increased
service reliability and performance
- Survey: Implement monitoring and logging solutions embedded in the CRE enabling production systems to be monitored 24/7
- Share:
Share knowledge and provide expert advice to Schibsted engineers as to
how to best use the CRE system as well as providing answers to their
engineering needs, fostering a mixed development and operations culture
- Engineer: Install, configure, fine-tune, and optimise all sorts of technology solutions.
Requirements
- A BSc (or equivalent) degree in Computer Science
- Strong analytical / problem solving skills
- Demonstrable team management, line management experience and agile development
- Experience related to cluster management, high availability and service management systems
- A strong UNIX background (including concepts such as Namespaces, Capabilities, and TCP/IP)
- Proven ability and experience developing highly structured computer programs (C/C++, Golang, Java or equivalent)
- The ability to write scripts on dynamic languages to automate tasks and diagnose problems (Python or equivalent)
-
Experience in building and maintaining systems at scale: service
discovery, load balancing, secret management, dynamic request routing,
circuit breakers and deplyoment schemes (rolling updates, canary, etc.)
- Experience with modern development tools like Git, Travis, Terraform or equivalent
Desirable
- Experience with creating a team vision and leading software development work
- Experience with Docker, Kubernetes, Mesos, AWS, GCP and similiar technologies