Manas Chaudhari, Developer in Mumbai, Maharashtra, India
Manas is available for hire
Hire Manas

Manas Chaudhari

Verified Expert  in Engineering

Robotics Developer

Location
Mumbai, Maharashtra, India
Toptal Member Since
April 3, 2017

Manas has over three years of experience building applications on Android, iOS, and Ruby on Rails platforms. Coming from the startup world, he has a strong focus on speed, quality, and impact. He loves creating architecture patterns to make development faster without compromising on stability. He presented one such pattern titled "Functional MVVM: Using RxJava and Data Binding" at DroidconIN 2016.

Availability

Part-time

Preferred Environment

Git, Visual Studio, Android Studio, Slack, MacOS

The most amazing...

...framework I've built is an Android library for MVVM based on RxJava and data binding that enables code reuse via composition and testability.

Work Experience

iOS Developer

2017 - 2017
Flightmode
  • Developed a complete iOS application from scratch using React Native and published to the app store. The application provides highly personalized and quality reading content to the users.
  • Defined REST API requirements in collaboration with the back-end developer and integrated with the app.
  • Built interactive animations using React Native's Animated and PanResponder APIs, resulting in a very fluid user experience.
  • Developed higher-order components in React to maximize code reuse for repeating tasks like submitting forms, loading progress, and showing errors.
  • Implemented offline interactions and a synchronization service to ensure all data is updated on the back-end.
  • Implemented Facebook and Twitter login using OAuth.
Technologies: JavaScript, Redux, React Native

Lead Developer

2017 - 2017
Crypto Plus Certified
  • Developed an application for algorithmic cryptocurrency trading that tracked market data in real time over web sockets and executed trades as per the trading strategy configuration.
  • Refined trading strategy ideas into complete algorithm specifications by identifying and addressing all the scenarios. Implemented and optimized the algorithms further to maximize profits.
  • Developed an interface in React.js to visualize the algorithm's performance to speed up algorithm development.
  • Finalized the product requirements for the automated trading platform in the form of wireframes and app flow by collaborating with the designer and product owner.
  • Defined the tech stack and architecture for the complete platform and set up a team of five developers to implement the project.
Technologies: Redux, React

iOS Architect

2016 - 2017
UpGrad
  • Built an iOS sample app using TDD to serve as documentation for coding guidelines to be followed by the team.
  • Covered all critical aspects of architecture including network layer abstraction, view modularity, database, navigation, caching, deep-linking, push notifications, dependency management, testing frameworks, test suite speed, and quality.
  • Implemented VIPER architecture to maximize testability.
  • Implemented continuous integration to ensure stability and high test-coverage in pull requests.
  • Integrated Danger and SwiftLint to automate code reviews.
  • Developed a network abstraction layer using Moya with stubbed network requests for faster test runs.
  • Guided the team in Git branching practices to ensure a smooth workflow.
  • Reviewed the code for architectural issues and shared the impact regularly with stakeholders.
Technologies: Test-driven Development (TDD), Viper, iOS, Swift

Full-stack Developer

2016 - 2016
Mink
  • Developed an end-to-end solution for automating all operations for the laundry business including supply chain management, customer service, payments, and billing.
  • Developed finite state machines to track and validate the flow of inventory starting from collecting garments from users, submission to the nearest hub, transporting to vendors for processing based on services required, transporting back to the hub, and finally delivering to the user.
  • Developed a web front-end based on ActiveAdmin to be used by all operators to fulfill their respective tasks, which included handling parts of the supply chain, scheduling pickups and drops, verifying the state of inventory, generating invoices, applying discounts, and more.
  • Developed a job-based system and an Android app for use in delivery trucks to automate the transportation of inventory on various routes in the supply chain.
  • Created a RESTful API in Ruby on Rails with role-based authorization supporting both web and Android clients.
Technologies: Android, Java, JavaScript, HTML, ActiveAdmin, Ruby on Rails (RoR), Ruby

Engineering Manager

2015 - 2016
TinyOwl/Runnr
  • Refactored pages with complex interactions by introducing functional reactive programming (RxJava, RxSwift).
  • Created an MVVM framework for Android based on RxJava and data binding to enable code reuse through view composition.
  • Integrated Kotlin for Android development and Swift for iOS to eliminate null pointer exceptions and accelerate development speed through better code reuse.
  • Supported internal web panels based on Backbone.js and a back-end based on Ruby on Rails.
  • Achieved stable weekly releases to production by bringing into practice feature gating and Agile methodology as a tech lead.
  • Restructured the push notification job scheduler used by the marketing team to support sending push notifications to millions of users at a time while eliminating delivery failures and minimizing delay.
  • Drove the development of the Magical Fridge product to provide a highly personalized food ordering experience with the vision to display exactly what the user wants.
