Abdul Rauf, Developer in Riyadh, Riyadh Province, Saudi Arabia
Abdul is available for hire
Hire Abdul

Abdul Rauf

Verified Expert  in Engineering

Software Developer

Location
Riyadh, Riyadh Province, Saudi Arabia
Toptal Member Since
December 14, 2021

Abdul is a software engineer with over six years of professional experience in Java, Spring Boot, Go, Node.js, DevOps, and related stacks. While his expertise lies in the back end, he has also worked on many front-end projects involving React. Experienced in working with startups and large enterprises, he has led the development of multiple products from scratch with 100% remote teams. Abdul is adept at developing microservices as well as monolithic applications.

Portfolio

Razorpay
Go, Amazon Simple Queue Service (SQS), Amazon Simple Email Service (SES)...
C2FO
Scala, TypeScript, Play Framework, React, PostgreSQL, NestJS, REST...
Paytm
Java, Spring Boot, Hibernate, Apache Kafka, MySQL, REST, Microservices...

Experience

Availability

Part-time

Preferred Environment

IntelliJ IDEA, Visual Studio Code (VS Code), Git, MacOS, WebStorm

The most amazing...

...module I created was an SMS gateway auto-switchover. It monitors the gateways' delivery times and failure rate and switches between them automatically.

Work Experience

Lead Software Engineer

2021 - PRESENT
Razorpay
  • Acted as the main contributor in the notification service, handling different channels (webhooks, SMS, email, etc.). Enabled the service to handle 10,000 TPS compared to 2,500 TPS earlier.
  • Led a team of two developers to create an MVP for the webhook replay dashboard. The technical support team can now use the dashboard to list and replay selected webhooks in case of failures on the merchants' end.
  • Solved scaling and resiliency challenges of the notification service by leading several projects, such as traffic flow control, throttling, async database writes, and QoS (Quality of Service) for the merchants.
  • Created SMS Gateway Switchover. This module monitors the health of all the SMS vendor gateways and switches between them accordingly on the basis of delivery times and failures.
  • Analyzed all possible failure scenarios in the notifications service and reviewed all current alerts. Added missing alerts to achieve an MTTD of five minutes.
  • Led the initiative to reduce the Postgres DB CPU usage. The CPU decreased from 60% to approximately 28% using several techniques.
  • Mentored and guided many junior developers during the projects.
Technologies: Go, Amazon Simple Queue Service (SQS), Amazon Simple Email Service (SES), PostgreSQL, MySQL, Apache, Prometheus, Grafana, Apache Kafka, REST, Microservices, Java, Performance Testing, Performance Tuning, SQL Performance, JavaScript, React, Kubernetes, Terraform, APIs, Amazon Web Services (AWS), Back-end, Full-stack Development, User Interface (UI), REST APIs, JSON, API Integration, Gorm, Amazon S3 (AWS S3), Databases, RDBMS, Redis, SQL, Microservices Architecture, Distributed Tracing, Hypertrace, API Development, HTML5, Protobuf, CSS, Third-party APIs, Team Leadership, Java 8, Continuous Integration (CI), Linux, GitHub, Code Review, Jira, Helm, Unit Testing, Integration Testing, Java 11, Relational Databases, Git, JUnit, Mockito, GitOps, Web Development, OOP Designs, Docker, Apache Pinot, OLAP, RPC, TypeScript, Amazon RDS, Object-oriented Programming (OOP), Large Scale Distributed Systems, Cloud, Agile, HTML, HTTP, Transmission Control Protocol (TCP), Algorithms, Back-end Development

Senior Software Engineer

2020 - 2021
C2FO
  • Planned, developed, and led a two-engineer team to migrate core components from the monolith to microservice architecture, e.g., the data manager for handling all recurring logic rules. Built using NestJS, GraphQL, and TypeORM.
  • Designed, developed, and led a three-engineer team to create engineering components for new business opportunities, e.g., a DPO (days paid outstanding) and DSF (dynamic supplier finance) dashboard. Built using React, Scala, and the Play Framework.
  • Planned, designed, and led a three-engineer team to create an internal dashboard for support teams. This allowed them to change all configurations related to Cashpool, which had a very complex validation logic. Used React and the Play framework.
  • Debugged several severe production issues related to concurrency. These issues were causing us huge GMV losses.
Technologies: Scala, TypeScript, Play Framework, React, PostgreSQL, NestJS, REST, Microservices, Distributed Systems, SQL, Full-stack, API Design, Back-end, Front-end, Node.js, Docker, Containers, Containerization, GraphQL, TypeORM, JavaScript, HTML, CSS, APIs, Full-stack Development, Redux, User Interface (UI), REST APIs, JSON, API Integration, Databases, RDBMS, RabbitMQ, Redis, Kubernetes, Microservices Architecture, Kotlin, Next.js, API Development, HTML5, Team Leadership, Java 8, Continuous Integration (CI), Linux, GitHub, Code Review, Jira, Unit Testing, Integration Testing, Relational Databases, Git, GitOps, Amazon Web Services (AWS), Web Development, OOP Designs, Go, Tailwind CSS, Object-oriented Programming (OOP), Large Scale Distributed Systems, Test-driven Development (TDD), Cloud, Agile, HTTP, Transmission Control Protocol (TCP), Algorithms, Back-end Development, Akka

