Senior iOS Engineer - Performance, Stability and Monitoring
Our Values:
Dream big - Be visionary, strategic, and open to innovation Build great things - Work in service of our users, always improving and pushing higher Operate like an owner - Take responsibility with bold decision-making and bias for action Win like a sports team - Be trusting and collaborative while empowering others Learn and grow fast - Never stop learning and iterate fast Share our passion - Share ideas and practice enthusiasm and joy Be user obsessed - Empathetic, inquisitive, practical
About the team:
The Apple Performance, Stability and Monitoring (PSM) team sits within Foundation. At Goodnotes, our Foundation teams ensure that the app experience is seamless, responsive, and resilient, no matter how complex the product becomes. As a Senior iOS Engineer in the Apple PSM team, you will tackle challenges across performance optimisation, memory management, concurrency, alerting and monitoring, among others. Goodnotes is an offline-first app, and most of the features you see run locally on the device. That presents a lot of challenges to ensure they can run smoothly, even on high-end devices. In the Apple PSM team, you’ll collaborate with other teams to understand the challenges in the code they produce and promote best practices that maximise performance and stability. Stability and performance are one of our top user concerns. Join us to make Goodnotes fast and reliable, and make a true impact on millions of users. You'll be:
Having performance and stability, and the center of everything you to to help addressing some of the top user concerns about performance and stability
Implementing best practices for automated tests
Creating custom monitors that allow teams to quickly realise if users are having a suboptimal experience with the code they shipped
Continuously improve the development practices through research, automation, documentation and testing
Share your knowledge and experience with the rest of the team
You'll need:
Expertise in Swift programming. Experience with Swift Concurrency is a plus
True care about performance and appreciate that even minimal performance gains matter
A strong understanding of computer science fundamentals and an enjoyment of solving algo and data structure puzzles.
Excellent problem solving, communication, and storytelling skills
Strong sense of the best tools for any task
High sense of autonomy
Good analytical skills, investigating performance issues using Instruments or other tooling.
Proven experience working on sizable and complex codebases
Big plus if:
You have worked with apps with millions of MAUs, and you understand the cost implications and problems large user bases may have
You have experience building custom tooling to identify / analyze perf issues
You have experience cross-compiling codebase on different mobile platforms
Even if you don’t meet all the criteria listed above, we would still love to hear from you! Goodnotes places a lot of value on learning and development and will support your growth if needed. The stack:
Programming Language: The vast majority of our code is written in Swift
CI / CD: We use CircleCI although we’re slowly migrating to TeamCity. We also have an in-house CI system on top of TeamCity / CircleCI to selectively test what's needed based on the changes on a PR
Cloud Monitoring: DataDog
Concurrency: We have a large, old, but modular codebase. We use modern Swift Concurrency as much as possible as we gradually move away from RxSwift
UI code: As much new UI code as possible is in SwiftUI. We fall back to UIKit when needed and re-use the majority of it on macOS using Catalyst
Cross-platform: We re-use our core packages on cross-platform using SwiftWasm, UI for other platforms is written using React or their respective native APIs
Dependencies: We exclusively use Swift Package Manager and frequently make new local packages
Source control and builds: We have a mono-repo and use GitHub and Pull Requests. We have an internal tool to manage build generation that also powers our semi-automatic, soon-to-be fully automatic, release process.
Release cadence: We QA and release on a weekly schedule
The interview process:
Introduction: The Talent Team want to hear more about your background, what you are looking for, and why you’d like to join Goodnotes.
Technical Screening: A timed coding challenge on the Hackerrank platform.
Onsite Live coding & Technical interview: A live coding call with one of our engineers. This is where you get to see what it would be like working at Goodnotes as well as the chance to ask any engineering questions you may have
AI literacy interview: A short conversation with an AI Champion on your understanding and use of AI tools
Hiring Manager interview: A call with your hiring manager. This is the person who will be managing you day to day, working on your growth and development with you as well as support you throughout your career at Goodnotes.
Values interview – Meeting with members of the Goodnotes Team to answer questions relating to take ownership AND build great things
Please note that technical interviews are held onsite in our office locations (London, Hong Kong & Singapore) all transport, accommodation and costs involved will be covered by the Goodnotes team. What’s in it for you:
Remote friendly
Flexible working hours and location
Medical insurance for you and your dependents
Great annual leave allowance
Meaningful equity in a profitable tech-startup
Budget for things like noise cancelling headphones, setting up your home office, personal development, professional training, and health & wellness
Sponsored visits to our Hong Kong or London office every 2 years
Company wide annual offsite
Fantastic maternity/ paternity packages and and allowances
About the job
Apply for this position
Senior iOS Engineer - Performance, Stability and Monitoring
Our Values:
Dream big - Be visionary, strategic, and open to innovation Build great things - Work in service of our users, always improving and pushing higher Operate like an owner - Take responsibility with bold decision-making and bias for action Win like a sports team - Be trusting and collaborative while empowering others Learn and grow fast - Never stop learning and iterate fast Share our passion - Share ideas and practice enthusiasm and joy Be user obsessed - Empathetic, inquisitive, practical
About the team:
The Apple Performance, Stability and Monitoring (PSM) team sits within Foundation. At Goodnotes, our Foundation teams ensure that the app experience is seamless, responsive, and resilient, no matter how complex the product becomes. As a Senior iOS Engineer in the Apple PSM team, you will tackle challenges across performance optimisation, memory management, concurrency, alerting and monitoring, among others. Goodnotes is an offline-first app, and most of the features you see run locally on the device. That presents a lot of challenges to ensure they can run smoothly, even on high-end devices. In the Apple PSM team, you’ll collaborate with other teams to understand the challenges in the code they produce and promote best practices that maximise performance and stability. Stability and performance are one of our top user concerns. Join us to make Goodnotes fast and reliable, and make a true impact on millions of users. You'll be:
Having performance and stability, and the center of everything you to to help addressing some of the top user concerns about performance and stability
Implementing best practices for automated tests
Creating custom monitors that allow teams to quickly realise if users are having a suboptimal experience with the code they shipped
Continuously improve the development practices through research, automation, documentation and testing
Share your knowledge and experience with the rest of the team
You'll need:
Expertise in Swift programming. Experience with Swift Concurrency is a plus
True care about performance and appreciate that even minimal performance gains matter
A strong understanding of computer science fundamentals and an enjoyment of solving algo and data structure puzzles.
Excellent problem solving, communication, and storytelling skills
Strong sense of the best tools for any task
High sense of autonomy
Good analytical skills, investigating performance issues using Instruments or other tooling.
Proven experience working on sizable and complex codebases
Big plus if:
You have worked with apps with millions of MAUs, and you understand the cost implications and problems large user bases may have
You have experience building custom tooling to identify / analyze perf issues
You have experience cross-compiling codebase on different mobile platforms
Even if you don’t meet all the criteria listed above, we would still love to hear from you! Goodnotes places a lot of value on learning and development and will support your growth if needed. The stack:
Programming Language: The vast majority of our code is written in Swift
CI / CD: We use CircleCI although we’re slowly migrating to TeamCity. We also have an in-house CI system on top of TeamCity / CircleCI to selectively test what's needed based on the changes on a PR
Cloud Monitoring: DataDog
Concurrency: We have a large, old, but modular codebase. We use modern Swift Concurrency as much as possible as we gradually move away from RxSwift
UI code: As much new UI code as possible is in SwiftUI. We fall back to UIKit when needed and re-use the majority of it on macOS using Catalyst
Cross-platform: We re-use our core packages on cross-platform using SwiftWasm, UI for other platforms is written using React or their respective native APIs
Dependencies: We exclusively use Swift Package Manager and frequently make new local packages
Source control and builds: We have a mono-repo and use GitHub and Pull Requests. We have an internal tool to manage build generation that also powers our semi-automatic, soon-to-be fully automatic, release process.
Release cadence: We QA and release on a weekly schedule
The interview process:
Introduction: The Talent Team want to hear more about your background, what you are looking for, and why you’d like to join Goodnotes.
Technical Screening: A timed coding challenge on the Hackerrank platform.
Onsite Live coding & Technical interview: A live coding call with one of our engineers. This is where you get to see what it would be like working at Goodnotes as well as the chance to ask any engineering questions you may have
AI literacy interview: A short conversation with an AI Champion on your understanding and use of AI tools
Hiring Manager interview: A call with your hiring manager. This is the person who will be managing you day to day, working on your growth and development with you as well as support you throughout your career at Goodnotes.
Values interview – Meeting with members of the Goodnotes Team to answer questions relating to take ownership AND build great things
Please note that technical interviews are held onsite in our office locations (London, Hong Kong & Singapore) all transport, accommodation and costs involved will be covered by the Goodnotes team. What’s in it for you:
Remote friendly
Flexible working hours and location
Medical insurance for you and your dependents
Great annual leave allowance
Meaningful equity in a profitable tech-startup
Budget for things like noise cancelling headphones, setting up your home office, personal development, professional training, and health & wellness
Sponsored visits to our Hong Kong or London office every 2 years
Company wide annual offsite
Fantastic maternity/ paternity packages and and allowances
