FULL STACK SOFTWARE ENGINEER

The Position

We are seeking a full-stack developer, who will wear many hats.  Some key challenges will include:

  • Coding complex algorithms for fast, reliable execution
  • Structuring queries against large, heterogeneous datasets
  • Working with UX designers and JavaScript techniques to produce highly-performant, informative, and beautiful user experiences
  •  Evaluating and instilling best practices into the development process, including automated testing, code organization and style, and application architecture within an agile development environment
  • Evaluating potential new technologies
  • Understanding and deploying technologies to ensure operational redundancy and security

The Successful Candidate

A successful candidate will have at least several years of professional development experience, and be comfortable in a fluid, entrepreneurial environment.  He or she will likely have many of the following characteristics:

  • Server, network, and hosting environment expertise
  • Understanding what can break and why, taking no resource for granted.
  • Appropriate use of the file system, cloud storage, network resources, and an understanding of data redundancy and availability
  • Understanding application scaling given hardware constraints
  • Data modeling expertise
  • Building the data model as the foundation of an efficient stack that doesn’t require excessive logic layer complexity as the application grows
  • Creating a thoughtfully normalized relational model, complete with foreign keys, indexes, views, lookup tables, etc.
  • Using various relational and NoSQL databases as appropriate
  • Expertise integrating complex business logic into production applications
  • Understanding the economic value the application provides and relating this to trade-offs in designing the logic layer
  • Very strong object-oriented skills
  • Using frameworks extensively without excessive indirection
  • Polyglot approach to development languages
  • Interface expertise
  • Writing clear, consistent, simple-to-use interfaces.
  • Teaming with designers in an iterative process
  • Ideally, mastery of JavaScript
  • Development process expertise
  • Writing and using intelligent tests
  • Understanding of repeatable automated processes for building the application, testing it, documenting it, and deploying it at scale.
  • Integrating security everywhere, as each layer presents its own possible vulnerabilities

Academic qualifications

Very strong CS degree from leading program

Extremely high SAT or similar standardized test scores