
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 am. I'm located in Rajkot, Gujarat, and I have six years of experience in the main stack technology, including Angular, Node.js, and AWS for deployment and cloud services. And also, I have experience with React.js as well. Thank you.
Yes. So Angular is a front-end framework, and Node.js, Java is a back-end framework mainly used as a back-end framework. And to facilitate interaction between front-end and back-end, I would use the API for the same purpose. Also, for a better experience. If it is required, we'll use session management as well using Redux. Also, for the smooth and better experience, I would implement HTTP interceptors for errors and validation. Let's suppose if a 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 of performance, and the UI part will be very smooth. That is also an important thing. Thank you.
Yes. Definitely. Angular is a single-page application. It won't reload or refresh the application whenever any interaction happens between the user and the UI. So to ensure a consistent UI, I will use a component, and I will also create a generic component that has multiple uses between components. Let's suppose the header is there and the footer is there. So it will be inconsistent within all the applications. So it will be a common component, and I will use the selector. And for a consistent UI, another thing I will do is declare the colors and theme, fonts, and a few reusable design elements as variables. So I will use those variables in my CSS.
Definitely. So, first, 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 a selector. So we always need to define a selector whenever we want to render the component. Now the template, for the template, is a basically a view part. The HTML part has a message. Whatever message we are having in the app component code snippet. So, message will be "hello". And style URL means it has a CSS file link. Now, what it will do is, whenever this component has been initialized, it will call the constructor method, but the constructor method is not there. So, after it will call the ng on init method. Ng on init is a method which will be initially called right after the component has been initialized. So, in the ng on init, we have declared the message value is equal to "hello" string. So, in the template, in the view, we'll be able to see "hello" as a string. Thank you.
I will use as I mentioned, I will use the in interceptors because as a safeguard, whenever the exchange data changes 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 a token or a secure key, whatever is required from the back end side. I always 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 take an example of a 401 unauthorized user. At that time, it is also helpful to execute that condition before the application has been initialized. So, as a safeguard, I will always prefer the HTTP interceptor.
Definitely. As a front-end developer, I will always keep using the debugger. And, I will use the console for JavaScript if it is required. Also, we have the debugger. So I will keep putting debug points whenever I have doubt. And first, I will read the error twice because many times, I have found that reading an error carefully without carefully, and we might miss the cause of the error. And I believe an error always gives us a hint as to what went wrong. So yes. After the state change, if I receive any errors, I would definitely debug what is coming into the variables or methods I have declared as new values. Whether the new value is coming from the state or not. That I will check first.
Definitely. This code snippet is for getting and recognizing whenever the phone has changed the value. So it will always keep calling whenever the phone is changing the value. So rather than we change, I would suggest using any event to use whenever the name has been changed or the event has been changed. Take custom events rather than keep checking on value changes because whenever we change a value within the name, it will keep calling the method, value changes. Other than, we can declare an event inside an input bracket, and then we can recognize whatever value has been changed.
It's using a normal angular component. And in that component, we have already declared the name. So in the template, it will directly render the name as a default value. And the design pattern I can say is an inline design pattern that has been used in this Angular code snippet. The styles URL has been there, which is in the app component's CSS file. So, basically, the welcome and name value of the name will be Angular. It will render "Welcome Angular" whenever this code snippet is executed.
Yes. As I have over five years of experience, the complex problem I've solved in Angular is basically the main problem I've identified, which is JavaScript not cloning the array. It always keeps changing the array rather than taking the new array. So, that's the main problem I've identified. I use the cloning of the array. Whenever I want to modify the array, I compare and modify the adjusted array only, and that's working fine. But comparing the older array with the new one is always a challenge. Also, with Angular, I faced a few complexities whenever strict declaration was applied. So, at that time, I solved this problem by declaring the types for the strict types of the response coming from the API or any object I'm making, that I've solved. And related to performance, yes, Angular is a bit slow in performance compared to React.js. So, for the performance, I always prefer to read Google's SEO rules and performance rules for a better user experience and better performance of the Angular application.
Definitely. I will keep ensuring that the reusable components have been created one time only, and it will be reusable within the subscribe, whenever the component has been initialized, then unsubscribe whenever the component has been destroyed. So it won't bother much. And another thing for high code quality is I will keep ensuring the meaningful names of variables, methods, and keep writing commands also. I will ensure that I won't write a duplicate code. I will always make a function, and I will use it reusably whenever it is required. And another high-quality code standard I would keep checking the negative stops as well as positive stops whenever our workflow has been completed. I will keep giving the proper validation to our UI whenever it's required, UI input fails, and I will keep testing the code. Also, I will keep using the minimal and standard flow of the code using letcons when to use, when to not use. I'm very much aware, so I will always take care of it.