Rishabh Rawat, Developer in Gurugram, Haryana, India
Rishabh is available for hire
Hire Rishabh

Rishabh Rawat

Verified Expert  in Engineering

Software Developer

Location
Gurugram, Haryana, India
Toptal Member Since
August 5, 2019

Rishabh is a full-stack developer with exceptional skills in JavaScript and Typescript. He excels in frameworks such as React, React Native, Angular, Next, Hapi, Express, Nest, TypeORM, and Sequelize. His expertise lies in building MVPs, scalable services, infrastructure design, and setting up CI/CD pipelines for startups and mid-sized companies. Rishabh is the perfect resource to help convert your idea into a working product.

Portfolio

Bank Wallet (Via Thought Works)
ECMAScript (ES6), React Router, Redux, Expo, Web, React Native, React
Thought Works (Internal Project)
TypeScript, React Native, Angular, React
Thought Works (Daimler)
React Apollo, GraphQL, TypeORM, NestJS, TypeScript, Node.js, Redux, React

Experience

Availability

Full-time

Preferred Environment

MacOS, IntelliJ IDEA, WebStorm

The most amazing...

...product I've built is a React Native project that helps run Expo and Native module apps together, increasing the development speed by nearly three times.

Work Experience

Senior Full Stack Developer

2018 - 2019
Bank Wallet (Via Thought Works)
  • Owned and led the team in converting a previously built React Native app to run on the web using React Native Web.
  • Explored and evaluated the pros and cons of different methods. Convinced the team to choose React Native Web instead of building the web app from scratch in React.js.
  • Explored various challenges with the evolving React Native Web framework, and solved most issues the first time.
  • Setup an easy way to mock any interface API provided by React Native. Since nearly 30% of the modules weren't compatible with React Native Web, we had to write the mocks-ups and extensions of those like React Native Firebase, React Native Modal, React Native Permissions, React Native Touch ID, and React Native Config.
  • Wrote a custom router component to ensure navigation worked smoothly on the web. The app was already using React Navigation extensively, so switching to React Router Native and React Router Dom weren't options. Hence, I wrote the derivative or a mock-up of React Navigation to work on both the web and app.
  • Wrote scripts to switch to different versions of libraries based on the platform (web and app) since some of the libraries weren't supporting React Native Web and React Native together. I also used a patch-package to derive the node module according to the app need.
  • Optimized the bundle size by adding plugins, modified the code structure, employed lazy-load strategies, and set up the production system and CI/CD pipelines for quick updates.
Technologies: ECMAScript (ES6), React Router, Redux, Expo, Web, React Native, React

Front End Lead

2017 - 2019
Thought Works (Internal Project)
  • Built the integrated base starter kits for Angular to be used in thought works for any new project.
  • Built pluggable modules with NgRx, and NGXS Sass styled-components and routers that could be plugged instantly to starter kits. Built a base for new projects.
  • Built a UI intensive MVP on Next.js using FireBase, Firestore, and Cloud functions for a PoC, using the React animation library and Firestore Redux.
  • Built an ejected version of Expo that would help developers in thought works to work with Expo and write mock-ups for Native modules. During production, the mock-ups would be replaced by Native modules, decreasing development time.
  • Built a custom validator library on top of Joi package for TW, that could be instantly used to validate any possible value commonly used in TW, and provide a custom message for the same.
Technologies: TypeScript, React Native, Angular, React

Technical Lead

2015 - 2017
Thought Works (Daimler)
  • Led the team to build the Daimler interface in React with TypeScript. It was the Mercedes customization platform built for salespeople.
  • Built the back end for the same in Node.js on top of Nest.js framework.
  • Integrated TypeORM on the back end for a SQL database, and integrated same with GraphQL using TypeGraphQL, and data loader for an optimized query.
  • Built the image rotation component in React that would load the list of images and render a 360-degree view of the car with options to replace certain customizable parts.
  • Refracted the main home page from React and deployed it as a Next package for server-side rendering and SEO optimization.
Technologies: React Apollo, GraphQL, TypeORM, NestJS, TypeScript, Node.js, Redux, React

Software Developer

2013 - 2015
Nagarro
  • Built a voting system for audit logs, and a permission module for a banking client of Nagarro. Being a banking platform. audit logs were a crucial part of the job.
  • Added functionality to view the difference of audit logs between two subsequent updates giving business more clarity on what changed.
  • Added support for weighted voting by adding weight to each individual votes based on the hierarchy. It was critical that persons higher in the hierarchy had more say in the decision.
  • Built the UI in AngularJS for audit logs. It was a dynamic content component that would load exactly the same view in audit logs as the actual component.
  • Built the permission module front end, where you can create and update votes, see existing voters, and the graphical and chart views of votes distribution.
Technologies: Python, React Native, React, Angular, AngularJS, Node.js

Hierarchy-based Voting System

The system was built in such a way, that any updates in the system would need to go through a series of approvals by various people and departments. Based on the criteria, which was accessed only by admins, the system would choose to either apply or reject the actions. The back end was developed in Python and Node, while the front end in AngularJS.

Audit Loggers

Audit logs were built to capture any changes in the database and keep a version of it, similar to Git version control. On a UI, you can view complete changes between any two versions. The versions could also be used to apply and revert changes in a scenario, depending on the voting-based approach. Both the back, and front end were programmed in Node.js and AngularJS.

Built a dynamic module that would render on the audit logs, similar to the actual component, giving a thorough view of the things that had changed, as well as highlight those changes.

React and React Native Library

Built a library similar to Joi in plain JavaScript that could be used in React as well as React Native. The goal of this library was to provide a similar interface as Joi on both the front end, and back end system.

Expo Starter Kit with Custom Native Modules Support

Built a custom module which is a starter kit on top of Expo.
The unique feature of this kit is that it lets you add your custom Native modules on top of Expo, which isn't possible otherwise.

The way it works underneath is that Expo is kept in ejected format, and both ejected and un-ejected versions of the app JSON are maintained separately. When the user is adding a Native module, he also needs to add a mock of the same, mocking the functionality of the original Native module. While running, the user will have an option to run the app in ejected or un-ejected format. If run in the ejected format, it'll use the Native module; otherwise, it will use the Native module mock.

The advantage with this structure is that you don't need to build the Native dependencies every time, and you come out of the Native dependencies versioning issue, and in general the development speed is three times faster as compared to the normal development speed with React Native without Expo.

Languages

TypeScript 3, Python 3, JavaScript, GraphQL, Python, TypeScript, ECMAScript (ES6)

Frameworks

Redux, React Native, NestJS, Next.js, Angular, Express.js, Hapi.js, Ruby on Rails 5, OAuth 2, AngularJS

Libraries/APIs

Node.js, React, Lodash, React Native for Web, React Router

Tools

React Apollo, Sequelize, Mongoose, WebStorm, IntelliJ IDEA, Expo

Paradigms

REST, Agile

Platforms

Android, iOS, MacOS, Web

Storage

MySQL, PostgreSQL

Other

React Native Bridge, Material Design, Semantic UI, Apollo, Apollo Server, TypeORM

2009 - 2013

Bachelor's Degree in Computer science

Jaypee Institute of Information Technology - Greater Noida, Uttar Pradesh, India

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