Senior Full Stack Software Engineer
At Dissolve, our vision is to transform the experience of licensing stock footage and photography from status-quo to spectacular. Right now, we're looking for a Senior Full Stack Software Developer to help us in our quest.
Who we are:
Dissolve.com licenses stock video clips for use in commercials, television shows, documentaries, and feature films, and licenses stock photography for use in design and creative work. Our library contains more than 2 million video clips and photographs at Dissolve.com.
We are a dedicated team full of passionate members and departments all working towards common goals. Here, collaboration is key. We work in an exciting, fast-paced environment, and a close-knit culture.
Who you are:
You have B.Sc. in computer science, engineering, or the equivalent and have a profound love for writing beautiful, maintainable code in Ruby and Ruby on Rails. You understand how to craft classes and methods that have a single responsibility. You write tests that validate your code, honouring the belief that code without tests is broken code. You've spent at least 5 years sharpening your skills and experience in a production web development environment.
You play well with others in architecting site features, writing new code, reviewing code written by your teammates and fixing code that is misbehaving. You show no fear of diving into a codebase that is millions of lines deep and spread across many source code repositories. You have a keen interest in all the components of a modern web application and possess the ability to move up and down the development stack.
What we are looking for:
An excited, passionate, software engineer that possess in-depth knowledge of at least five items in our development stack. You have an innate curiosity and drive to want to learn the rest that you do not know.
- An understanding of how the DNS, the customer’s browser, the load balancers, web application servers, database, caching servers, job queue and job servers, full text search service, third-party APIs, cloud storage and content delivery network all interact to support our websites
- The ability to understand business processes and translate them into working code, UI and database models
- 3+ years developing a production Ruby on Rails application
- Knowledge of preprocessor languages such as CoffeeScript and SASS
- An ability to separate UI markup, styling, and business logic in the web page
- A solid understanding of the Model, View, Controller paradigm and how to separate the logic that belongs in each layer
- Experience in consuming third-party APIs in a robust manner and/or building reliable, versioned, APIs for third-parties
- An understanding of SQL and Postgresql, MySQL, SQL Server or equivalent database servers
- Knowledge of RSpec or an understanding of equivalent automated testing frameworks such as TestUnit, MiniTest or Selenium
- Knowledge of web application servers such as Unicorn, Puma or equivalent and how they differ from front-end web servers such as Nginx, Apache or equivalent
- An understanding of background job processing using Sidekiq, ActiveJob or equivalent
- Experience with caching, both benefits and pitfalls, using Redis, Memcache or equivalent technologies
- An understanding of domain-specific, controlled vocabularies and knowledge of full-text search using Elasticsearch, Lucene, Solr or equivalent
- Familiarity with Amazon S3, or equivalent cloud file storage
- Knowledge of content delivery network providers such as Amazon CloudFront, Akamai, or equivalent
- Experience with continuous integration systems such as Jenkins, Travis, Circle CI or equivalent
- A good understanding of Ubuntu commands, or equivalent Linux distributions
- Reasonable understanding of Git and GitHub
- An understanding of cloud-hosted, virtualized servers such as DigitalOcean, Amazon EC2 or equivalent
- Ability to provision new cloud servers using Chef, Puppet, Ansible or equivalent
- An understanding of different video and photo formats and transcoding them to other formats
Dissolve has a large development stack and infrastructure to support our web sites. We know it’s hard for anyone to understand all of it in-depth or know all the specific technologies we use. With your passion to develop and drive to learn, we offer you an awesome career opportunity, and an ability to specialize in areas that interest you.