Desired Candidate Profile
Job Description :
The backend engineering team is responsible for the architecture, development and scaling complex microservices based on distributed system running on its own private cloud. Our backend software engineers have end-to-end ownership from choosing the right technology stacks to applying the appropriate design patterns and ultimately building and managing the systems. If scaling the systems to support our hyper-growth while continuing to designing new capabilities that power advanced product features excites you, join us.
- High performance systems - Experience with building high performance distributed systems that can scale to 10-100K QPS. Shrewd focus on latency and throughput of services. Good understanding of nuances of distributed systems, scalability, and availability.
- Core Infrastructure - Experience with developing and running large scale distributed storage systems with service oriented architectures. Research, evaluate and socialize new tools, technologies, and techniques to improve the value of the system. Good knowledge of one or more relational and NoSQL databases and transactions(e.g. MySQL, Cassandra, Aerospike, Postgresql).
- Monitoring and Deployment - Experience with IaaS clouds like AWS/Google Cloud, Azure, OpenStack etc. Experience in working with Message Brokers and Application Containers. Experience with developing complex software systems scaling to millions of users with production quality deployment, monitoring, logging practices and reliability.
- Data Processing - experience with building and maintaining large scale and/or real-time complex data processing pipelines using Kafka, Hadoop, Hive, Storm, and Zookeeper. Do performance tuning and improvements in large scale distributed systems.
- Geospatial - Familiarity with geospatial datasets and services, such as maps, local search, points of interest and business listings data, mobile device location and GPS traces.
- Programming - Expertise in one or more object oriented programming language (e.g. Go, Java, C++) and the eagerness to learn more. Review and influence new evolving design, architecture, standards and methods with stability, maintainability and scale in mind. In-depth understanding of concurrency, synchronization, NIO, memory allocation and GC. Strong algorithmic skills focused on reuse of code.
- Architecture chops - You should have opinions on constructing software systems and good knowledge of the principles of fault-tolerance, reliability and durability. Do incremental changes to architecture: impact analysis of the same. Identify patterns and provide solutions to class of problems.
- Personal Skill - Be able to multi-task, prioritize and handle dependencies with minimal oversight. Do high level design with guidance by Functional modelling, break-down of a module Thinking platforms & reuse. Capacity for courageously evaluating tradeoffs between correctness, robustness, performance, space, and time.
Education:
UG: Any Graduate - Any Specialization
PG: Any Postgraduate - Any Specialization
Contact Details:
Keyskills:
Postgresql
C++
Object Oriented Programming
Aerospike
Core Java
Cassandra
NoSQL
Microservices
Design Patterns
MySQL