Senior Software Engineer, Cross-platform Toolchain
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:
After our huge success on iOS, we are finally bringing our product to Android, Web & Windows platforms. You will be part of the cross-platform engineering team, which is working hard to ensure that we can deliver the same top-of-the-market quality product beyond iOS devices. They’re a very international team, with your future coworkers being based in 6 different countries across Europe and Asia. However, due to the asynchronous nature of working that Goodnotes has adopted, any time difference will not impact your work-life balance.
Synchronous communication and collaboration among peers will be carried out during overlap hours, including weekly planning sessions, retrospectives and those sessions arranged by the team for other purposes such as managing technical excellence.
As a Compiler engineer, you will be part of a small autonomous squad within the Cross-Platform team.
About the Role
As a Software Engineer - Compilers working on Swift and LLVM at Goodnotes, you will work on improving Wasm & Android support for Swift, and implementing new Swift features that would be helpful for both Goodnotes and the Swift community at large. Goodnotes is making a huge bet on Swift and, in doing so, changing how cross-platform apps are built forever– but we’ll need your help to get there!
The Compiler’s squad goal is to enable other cross-platform engineers to build the best notetaking and productivity application across multiple platforms, leveraging on PWA and Wasm technology, giving other engineers the tools to build a highly performing application with the greatest quality in a high delivery and fast-moving set-up. The squad stakeholders will be your fellow engineers with whom you will shape the roadmap to exploit the most fruitful technical opportunities.
This is the role for you, if you’re excited to work on the things listed below:
- Be a leading part of the state-of-the-art development of Swift and Wasm support, helping not only Goodnotes engineers but also the worldwide advancement of web technology and multiplatform development.
- Scope and spearhead technical projects across the Swift codebase, like implementing multithreading support for Swift on Wasm and better JNI support for Swift on Android
- Collaborate with the LLVM community and our contacts at Apple to better understand how we can improve performance and reliability for Swift on Wasm and Android (and Swift generally)
- Work with our product infrastructure team to improve tooling and the developer environment for Swift
- Engage with the Swift and LLVM community on forums, helping fix bugs and contributing to future proposals
- Give back to the open-source community. We believe in upstreaming our work to benefit the community that we benefit greatly from.
The skills you will need to be successful in the above:
- You have experience with the LLVM (or other compiler, eg. GCC) codebase, ideally with the Swift source code.
- You have experience tech leading critical projects or initiatives within your team and organization.
- You've worked on large, complex codebases.
- You understand how to improve systems to make them easier to understand, debug, and maintain
- You're excited about elegant, maintainable, and easy-to-use build tooling and configuration.
- You're pragmatic and can see the bigger picture; you're able to reason about prioritization and scope.
- You are biased to action. We like learning as quickly as possible, so we embrace failing fast to refine our code, systems, and processes rapidly.
- Some familiarity with Wasm and Android is preferred but not required
- Bonus points for maintaining open-source projects, understanding and fulfilling the needs not only of delivering according to specifications, but also providing the tooling, build systems and processes and guidelines to address external issues and improvement proposals.
- You have great communication skills, being capable of presenting plans to the broader engineering team, clearly stating risks and blockers and remediation and mitigation plans.
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 interview process:
- An introductory call with someone from our talent acquisition team. They want to hear more about your background, what you are looking for, and why you’d like to join Goodnotes
- A 1-hour live coding interview with a basic problem to clarify and solve, leveraging algo/data structures with one of our engineers.
- A 1-hour live in-depth interview on Fixing Performance issues. 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
- A one-hour 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 supporting you throughout your career at Goodnotes
- A one-hour call with 2-3 stakeholders you’d work closely with
What’s in it for you:
- 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
- Flexible working hours and location
- Medical insurance for you and your dependents
The onboarding
After 1 month you will...
- Onboard onto our team and codebase with your onboarding buddy
- Attend a number of onboarding presentations on the company, product, codebase, and culture
- Get familiar with Swift, our Wasm & Android toolchain and tooling, and our Wasm & Android roadmap
- Ship a few bug fixes and small improvements across our codebase and tooling
- Have pair programmed with a few people on the engineering team
- Be regularly posting product feedback about the app in our #xplatform-bugs channel
After 3 months you will...
- Be familiar with our Wasm & Android architecture, and be thinking of ways to make product engineers' lives easier when prototyping and building new features.
- Be familiar with our Wasm & Android toolchain, our Swift bindings, and how the Swift compiler works on Wasm & Android
- Shipped several tickets to improve Swift language features and Swift developer tooling
- Be involved in weekly engineering discussions about our architecture, how we do code review, code style, and more
- Be involved in infrastructure discussions like how we add better observability to debug issues in production, how we better monitor performance regressions, and how we make our updater less finicky
After 6 months you will...
- Be interview-trained and interviewing candidates for roles at Goodnotes
- Be driving projects from conception to production launch
- Be mentoring and pair programming with newer engineers to help them get spun up on the codebase
Note: Employment is contingent upon successful completion of background checks, including verification of employment, education, and criminal records.
Create a Job Alert
Interested in building your career at Goodnotes? Get future opportunities sent straight to your email.
Apply for this job
*
indicates a required field
