Do you love algorithms, building services at scale, and optimizing performance? As a member of the Back end team, you will be responsible for designing and building the features and underlying systems that power our core product. You'll get to work with a variety of external and internally developed technologies. Our backend stack is constantly evolving, and you will directly contribute to improving the flexibility, scalability, and efficiency of our system.
Responsibilities
- Develop reliable, scalable, and flexible systems
- Design, implement, test and maintain backend components: application, data, infrastructure, analytics and deployment
- Design and build systems with automated instrumentation and monitoring
- Design and Implement RESTful APIs
- Live and breathe system reliability and up-time
- Consistently improve maintainability and stability of the codebase
- Identify and resolve performance and Scalability issues
Requirements
- Bachelor’s degree in Computer Science (Master’s degree in Computer Science is preferred)
- Excited to use new technologies
- Strong foundation in programming, algorithms, and software application design
- Experience with Python, Java, C, C++ or C#
- Broad knowledge on databases, data structures, data modeling
- Strong coder who can easily pass algorithm coding tests
- Experience with MySql or any RDBMS
- Experience with NoSQL - Hadoop, Cassandra, MongoDB
- Passionate about solving challenging problems and iterating quickly
- Passion for agile, test-driven development, continuous integration and automated testing
- Solid understanding of distributed systems and functional programming paradigms
Highly Desired
- Previous experience in distributed systems, data processing and analytics is a plus
- Experience in technical leadership of an engineering team
- Ideally can lead a project, or at least can work independently without oversight.
- BS,MS or PhD in Computer Science or a related technical field preferred