SE-2 Infra Engineering

Bengaluru, Karnataka, India | Technology | Full-time

Apply

About Us

 

Exotel is the emerging market’s leading full-stack customer engagement platform and business-focused virtual telecom operator. Incorporated in 2011, Exotel’s cloud-based product suite powers 50 million daily engagements across voice, video and messaging channels. Exotel powers unified customer engagement to over 6000 companies in 60+ countries, including India, SE Asia, the Middle East, and Africa. Today, some of the fastest-growing companies in the emerging markets (Ola, Swiggy, Flipkart, GoJek, Byju’s, Urban Company, HDFC Bank, Zomato, Oyo, etc.) manage their customer engagement with Exotel’s suite of communication APIs, Ameyo’s omnichannel contact centre (merger), and Cogno AI‘s conversational AI platform (acquisition) over the cloud. They’re a $100 million Series D-funded company. 

 

Tech @ Exotel

Exotel engineering solves some cool infrastructure-level problems to ensure no one misses a call or an SMS.

  • Our focus is on building a very fault-tolerant, loosely coupled, scalable and real-time distributed system
  • We are generally agnostic of language, technology or tools. Currently, our tech stack is built on Golang, Node.js, Ruby, Java and PHP. We use Aerospike, and MySQL as data stores, ElasticSearch for search and Beanstalkd for queuing
  • We emphasize a lot on clean abstractions of code, loosely coupled services and good coding practices
  • We are very strong believers in "you built it, you own it!". And running a distributed system is very different from just building one!
  • We are crazy about high availability

 

Platform Engineering @ Tech @ Exotel

The platform engineering group is responsible for the distributed-system (cloud) infrastructure (on which the rest of the exotel microservices are developed and deployed), as well as the data infrastructure. The team’s deliverables significantly influence the reliability (resilience, uptime, accuracy, security, etc.), usability, scalability and optimality of the overall Exotel stack. The deliverables improve engineering and business productivity by abstracting the distributed system complexities and data management overheads.

Some of the key responsibilities of the team include: 1) Enhancing the platform by exploring and adopting new technologies (E.g. Orchestration engines, serverless, big data)  and optimizing the architecture/implementation 2) Ensuring SLAs are met by monitoring and optimising the deployments

 

Job Role

 

Role of a Software Engineer 2 - Infra Engineering includes

  • Design, develop, test and maintain software for pipelines and tools catering to platform-wide concerns: Microservice chassis or templates, Service discovery, Monitoring/logging, Automated deployments, IPC (distributed queues), Data infrastructure, Security, etc.
  • Participate in the exploration and adaptation of new technologies such as Containers and Orchestration, Serverless, IDPS, and Platform as a service 
  • Monitor existing deployments to ensure committed SLAs are met
  • A lot of focus in what you do will be outside of just adding features and will be related to pushing a distributed system to its limits - you will be constantly thinking of "how do I scale out my cluster to twice its size with 60 seconds?", "how do I increase the platform uptime from 99.95 to 99.99?", "how to shave off a few extra milliseconds in response times?".

 

What does it take?

 

We are looking for candidates with a strong understanding of computer/distributed systems and strong programming skills. We want people who love designing and engineering distributed systems (which is a lot more than programming) 

 

Must-haves

 

  • Strong in Computer Science fundamentals
  • Strong exploratory and learning skills for exploring/learning new-age technologies
  • Strong understanding of distributed systems and networking concepts
  • Comfortable in few of Java / Go / Scala / C++ / C / C# / Shell scripting/ Python
  • Experience with one of the cloud platforms (AWS, GCP, Azure) and Linux
  • Experience with one of IAAC technologies (Ansible/Chef or Puppet; terraform/cloud formation, etc)
  • Experience with a few of the following: containers and orchestration frameworks (E.g. K8s), Logging (Rsyslog), Monitoring frameworks (Prometheus, Nagios), CI/CD pipelines, Security frameworks
  • A "DevOps" mindset. You own (maintain, administer) what you will develop.

 

Good-to-haves

 

  • Experience with a few of the following: Databases (E.g. Mysql, Aerospike), Distributed databases (Elastic Search, Redis, etc.), Data Analysis platforms
  • Exposure to AI/ML technologies
  • Practical Experience in managing Production scale systems
  • Experience: 2-4 years