Summary
Join Goodnotes, a company reimagining human-AI interaction, and be part of a team building the best medium for collaboration. This role involves architecting and designing scalable, maintainable solutions for our note-taking app, used by millions. You will implement elegant solutions, enable cross-team communication, and drive new initiatives. Continuous improvement through automation and testing is key, as is sharing knowledge. The team is distributed across Europe and Asia, with regular collaboration sessions.
Requirements
- Mastery in at least one JVM programming language. We mainly use Kotlin, but weβre open to Java and Scala
- 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 (we use CockroachDB so it will be an extra advantage if you worked with CockroachDB open-source or Enterprise in the past especially if you were also involved in setting up and operating self-hosted CRDB clusters)
- 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 deep understanding of various L7 communication protocols (HTTP, gRPC, WebSocket, webRTC)
- Expertise in cloud storage, deployment and computing. We use AWS but weβre open to other platform experience
- Knowledge of infrastructure as code (IaC) tools such as Terraform and AWS CDK
- Deep understanding of computer science fundamentals
- You have led the development of complex systems from inception to millions of users
- Robust software engineering practices, testing and automation have no secrets for you
- Excellent problem-solving and story-telling skills
- A love of software craftsmanship, you have a strong desire of self-improvement through side projects and sharing
- Good sense of the best tools for any task
Responsibilities
- Architect and design scalable solutions that are easy to maintain to allow the development of exciting features and support more users
- Implement elegant solutions with clean code
- Enable communication across multiple Mobile, Web Frontend, Backend Services 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
Preferred Qualifications
- A good knowledge of idiomatic Kotlin and familiarity with Kotlin concurrency model is your extra advantage
- An ideal candidate should also have experience in building collaborative real-time tools (e.g. Google Docs, Slack, etc.) and/or data synchronisation/backup solutions (e.g. iCloud, Dropbox)
Benefits
- 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
Disclaimer: Please check that the job is real before you apply. Applying might take you to another website that we don't own. Please be aware that any actions taken during the application process are solely your responsibility, and we bear no responsibility for any outcomes.