At a Glance
- Tasks: Design and build a cross-platform app for millions of users, tackling exciting tech challenges.
- Company: Join Goodnotes, a forward-thinking tech startup focused on seamless collaboration.
- Benefits: Enjoy remote work, flexible hours, medical insurance, and generous leave.
- Why this job: Make a real impact by creating innovative solutions that connect users worldwide.
- Qualifications: Strong programming skills in C, C++, or Rust; experience with Swift is a plus.
- Other info: Collaborative culture with opportunities for personal growth and development.
The predicted salary is between 48000 - 72000 ÂŁ per year.
About the team
At Goodnotes, we are driven by a mission: to connect millions of users across devices and platforms through seamless data synchronization and collaboration. As a Senior Cross-Platform Application Engineer, you will play a pivotal role in bringing this vision to life. You will work on cutting‑edge challenges in networked operations, including HTTP and WebSocket communications, while building our sync engine—a fully offline‑first, distributed event‑sourced system. Beyond sync, you may develop collaboration features that enable users to work together seamlessly. Your work will enable users to access their data in near real‑time, collaborate effortlessly with others, and trust that their information is always backed up and available. Join us in creating the infrastructure that powers meaningful connections and collaboration for Goodnotes users worldwide.
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
Responsibilities
- Design and build a cross‑platform application used by tens of millions of users
- Work primarily in Typescript and Swift, targeting Web Assembly and the web platform
- Architect scalable, maintainable modules and APIs that unlock new features and support rapid growth
- Implement elegant solutions with clean code
- Continuously improve the development practices through automation, documentation and testing
- Share knowledge through reviews, design docs, and mentorship
Requirements
- Strong proficiency in systems or application programming with one or more of: C, C++, or Rust
- Solid understanding of cross‑platform development practices, including portable code, build systems, and FFI
- Experience with Swift programming is advantageous
- Experience with networking and distributed system: HTTP, WebSockets, backoff and retry, consistency models, conflict resolution, and offline‑first architectures
- Concurrency fundamentals and performance engineering skills (profiling, memory, async primitives)
- Experience with sync engines or distributed systems
- Strong computer science fundamentals and a track record of shipping production software
- Excellent problem solving, communication, and storytelling skills
- A love of software craftsmanship
- Strong sense of the best tools for any task
Nice to have
- Experience integrating Swift with C/C++ or Rust via FFI, C ABI bridges or code generation
- Familiarity with Swift as a cross‑platform language (e.g. SwiftPM, Swift on Linux, SwiftWasm)
- Experience with data serialization and schemas such as Protobuf or FlatBuffers
- Worked on libraries consumed across multiple platforms such as iOS, macOS, Android, Windows, or Linux
Stack and Mindset
Our product stack is primarily Swift, but we build Swift to be cross‑platform and interoperable. We value engineers who design portable core libraries, isolate platform‑specific code at clear boundaries, and use FFI to bridge languages where it makes sense.
The stack
- Programming Languages: The cross‑platform application has a large amount of shared common code written in Swift. Platform‑specific code for non‑Apple platforms is written in TypeScript.
- 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.
- 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 and 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 a 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: Conversations with Goodnotes teammates focused on our values, including taking ownership and building 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 and paternity packages and allowances
Employment and EEO
Note: Employment is contingent upon successful completion of background checks, including verification of employment, education, and criminal records. By submitting your application, you acknowledge that you have read and understood our Candidate Privacy Notice, which provides important information about the data we collect during the application process. Goodnotes is committed to equality of opportunity for all staff, and applications from individuals are encouraged regardless of age, disability, sex, gender reassignment, sexual orientation, pregnancy and maternity, race, religion or belief and marriage and civil partnerships. To help us ensure a fully diverse, equitable and inclusive working environment, we invite you to fill out this voluntary survey so we can track and further our Diversity, Equity and Inclusion efforts. The information shared here cannot and will not affect your job application in any way. It’s also 100% anonymous, and is not linked to your name, identity or application.
Senior Cross-Platform Application Engineer (UK / Europe time zone) employer: Goodnotes
Contact Detail:
Goodnotes Recruiting Team
StudySmarter Expert Advice 🤫
We think this is how you could land Senior Cross-Platform Application Engineer (UK / Europe time zone)
✨Tip Number 1
Get to know the company culture! Before your interview, dive into Goodnotes' values and mission. This will help you align your answers with what they care about, showing that you're not just a fit for the role, but for the team too.
✨Tip Number 2
Practice makes perfect! Brush up on your coding skills with some timed challenges. Use platforms like Hackerrank to simulate the technical screening process. The more comfortable you are, the better you'll perform!
✨Tip Number 3
Don’t forget to ask questions! During your interviews, have a few thoughtful questions ready about the team, projects, or tech stack. This shows your genuine interest and helps you figure out if Goodnotes is the right place for you.
✨Tip Number 4
Apply through our website! It’s the best way to ensure your application gets seen by the right people. Plus, it shows you’re proactive and really want to be part of the Goodnotes journey.
We think you need these skills to ace Senior Cross-Platform Application Engineer (UK / Europe time zone)
Some tips for your application 🫡
Show Your Passion: When writing your application, let your enthusiasm for cross-platform development shine through! We love seeing candidates who are genuinely excited about building great things and connecting users across devices.
Tailor Your Experience: Make sure to highlight your relevant experience with systems programming and cross-platform practices. We want to see how your skills in languages like Swift or TypeScript can contribute to our mission at Goodnotes.
Be Clear and Concise: Keep your application straightforward and to the point. We appreciate clarity, so avoid jargon and focus on what makes you a great fit for the Senior Cross-Platform Application Engineer role.
Apply Through Our Website: Don’t forget to submit your application through our website! It’s the best way for us to receive your details and ensures you’re considered for this exciting opportunity at Goodnotes.
How to prepare for a job interview at Goodnotes
✨Know Your Tech Stack
Familiarise yourself with the technologies mentioned in the job description, especially Swift and Typescript. Brush up on your knowledge of HTTP, WebSockets, and distributed systems, as these are crucial for the role.
✨Showcase Your Problem-Solving Skills
Prepare to discuss specific challenges you've faced in previous projects, particularly those involving concurrency and performance engineering. Be ready to explain how you approached these problems and the solutions you implemented.
✨Practice Live Coding
Since there's a live coding component in the interview, practice coding under timed conditions. Use platforms like HackerRank to simulate the experience and get comfortable with coding challenges related to cross-platform development.
✨Embrace Goodnotes' Values
Understand and align your answers with Goodnotes' core values. Be prepared to discuss how you've demonstrated ownership, collaboration, and a user-obsessed mindset in your past work experiences.