Senior Software Engineer

2018 - 2020
Paytm
  • Designed and developed an API gateway for bank middleware for authenticating, authorizing, and whitelisting merchants. It enabled the bank to onboard 50+ third-party partners. Built using Java, Spring Boot, and MySQL. The average TPS served was 250.
  • Designed and developed Challenge Service, a service to track, log, and maintain the state of other microservices. This microservice was used as a state machine in the forgot password flow. The average TPS served was 100.
  • Created a library to convert POJOs into the ISO 8583 format and vice versa for the Aadhaar Enabled Payment System (AEPS) message types.
  • Contributed to other core microservices in the bank infrastructure, such as External Integration Service (EIS) and maker checker service.
Technologies: Java, Spring Boot, Hibernate, Apache Kafka, MySQL, REST, Microservices, Distributed Systems, SQL, API Design, Back-end, React, User Interface (UI), JavaScript, Spring, Docker, Containers, Containerization, HTML, CSS, APIs, Apache Maven, Full-stack Development, Redux, REST APIs, JSON, API Integration, Bootstrap, Databases, RDBMS, Node.js, Redis, Kubernetes, Microservices Architecture, API Development, HTML5, Third-party APIs, Java 8, Continuous Integration (CI), Linux, Code Review, Jira, Unit Testing, Integration Testing, Relational Databases, Git, JUnit, Mockito, GitOps, Web Development, OOP Designs, TypeScript, GitHub, Object-oriented Programming (OOP), Large Scale Distributed Systems, Cloud, Agile, Spring JDBC, HTTP, Transmission Control Protocol (TCP), Algorithms, Back-end Development

DevOps Engineer

2017 - 2018
Paytm
  • Planned and developed the in-house Kubernetes cluster management dashboard allowing other teams to check pods and container information, helping increase the observability of our infrastructure. Developed it with React and Express.js.
  • Collaborated with the team that provisioned and maintained six environments and the entire bank infrastructure deployed on AWS and the in-house data center.
  • Developed automation scripts to stop and start the whole environment or specific infrastructure components at specific times, which helped cut 50% of non-production environment costs.
  • Followed the Infrastructure as Code (IaC) philosophy. We modified the infrastructure only via code using Terraform and SaltStack.
  • Worked actively on AWS, Kubernetes, Docker, Terraform, SaltStack, ELK, React, Redux, and Express.js.
Technologies: Docker, Kubernetes, Terraform, SaltStack, Amazon Web Services (AWS), React, Express.js, Microservices, Distributed Systems, Jenkins, Datadog, CI/CD Pipelines, MySQL, DevOps, DevOps Engineer, Node.js, Cloud, Containerization, Containers, Spring, Amazon EC2, JavaScript, HTML, CSS, APIs, Apache Maven, Full-stack Development, Redux, User Interface (UI), REST APIs, JSON, API Integration, Bootstrap, Databases, RDBMS, Redis, SQL, Microservices Architecture, API Development, Full-stack, HTML5, Third-party APIs, Continuous Integration (CI), Linux, Code Review, Jira, CSS Grid, Unit Testing, Relational Databases, Git, GitOps, OOP Designs, TypeScript, GitHub, Object-oriented Programming (OOP), Large Scale Distributed Systems, Agile, HTTP, Transmission Control Protocol (TCP)

Software Development Intern

2016 - 2016
Google Summer of Code
  • Worked with my mentors for four months to build several new features and enhancements to the GPAC codebase. GPAC is an open-source software dedicated to rich media and broadcast technologies.
  • Created a module to take advantage of hardware-accelerated media decoding using MediaCodec C++ APIs on Android, resulting in better battery life and less CPU usage.
  • Redesigned the entire UI of the Osmo4 media player app on Android to follow material design guidelines.
  • Implemented a configuration file editor by parsing an XML options file. The users could use this UI to tweak configurations instead of manually editing XML files.
Technologies: C++, Java, Android, APIs, JSON, XML, Linux, GitHub, Code Review, Unit Testing, Relational Databases, Git, OOP Designs

API Gateway

Built a new microservice used as an API Gateway for bank middleware. The API gateway sits in front of the whole infrastructure and is responsible for the authentication, authorization, and whitelisting of merchants. Due to this, other microservices do not need to be public. Features like IP whitelisting, API whitelisting, and throttling were built from scratch to prevent system abuse.

I developed and designed the whole system single-handedly from scratch using Java 8, Spring Boot, and MySQL. This microservice was handling an average of 250 TPS traffic and enabled the onboarding of 50+ third-party partners for integration with the bank for various workflows.

Technologies: Java, Hibernate, Spring Boot, MySQL, JSON Web Tokens(JWT)

Webhook Replay Dashboard

