Over a million designers use Sketch to transform their ideas into incredible products, every day. Would you like to join us and help take the backend services that support this leading design tool to the next level? We're looking to expand our team with a full-time Backend Developer.
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 project managers to guarantee a product-focused, smooth engineering processes.
Most of our backend is built on Elixir with Phoenix, served over GraphQL. We build some supporting web services increasingly in Go and decreasingly in NodeJS, and are progressively migrating our backing data store to PostgreSQL from MariaDB. Our backend services also utilise some AWS services such as SQS, and Redis.
We are especially interested in finding developers with experience either building web APIs with Go or experience with functional programming (e.g. Elixir, NodeJS, Clojure, F#). 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 both Go and Elixir 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.
Sketch is a 100% remote company, and your colleagues are distributed around the globe. Being remote adds great flexibility, and helps us build a more diverse team. We put respect for each other above everything else.
Besides being remote we work asynchronously as often as we can. This means that our team communicates mostly using Slack and GitHub. When we need it, we also have video calls.
Our Technology team has more than 50 people today, split between Mac, Backend, Frontend, Infrastructure and QA. In particular, the backend team has more than 10 members. We work in multidisciplinary squads: people from the different roles, including members of the Product team, work together on solving problems and delivering functionality to our users.
- 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 either Go or Elixir (ideally both) and motivated to learn the other, since you will be coding in both languages 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:
- Flexibility to organize your own time, no set hours
- As many vacation days as you need
- Whatever training you need to develop in your job
- The laptop you need
- The option to work anywhere in European/African timezones
- Company equity
- Paid family leave
- An annual company meetup