Work for one of our portfolio companies

iOS SDK Engineer



Software Engineering
Posted on Saturday, January 21, 2023

iOS SDK Engineer

This is a sample job listing; we’re not actively hiring for this role. Join our community to learn when we post new roles.
You'll co-own development and enhancement of our iOS Software Development Kit, help shape the future of all of our video APIs, and lay groundwork to ensure that calls on mobile are always high quality and reliable.

Who we are

Daily is WebRTC video and audio for every developer. We're building the APIs and infrastructure to power the future of video, and the Internet.
Developers use Daily to add real-time video and audio experiences to any product. Our features range from prebuilt UIs and lower-level APIs to call quality data and global infrastructure and compliance. We serve developers across use cases — like events, productivity, edtech, and healthcare — and serve teams of all sizes. We're a remote team led by seasoned executives who value inclusivity and work-life balance, focus on growth (last year we saw 10x growth), and have raised over $60 million in funding to date.

The role

We take pride in making it as easy, fast and flexible as possible for developers to build with video. We are building our first generation of native mobile Software Development Kits (SDKs) for video, and are in need of a talented and experienced iOS developer to join our client SDK team and help us further develop an intuitive, reliable, and delightful iOS SDK.
Building a library for developers is a pretty different task from building an application for consumers, so we are searching for iOS developers with some unusual skills.
The least unusual part for this role is comfort with the iOS ecosystem. We make extensive use of Swift and, where necessary, limited use of Objective-C++ and Objective-C—and our SDK should feel native and natural to everyday iOS app developers. So it should be written by people well versed in iOS’s style and idioms.
Here are some of the unusual parts of this role:
Our system needs deep communication between Apple’s platform APIs and low level libraries. Our native SDK core library is written in Rust, so we pass loads of data from Rust to C, then C to Swift (or Objective-C), and then all the way back! (Here’s a talk one of engineers gave about how we do all this and here’s a post on how and why we use Rust, though some of the benefits are limited with C/C++.) Understanding of memory models, ownership and lifetime models, cross-compilation, and related concepts is very important to writing solid software here.
We make heavy use of iOS's audio and video APIs (Swift), Google's WebRTC project (ObjC/ObjC++/C++), and Mediasoup (C++). Those each involve deep concepts and tooling. Everyday conversations range from OS graphics frameworks to stream multiplexing to API design.
This work requires both independence and strong collaboration skills. You'll be one of two iOS engineers making big decisions for iOS and being the experts, but you’ll also collaborate with other SDK owners who have conflicting opinions and needs. It's important to communicate early, often, and charitably, but also to work comfortably with little to no guidance.
We will also eventually begin exploring and supporting other SDK environments (e.g. Flutter), and will likely grow the team. We need help writing a great API, and we also need help building a good documentation base and test infrastructure. All while keeping a positive and curious environment on our team.

What you'll do

Build new video call features in Swift on top of our initial iOS library
Establish new communication pathways between low level WebRTC libraries and our clients' applications.
Shape the future of Daily's call APIs
Cooperate with a Test Automation Engineer to establish infrastructure required to maintain a high floor on call quality and reliability

What you’ll need

Deep experience (probably at least five years) building iOS SDKs with hairy interdependencies, preferably using Swift
Experience using the pointer and cross-language interop APIs and their semantics to communicate between Swift and C/Objective-C
Experience in Rust—or excitement about learning and using it
Solid writing skills for communicating clearly with coworkers
Comfort both working very independently and as part of a team, and balancing requirements between them
Solid experience with AVFAudio/AVFoundation and Metal is a plus and would complement the expertise of our current iOS engineer
Experience with WebRTC and specifically with Mediasoup would be very handy, but if you’re new to these technologies and excited to learn, that works!
Active curiosity about or experience with Flutter is also a plus
Because Daily is a remote company and we do a lot of asynchronous work (this specific team has members mostly in the US East and Central Europe timzeones), effective writing is very important to us — so your cover letter is a key part of your application

Compensation and benefits

We level based on years of relevant experience; each engineering level has one salary and equity. Compensation also is the same rate regardless of location. (We updated our compensation in January 2022 after an extensive internal process. The linked post talks about how we level candidates, in part because we believe clarity in levels benefits all of us. It’s also the case we strive to be consistent among staff on each team, and we haven’t included all of the details about how we level every role. If you apply and we get to the offer stage, we’ll be actively interested in learning about your experiences—but we may count certain work as indirect to maintain fairness within our team. If we’re in that discussion with you, we’ll do our best to share all the information that informs our decision.)
Level 3: 5-6 yrs relevant experience, $155,000
Level 4: 7-8 yrs, $180,000
Level 5: 9-10 yrs, $210,000
Level 6: 11-14 yrs, $240,000
Level 7: 15+ yrs, $270,000
Medical, dental, and vision group coverage for US teammates
Matching 401k for US teammates
Local country payroll/coverage for teammates outside the US
PTO: We ask that you take at least four weeks paid vacation
Parental leave: paid 4 months leave
IT budget: please get what you need to be effective
Professional learning and development budget
Remote team: work from anywhere — this team mostly resides in the US East and Central Europe timezones, and you’d need to have some synchronous time each week

Equal Opportunity Employer

Daily is an equal opportunity employer. We don't discriminate against people because of their race, ethnicity, sex, age, religion, national origin, marital status, pregnancy, personal appearance, veteran status, disability, sexual orientation, gender identity or expression, family responsibilities, or political affiliation.