Nikhil M, Developer in Chennai, Tamil Nadu, India
Nikhil is available for hire
Hire Nikhil

Nikhil M

Verified Expert  in Engineering

Bio

Nikhil has been a full-stack developer and senior software engineer for over nine years. He's skilled in translating his clients' requirements into fully functional, reliable services for various customers and industries, handling millions of data in the back end. He specializes in Ruby on Rails, Python, and JavaScript for front-end frameworks, web apps, database architecture, Linux servers, AWS, and Google Cloud Platform (GCP).

Portfolio

FreshBooks
Python, MySQL, JavaScript, HTML, CSS, REST APIs, Google Cloud Platform (GCP)...
Sparkfish
Python 3, APIs, Automation, Google Cloud Platform (GCP), React, SQL, MySQL...
Prince Law Offices
Ruby on Rails (RoR), Angular, Linux, Sidekiq, MySQL, Production, NGINX, Apache2...

Experience

  • Full-stack Development - 9 years
  • Python - 8 years
  • Ruby on Rails (RoR) - 8 years
  • Software Architecture - 7 years
  • Cloud Architecture - 5 years
  • Google Cloud Platform (GCP) - 3 years
  • Amazon Web Services (AWS) - 3 years
  • Technical Leadership - 3 years

Availability

Part-time

Preferred Environment

Linux, Visual Studio Code (VS Code), Slack, Windows, MacOS, Jira, Agile

The most amazing...

...project I've developed is a cloud-based internet radio service that handles the back end, UI, radio service, monitoring, and billing.

Work Experience

Software Engineer

2021 - 2022
FreshBooks
  • Collaborated and developed an OCR application to read customer expense receipts, resulting in a successful app release and follow-up enhancements. The service had 5,000 active users at any given time.
  • Built a bulk export feature for customers to export their receipts with attachments to be readable and parseable properly, leading to a significant reduction in support tickets for bulk export requests. Reduced requests to the support team by 90%.
  • Worked on multiple features to enhance the process of importing bank transactions into the accounting application for customers, leading to a considerable reduction in support tickets related to corrections in importing bank transactions.
Technologies: Python, MySQL, JavaScript, HTML, CSS, REST APIs, Google Cloud Platform (GCP), Ember.js, Fintech, Django, Django REST Framework, Flask, Kubernetes, Helm, Plaid API, Yodlee API Interface, Docker, Agile, Agile Sprints, REST, Front-end, Back-end, Jira, Web Development, Scalable Architecture, Database Modeling, Test-driven Development (TDD), Full-stack Development, Financial APIs, Financial Data, Web Services, Sass, OAuth 2, PostgreSQL, GitHub Actions, Datadog, Microservices Architecture, RabbitMQ, Front-end Development, ECMAScript (ES6)

Lead Software Developer

2019 - 2021
Sparkfish
  • Developed an AWS infrastructure to shift automation from legacy VBA and C# applications to a cloud-based infrastructure and the new codebase in Python, processing two terabytes of retail product data per week.
  • Added GCP-based functions and APIs to support Google accounts for tracking emails.
  • Made extensive use of Gmail and Google Drive APIs for processing incoming emails to particular company emails.
  • Used the Serverless framework and CloudFormation to automate deployment across multiple stages per automation flow.
  • Provisioned a secure Amazon API Gateway for external access to automation flows.
  • Developed a React-based serverless web app with an Amazon API Gateway back end to manage the configuration of automation flows.
Technologies: Python 3, APIs, Automation, Google Cloud Platform (GCP), React, SQL, MySQL, Production, Gmail API, Google Drive API, Python, HTML, CSS, AWS Lambda, Amazon S3 (AWS S3), Amazon Simple Queue Service (SQS), Amazon CloudWatch, Amazon Simple Notification Service (SNS), Serverless Framework, Amazon EC2, Amazon DynamoDB, Amazon API Gateway, Amazon Marketplace Web Service (MWS), Git, GitHub, Amazon Web Services (AWS), REST APIs, Databases, Agile, REST, Node.js, Express.js, Back-end, Front-end, C#, Visual Basic for Applications (VBA), Microsoft SQL Server, Technical Leadership, Architecture, Software Design, Web Development, Scalable Architecture, Full-stack Development, Serverless, Serverless Architecture, OAuth 2, Asana, Cloud Architecture, AWS Cloud Architecture, Front-end Development, Software Architecture

