Elixir Backend Developer, Documents
Sketch is a design platform with an award-winning native Mac app and browser-based collaboration tools. Over a million people use our product to create their best work. And right now, we’re looking for a Backend Developer to join us.
We work with empowered product teams that truly own what they do — delivering new features and improving the technology foundations of our platform. As a backend developer at Sketch, your job will be mainly focused on designing, implementing, and maintaining APIs on large-scale systems that impact people's day-to-day work. You will work closely with frontend, Mac developers, and product managers to guarantee a product-focused, smooth engineering process.
This position is for the Documents team. This team takes care of organizing the Sketch documents in the user's workspace. Related areas include sharing of documents between team members and people external to the team, versioning of the documents, and the documents' permissions model. Most of the tasks that fall into the responsibilities of this team require close collaboration between the developers, the Product Manager, and the designers of the team. Since the documents are a central topic for Sketch, the team needs to collaborate periodically with other teams in the company such as Cloud Core, Presentation, and Onboarding. Our backend developers need to understand how the product works in detail, as well as feel comfortable tackling complex technical tasks that include performance optimizations, data integrity problems, code readability and maintainability issues, and so on.
At Sketch most of our backend is built on Elixir with Phoenix, served over GraphQL and persisted on PostgreSQL. We build some supporting web services increasingly in Go (although this team barely has contact with our Go services). Sketch's backend services also utilize some additional AWS services such as SQS, Redis, etc..
We are interested in finding developers with experience building web APIs with Elixir. You might not have experience with all the technologies in our stack, but you are motivated to learn deeply. You will get the opportunity to work with experienced teammates who can teach and pair with you to learn whatever you have less experience with.
You care about security, code quality, scalability, performance, and simplicity. Above all, you seek operational excellence and apply the best engineering practices possible. Not everything that you or your team do can be perfect, but you make sure that you always know the trade-offs. You back your decisions with arguments. You don't care for hype and always try to find the best solution and technology for the job and its context.
You are a pragmatist and understand technology as the medium to build products. You understand the right balance between code readability, simplicity, development speed, performance, and maintainability.
You value team work, knowledge sharing, autonomy and ownership. You care are about your team, and contribute to an environment of psychological safety and healthy work culture.
We’re a company of diverse thinkers and doers who take pride in always improving our product. We share a vision and commitment to help each other — and our customers — create great work.
We’ve been fully remote since day one. It’s meant we can bring together incredible people from around the world. You’ll join over 65 Mac, backend, frontend, QA and infrastructure engineers in the Technology team, based everywhere from Scotland to South Africa, and Lithuania to the US.
We encourage our people to be themselves and embrace what makes us unique. We value different backgrounds, perspectives and experience, and we strongly believe this is key to achieving outstanding results.
We work asynchronously as much as we can. Our team communicates mostly in writing, using Slack and GitHub. When we need it, we also have video calls. We have a culture of collaboration and knowledge-sharing, and we provide the environment and the tools you need to do your best work.
Essentials for the job
- You enjoy working as part of a close-knit team. Together with your colleagues, you will code, review Pull Requests, deploy to production, etc. As part of a distributed team, you believe in maintaining detailed documentation.
- You can write and maintain high-quality and well-tested code. You can also prepare a fast proof of concept when you need to.
- Comfortable with Elixir since you will be coding in Elixir since the beginning.
- You have experience building web APIs, with SQL and with ORMs. You will debug queries, suggest database optimizations and work with data migrations in the most optimum way.
- You are familiar with GraphQL. You understand, at least, its pros and cons compared to REST services, depending on the context.
- You have excellent communication skills and written English, are self-motivated, and comfortable working in a remote position.
- Based in European / African timezones.
We care about your wellbeing and your professional success, so we offer you:
- Full-time employment, with a flexible schedule
- International environment and working culture
- As many vacation days as you need
- Whatever training you need to develop in your job
- The hardware you need
- The option to work anywhere in European/African timezones
- Company equity
- Paid family leave
- An annual company meetup (when possible)
Even if you're not able to tick all of these boxes, we would still love to hear from you.