
I'm a Software developer with 6+ years of experience in building quality Web/Cloud-based products, SaaS tools, LMS, CRMs, and many more Custom web-based products.
I have Expertise in the web development lifecycle from planning to developing to deploying using MEAN/MERN technology & have built high-performance and agile team of developers.
Senior Software Developer
ownAI SolutionsTech Lead
ownAI SolutionsSoftware Developer
Solution Analysts PVT LTD
Javascript

TypeScript

Angular
Node.js

React

ReactJS

Express.js
AWS (Amazon Web Services)

MongoDB

MySQL

tailwind css

Bootstrap

Redux

axios

QuickBooks

Twilio

Sendgrid

Mailchimp

AWS

GCP

Visual Studio Code

Git

BitBucket
Jira

Trello

Asana

PostgreSQL

GitLab
Currently working as a tech lead at ownAI Solutions
Here at ownAI...
I joined the organization as a fresher and I got trained in MEAN Stack technology.
Gargi is a very talented developer and one of the most good-natured and ethical people we've worked with. It was an absolute pleasure to have her on the team. Due to circumstances and resource constraints, we had to part ways for now, but definitely will consider engaging her again should circumstances change in the future.
Gargi is a very professional and motivated developer. She has a clear vision/perspective on development. We have had very constructive and productive discussions enabling us to improve development practices and tools used which lead to very good output. We were all able to grow and improve ourselves. Communication and planning was very easy with Gargi. Gargi has created multiple microservices, our NodeJS backend is good to go! I highly recommend her.
I am very satisfied with the cooperation and attitude towards the task. There were no delays or waiting, everything we asked for was done very professionally. I am very satisfied with the final product and I would recommend the developer for cooperation. She is very kind, precise and accurate.
Gargi has been wonderful to work with, and we have no hesitation in recommending her to anyone needing a high quality full stack developer.
When starting our project, we provided Gargi with our design document and she was able to give us a comprehensive budget and timeline of delivery milestones.
We began development and Gargi's communication during each step in the process was excellent, and the quality of her work was always first class.
Each milestone of the project was delivered on time and on budget, and we were able to go live with our client query tracking application exactly when we needed to.
All of our queries and requests for small refinements to the user interface design during the development process were always dealt with promptly and to a very high standard.
We are very grateful to have had the opportunity to work with Gargi and won't hesitate to engage her again should we need any further work done on our existing application, or if we need to build any other new web applications in the future.
Project Description:
MaximumLife is built to maximize life by achieving different goals with the help of different professional coaches. This is the digitally transformed platform where people find the right coach for their various goals. On this app NLP coaches, Life coaches, Hypnosis coaches, Fitness/Nutrition coaches, psychotherapists, and business coaches actively guide people to achieve all their dreams & goals they defined for their life.
My Role:
I have led the whole team & have helped in building the multitenant back-end architecture.
Features:
Technology Stack:
Description:
A completed digital training platform efficiently with accurate tracking & management of virtual training. It has the ability to handle everything related to training in one web-based software or in other words in one web application.
Training records management, handy courses, materials & library, easy to track progress and get quick guidance through the efficient channel with professional tutors. A complete time-saving and easy-to-use training software to train & to get trained.
Role: Tech Lead
Overview of the Project:
CloudExt is a cloud telecommunication business management Next Gen tool (Cloud PBX) for hotels and similar businesses.
CloudExt has the ability to manage hotel devices that are used to communicate within the hotel as well as outside the hotel. There are almost every feature covered in this software such as Devices, Extensions, Ring groups, Voice mails, Wake-up calls, Call records, Fax, Phone numbers, Porting, Domains, and many more.
Another side of this web-based software is, an effective and coherent CRM to manage Leads, Sales, Subscriptions, Invoices, Payments, Inventory, Support Tickets, Roles, and Permissions. To add more to the admin side, it has also the facility to track the Shipment, Installation, and Training records.
This PBX cum CRM is also efficiently managing the different notifications such as Email, Real-time Push notifications, and SMS.
My Role:
Tech Lead. Back-end Architecture Building.
Yes. Definitely. I, myself, is. I'm located into Rajkot, Gujarat, and I do have a 6 years of experience into main stack technology, Angular, Node. Js, AWS as well for the deployment and cloud services. And, also, I do have some Experiencing to react. Js as well. Thank you.
Yes. So Angular is a front end framework, and the Node. Js, Java is a backend framework mainly used as a backend framework. And to inter interaction between front end and back end, I would use the API for the same purpose. Also for the better experience. If it is required, we'll use the session management as well using the Redux. Also, uh, for the smooth and better experience, I would implement the HTTP interceptors for errors and validation. Let's suppose if user's session is timed out and we want to auto refresh the token, at that time, it will be helpful. So for the fact that user experience will take care about the performance, end. Also, the UI part will be very smooth. That is also an important thing. Thank you.
Yes. Definitely. Um, Angular is a single page application. It won't reload or refresh the application whenever any interaction happens between the User into UI. So to, uh, consistent for the consistent UI, I will use a component, Um, and I will also create a generic component which has a multiple usage between the, Um, component. Let's suppose head is there, footer is there. So it will be inconsistent, uh, within the all the applications. So it will be Um, a common component, and I will use using the selector. And for the consistent UI, another thing I will do is I will read I will declare the Colors and theme, fonts, and a few reusable design stuff as a variable. Um, so I will use the as a, uh, that variables into my CSS and
Definitely. So, first, it it is declared as a hashtag component. What does it mean is This whatever the code is having is for the component. Now we want to reuse the component anywhere. We'll use using the selector. So we always need to define a selector whenever we want to render the component. Now the template so for the template, Uh, is a basically, a view part. The HTML part, it has a message. Whatever message we are having into a app, uh, app component, uh, code snippet. So message will be hello. And style URL means it has a CSS file link. Now Uh, what it will do is by whenever this component has been initialized, it will call the constructor method, but constructor method is not there. So after it will call the ng on init method. Ng on init is a method, uh, which will be initially called right after the component has been initialized. So in this n g on init, we have declared the message value is equal to hello string. So in template, in a view, we'll be able to see the hello, hello as a string. Thank you.
I will use as I mentioned, I will use the in, uh, interrupt, uh, interceptors because as a safeguard, whenever interceptor will work as a filters, whenever the exchange data change is happening between the front end and back end. We always need to keep sure about our authentication. So for that, I will always pass token or a secure key, whatever it is required from the back end side. I always, uh, use the interceptor to keep checking whether I'm sending the right data from the front end and also whenever we get a response from the back end. Let's oppose and example of a 401 unauthorized user. At that time, also, it is helpful to, get executed that condition before the application has been initialized. So, uh, as a safeguard, I will always prefer the HTTP interceptor.
Definitely. As a front end developer, I will always keep using the debugger. And, always, I will use the, uh, console for the JavaScript, uh, if it is required. Also, we have the debugger. So I will keep putting the debug points whenever I have doubt. And first, I will first of first step will be that I will keep reading the error twice because many time, I have 1 we, uh, read error, uh, careful without carefully, and we might miss the cage, whatever error is trying to say to us. And I believe error is always having their own, um, giving a heat all hint always to us that what get fails. So yes. And, uh, after the state change, if I will receive any errors, I would definitely debug first what is coming into, uh, the variables or methods which I have declared as a new value. Whether the new value is coming, tell the state is getting changed or not. That I will check first.
Definitely. Uh, this code is this code snippet is for, uh, getting I mean, recognizing, Uh, whenever the phone has, uh, changing the value. So it will it will always, uh, keep calling, uh, whenever the phone is, uh, changing the value. So rather than, uh, we change, uh, rather than I would suggest, Any event to use whenever the name has been changed or the event has been changed, Uh, take custom events rather than, uh, keep checking on value changes because whenever we change A value within the name, it will, uh, keep calling the the method, value changes. Other than, we can declare a event, uh, inside a bracket is input, and then we can recognize whatever value has been changed.
It is using, um, normal angular component. And in that component, we have all all the way already declared the name. So in the template, It will directly render the name, uh, as a default value. And, uh, the design pattern, I can say, It is a inline design pattern that has been used into this Angular code snippet, And, uh, the styles URL has been there, uh, which is into app component dot CSS file. So, basically, yes, uh, the welcome and name the value of the name will be Angular. So it will render Welcome Angular. Whenever this code of snippet will be executed.
Yes. As I'm having a 5 plus years of experience, the complex problem I have solved, in a Angular razor, basically, the main problem I have, identify the JavaScript is, uh, you know, not cloning the array. It is always keep changing the array, rather than, you know, uh, taking the new array. So that's the main problem I have identified. So I use, uh, uh, the cloning of the array. Whenever I want to modify the array, compare and modify the adjust only modify the array. That is working fine. But compare and modifying comparing, uh, the older array with new one, it is always a challengeable. Also with the angular, I, uh, faced a few complexity whenever, uh, into a strict declaration has been applied. So at that time also, uh, I have solved this problem using, uh, declaring the types for the strict types for the response coming from the API or any object I'm making, that is I have solved. And related to performance, yes, Angular is a bit slow in per is a performance rather than React. Js. So for the performance, I always, prefer to read the Google, uh, SEO rules and performance rules for a better user experience and better performance of angular application, uh, into
Definitely. I will keep, uh, ensure that the reusable components has been created one time only, and it will be reusable, uh, within the subscribe, whenever component has been initialized, then, uh, unsubscribe whenever the component has been destroyed. So it won't bother much. And, uh, the another thing for the high code quality is I will keep ensuring the meaningful names of the variables, methods, and keep writing the commands also. I will ensure that I won't write a duplicate code. I will always make a function, and I will use it, uh, dupe I mean, uh, reusably whenever it is required. And another high quality code standard I would keep checking, uh, the negative stops as well as positive stops, uh, whenever our workflow has been completed, I will keep giving the proper validation to our UI whenever it is required UI, uh, input fails, and, uh, I will keep testing the code. Uh, also, I will keep using the minimal and, uh, standard flow, uh, of the code using the letcons when when to use, when to not use. I'm very much aware, so I will always take care of it.