Senior Software Developer

2014 - 2021
Prince Law Offices
  • Created and updated Ruby on Rails web application from a legacy Rails web application for a law firm.
  • Updated the front end to a JavaScript framework from a server-generated front end.
  • Managed the maintenance and updates of applications from Ruby 2.1 to Ruby 2.7, Ruby on Rails 4.0 to 6.0, Bootstrap 3.0 to Bootstrap 4.5, AngularJS to Angular 2, and Angular 2 to Angular 11.
  • Created the functionality to generate, template, and automate documents from the creation process to client dispatch.
  • Developed an event management tool for the web application to manage user events and send reminder notifications.
  • Created a newsletter tool to create and send newsletter campaigns in the web application.
  • Implemented a reminder set up for multiple aspects of the web app, such as events, documents to be notified, and custom reminders with various delivery options.
  • Built a URL shortening tool and an Express.js application to process the shortened URLs using a short internal domain.
  • Managed the production implementation of the web application with NGINX and Phusion Passenger.
  • Led a team in the later stages to maintain, update, and add new features to the applications and manage production infrastructure.
Technologies: Ruby on Rails (RoR), Angular, Linux, Sidekiq, MySQL, Production, NGINX, Apache2, Systemd, Phusion Passenger, JavaScript, CSS, HTML, Ruby on Rails 3, Ruby on Rails 4, Ruby on Rails 5, Ruby on Rails API, Bootstrap, Bootstrap 3, FullCalendar, Ruby, Git, GitLab, TypeScript, RESTful Development, Sinatra, MongoDB, Redis, REST APIs, HTML5, Full-stack, Web Applications, Bootstrap 3+, Databases, Capistrano, jQuery, UJS, REST, Architecture, Software Design, Technical Leadership, Web Development, SSL Certificates, Database Modeling, AngularJS, Test-driven Development (TDD), Team Leadership, Remote Team Leadership, User Interface (UI), User Experience (UX), Sass, SCSS, Apache Solr, Twilio, Twilio API, Ruby Gems, Front-end Development, ECMAScript (ES6), Software Architecture

Software Architect

2017 - 2019
Services Cloudradio
  • Developed a Ruby on Rails web application to host cloud-based internet radio stations. End users could subscribe to create a radio station, deploy to available geographic regions, and embed clients as required.
  • Built a microservices architecture with Ruby on Rails and Angular that included the back end, monitoring service, UI, content delivery application, separate billing, and region-based radio service provision.
  • Led a team to decide on the tech stack, design the architecture, and develop the software services per the requirements and designs.
Technologies: Angular, Ruby on Rails (RoR), Sidekiq, Linode, MySQL, Production, NGINX, Phusion Passenger, Google Chart API, JavaScript, CSS, Ruby on Rails 5, Ruby on Rails API, HTML, APIs, Intuit QuickBooks, RRD, RRDtool, Automation, Stripe, Stripe API, Ruby, Git, GitLab, TypeScript, Microservices, RESTful Development, Memcached, Redis, REST APIs, HTML5, Full-stack, Bootstrap 3+, Web Applications, Databases, REST, Back-end, Front-end, Metrics, AWS CloudFormation, Scalable Architecture, Architecture, Software Design, Web Development, Database Modeling, Distributed Systems, OAuth 2, Data Visualization, Ruby Gems, Slack, Slack API, Slackbot, Cloud Architecture, Microservices Architecture, Front-end Development, Software Architecture

Experience

OCR Application for Processing Receipts

https://www.freshbooks.com/receipt-scanner
A Python Django-based application with Celery background processing used to process receipts and bills for users to extract accounting information and operate it in the overall system. Users could:

• Review the extracted results before approving the information to be stored in the system, which would automatically be entered into their accounting books.
• Upload the receipts by web or mobile.
• Email the receipts to be processed.

