Shutterstock is looking for top technologists to join our Commerce Team and help drive the future of our platform. You will be working with highly motivated and extremely talented engineers on backend services with quality, performance and scale in mind at every step of the way. Our core belief is that the customers are our number one priority so we work hard to deliver value back to them with everything we do. We believe strongly in team ownership of systems, which includes defining the vision of the services to prioritization of projects.
- Contributing to all aspects of the services under the team’s ownership, which includes design, implementation, refactoring, automated testing, deployment, and uptime of the services.
- Helping other team members grow as engineers through code review, pairing, and mentoring.
- Improving internal team processes by keeping what's working, throwing away what's not.
- Collaborating on the vision of the services under the team's ownership.
- Building the technology the right way: for us, this means simple, well-tested systems that gradually grow over time, and that provide plenty of insight into production performance.
- Engineers are expected to support systems they develop in production which involves on call. The actual periods and frequency vary by team.
- 5+ years of relevant back-end software development experience, specifically Ruby and Node.js.
- Multi-year production experience building and maintaining web applications and\or backend systems at scale.
- Experience with NodeJS and good knowledge of the key libraries.
- Experience with SOA architecture working on distributed/high trafficked systems.
- Experience programming in at least one of the following: Ruby, Node.js, Java, Scala, GO, PHP
- Ability to craft simple and elegant solutions to complex problems.
- Strong software development fundamentals (data structures, algorithms, problem solving, system architecture).
- Passionate about what you do and care deeply about the things you build.
- Able to clearly communicate to technical and non-technical audiences.
- Has a good understanding of continuous delivery, writing unit tests and automated testing.
- Experience with at least one RDBMS.
- BS or MSdegree in Computer Science or related experience.
- Experience with automated configuration tools like Puppet, Chef or Ansible.
- Experience building event-driven or message-driven architecture using tools like RabbitMQ and Kafka.
- Experience working in an agile environment.