Job Description
Salary: [Not Specified]
Location Type: Distributed (Europe and Asia)
Employment Type: [Not Specified]
Position Overview
At Goodnotes, we believe in unleashing individual potential by reimagining how we interact with information, merging human creativity with AI. Our renewed vision and mission focus on creating the best medium for human and AI collaboration, empowering users to explore new dimensions of productivity, creativity, and learning. Join us in transforming 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
You will join a distributed team across Europe and Asia with dedicated collaboration time for planning, retros, stand-ups, and brainstorming sessions. You will receive support from QA and Cloud Infrastructure & DevOps experts, while owning your production environment to enable Goodnotes on all platforms. You will build our new APIs and services to deliver a seamless experience to tens of millions of users and growing.
About the Role
This role is ideal if you are excited about:
- Architecting and designing scalable, maintainable solutions to facilitate exciting feature development and user growth.
- Implementing elegant solutions with clean code.
- Enabling communication across multiple Mobile, Web Frontend, Backend Services, and QA teams.
- Defining and driving the completion of new initiatives and features by removing blockers for the team.
- Continuously improving development practices through research, automation, documentation, and testing.
- Sharing your knowledge and experience with the rest of the team.
Skills and Experience
To be successful in this role, you will need:
- Mastery in at least one JVM programming language (Kotlin is preferred, but Java and Scala are also welcome).
- Good knowledge of idiomatic Kotlin and familiarity with the Kotlin concurrency model is an advantage.
- Experience running high-performance and high-load JVM-based workloads on Kubernetes (e.g., AWS EKS) and AWS Lambda services.
- Good understanding of modern distributed databases (experience with CockroachDB open-source or Enterprise, especially in setting up and operating self-hosted clusters, is an advantage).
- Expertise in identifying access patterns, defining optimal relational data models, and indexing strategies.
- Knowledge of non-relational distributed databases.
- Previous experience in building client-facing APIs and a deep understanding of various L7 communication protocols (HTTP, gRPC, WebSocket, webRTC).
- Expertise in cloud storage, deployment, and computing (AWS experience is preferred, but experience with other platforms is welcome).
- Knowledge of infrastructure as code (IaC) tools such as Terraform and AWS CDK.
- Ideal Candidate Profile:
- Experience in building collaborative real-time tools (e.g., Google Docs, Slack) and/or data synchronization/backup solutions (e.g., iCloud, Dropbox).
- Deep understanding of computer science fundamentals.
- Proven experience leading the development of complex systems from inception to millions of users.
- Robust software engineering practices, testing, and automation expertise.
- Excellent problem-solving and storytelling skills.
- A passion for software craftsmanship and a strong desire for self-improvement through side projects and sharing.
- Good judgment in selecting the best tools for any task.
We encourage you to apply even if you don't meet all the listed criteria. Goodnotes values passion and potential.