Software Engineer - Real-time Chat Platform at SendBird
San Mateo, CA, US
At SendBird, we are building the most scalable and powerful chat API in the world. We have customers from over 150 countries around the world and serve a truly wide-range of use-cases across communities, marketplaces, on-demand services, games, and e-commerce.
 
We are working with some of the hottest (and the toughest) customers in every industry, and since graduating Y Combinator in 2016, SendBird has become one of the fastest growing startups in Silicon Valley.
 
SendBird is headquartered in San Mateo, California and has its APAC office in Seoul, South Korea.
 
The engineering team at SendBird is solving some of the biggest challenges related to building reliable, feature-rich, and scalable real-time conversational experiences across different platforms.
 
The challenges range from building a platform that can scale to some of the largest user-bases across distributed environments with optimal latency; creating a feature-rich yet lightweight and high performance client-side SDK; and building products and services that can help customers incorporate real-time conversational technologies more rapidly.
 
You will be participating in building the best real-time conversational products and solutions possible. You are expected to learn and expand on your engineering knowledge and experiences to build a world-class product that solves the difficult problems of our customers, and make it as easy as possible for them to harness the power of real-time chat.
Roles & Responsibilities
  • Build a large scale distributed and scalable real-time messaging service
  • Design simple, intuitive API to solve complex architectural problems
  • Write customer-centric documentation on API and messaging services
  • Architect and build efficient servers on our globally distributed infrastructure
  • Deploy and operate server clusters within a cloud environment
Key Qualifications
  • Working knowledge of Java or Python with at least 2 years of experience developing, shipping, and maintaining real-time system
  • Have deep understanding of multi-threading and high performance distributed architecture
  • Able to work independently and drive results
  • Ability to find the root cause of problems with a minimal set of information and data points
  • Ability to find the optimal solution given the resource constraints, and understands the concepts of under-engineering and over-engineering
Bonus Points
  • Experience working on real-time chat/messaging system
  • Experience handling massive concurrent connections and processing large-scale traffic
  • Understanding of Unix/Linux systems
  • Understanding of Python, Java, and Event-Driven Frameworks
  • Understanding of TCP/IP and network programming
  • Understanding of RDBMS, NoSQL and distributed databases
  • Understanding of server virtualization, global infrastructures, load balancing, and handling massive data traffic
  • Awards from programming competitions (e.g., ACM ICPC, IOI, etc.)