Technologies: Ruby on Rails (RoR), Ruby, iOS, Swift, Objective-C, Android, Kotlin, Java

Mobile Developer

2013 - 2015
TinyOwl
  • Developed food ordering apps on Android and iOS from the ground up.
  • Architected core modules, including database access, networking, data sync, navigation, and UI logic.
  • Extended GreenDAO ORM to support executing database queries directly from JSON without intermediate conversions, accelerating data insertions by 20x.
  • Implemented SyncAdapters to download and refresh restaurant menus offline, to provide a rich offline user experience.
  • Designed a highly versatile offer schema capable of storing all variations of restaurant offers (e.g., Buy one large pizza, get 50% off on one medium pizza of lower price). Implemented a client-side offer application based on the downloaded offers to instantly apply an offer or guide the user without making any network calls.
  • Integrated multiple payment gateways ranging from internet banking to mobile wallets, providing a seamless online payment experience.
  • Developed a post ordering experience to indicate the status of ongoing orders and allow users to take actions such as calling the restaurant, cancelling the order, and providing feedback.
  • Developed a real-time inventory tracking system to support restaurants with limited stock.
Technologies: Objective-C, iOS, Java, Android

Flightmode iOS App

A news reading application that provides minimal but quality content. The application automatically loads three articles every day based on the user's preferences and works offline. This is one of the best user interfaces that I have built.

Android MVVM

https://github.com/manas-chaudhari/android-mvvm
A framework for implementing MVVM on Android using RxJava and data binding that focuses on minimizing the boilerplate for view setup and enables reuse of presentation logic through view composition.

Functional MVVM Using RxJava and Data Binding (Talk at DroidconIN 2016)

https://speakerdeck.com/manaschaudhari/functional-mvvm-using-rxjava-and-data-binding
It is important to write reusable code to increase development speed and for easier maintenance. Although it is quite easy to share model logic across various components of the app, sharing presentation logic isn’t trivial. In this talk, I demonstrate how MVVM architecture allows you to tackle this issue using composition.

A Subscription-free Way of Using RxJava

Cleaning up RxJava's subscriptions is critical in order to prevent memory leaks. However, it is often dependent on the Android lifecycle and results in boilerplate code. In this article, I present how data binding can be used to clean up subscriptions without any boilerplate code.

iOS VIPER Architecture Sample

https://github.com/manas-chaudhari/ios-tdd-sample
An architecture sample app that displays data from GitHub's API.

Technologies: TDD, VIPER, Continuous integration, Danger

Energy Optimal Path Planning for Mobile Robots

https://www.youtube.com/watch?v=xrHlQodl8qQ
As part of my master's thesis, I developed a new technique for determining energy optimal trajectories based on Dubins curves, achieving linear time complexity and 14.8% more average energy savings than existing methods. I also Improved waypoint selection by enhancing A* and Theta* techniques for finding optimum solutions with turn-based cost functions.

Technologies used involved C++, Robot Operating System (ROS), and Gazebo.

Languages

Swift 2, Swift 3, Objective-C, Swift, Kotlin, Java, ECMAScript (ES6), Ruby, HTML, JavaScript, C++

Libraries/APIs

ReactiveX, RxJava, RxSwift, React, Mixpanel API, OpenCV

Tools

Crashlytics, Git, Atom, RSpec, Moya, Jira, GitHub, Zeplin, SwiftLint, Slack, Android Studio, Visual Studio

Paradigms

Functional Reactive Programming, Model View ViewModel (MVVM), Agile Software Development, REST, Test-driven Development (TDD), Protocol-oriented Programming, Unit Testing, Model View Presenter (MVP)

Platforms

iOS, Android, MacOS

Other

Code Review, Architecture, Mobile App Development, ActiveAdmin, CanCan, Robot Operating System (ROS), SIMD, Simultaneous Localization & Mapping (SLAM), Robotics

Frameworks

React Native, Redux, Mockito, Ruby on Rails (RoR), Viper, Factory Girl

Storage

SQLite, PostgreSQL

2009 - 2014

Bachelor's and Master's of Technology Degrees in Energy Science (Minor subject: Electrical Engineering)

Indian Institute of Technology (IIT) Bombay - Bombay, 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