Full Stack Software Engineer
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
- 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
- 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
Very strong CS degree from leading program
Extremely high SAT or similar standardized test scores