About the job
We are seeking a motivated Database Engineer to join our database team at Appwrite, you’ll play a crucial role in designing and optimising the database infrastructure that drives our platform services. This role will focus on building, developing, and deploying scalable, reliable database components that integrate seamlessly into our application architecture. You’ll work closely with other engineers to ensure data consistency, performance, and reliability. You would also play a major role in our open-source community, engaging with users, and having a passion for owning the engineering process from beginning to end. If you have strong ownership of your work, enjoy problem-solving and adapting to our users' needs, then this role will be great for you.
Responsibilities
Own and optimize relational SQL databases to ensure high availability, reliability, and scalability.
Design and develop scalable, redundant and reliable APIs and other distributed infrastructure to support Appwrite's platform services.
Develop SDK components and backend integrations for various databases, ensuring a great developer experience (DX).
Collaborate with Product Engineers to integrate infrastructure solutions seamlessly into the application architecture.
Monitor system performance and proactively identify and address issues to maintain optimal reliability.
Implement security best practices and ensure compliance with industry standards and regulations.
Stay up-to-date with emerging technologies and trends in backend, infrastructure, and cloud computing, and evaluate their potential impact on Appwrite's platform.
Participate in code reviews and architectural discussions, fostering a culture of continuous improvement.
Requirements
Experience building and consuming REST APIs, with experience in GraphQL being a plus.
Strong knowledge of relational databases (PostgreSQL, MySQL), including optimization, scalability, and high-throughput design.
Familiarity with containerization (Docker) and orchestration (Kubernetes).
Proficiency in backend languages like PHP, Node.js, Python, Go, or Ruby.
Ability to learn and adapt to working with multiple programming languages and produce high-quality code.
Passion for simplicity and great developer experience.
Passion for open-source, building developer tools, and working with our developer community.
Knowledge of container technologies like Docker, and orchestration technologies like Kubernetes.
Experience with caching, message brokering, or pub/sub using tools like Redis, along with familiarity with CI/CD tools (e.g., GitHub Actions) and writing unit and end-to-end tests.
Experience with cloud platforms (AWS, Google Cloud, Azure, DigitalOcean) and Infrastructure as Code (IaC) tools like Terraform.
Ability to build reliable, performant, and scalable APIs using a microservice architecture.
Have a solid understanding of HTTP, TCP, UDP protocols, web services, and architecture design.