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 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

3Years
  • Jun, 2024 - Present1 yr 4 months

    Full Stack Engineer

    Fundfina
  • May, 2023 - Nov, 2023 6 months

    Full Stack Engineer

    Bestfares365
  • Feb, 2023 - Feb, 2023

    Web3 Developer

    Freelance
  • Jul, 2022 - Sep, 2022 2 months

    Full Stack Developer

    Eduphore IAS
  • Aug, 2022 - Dec, 2022 4 months

    Full Stack Engineer Intern

    Settyl Corporation
  • Jan, 2023 - Jan, 20241 yr

    Full Stack Engineer - I

    Settyl Corporation
  • 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

3Years

Full Stack Engineer

Fundfina
Jun, 2024 - Present1 yr 4 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%.

Web3 Developer

Freelance
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

Settyl Corporation
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 Intern

Settyl Corporation
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.

Full Stack Developer

Eduphore IAS
Jul, 2022 - Sep, 2022 2 months
    Created web application serving 3,000+ monthly visitors with Next.js and Node.js, deployed on Amazon EC2. Implemented DynamoDB with 40+ data schemas, reducing query times by 65% and storage costs by 30%. Optimized page load time by 75% through server-side rendering, resulting in 45% longer session durations.

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

Okay. Uh, could you help me understand more about, uh, your background by, uh, giving brief introduction of yourself? Yeah. Sure. So I'm, and I have worked on basically, uh, most of the React project, Monstack projects, and I have also worked on, uh, some mobile projects. For example, uh, I'm majorly worked on Flutter applications. I have also required those application. I have also required, um, a lot of, uh, React application, the full stack application, not just React application. I have worked on Node. Js, MongoDB. I've also worked on Figma and all these things. So, um, um, basically, I have worked on in a startup for, like, one point six years. And, uh, as an intern, like, six months as an intern, then one year as a full time employee, then I switched my career. Uh, not career. Basically, I switched my job to other company, which is. There I worked for ten months. Then there I created some AI projects. Um, the name of the of the project is CreditGibberty, which is a charity for banking institution, but that are full, very custom data and, uh, very personalized data. Yeah. Um, like, these are the projects I have worked on. I also worked on Figma projects in my company. I deliver design. I have also, uh, contributed a lot of open source projects and, um, uh, worked with a lot of, uh, international science. So these are the projects I have worked on. And, um, I also worked on a lot of freelance projects, uh, contract basis projects. And I have also guided a lot of interns, and, um, they took, um, like, more than 15 interviews. And, um, um, like, all of the projects, basically, you can find on my resume. So that's it for my introduction.

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

Given this JavaScript function, is there anything you can improve? Uh, for instance, can the runtime complexity or port clarity be enhanced? Okay. We it's passing two area one intersection. Okay. Uh, looping through this, looping through that. Checking if one is equal to to intersection. If it's not present in intersection, in just it includes array one. Okay. If the item is not present in intersection intersection, Push it here. And, basically, if it's not present, else it will get break. Okay? Is there anything we can improve for instance, kind of, complexity or for clarity of enhanced? Um, actually, I can enhance a lot of things here instead of for loop here. I can use, uh, 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. Uh, that can enhance the readability of the code. So with that, it will be more readable. Another thing I can improve is, uh, just give me one second. Break. Actually, break doesn't make sense here because there's not a while loop. So um, in any case, uh, 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 if it goes if they are equal, okay, then it will just pause the, uh, nested for loop. Okay. We don't need to remove the break statement then. It's fine. If they are equal, then, uh, 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.

Given this output function, can you find effective approach? Has pair with some pair with some okay. Array target. Okay. Okay. It's going. It's going. Yes. Close. Then it's going. I plus one. Okay. You connect index to the. Okay? Okay. One area is going from all the element. Another is going from next element from the previous, uh, 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 to. Um, can you identify an effective approach? Okay. Just give me one second for the effective approach. Um, as well with some. A new binary search. I mean, Actually, I can include the runtime complexity of this. Uh, because we don't need, I guess, uh, another loop here. Uh, if we just loop through the first element, for example, if I next element. False. Fair existing too. It's false now. Just a second. Some check. Just a second. Blend and j. Just finding a pair with some. Okay. Actually, no. I can't really find infected way as of now on this code. Sorry.

Given the three are component, can you identify bad practices? So this implement okay. React of parent, uh, concept message. That's fine. You state hello world. How are you doing? Uh, 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 grad child, everything here. So and it's exporting by default parent only. So we should avoid that. We should create, uh, per component, per file, per file, per component. And the next thing would be, um, 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 as pastel case. So and the function helper function should name as camel case so that we identify whether it's a helper function or whether it's a, uh, component. So grand gel, we need to make, uh, uh, something. If it's returning 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, uh, up to three level is fine. But if it's more than three level, then we can use context browser. If anything, change 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 thing basically improve as of now. Yep.

