We are seeking a talented software engineer with a wealth of experience in developing, deploying, and maintaining Node.js backed web applications.
You will be working within a small team of multi-talented engineers, implementing reliable distributed systems, and dealing with huge volumes of data.
Requirements
- Bachelor’s degree in Computer Science, Engineering, or a related field, or equivalent professional work experience.
- 3+ years of professional experience in software development with a focus on web applications, using ES6+ and/or TypeScript.
- Experience working with modern web application frameworks, libraries and testing tools, e.g. Express, React, Jest, Webpack, SASS, D3.
- Knowledge of how to test code and applications across various platforms (Mac, Linux, Windows, etc) for security and quality.
- A deep understanding of web application architecture and design principles.
- Strong computer science fundamentals: data structures, algorithms, programming languages, API design, distributed systems, and information retrieval.
- Strong understanding of modern software development lifecycle tools and practices, e.g. git workflow, code review, pair programming, etc.
- Knowledge of common web security issues as published by OWASP, SANS, etc.
- Experience with Amazon AWS services and familiarity with OLAP products is a plus.
- Experience working with large data stores, (DynamoDB, HBase, Cassandra, and especially Druid) is a plus.
- Experience working with data pipelines such as Kafka or Amazon Kinesis is a plus.
- Excellent judgment, organization, and problem-solving skills.
- Strong communication skills. Explaining complex technical concepts to designers, support, and other engineers is no problem for you.
Responsibilities
- Designing, building, and maintaining scalable, reliable, low-latency systems.
- Leading technical architecture discussions and helping to drive technical decisions.
- Mentoring and motivating other engineers. Participate in and lead code and design reviews.
- Work to improve and solidify engineering standards, tooling, and processes.
- Ensuring that the data needs of the UI are fulfilled with efficient database queries.
- Implementing transparent and robust caching.
- Load testing and optimization.