At Careem, we are driven by the purpose of simplifying the lives of people and building an awesome organisation that inspires. Based in Dubai, we started our journey as a pioneer of the Middle East’s ride-hailing economy.
Today, Careem is the region’s everyday Super App operational in 13 countries and over 100 cities. The Super App provides a host of daily services that people need to move around, to order things and to transfer money in one unified smartphone app. Our goal is to simplify people’s daily lives so that they can spend their precious time and mindshare on things that really matter and on realizing their potential
What will be keeping you busy?
We are looking for software engineers to join our team of talented engineers that share a common interest in distributed backend systems, their scalability and continued development.
You will join the Fraud Prevention team with a unique combination of distributed real-time services as well as data preparation pipelines and batch ETLs. These large scales, distributed systems are integrated with all Careem services and handle everything from user requests to payment processing. It means you will work with one of the most loaded systems. Realtime service relies on preliminary data aggregation, which involves data ETL based on Spark, Hive, etc. This means an opportunity to work on virtually any type of computer science and software engineering problem, particularly in the areas of large scale distributed systems and big data. Our tech stack is mainly Java/Kotlin, Python, Node/Typescript, Docker, AWS, Spark, MySQL, DynamoDb and a long tail of other technologies.
Key responsibilities include:
- Development of distributed real-time services with challenging scalability and reliability requirements.
- Work closely with data scientists to bring their researches to production
- Constant search for efficient technologies and solutions, experimenting with different patterns, databases, etc.
- Build ETL and streaming pipelines, integrate with new data sources across systems, bring new features.
- Facilitate collaboration with other engineers, product owners, and designers to solve interesting and challenging problems across our platform.
- You care about quality and you know what it means to ship high quality code.
- Proficiency server-side technologies. Java stack knowledge is required.Knowledge of database systems concepts (data modeling, partitioning, indexing, joins, etc.), experience with relational and no-sql databases.
- Familiarity with theoretical distributed systems concepts and parallel data processing.
- Linux system and CLI skills: ssh, process monitoring, storage management, tailing logs, etc.
- Base DevOps skills, include familiarity with clouds, containerization and CICD
It’s a big plus if you also bring one or more of the following:
- Hands-on experience deploying and using the Apache Big Data Stack (Hive, Spark, Kafka, etc.)
- Front-end and UI experience (react, angular)
- Kotlin experience and base understanding of functional programming
- Python and Node.js experience
- Have data science and data analysis knowledge
What do we offer you?
Working in an international environment with colleagues from 70+ nationalities, a flat hierarchy, flexible working hours, unlimited (paid!) holidays, the latest technologies and full ownership!