Remote Senior Software Engineer - Disney+

At Disney Streaming we’re responsible for building what aims to be the largest media streaming platform in the world, serving not just Disney+, but ESPN+, Star+, and Hulu. We foster innovation, we challenge each other, and we put our users before all else: connecting them with the stories they love.

We’re looking for people who want to challenge themselves, to grow; people who understand scale... and care deeply about reliability. You will be surrounded by colleagues eager to help you succeed and be part of an ambitious, high-performing, rewarding culture. If this sounds like something for you, read on!

HOW WE WORK

The teams in Manchester work in small squads that promote Agile practices. Each team and their respective squads are responsible for a collection of microservices and their infrastructure, from building to delivery and maintenance. We take great pride in owning what we build and seeing things through to the end.

We have a mature DevOps culture in place where teams are responsible for the infrastructure and deployment of those applications. We are actively expanding our Manchester born SRE function, which aims to advance our knowledge and innovation globally in areas such as Observability, Reliability and Availability.

We have the autonomy to choose the technologies and processes that help us achieve our objectives. So each team leverages the technology that fits their needs best. You’ll see us working with data processing / streaming like Kinesis, Spark and Flink; application technologies like PostgreSQL, Redis & DynamoDB; and breaking things using in-house chaos principles and tools such as Gatling to drive load… all deployed and hosted on AWS.

Our services teams are advocates of functional programming, so you can expect to join a team that’s applying principles from FP to build these services: using Scala, Cats, ZIO, http4s, FS2, and Cats Effect.

THE TEAMS

Experimentation

Our high-scale in-house A/B testing platform. Deeply integrated into our platform to enable experimentation on every aspect of the product. We’re building a fully bespoke platform using cutting edge technologies, capable of serving millions of concurrent requests with single digit millisecond response times. We provide our users with a fully self service experience including comprehensive in-tool curation and analysis of experiments.

We’re also responsible for our platform’s feature flagging capabilities, extending our experimentation platform to provide fully dynamic, user specific configuration to all clients, enabling a truly universal end to end process for test, rollout, experiment, release, rollback capabilities.


Customer Experience / QoS

Our team builds services to measure the Customer Experience for Video Playback, in real-time. This means taking high throughput streaming event data (~10TB/day) generated by our client applications, and creating a user experience to support our analysts who generate insights into the underlying quality of the streaming experience, driving improvement. It requires us to make technical tradeoffs between what we can achieve with the data we can gather, and the requirements from our internal users on a regular basis.


Token Services

We help to secure the platform using OAuth 2.0 & JWTs. Generating tokens used by our applications every time they make service requests to e.g. discover and playback content, including by third parties such as Google Assistant initiated playback. We also build internal tooling to help our teams test and debug in production.

Being a critical path multi-region service means we set the bar high for availability. We serve billions of requests per week with double digit millisecond response times. Reliability, scalability, and cryptographic agility is critical to us!

Subscription Services

Responsible for supporting new customer signup and retention flows, billing services and payment integrations. The Subscription team supports high traffic API services that provide the source of truth for all products, subscriptions and entitlements owned by our subscriber base. This data is surfaced globally to our streaming client apps as well as via real time data streams that feed other platform services and our analytics capabilities. The team also supports subscription management functionality providing users the ability to upgrade/ downgrade their plan or cancel, for example as well as driving the subscription lifecycle including supporting monthly renewals.


Responsibilities:

Be part of an Agile team building the world's fastest growing media streaming platform.

  • Strive for excellence, challenge yourself, and become part of a collaborative, inclusive and diverse team.
  • Contribute to or lead a significant part of the implementation, design, testing, and deployment of services within your team.
  • Leverage, learn and apply cutting edge technologies on challenging and varied business domains.
  • Apply principled engineering practices including unit testing, integration testing, and continuous integration.
  • Develop your technical understanding to support and build your career.
  • Act as a mentor and an example to others in your team and across the organisation.


Basic Qualifications:

