Senior Full-stack Developer (React and Node.js)2019 - 2020Internal Project (via Toptal)
Technologies: Unit Testing, Test-driven Development (TDD), GitLab CI/CD, CircleCI, PWA, Search Engine Optimization (SEO), D3.js, Storybook, TypeScript, WordPress, React Apollo, GraphQL, Express.js, Node.js, React
- Setup the full-stack project with React on the front end and an Express.js server on the back end.
- Established the CI/CD pipeline using CircleCI.
- Added the component library onto the front end that uses Material-UI underneath; added Storybook support as well.
- Implemented server-side rendering support on to the React app for better SEO support.
- Led the team on the unit testing front along with writing tests on both the back end and front end.
- Added D3.js library support for charts.
- Optimized back-end APIs and added request logging support which we later integrated to Metabase for better visualizations.
- Integrated Apollo GraphQL onto the front end.
- Transformed the web app to the PWA by adding a service worker and browser push notifications and updated the UI to look like a progressive app.
- Handled the WordPress setup for blog hosting.
Team Lead2018 - 2019Money View
Technologies: Jest, Material-UI, NgRx, Angular, Redux, React, GraphQL, TypeORM, Nest, Node.js
- Led a team in the development of Money View's admin panel in Angular 5; also integrated Material-UI and ngrx for state management.
- Oversaw a team in the build of a client web app in React; integrated Redux Thunk, TypeScript, Jest, and React testing library.
- Built the back end in Node.js; used Nest with TypeORM as the ORM layer on top of the PSQL database.
- Migrated the above-mentioned back end to a GraphQL architecture and integrated Dataloader for optimized querying.
- Used Apollo in React and Angular 5 and moved the architecture from a REST API to a GraphQL approach.
- Added data visualization using the Chart.js library in React; used server-side rendering for PDF generation as well.
- Integrated Tableau reports for the the admins.
- Integrated Plotly library for some of the complex charts, metric reporting, time-based events, and other custom graphs.
Software Developer2017 - 2019Freelance Projects
Technologies: Hapi.js, GraphQL, Nest, Next.js, Node.js, AngularJS, Swift, React Native, React
- Built a story app for a client in React Native.
- Integrated the story app to consume data from a WordPress API and to parse the content and render it on the app.
- Integrated syncing storage for a pleasant offline experience as well.
- Worked on a React Native project for a client to create a custom video player component as the requirement of the app was to have a video player with multiple other features like fast forward, 2x speed, 1-click snapshot, and so on.
- Migrated pieces of the React project to Next.js as the client was facing an issue with SEO optimization.
- Integrated a styled component in the above-mentioned React project as well to reduce the initial page size and improve page speed.
- Exposed the features of existing back-end projects via GraphQL and integrated Apollo for the similar reasons.
- Built an MVP application on Hapi.js and also integrated a Swagger UI library .
- Wrote react-native bridge for video player controls as npm packages including react-native-video couldn't solve the purpose. This required me to work on swift code on IOS side and java on the android side.
- Helped another client to upgrade their swift app from version 2.0 to swift 3, that required me to delve through the code and work with the ongoing apple documentation as well.
Senior Web Developer2017 - 2018Times Internet
Technologies: Socket.IO, GraphQL, Webpack, Express.js, Database Applications, REST, Redux, Node.js, React
- Built a React-based UI in a content moderation admin panel for articles. It enables moderators to view articles written by content writers and suggest, edit, mark, or comment on certain words or sentences.
- Developed a custom editor in React to provide basic stylings in the content.
- Added an image uploading feature in the custom editor, added features to crop and scale the image on the go.
- Constructed the back end in Express.js to store moderation content and policy and optimize the moderation engine for new articles, hence reducing the amount the team had to redo work.
- Built a React-based dashboard for moderators and content writers to view and monitor the status of their articles, pending actionable.
Web Developer2016 - 2017eSparkBiz (eCommerce Platform)
Technologies: SCSS, CSS, AngularJS, React Native, React, Node.js
- Built a React-based web app with a responsive UI for an eCommerce platform; also integrated Redux, TypeScript, and Sass.
- Developed a React Native app for an eCommerce-compatible with Android and iOS. The major components include cart, product details, order history, and frequent buys.
- Constructed React Native bridges for exposing native module functions on the React Native side.
- Built the back end for an eCommerce on Node.js using Express, TypeScript, Sequelize, and PostgreSQL.
- Created a service for order processing and tracking. The model was a pub/sub and based on Redis that would trigger appropriate APIs/processes based on the order status change.
Back-end Developer2015 - 2016eSparkBiz (eCommerce Seller Panel)
Technologies: Apache Kafka, Redis, PostgreSQL, Django, Ruby on Rails (RoR), Ruby, Python
- Developed an admin panel for sellers in Django to manage inventory, invoices, payments, reconciliations, settlements, and upload tracking details; basically extended the Django default admin panel.
- Built a courier-tracker microservice in RoR (Ruby On Rails) that would integrate multiple third-party couriers by using their APIs or crawling the web page to update the status of the courier into the system.
- Constructed an order processor (RoR) that would manage an order status once the order was placed by the user, handling the seller's shipment and order tracking.
- Implemented audit logs to record all of the updates happening on the order and record its life cycle.
- Built a notification service in RoR that would notify users and sellers of the respective status changes and added email, SMS, and push notifications.
Software Intern2013 - 2015eSparkBiz (Internship)
Technologies: Selenium, Ruby on Rails (RoR), Ruby, Python, AngularJS, Node.js
- Built an MVP for the Child app; this included developing the back end to support feature requests like viewing child specialists around the area, scheduling an appointment, medication history, and a child's nutritious requirement.
- Developed the front end in AngularJS; also integrated the location API to fetch and show the appropriate suggestions and child specialists around a specified area.
- Extended the Child app to be able to view childcare facilities in the area, track appointments, and manage payments.
- Extended the above application to schedule notifications (email and push notifications). Managed the integration of an SMS-based notification for some mobile providers.
- Composed unit and Selenium tests for the end-to-end working of the application.