Built a dashboard and back-end system for support teams to replay failed webhooks in the notification service. Webhook delivery can fail for various reasons, e.g., merchant servers being unavailable, retries exhausted, certificate issues, etc. Using this tool, support teams can search, filter webhook events and replay them instead of relying on the development team to replay them manually.

I prepared the technical spec and led a 3-person engineering team to design the dashboard. This was developed using Go and React.

After the dashboard, the on-call load on our team for such issues was reduced to zero. Earlier there used to be 3-5 tickets per week.

Technologies: Go, React, Gorm

Kubernetes Cluster Management Dashboard

This project involved developing the in-house Kubernetes cluster management dashboard. Users can use the dashboard to see the pod's information like status, age, IPs, container information such as requests and limits, and the names of environment variables injected.

I planned and developed the whole project with React and Express.js. This project helped us increase the observability of our infrastructure. Other teams didn't have to connect with the DevOps team to check the status of their deployments.

Technologies: Express.js, React, React Router, MUI (Material UI), Kubernetes

Recurring Dates Manager

Built a new microservice and dashboard for recurring dates. The microservice stores the recurring rules configuration and can give you a list of all the dates matching the rule in the given date range. This was used to manage payout schedules and in various other places. The user can also have custom overrides (e.g., bank holidays). The dashboard was used to customize the rules.

I was in charge of planning and designing this microservice. After the change, the same system handled all the recurring rules logic, leading to better system maintainability. It also became a lot easier to create and edit recurring rules.

Technologies: TypeScript, TypeORM, NestJS, React, React Router, MUI (Material UI)

Hardware-accelerated Media Decoding on Android

https://summerofcode.withgoogle.com/archive/2016/projects/4785383036420096
The project involved working with my mentors for four months to build several new features and enhancements to the GPAC codebase. GPAC is an open-source software dedicated to rich media and broadcast technologies.

I created a video decoding module on Android using the MediaCodec C++ APIs, resulting in better battery life and less CPU usage of the mobile device. Other tasks included overhauling the user interface of the Osmo4 media player app on Android to follow material design guidelines. I also implemented a configuration file editor by parsing an XML options file. The users could use this UI to tweak configurations instead of manually editing XML files.

Technologies: C++, Java, Android

Cashpool Configuration Dashboard

This project involved creating the back end and the dashboard for Cashpool configuration. Cashpool was an entity in the system with multiple relations to other entities and 30+ fields. These related entities and fields had complex relationships and required validation at each step. The dashboard was created with all these complex validations.

I mostly worked on the front end of this project in React. The dependency of the support team on the development teams was reduced to zero. Earlier support teams had to raise tickets, and the development team used to change these configurations manually.

Technologies: React, NestJS, Node.js, TypeScript, Play Framework, and Formik.
2013 - 2017

Bachelor's Degree in Computer Engineering

Jamia Millia Islamia - New Delhi, India

AUGUST 2016 - PRESENT

Google Summer of Code Developer

Google

Libraries/APIs

Node.js, REST APIs, API Development, React, React Router, Formik, Protobuf

Tools

Amazon Simple Queue Service (SQS), GitHub, Git, Apache Maven, RabbitMQ, Jira, IntelliJ IDEA, Terraform, SaltStack, Jenkins, WebStorm, Amazon Simple Email Service (SES), Apache, Grafana, Helm

Frameworks

Spring Boot, JSON Web Tokens (JWT), Hibernate, Material UI, Spring, Redux, Next.js, JUnit, Mockito, Express.js, Play Framework, NestJS, Gorm, Bootstrap, Tailwind CSS, Spring JDBC, Akka

Languages

Java, JavaScript, HTML, CSS, Go, Java 11, TypeScript, Scala, SQL, HTML5, Java 8, C++, GraphQL, C, XML, Kotlin

Paradigms

Microservices, REST, Microservices Architecture, Object-oriented Programming (OOP), Agile, Testing, Unit Testing, Continuous Integration (CI), Compiler Design, DevOps, OLAP, Test-driven Development (TDD)

Storage

RDBMS, MySQL, JSON, Relational Databases, Databases, PostgreSQL, Amazon S3 (AWS S3), Redis, Datadog, SQL Performance, Cache

Platforms

Docker, Kubernetes, Amazon Web Services (AWS), Apache Kafka, Linux, Web, Android, MacOS, Amazon EC2, Visual Studio Code (VS Code)

Other

Computer Engineering, OOP Designs, Web Development, Distributed Systems, Back-end, APIs, Full-stack Development, API Integration, Code Review, Large Scale Distributed Systems, HTTP, Back-end Development, Full-stack, DevOps Engineer, User Interface (UI), Cloud, Integration Testing, Third-party APIs, Team Leadership, GitOps, Amazon RDS, Transmission Control Protocol (TCP), Algorithms, CI/CD Pipelines, API Design, Front-end, Containerization, Containers, TypeORM, Prometheus, Performance Testing, Performance Tuning, API Gateways, Distributed Tracing, Hypertrace, CSS Grid, Apache Pinot, RPC

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring