profile-pic
Vetted Talent

Aryan Agrawal

Vetted Talent

As a self-taught programmer and guitarist, I have honed my skills through determination and hard work. I am proud to say that I'm also paying my own college fees, purchased my own MacBook Air and saved money to cure my body issues without any financial or emotional support.

My diverse background includes past experience as a dancer, painter, author, Tabla player, and chess player. I approach every opportunity with a passion for creativity and a love for spreading happiness and positivity.

I am excited to use my skills and experience to contribute to any team I am a part of. Whether it's developing innovative solutions as a programmer or creating beautiful music as a guitarist, I am committed to excellence and always strive to exceed expectations.

Thank you for taking the time to learn more about me. I am eager to connect and explore new opportunities that align with my values and passions.

  • Role

    Full Stack & Web3 Engineer

  • Years of Experience

    3.3 years

Skillsets

  • JavaScript - 3 Years
  • Express Js - 3 Years
  • Mongo DB - 3 Years
  • AWS - 1 Years
  • Node Js - 3 Years
  • React Js - 3 Years
  • Type Script
  • Tailwind CSS
  • REST API
  • Redux
  • react - 3 Years
  • Python3
  • Node
  • Next Js
  • Mongo DB - 3 Years
  • Amazon Web Services
  • HTML5
  • Google Cloud Platform
  • Github
  • Git
  • Git
  • Flutter
  • Firebase
  • Figma
  • Docker
  • Dart
  • CSS3
  • C
  • C
  • Azure

Vetted For

9Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Full Stack Engineer (Remote)AI Screening
  • 58%
    icon-arrow-down
  • Skills assessed :MeteorJS, Jenkins, Problem Solving Attitude, React Native, AWS, JavaScript, Mongo DB, React Js, Backend (Python/ Java/Node)
  • Score: 58/100

Professional Summary

3.3Years
  • Jun, 2025 - Nov, 2025 5 months

    Full Time Associate Platform Engineer

    Fundfina
  • Jun, 2024 - May, 2025 11 months

    Full-stack Developer

    Fundfina
  • May, 2023 - Nov, 2023 6 months

    Full Stack Engineer

    Bestfares365
  • Jan, 2023 - Jan, 20241 yr

    Full Stack Engineer - I (Full-time)

    Settyl
  • Feb, 2023 - Feb, 2023

    Web3 Developer

  • Mar, 2023 - Mar, 2023

    Frontend Developer

  • Aug, 2022 - Dec, 2022 4 months

    Full Stack Engineer - I (Internship)

    Settyl
  • Nov, 2021 - Jan, 2022 2 months

    Office Automation Engineer

    BalajiNPro Solutions

Applications & Tools Known

  • icon-tool

    Adobe Premiere Pro

  • icon-tool

    Canva

  • icon-tool

    Google Sheets

  • icon-tool

    Google Forms

  • icon-tool

    Calendly

  • icon-tool

    VS Code

  • icon-tool

    Netlify

  • icon-tool

    Play Store

  • icon-tool

    Android Studio

Work History

3.3Years

Full Time Associate Platform Engineer

Fundfina
Jun, 2025 - Nov, 2025 5 months

Full-stack Developer

Fundfina
Jun, 2024 - May, 2025 11 months
    Built CreditGPT - an AI banking assistant handling 200+ daily queries with 85% accuracy using LangGraph.js, LangChain.js, and RAG integration. Integrated Muthoot Finance APIs serving 50K+ users, reducing manual processing time by 70% using React, Node.js, and MongoDB. Developed white-label loan portal with 12+ third-party API integrations, reducing loan approval time by 40% and increasing throughput by 3x. Optimized 15+ legacy APIs, boosting response times by 60% and reducing server load by 45% for real-time loan status tracking. Created multilingual UX wireframes supporting 5 regional languages, resulting in 30% increase in user engagement metrics. Established UPI Autopay documentation on Confluence and optimized 8 Jira workflows, cutting project delivery time by 25%.

Full Stack Engineer

Bestfares365
May, 2023 - Nov, 2023 6 months
    Engineered flight booking platform with MERN stack handling 500+ daily searches with 99.7% uptime. Integrated Amadeus Flight API, processing 300+ booking requests daily with 99% success rate and 2.5-second average response time. Developed 30+ static pages and custom dashboards for different user roles, increasing operational efficiency by 55%.

Frontend Developer

Mar, 2023 - Mar, 2023

Web3 Developer

Feb, 2023 - Feb, 2023
    Built 2-page application with MetaMask integration, reducing authentication time by 75% and improving security metrics. Implemented blockchain wallet authentication system, decreasing unauthorized access attempts by 98%.

Full Stack Engineer - I (Full-time)

Settyl
Jan, 2023 - Jan, 20241 yr
    Mentored 6 interns through configuration of development environments, reducing onboarding time by 40%. Conducted 50+ technical interviews, improving team quality metrics by 35% and reducing turnover by 20%. Renegotiated mapping API costs with 3 major vendors, saving $12,000 annually while increasing service quality. Identified critical Redis bug causing 23% of container crashes, preventing $1,500 loss, and secured $2,000 in startup benefits. Implemented Tailwind CSS and Ionic, reducing development time by 25% and improving UI responsiveness by 40%.

Full Stack Engineer - I (Internship)

Settyl
Aug, 2022 - Dec, 2022 4 months
    Built Driver Connect mobile app using Flutter and GetX, serving 1,200+ truckers with 4.6/5 star rating. Led 15+ testing sessions improving code quality metrics by 30% and reducing post-release bugs by 65%. Implemented 8 industry best practices, resulting in 92% user satisfaction rate and 40% reduction in support tickets.

Office Automation Engineer

BalajiNPro Solutions
Nov, 2021 - Jan, 2022 2 months
    Automated data extraction from 20,000+ documents in 10 minutes, reducing manual processing time by 95%. Implemented 5 Python modules for data processing, increasing accuracy from 68% to 96% and saving 160+ work hours monthly. Trained team of 8 colleagues on automation tools, resulting in 70% adoption rate and 40% productivity increase.

Major Projects

14Projects

Bestfares365.com.au

Jan, 2023 - Jan, 2023
    Find and book cheap flights and get more from bestfares365 history and favorites to make your search more exciting.

Hardique Dasore Portfolio

Jan, 2023 - Jan, 2023
    It is a portfolio of a Sydney, Australia based web developer.

Freight Booking

Jan, 2023 - Jan, 2023
    Developed solutions for OTR-RFQ, OTR Booking, Rate Card, My Bids Modules.

Supplier Engagement

Jan, 2023 - Jan, 2023
    Developed solutions for RFI, RFI Response, RFQ and My Bids Modules.

Warehouse Engagement

Jan, 2023 - Jan, 2023
    Developed solutions for Warehouse Design, Picking/Packing and Order Picking Modules.

Driver Connect Mobile App

Jan, 2022 - Jan, 2022
    Driver Connect is an easy to use app for the trucking industry to manage FTL, LTL and package shipments.

Eduphore IAS

Jan, 2022 - Jan, 2022
    Eduphore IAS. Best IAS institute Innovative teaching skills Daily current affairs Regular test, seminars and interview sessions.

WorldOfEconomics

Jan, 2022 - Jan, 2022
    World of Economics is the only institution in the tri-city of Chandigarh which has specialisation in the Economics and the exams related to the subject.

IMAGE TO EXCEL AUTOMATION

Jan, 2021 - Jan, 2021
    A CLI Application that Read Images, arrange its data and automatically fill data in correct cell of excel.

WINDOWS AUTOMATION

Jan, 2021 - Jan, 2021
    An Automation software that automates a complete KYC GUI Applica- tion.

Hidden Quiz

Jan, 2020 - Jan, 2020
    A Trivia Mobile App to know about yourself just by answering some questions.

Modern Dialer

Jan, 2020 - Jan, 2020
    A Dialer Mobile App to call anyone in your contact list with Neumorphic Design Pattern.

Delight App

Jan, 2020 - Jan, 2020
    A Mobile Based Cloud Video Conferencing App.

BMI Calculator

Jan, 2020 - Jan, 2020
    A Simple BMI Calculator with Neumorphic UI.

Education

  • Bachelor of Computer Applications (BCA)

    Chandigarh University, Punjab (2025)
  • HSC/ Science ( Science)

    Radha Krishna college, Ramgarh Cantt (2020)
  • HIGH SCHOOL

    RPCSVM, Ramgarh Cantt (2018)

AI-interview Questions & Answers

