Senior MacOS Engineer
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 Mac Squad are driven by a mission: build the best Mac desktop experience for notes capture and presentation. Our big dream is to repeat the success of our iPad app and become the Apple Mac App of the Year. As a Senior macOS Engineer, you will play a pivotal role in bringing this vision to life. You will collaborate closely with cross-functional teams within Goodnotes (including iPad, Design System, Foundation, Text Document), leveraging your expertise to build and refine our native desktop experience. You'll will:
Build mission-critical services used by tens of millions of users.
Architect and design scalable solutions that are easy to maintain to allow development of exciting features and support more users.
Implement elegant solutions with clean code.
Enable communication with the Apple, Web frontend and QE teams
Define and drive the completion of new initiatives and features by removing blockers for the team
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. Knowledge of SwiftUI is advantageous
Expertise in either UIKit or AppKit. Experience of bringing a big iPad app to Mac is advantageous
Strong understanding of computer science fundamentals, you enjoy solving algo and data structure puzzles
Excellent problem solving, communication, and storytelling skills
A love of software craftsmanship
Strong sense of the best tools for any task
Shipped one or more non-trivial macOS apps on respective app stores
Big plus if 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
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 kick off builds using a Slack bot
Continuous Integration: We use CircleCI which means our configuration is checked in with our code. We have unit tests for all of our modules which run on every branch. UI tests are run daily and before release
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 session with one of our engineers in our London/ Singapore/ Hong Kong offices. 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: We want to see how you understand and use AI in your day to day
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 our company values
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 allowances
About the job
Apply for this position
Senior MacOS Engineer
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 Mac Squad are driven by a mission: build the best Mac desktop experience for notes capture and presentation. Our big dream is to repeat the success of our iPad app and become the Apple Mac App of the Year. As a Senior macOS Engineer, you will play a pivotal role in bringing this vision to life. You will collaborate closely with cross-functional teams within Goodnotes (including iPad, Design System, Foundation, Text Document), leveraging your expertise to build and refine our native desktop experience. You'll will:
Build mission-critical services used by tens of millions of users.
Architect and design scalable solutions that are easy to maintain to allow development of exciting features and support more users.
Implement elegant solutions with clean code.
Enable communication with the Apple, Web frontend and QE teams
Define and drive the completion of new initiatives and features by removing blockers for the team
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. Knowledge of SwiftUI is advantageous
Expertise in either UIKit or AppKit. Experience of bringing a big iPad app to Mac is advantageous
Strong understanding of computer science fundamentals, you enjoy solving algo and data structure puzzles
Excellent problem solving, communication, and storytelling skills
A love of software craftsmanship
Strong sense of the best tools for any task
Shipped one or more non-trivial macOS apps on respective app stores
Big plus if 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
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 kick off builds using a Slack bot
Continuous Integration: We use CircleCI which means our configuration is checked in with our code. We have unit tests for all of our modules which run on every branch. UI tests are run daily and before release
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 session with one of our engineers in our London/ Singapore/ Hong Kong offices. 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: We want to see how you understand and use AI in your day to day
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 our company values
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 allowances