The production infrastructure, including monitoring, was set up using Terraform. The deployment was done to a Kubernetes cluster using Flux CD for continuous deployment, and GitHub Actions were also used for CI/CD processes.

Internet Cloud Radio Stations

https://www.cloudrad.io/
A cloud service to provide customers with web hosting for internet radio stations and an embeddable UI for their listeners. This was designed as a microservices architecture that included the following:

• An Angular UI for customers to sign up and create and manage their radio stations, schedule offline and live programs, create live stream options, and design their embeddable players for listeners
• A Ruby on Rails back end for the above UI to process requests and call other services to perform necessary actions with MySQL as the centralized database
• A Ruby on Rails and Sidekiq app to manage billing subscriptions, recurring billing, and suspension and termination of services with Quickbooks as the accounting back end with third-party integration
• A radio station hosting setup on multiple global locations using Express.js-based applications in each server to manage radio stations
• A Rails and Memcached-based CDN service to provide embeddable players
• A monitoring service using RRDtool to collect analytics on radio stations' listeners where the data was visualized as metrics, tables, graphs, and geo charts
• A monitoring service to scan the infrastructure and raise alerts if any issue arises

AWS Automation Flows

An extensive set of AWS automation flows processing around 2TB of data per week for a retailer. This comprised AWS Lambda, Amazon Simple Queue Service (SQS), and an AWS CloudWatch cron. AWS CloudWatch dashboards were created displaying metrics, with graphs and alarms to notify tech of any issues. The deployment was done using Serverless Framework and AWS CloudFormation, and the codebase was written in Python.

Automation for Internal Flows for Customers

I composed scripts to automate internal flows interacting with an organization's customers.

The scripts included automated campaigns through email and SMS with the specific configuration, an automated script to onboard customers to Intercom periodically, and notifications for each script status, which were also sent to Slack.

Web Application for a Sales Team

I developed a web application for a company's sales teams. It helped users to manage multiple sales teams and a list of their members; each member has a specific role. Each sales team belongs to a specific department.

The app also included event management, including attendee management for each event. Each sales team can be assigned goals with progress tracked. We also provided a trophy system that could be assigned to users based on individual achievements.

The app has an overall dashboard to track different types of progressions and track statistics of sales. The app also provides a way to send memos and announcements to team members or the entire organization. The memos and announce follow the viewer count. The app periodically pulls a team member's sales statistics from an external SOAP API into the web application.

Desktop Application for Smart Classroom Content

I built an Electron-based desktop application with a Ruby on Rails back end. The application is used to present and view the content for classrooms. It also supports editing content by admins and includes integrated support to call on-site personnel for support issues.

The front end of the desktop application was built using Angular. The front-end media player for certain content was enabled through an integrated VLC-based plugin as a Java application.

AWS Web Application

A secure serverless web application to configure an AWS infrastructure environment based on day-to-day evolving business changes by non-tech personnel. The AWS infrastructure ran daily business-critical automation flows for a retail company. The non-tech personnel used the results of the automation flows for business decisions.

This application used AWS Lambda written in Python for the back end, Amazon API Gateway as the HTTP interface, React for the front end, and AWS S3 for hosting. The deployment was handled using Serverless Framework.

Manual Bank Reconciliation for Accounting Software

Manual bank reconciliation processes for accounting software created in Python Flask to add to the existing automated bank reconciliation processes. These were meant for customers who needed to edit and add bank transactions before reconciling them, especially for old transactions. Options were also provided to bulk upload transactions.

Bulk Export for Accounting Software

A Python Flask-based bulk export setup done as part of an existing Flask application to allow users to bulk export their expenses or bills in accounting software. Previously, the support team had to manually handle any request for such export.

Web Application for Tracking Fitness

I developed a web application that tracks the fitness regime of users with respect to physical exercise.

The app also provides a comprehensive set of exercises that are categorized by the muscles affected. Users can add their own set of exercises, select from built-in sets of exercises, set a schedule, and track their progress periodically. Notes for each workout session can also be added to keep track of things to remember.

Web Application for Employee Directory

I developed a Ruby on Rails-based web application with a Bootstrap-based UI. This application managed the employee information for an organization across multiple locations and is accessible to employees. Employees could also upload documents related to organization policies and related activities. All employee data was searchable by location, name, or role. Documents were made searchable by name or tags such as HR.

