Life at Goodnotes

Behind the Scenes: Life as an iOS Engineer at Goodnotes

May 16, 2024
Share

At Goodnotes, our talented team of iOS engineers is one of the driving forces behind our product's success. In this blog post, five of our talented engineer, Bret, Calvin, Pablo C, Ted, and Tomás, will give you a glimpse into the inner workings of Goodnotes.

Engineering culture at Goodnotes

One of the standout aspects of Goodnotes’ engineering culture is that it fosters an environment of collaboration, knowledge-sharing, and continuous learning. As Tomás explains, "We have created a culture of sharing knowledge where every engineer is eager and happy to share their learnings and findings with the rest of the team in our fortnightly Engineering Brownbag Sessions.” These sessions' topics vary, giving all engineers the chance to benefit and learn from them. (You can see recordings of some of these sessions on the Goodnotes Engineering YouTube channel.)

Calvin shares, “I love having the freedom to explore different avenues – I’m constantly trying things out such that I’ve accumulated a collection of prototypes. With the autonomy to pursue these things while working on my day-to-day tasks, I feel like I can work in the way that I perform best!”

Bret highlights the absence of office politics and that we have a team of humble yet talented individuals. The five engineers all agree with Bret, highlighting that what truly sets Goodnotes’ engineering team apart from the rest, is the team’s exceptionally high level of talent. Talent mixed with humility creates a positive atmosphere that encourages open communication and makes for a strong feedback culture, where people are not only open to giving and receiving feedback, but proactively seeking it.

Impactful and meaningful work

With over 24 million monthly active users globally, the opportunity to make an impact on a large user base was a considerable draw for all five engineers. Tomás explained "When I saw that Goodnotes was helping students and teachers, and the amount of users that I would potentially impact, it was a no-brainer decision for me”, while Pablo C said "I found it very attractive how active the Goodnotes user community is and how excited they get when we release new features or introduce improvements."

For Ted, Goodnotes holds both personal and professional appeal. He had been a long-time user of the app before joining us, and even used Goodnotes to help his son learn how to write. Ted also loves coding within the Apple ecosystem, saying “Goodnotes is a rare opportunity to work at a company which is Apple first. The passion of our users is a truly amazing thing, and their focus on creativity and learning makes your work feel meaningful.”

Technical challenges

When interviewing with Goodnotes, all the engineers were excited about the technical challenges that would face them if they were to work at Goodnotes. Like Bret said, “We are not a simple iOS app that render JSON responses from a server. There are lots of interesting technical challenges because we are local first and we use cutting-edge technologies (like CRDT)”.

Ted echoes Bret, saying “the sheer usage our app gets is quite mind-boggling and that poses some unique challenges. Our typical user sessions often number hours, not seconds and we have tens of millions of active users. That can mean we experience platform bugs at scale, which at other companies would be random statistics. Early on at Goodnotes, I found myself having to step through iOS assembly code to diagnose a rare race condition and submit patches back to major vendors we depended upon. We were seeing tens of thousands of crashes, a week or so before other companies user activity surfaced it.”

In Pablo C’s opinion, working on a document based app brings in many challenges that you don’t normally see on typical apps that display data from the backend, adding “What I find most challenging compared to regular apps is performance and scalability (in terms of architecture, adding new features, etc.)”

Cutting-edge technology and continuous learning

At Goodnotes, engineers all have the opportunity to work with cutting-edge technologies and stay up-to-date with the latest advancements in the field. Tomás mentions, "We keep up with state-of-the-art iOS development and try to use the newest Apple frameworks like SwiftUI or even the newest Swift additions, like Structured Concurrency.” Ted adds, "We work hard to stay current on the new iOS features every month, and it helps that Steven is one of the most passionate users of Goodnotes and the Apple ecosystem. Every year we look at the new iOS and prioritize making use of the ones that apply well to Goodnotes. More specifically to our code, we have large in-house tech stacks around many things such as rendering, ink engine, and local first sync using CRDT + event sourcing. We’re also sharing a lot of this cross-platform using Swift WASM.”

Our product also offers advanced AI features, using CoreML to run ML Models on device, and have integrations with LLMs. This commitment to staying ahead of the curve ensures that engineers are constantly learning and growing, while Calvin adds “Striking a good balance between being practical while non-distracting can be tough, and it’s something that we’re always trying to fine-tune.”

Current projects and opportunities

Our engineers are currently engaged in a variety of exciting projects. Bret, for example, is working on syncing data across platforms with Goodnotes Cloud. This involves the challenge of supporting both iCloud and Goodnotes Cloud, but it also presents an opportunity to bring more advanced collaboration features to our users.

Tomás is focusing on improving monetization and expanding the marketplace. He's rethinking onboarding and paywall flows to improve conversion rates and is dealing with the protection of creators' IP, which could lead to partnerships with major companies and publishers, having a direct impact on the company’s revenue.

Calvin is working on some exciting new AI capabilities for our Goodnotes users, noting that these “are evolving at an extremely fast pace. Finding opportunities to blend them with note-taking is as exciting as it is unprecedented!”

Ted is one of the iOS engineers contributing to our upcoming Classroom features, which we announced earlier this year. He’s been collaborating with other engineers on improving the real-time collaboration code to support large classes, which adds a lot of complexity considering you are developing and testing across dozens of devices.

Qualities for success

When asked what they think are the most important qualities for an iOS engineer to be successful at Goodnotes, Tomás highlights the importance of "being very proactive and taking ownership of the projects they are working on, from inception to release." as well as "having an always-learning attitude to keep up with the rapidly evolving tech we're seeing these days." He also stresses to continue being creative, both with new product ideas and with solutions to engineering problems.

Ted adds, “With such a great team, and a big complex codebase, imposter syndrome can easily creep in. It’s important to take things slowly and build confidence. To succeed at Goodnotes you need to care about the product, be happy to own features from start to finish, and always be prepared to go that little bit deeper on a problem if it seems impossible.”

Calvin emphasizes the need for "open-mindedness, natural curiosity, and an admiration for things-well-done.”

If you're an iOS engineer passionate about working on innovative products, tackling unique technical challenges, and being part of a collaborative and supportive team, Goodnotes might be the perfect fit for you. Join us in our mission to create exceptional note-taking experiences that empower users worldwide.

See our openings here.

Goodnotes uses cookies to enhance user experience and analyze traffic. Details of which cookies we use are available at our Cookie Policy. By continuing to browse the site, you accept cookies. You can withdraw your consent by adapting your preferences in the ‘preferences’ section.