Senior iOS Engineer - DevEx
Listed on 2026-01-13
-
Software Development
Software Engineer, Full Stack Developer, App Developer - Mobile/Web
At Goodnotes, we believe that every individual holds untapped potential waiting to be unleashed. By reimagining the way we interact with information, we’re merging human creativity with the breakthrough capabilities of AI. Our renewed vision and mission drive us to create the best medium for human and AI collaboration, empowering users to explore new dimensions of productivity, creativity, and learning. Join us on this journey as we transform digital note-taking into an inspiring and innovative experience.
OurValues:
- 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
The Apple Developer Experience team sits within the Foundation Group. 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 Dev Ex team, you will help your fellow iOS Engineers be more efficient. You’ll collaborate with other teams to ensure you understand their pain points and nuances.
You will advise and drive architectural improvements that help our app scale with our growth. Join us in helping Goodnotes ship more, better and higher quality code to maximise the impact on our users.
You’ll be:
- Build mission‑critical services used by tens of millions of users.
- Architect and design scalable solutions that are easy to maintain to allow the development of exciting features and support more users.
- Implement elegant solutions with clean code.
- Help solving the most critical developer problems with a large, offline first, old codebase:
Modularization, build times, and a fast and reliable CI/CD. - 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.
- A strong understanding of computer science fundamentals and an enjoyment of 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.
- High sense of autonomy.
- Knowledge of the best AI tools that can assist with the task at hand.
- Proven experience working on sizable and complex codebases.
- 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. - CI / CD:
We use Circle
CI although we’re slowly migrating to Team City. - 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 Swift
UI. 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 Swift Wasm, 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 Git Hub and Pull Requests. We kick off builds using a Slack bot. - Continuous Integration:
We use Circle
CI 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.
- Introduction:
The…
To Search, View & Apply for jobs on this site that accept applications from your location or country, tap here to make a Search: