Senior iOS Engineer

at Goodnotes
  • Remote - Europe

Remote

Software Development

Senior

Job description

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.

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:

At Goodnotes, we are driven by a mission: to transform the classroom into a dynamic and interactive environment where students and teachers can seamlessly connect through our innovative product. As a Senior Engineer, you will play a pivotal role in bringing this vision to life. You will collaborate closely with external educators and cross-functional teams within Goodnotes, leveraging your expertise to build and refine a new product that enhances the educational experience for users worldwide. Join us in creating a platform that not only facilitates learning but also fosters meaningful interactions and connections in the digital classroom.

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 development of exciting features and support more users.
  • Implement elegant solutions with clean code.
  • Enable communication with the Mobile, Web frontend and QA 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
  • 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 iOS 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.
  • 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
  • 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

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

Note: Employment is contingent upon successful completion of background checks, including verification of employment, education, and criminal records.

Share this job:
Please let Goodnotes know you found this job on Remote First Jobs 🙏

Benefits of using Remote First Jobs

Discover Hidden Jobs

Unique jobs you won't find on other job boards.

Advanced Filters

Filter by category, benefits, seniority, and more.

Priority Job Alerts

Get timely alerts for new job openings every day.

Manage Your Job Hunt

Save jobs you like and keep a simple list of your applications.

Search remote, work from home, 100% online jobs

We help you connect with top remote-first companies.

Search jobs

Hiring remote talent? Post a job

Frequently Asked Questions

What makes Remote First Jobs different from other job boards?

Unlike other job boards that only show jobs from companies that pay to post, we actively scan over 20,000 companies to find remote positions. This means you get access to thousands more jobs, including ones from companies that don't typically post on traditional job boards. Our platform is dedicated to fully remote positions, focusing on companies that have adopted remote work as their standard practice.

How often are new jobs added?

New jobs are constantly being added as our system checks company websites every day. We process thousands of jobs daily to ensure you have access to the most up-to-date remote job listings. Our algorithms scan over 20,000 different sources daily, adding jobs to the board the moment they appear.

Can I trust the job listings on Remote First Jobs?

Yes! We verify all job listings and companies to ensure they're legitimate. Our system automatically filters out spam, junk, and fake jobs to ensure you only see real remote opportunities.

Can I suggest companies to be added to your search?

Yes! We're always looking to expand our listings and appreciate suggestions from our community. If you know of companies offering remote positions that should be included in our search, please let us know. We actively work to increase our coverage of remote job opportunities.

How do I apply for jobs?

When you find a job you're interested in, simply click the 'Apply Now' button on the job listing. This will take you directly to the company's application page. We kindly ask you to mention that you found the position through Remote First Jobs when applying, as it helps us grow and improve our service 🙏

Apply