So, I'd be happy to help you understand more about my background by giving a brief introduction of myself. I have worked on most of the React projects, Monstack projects, and I have also worked on some mobile projects. For example, I majorly worked on Flutter applications. I have also required those applications. I have also required a lot of React applications, the full stack applications, not just React applications. I have worked on Node.js, MongoDB. I've also worked on Figma and all these things. So, basically, I have worked in a startup for one point six years. And, as an intern, six months as an intern, then one year as a full-time employee, then I switched my job to another company. There I worked for ten months. Then I created some AI projects. The name of the project is CreditGibberty, which is a charity for banking institutions, but that are full, very custom data and very personalized data. Yeah. Like, these are the projects I have worked on. I also worked on Figma projects in my company. I delivered designs. I have also contributed a lot of open-source projects and worked with a lot of international scientists. So, these are the projects I have worked on. And, I also worked on a lot of freelance projects, contract basis projects. And I have also guided a lot of interns, and they took, like, more than 15 interviews. And, like, all of the projects, basically, you can find on my resume. So, that's it for my introduction.

You have the following query on your MongoDB. The query order. I mean, the performance is slow. Okay. How can you optimize this query? Okay. First is finding the customer ID. Another is also finding the total amount is greater than one hundred. The db order is 5125. Sort. So what I can see, like, all of these in making query in order collection with the same customer ID here. So, basically, it will create three different requests to the same collection for the same person. So what I will do, I will combine all this query into one query. So just make 1dv.order.find with customer ID and combine all this query in one statement, and it will be optimized. So there's the answer for me.

for instance, can the runtime complexity or port clarity be enhanced? Okay. We are passing two areas one intersection. Looping through this, looping through that. Checking if one is equal to the intersection. If it's not present in intersection, it includes array one. If the item is not present in intersection, push it here. And, basically, if it's not present, else it will get out. Okay? Is there anything we can improve for instance, kind of, complexity or for clarity of enhanced? actually, I can enhance a lot of things here instead of for loop here. I can use the dot map operator, which is more clearer. Because error dot one and accessing it with index I doesn't clarify that much thing. We have some good operators, good methods on array that are mapped, like, and for each. that can enhance the readability of the code. So with that, it will be more readable. Another thing I can improve is just give me one second. Actually, break doesn't make sense here because there's not a while loop. So, in any case, it will hit the break statement. So maybe I can remove the break statement, but just let me clarify why we did removing the break statement. If it goes if they are equal, okay, then it will just pause the, nested for loop. Okay. We don't need to remove the break statement then. It's fine. If they are equal, then, just move to the another element. So, yeah, the only the readability of the code I can improve with the dot for each or dot operator. Yeah. That's the answer for my side.

Has pairs with some pairs with some okay. Array target. Okay. It's going. It's going. Yes. Close. Then it's going. I plus one. Okay. You connect index to the. Okay? One area is going from all the elements. Another is going from next element from the previous, from the outer element, outer loop. So if array I plus j, it's a previous element and next element is equal to target, return true. Can you identify an effective approach? Okay. Just give me one second for the effective approach. As well with some. A new binary search. I mean, actually, I can include the runtime complexity of this. Because we don't need, I guess, another loop here. If we just loop through the first element, for example, if I'm next element, false. Fair enough, it's false now. Some check. Just finding a pair with some. Okay. Actually, no. I can't really find an efficient way as of now on this code. Sorry.

Given the three are components, can you identify bad practices? So this implementation is okay. React of parent, concept message. That's fine. You state hello world. How are you doing? Okay. Return child return, grandchild message. Definitely, I can suggest. First, the thing is we should have a profile per component. So in a one file, you have mentioned the parent, child, and grandchild, everything here. So and it's exporting by default parent only. So we should avoid that. We should create per component, per file. And the next thing would be, in the function grandchild, it should be a smaller case called it's just returning it's a helper function, and React component should be named in past tense case. So and the function helper function should be named in camel case so that we identify whether it's a helper function or whether it's a component. So grandchild, we need to make something. If it's returning a component, then it's fine. But right now, I don't see anything if it's returning, so it's not good. And this thing, function child message here. Use status order. It has some default message. It's returning what? So this thing we can do up to three levels is fine. But if it's more than three levels, then we can use context API. If anything changes in the message, and then all the components, I'll grant you, and we'll get 300. So that's what we can improve. And, yeah, these are the things basically to improve as of now.

