Full Stack Engineer (Remote)

The Shelf is a fast-growing, profitable, big-data marketing startup with well known clients across the world (eos, Famous Footwear, Pepsi, Neutrogena, Evenflo, Regis, Lowes… just to name a few).

We’re looking for a remote, full stack developer to join our team of 18. Currently we have a very small but highly talented development team (two full-time developers), leaving a lot of room for growth, learning, and ownership. 


TLDR: How to Apply

If you’d like to apply:

  • please email atul@theshelf.com
  • title the email Full-stack Job Applicant (so we can make sure it gets routed to the right people)

Then in the email, copy/paste the below questions into the body of the email and please answer them. :)

  • Your name
  • Your location
  • A link to your Github
  • Skype id (for a call)
  • The Job site where you discovered this position

You will also need to describe the largest, most complex project you’ve worked on, and explain your role in that project. Then tell us how comfortable you are working with React, Python, and databases. This role requires a lot of crossing over between front-end, back-end, and databases.

On a scale of one to 10, rank the following, and also provide the years of experience you have with production code:

  • ReactJS
  • Python
  • Django
  • Web-crawling
  • Database query optimizations
  • JavaScript


High Level

At a high level, we’re looking for an engineer who has the following qualities: 

  • You should have a sound understanding of standard Computer Science algorithms, and get excited when you can solve difficult problems elegantly.
  • You should be detail-oriented, someone who uses real data to guide your design decisions.
  • You should be a practical engineer who is able to think about the benefits and risks of a given solution and propose thoughtful options in front of the team.
  • You should have experience with both front-end and back-end so you can participate in a variety of product discussions.
  • You should have great communication skills (able to get on voice calls), be responsive and available, and accountable since it’s a fully remote position.

You’ll work closely with our two engineers and our two co-founders on a day-to-day basis. Once on-boarded, you’ll have the opportunity to work on critical features. Once solved, you’ll be able to see your code live on production and being used by hundreds of our clients.


Extra Details

What you'll be working on

You’ll be working on our website which provides a highly-scalable SaaS platform to clients to facilitate marketing campaigns. It contains three primary components: 

  1. a large, searchable database of influential media profiles (140,000,000 and growing), along with detailed profiles on each. 
  2. campaign management (which is comparable to a CRM combined with a more complicated version of project management software)
  3. campaign reporting (which contains a lot of data visualizations)


Job Description

As a full-stack developer working on this project you’ll be hands-on with all three areas of the site. To give you a better idea of what you’ll be working on… we’re currently wrapping up our V1 of the product and getting ready to start on V2, so this is a really exciting time to join. The start date for V2 is set for the beginning of August. By joining at this time, you’ll have ownership over certain areas of the product. You’ll be able to write your own code, rather than fixing up years worth of older code. Yay!

  • A lot of new features are being added 
  • We’re switching our entire framework over to ReactJS (from AngularJS). 
  • A complete site redesign is currently underway.

Our current stack is Angular/React and Python/Django. We use ElasticSearch for implementing fast, text-based searches. Our application is deployed on Heroku and we use Github issues with ZenHub to manage tasks. Our back-end tasks are implemented using standard RabbitMQ server and celery. We currently use around 16 back-end servers. We use PostgreSQL to store 2TB of data. 


Front-end Experience

  • Absolute mastery of HTML/CSS/JavaScript for web-based applications to build UI components with a focus on usability, reusability and consistency with our style guide.
  • Competent in judging and making UI decisions
  • Styling: CSS, LESS, JSS
  • JavaScript frameworks: ReactJS, Angular 1.2 (legacy code)
  • JS-based build tools: Webpack
  • Component libraries: Material-UI

It’s critical that you are not waiting on the back-end developers in the team to implement some functionality.


Back-end Experience

  • API Design and Development, ensuring that these are secure
  • CRUD
  • RESTful Services
  • Celery (a recent challenge we solved is that the memory usage with 30MM tasks queued)
  • Server-side languages: Python
  • Storage technologies: PostgreSQL, Redis, ElasticSearch  (you must have a good understanding of writing SQL code, Solid grasp of relational databases and data modeling)
  • Experience building production quality REST APIs
  • Knowledge of GCS, AWS, Azure or similar cloud infrastructure
  • Experience writing unit and integration tests