How we approach software engineering

FULL STACK ENGINEER


General Details

Position title: Full Stack Engineer

Reports to: CTO

Purpose

You would be working on developing new features from start to finish which would include everything from early prototypes to getting the production server ready to checking for security concerns.


Job Description

Key Duties

  • Create prototypes

  • Write technical specs

  • Journal your process

  • QA your work

  • Update tickets and keep work organized

  • Follow methodologies that the company provides

  • Write efficient software

  • Work with stakeholders to understand tradeoffs

  • Follow up on issues / errors on a regular basis

Required Skills (be familiar with the following)

  • HTML (different version) and their compatibilities.

  • CSS (different versions and techniques to apply effects and cross browser support), one or two CSS frameworks (LESS or SASS).

  • Component frameworks such as Bootstrap or Foundation.

  • JS: programming model in JavaScript / inheritance model, scoping, differences between the three major version of JS.

  • HTTP: how the protocol generally works and how browsers generally deal with it.

  • Web sockets and web workers.

  • Experience with AJAX libraries (jQuery is required and one of these three: Backbone, Angular or React).

  • Unix: bash, piping, SSH, tools (cat, awk, sed), basics of standard input/output

  • Basic principles of database design

  • Canvas / WebGL

  • Basic experience with ORM

  • Software Design Patterns

  • Functional Programming Principles

  • Event Oriented (including asynchronous) Programming

  • Object Oriented Programming

  • Prototype Based Programming

  • Coding Best Practice

  • Refactoring Best Practices

  • Test Driven Development

  • Possess a good understanding of the syntax of Ruby and its nuances

  • Solid understanding of object-oriented programming

  • Experience designing, building large-scale Ruby on Rails applications

  • Experience with common libraries such as RSpec and Resque

  • Proficient understanding of code versioning tools (e.g. Git, or SVN)

  • Proficient in bash shell

  • Familiarity with continuous integration and delivery

  • Basic familiarity with networking systems, load balancers, and TCP/IP network constructs.

  • Knowledge of performance and reliability monitoring strategies

  • A knack for writing clean, readable Ruby code

  • Able to create database schemas that represent and support business processes

Great to Have Skills

  • Be clever about how to approach problems

  • Be technically curious (learning on your own)

  • Have a serious interest in understanding the goal behind your work

  • Push for doing things the right way the first time around

  • Have empathy for our users

  • Know the basics of Photoshop

  • Any background in programming graphics or video games