CTO


General Details

Position title: Chief Technical Officer

Reports to: CEO

Purpose

Make sure the development team is running as fast as they can.


Job Description

Key Duties

  • Work with team members that are stuck on an issue they can’t figure out

  • Help the team organize and plan difficult features

  • Review code and patches

  • Explore new approaches to solving difficult problems

  • Work with CEO to understand product goals

  • Review various technical health metrics of the platform on a regular basis

  • Help with the recruitment and review process of new engineers

  • Onboard new engineers

  • Have empathy for our users

Required Skills (be familiar with the following)

  • 5 years managing 10+ engineers in a product company serving a large volume of users

  • Strong knowledge of software architecture design

  • Strong fundamental knowledge of software design patterns

  • Strong understanding of code smells and patterns of poor quality code

  • Use of various debugging, logging, and performance tools to help manage large application

  • Wide understanding of various technologies and languages (breadth)

  • And what’s required from all our engineers

    • HTML (different version) and their compatibilities.

    • 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