We’re interested in candidates with strong experience in a few areas, or some experience in most areas. Each team is different and we don’t expect you to know everything!

  • Broad and deep technical knowledge, throughout the full stack. Deep hands-on expertise with many disparate technologies and architectures.
  • Excellent communication skills, specifically in understanding, framing and simplifying both technical & business requirements.
  • Experience mentoring and coaching more junior engineers on both technical and soft skills.
  • Comfort with ambiguity and leading conversations where discordant views are present.
  • Experience or strong interest in functional programming and its real-world applications - particularly Scala stacks such as Scalaz, Cats Effect and ZIO.
  • Demonstrable experience working as part of a high performing, collaborative, agile team to deliver significant features / requirements.
  • Experience of designing, building & operating distributed systems with multi-level failover & fallback strategies.
  • Experience with Cloud Infrastructure, preferably with AWS.
  • Web services experience: including REST and GraphQL.
  • Monitoring and optimising applications written for the JVM.
  • Relational and NoSQL databases, particularly PostgreSQL, Aurora, & DynamoDB with experience modelling & optimising query performance.
  • Kinesis or any other streaming data.
  • Understanding of statistical analysis of data.
  • Experience with or an interest in "DevOps" tooling & infrastructure as code.
  • A strong understanding of continuous integration and continuous delivery practices.
  • Demonstrable understanding of high-quality coding and testing practices.
  • An appetite to learn new technologies and a drive for continual improvement.
  • Contributions to the technical community, either through blogs, internal workshops, meetups or conferences.
Back to blog
Ads

Common Interview Questions And Answers

1. HOW DO YOU PLAN YOUR DAY?

This is what this question poses: When do you focus and start working seriously? What are the hours you work optimally? Are you a night owl? A morning bird? Remote teams can be made up of people working on different shifts and around the world, so you won't necessarily be stuck in the 9-5 schedule if it's not for you...

2. HOW DO YOU USE THE DIFFERENT COMMUNICATION TOOLS IN DIFFERENT SITUATIONS?

When you're working on a remote team, there's no way to chat in the hallway between meetings or catch up on the latest project during an office carpool. Therefore, virtual communication will be absolutely essential to get your work done...

3. WHAT IS "WORKING REMOTE" REALLY FOR YOU?

Many people want to work remotely because of the flexibility it allows. You can work anywhere and at any time of the day...

4. WHAT DO YOU NEED IN YOUR PHYSICAL WORKSPACE TO SUCCEED IN YOUR WORK?

With this question, companies are looking to see what equipment they may need to provide you with and to verify how aware you are of what remote working could mean for you physically and logistically...

5. HOW DO YOU PROCESS INFORMATION?

Several years ago, I was working in a team to plan a big event. My supervisor made us all work as a team before the big day. One of our activities has been to find out how each of us processes information...

6. HOW DO YOU MANAGE THE CALENDAR AND THE PROGRAM? WHICH APPLICATIONS / SYSTEM DO YOU USE?

Or you may receive even more specific questions, such as: What's on your calendar? Do you plan blocks of time to do certain types of work? Do you have an open calendar that everyone can see?...

7. HOW DO YOU ORGANIZE FILES, LINKS, AND TABS ON YOUR COMPUTER?

Just like your schedule, how you track files and other information is very important. After all, everything is digital!...

8. HOW TO PRIORITIZE WORK?

The day I watched Marie Forleo's film separating the important from the urgent, my life changed. Not all remote jobs start fast, but most of them are...

9. HOW DO YOU PREPARE FOR A MEETING AND PREPARE A MEETING? WHAT DO YOU SEE HAPPENING DURING THE MEETING?

Just as communication is essential when working remotely, so is organization. Because you won't have those opportunities in the elevator or a casual conversation in the lunchroom, you should take advantage of the little time you have in a video or phone conference...

10. HOW DO YOU USE TECHNOLOGY ON A DAILY BASIS, IN YOUR WORK AND FOR YOUR PLEASURE?

This is a great question because it shows your comfort level with technology, which is very important for a remote worker because you will be working with technology over time...