In this notice, because fragment, we are handling an API request can spot a potential security or performing vulnerability concerning the handling of using codes. How do you mitigate the issue? Uh, okay. Get user ID. Request response user await user find by ID. The ID return who user after that reviews a user by ID. Okay. Okay. Sometimes the user contents can, uh, contains, um, like, a password in their database, which is hashed, but still it's not we consider to send it in the send it to the, um, client side. So we should not send, um, the whole object to user. We should send whatever is necessary only. And here I can see there is no authentication middleware, uh, which another thing. We should, uh, like, if anybody's on another user ID and it can pass user ID and it will get the details of other user. So it's just a very big vulnerability in this API. So we should definitely avoid this thing. You should add a authentication, um, middleware. So not anybody can pass the ID here and get access. And, also, we should wrap this thing and try and cache block out sometimes. Uh, like, this is a bit technically good practice because, uh, sometimes the request uh, I mean, we are making, uh, HTTP query. Right? It get get failed with different network issues or maybe some type issues or maybe the method issues or anything. So it's a good practice to wrap up looking and try and catch block. So this is the thing. What else? What else? What else? What else? What else? What else? I told you three things. No? Uh, what else? What else? Okay. Find the ID. Yeah. But I'll decide the ID is fine. Okay. We can also add a return statement, uh, before rest so that it won't go to next line. Like, it's a good practice call. It's returning everything then. So this four thing we can add.

Yeah. 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, um, this 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 get rendered, it will just print account updated. So whenever this component get rendered, it will print the discount updated count. We should we only want the, uh, log, basically, when we actually update the counts. Right? So we need to create a dependency here, uh, uh, which is an array. And inside that array, we need to put count here there. So as we put count so whenever we update, increase or decrease thing, then it will be fine. So under the dependency part is missing here. Yeah.

How would you avoid callback hell? Okay. In a complex while still handling a synchronous operation. Call back hell. Okay. While it's still handling asynchronous operations. Okay. Maybe I need to see the code, but maybe I can, uh, think of it as a recursion function, and I can add an edge cases. So on a certain cases only, then it will call the callback function. It's it won't I'm handling I'm just running 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 the callback health so I can value better because I'm not aware of this, uh, particular technology. Yeah.

Okay. Given this JavaScript function that returns the total number of occurrences of the target in an area. Okay. And a bad practice of this improvement. Okay. Bad function. A, b. If a is not there, return. What to do? Yes. Yes. Again. Total number of currencies of target. Okay. First thing we can improve here is instead of directly checking the length, there is a method. Array dot is array. We need to check whether it's a array or not. If it's not array, then we can return. Maybe a bad function. We can return zero, uh, instead of just returning nothing. It's better to return zero. Like, there is no occurrence of it. It tells more. So or maybe we can throw an error, but that will be too much. We just need we can just throw a zero, uh, return zero. If it's not the return zero of these two line, we can just return. Add is, uh, is Array dot is array and pass in it and check whether if it's an array or not. If it's not array, uh, we will just return as you. Okay. Bar instead of bar, we can use, uh, letter because bar is very dedicated, and we it's not advised to use bar. Okay. I less than a dot lens. I plus plus if a dot I is equal to b. This will also use three, uh, equal signs here. Thousand. It will check the data type also, and We should not use global, uh, variable like this global val. Uh, it's not a good practice. Uh, because maybe another function will modify it, and this that happens. So we should avoid using, uh, like this. Inside the bad function scope, we should put this Google account variable. That's how it should, uh, increase the global one variable. And when it get increased plus equal to b wait. Just a second. If if AI is equal, it will be equal. Plus Okay. 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 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 it is have occurred. Right? So these are the improvement we can make, and we can make it a good function.

Lens. Last question. Right? Uh, 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, uh, we can use only one. Another thing is, uh, there in this method, we should not directly, uh, use the, like, set count and update from its variable count. Uh, use test count, provide this kind of function, provide a method where it provides a default argument of the previous state. So we should only avoid the state from the previous state instead of directly using the count variable. So the better function would be if you wanna incre increment it twice, uh, then just use a set in in inside the increment twice function. Use a set count and pass it a function of previous, uh, like, as argument, which will give you the previous state and, uh, use previous and return it with, like, three plus two. So it will just increment it twice. In this, uh, it will perform some issues in batching. It will in increase this thing and, uh, delay the other part. So it will cause some issues in batching performance. So batching and this, that. So that's why, like, it will cause some issues here. So if we if you do what I suggested, then it will just work. Yeah. So that's it.