Web Application for Event Management

I made a web application to manage activities and events associated with them. The activities have several events associated with them, with each activity managed by a coordinator and consultants. The app has provisions for managing and viewing documents related to each activity and compliance required. Each activity has evaluations to be tracked as well. The app also tracks the progress of the activity. An analytics dashboard is present to provide insights into all activities.

Web Application for Tracking Sessions (White-label)

I built a web application that tracks a series of sessions attended by users.

The session attendance and other information are imported through a spreadsheet manually and through automated import URLs periodically. The users can check each session's status, date, and other information and verify them. The users can raise discrepancies, if any, which are checked and verified by admin users. The application has the ability to export the latest data into a spreadsheet.

Education

2010 - 2014

Bachelor's Degree in Electronics and Communication

Anna University Affiliated College - Chennai, Tamil Nadu, India

Certifications

JANUARY 2022 - PRESENT

Postgraduate Diploma in Machine Learning and Artificial Intelligence

IIIT Bangalore

Skills

Libraries/APIs

Sidekiq, Ruby on Rails API, REST APIs, React, Slack API, jQuery, Node.js, Gmail API, Google Drive API, Mailchimp API, Google Chart API, Amazon Marketplace Web Service (MWS), Stripe, Stripe API, Plaid API, Yodlee API Interface, QuickBooks API, Google Geochart API, Chart.js, Twilio API, Intercom API

Tools

NGINX, Git, Amazon Simple Queue Service (SQS), Amazon CloudWatch, Passenger, GitHub, GitLab, Capistrano, Terraform, ChatGPT, Claude, Slack, Skype, Systemd, Amazon Simple Notification Service (SNS), FullCalendar, RRD, RRDtool, HipChat, Helm, Jira, AWS CloudFormation, Apache Solr, Asana, Mailchimp, RabbitMQ

Languages

JavaScript, HTML5, CSS, Python 3, Python, HTML, Ruby, SQL, TypeScript, ECMAScript (ES6), PHP, C#, Visual Basic for Applications (VBA), Sass, SCSS

Frameworks

Ruby on Rails (RoR), Angular, Bootstrap, Ruby on Rails 5, Bootstrap 3+, Serverless Framework, Ruby on Rails 4, Bootstrap 3, Ruby on Rails 3, Ember.js, Django, Django REST Framework, Flask, Express.js, OAuth 2, Bedrock, Electron, Sinatra, AngularJS

Paradigms

Automation, Test-driven Development (TDD), RESTful Development, REST, Serverless Architecture, Microservices, Agile, Desktop App Development, Microservices Architecture, Desktop Web Design

Storage

Databases, Database Modeling, MySQL, Amazon S3 (AWS S3), Amazon DynamoDB, PostgreSQL, Redis, MongoDB, Memcached, Microsoft SQL Server, Datadog

Platforms

Linux, Google Cloud Platform (GCP), Linode, Phusion Passenger, AWS Lambda, Amazon EC2, Amazon Web Services (AWS), Kubernetes, Docker, Visual Studio Code (VS Code), Windows, Apache2, MacOS, Twilio, Desktop

Other

APIs, Full-stack, Web Applications, Production, Front-end, Back-end, Architecture, Software Design, Web Development, Scalable Architecture, Full-stack Development, Serverless, Data Visualization, Ruby Gems, Front-end Development, Software Architecture, Amazon API Gateway, Fintech, Agile Sprints, UJS, Technical Leadership, SSL Certificates, Financial APIs, Financial Data, GitHub Actions, Slackbot, Cloud Architecture, AWS Cloud Architecture, Intercom, Computer Science, Web UI, Embedded Hardware, Embedded Software, Digital Electronics, Microcontroller Programming, Intuit QuickBooks, Data Science, Machine Learning, Neural Networks, Recurrent Neural Networks (RNNs), Convolutional Neural Networks (CNNs), Data Reporting, Metrics, Team Leadership, Remote Team Leadership, Web Services, Distributed Systems, User Interface (UI), User Experience (UX), PayPal

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