In this notice, because of a fragment, we are handling an API request that spots a potential security or performance vulnerability concerning the handling of user codes. How do you mitigate the issue? Get the user ID. Request the response user, await the user to find by ID. The ID returns the user, after which you review the user by ID. Sometimes the user contents can contain a password in their database, which is hashed, but we still don't consider sending it to the client side. So we shouldn't send the whole object to the user. We should send only what's necessary. And I see there's no authentication middleware, which is another thing. We should implement it so that only the actual user can pass their ID and get the details. So it's a very big vulnerability in this API. We should definitely avoid this thing. You should add an authentication middleware so that not anyone can pass the ID here and get access. And also, we should wrap this thing and try to catch any block. It's a good practice because sometimes the request, I mean, our HTTP query, can fail with different network issues or maybe some type issues or maybe the method issues or anything. So this is the thing. I told you three things: add an authentication middleware, wrap the thing and try to catch any block, and add a return statement before the rest so that it won't go to the next line. That's four things we can add.

Component has some issues. Can you verify them? React to use that use state function counter. Use that. Okay. Console log count updated. Increment. The assumption is update this decrement. Count is greater than zero. Okay. The code is not rendered correctly here. There is some issue with the code render. So, but still, I can assume two things. Just a second. First thing they missed is the dependency array and user type. So whenever it gets rendered, it will just print 'account updated'. So whenever this component gets rendered, it will print the 'discount updated count'. We should only want the log, basically, when we actually update the counts. Right? So we need to create a dependency here, which is an array. And inside that array, we need to put 'count' here. So as we put 'count', so whenever we update, increase or decrease, then it will be fine. So the dependency part is missing here. Yeah.

How would you avoid callback hell? Okay. In a complex while still handling a synchronous operation, callback hell is a problem. While it's still handling asynchronous operations, maybe I can think of it as a recursion function, and I can add edge cases. So, on certain cases only, then it will call the callback function. It won't, I'm handling, I'm just running an asynchronous operation. We use async and await, so we have much more control over the code, and we can just use if and else. Still, I need to see some example of callback hell to better understand it, because I'm not aware of this particular technology.

If a is not there, return zero. Yes. Again. Total number of occurrences of target. First thing we can improve here is instead of directly checking the length, there is a method. Array.isArray is array. We need to check whether it's an array or not. If it's not an array, then we can return zero. Maybe a bad function. We can return zero instead of just returning nothing. It's better to return zero. Like, there is no occurrence of it. It tells more. If it's not an array, we can just return zero. Array.isArray(a) and check whether it's an array or not. If it's not an array, we will just return zero. Instead of bar, we can use 'l' because 'l' is less dedicated, and it's advised to use 'l'. I < a.length; i++ if (a[i] === b) This will also check the data type also. We should not use a global variable like this global val. It's not a good practice. Because maybe another function will modify it, and this happens. So we should avoid using it. Inside the bad function scope, we should put this 'val' variable. That's how it should increase the global 'val' variable. And when it gets increased plus equal to b, wait. Just a second. If a[i] is equal to b, it will be equal. We shouldn't increase it by one, not by the target value because if the target value is like, the question here is we need to give the occurrence of it. And if we increase the target value, which is b, then this is randomly increase to any value. Right? Which increase it with the one. Because we are, like, basically counting things how many it is have occurred. So we should just increment the value by one. Right? So these are the improvement we can make, and we can make it a good function.

Lens. Last question. Right? The following component has a bug when trying to update the state. Can you identify it? Trying to update the state. Okay. Increase the time. Set count to set count. Okay. Remain twice. Okay. I can see here. Instead of using two count, first, we need to use only one. Another thing is, there in this method, we should not directly use the set count and update from its variable count. Use test count, provide this kind of function, provide a method where it provides a default argument of the previous state. So we should avoid updating the state from the previous state instead of directly using the count variable. The better function would be if you want to increment it twice, then just use a set count inside the increment twice function. Use a set count and pass it a function of previous, as an argument, which will give you the previous state and use previous, returning it with three plus two. So it will just increment it twice. In this, it will perform some issues in batching. It will increase this thing and delay the other part. So it will cause some issues in batching performance. So batching and this, that. That's why it will cause some issues here. So if you do what I suggested, then it will just work. Yeah. So that's it.