profile-pic
Vetted Talent

Harshvardhan Joshi

Vetted Talent

Experienced Full Stack Developer passionate about new technologies, leading teams to deliver

innovative software solutions, and continuously learning to integrate cutting-edge technologies

for revolutionary results.

  • Role

    Mobile Team Lead (SDE-3)

  • Years of Experience

    7.5 years

Skillsets

  • Git
  • Firebase services
  • react
  • CSS
  • Jira
  • Kotlin
  • JS
  • Swift
  • iOS
  • Android
  • Dart - 5 Years
  • GCP
  • Figma
  • Python
  • HTML
  • Node Js
  • Mongo DB
  • Java
  • Angular
  • Flutter - 5 Years

Vetted For

10Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Senior Flutter Developer (Remote)AI Screening
  • 73%
    icon-arrow-down
  • Skills assessed :Ci/Cd Pipelines, Node Js, Dart, Flutter, Flutter framework, flutter_bloc package, Restful APIs, Third-party Libraries, Django, Github
  • Score: 66/90

Professional Summary

7.5Years
  • May, 2024 - Present1 yr 4 months

    Flutter & Fullstack Expert

    Freelancer
  • Mobile Team Lead (SDE-3)

    Signzy Technologies
  • Mar, 2022 - May, 20242 yr 2 months

    SDE-3, Pod Lead

    Signzy Technologies
  • Senior Software Engineer (Mobile Team)

    Proseon Technologies
  • Lead Flutter Developer

    Rockers Technologies

Applications & Tools Known

  • icon-tool

    VSCode

  • icon-tool

    WebStorm

  • icon-tool

    Docker

  • icon-tool

    Jenkins

  • icon-tool

    Github

  • icon-tool

    Bitbucket

  • icon-tool

    Postman

  • icon-tool

    Fiddler

  • icon-tool

    Tomcat

  • icon-tool

    Github Actions

  • icon-tool

    Bash

  • icon-tool

    AWS

  • icon-tool

    Figma

  • icon-tool

    Trello

  • icon-tool

    Zeplin

  • icon-tool

    Adobe XD

  • icon-tool

    SVN

Work History

7.5Years

Flutter & Fullstack Expert

Freelancer
May, 2024 - Present1 yr 4 months
    Built ForTime Timer - A Free WOD Fitness Timer. The ForTime Timer mobile app is made in flutter with custom brand and style to represent a real timer layout familiar to fitness enthusiasts. App is now deployed and free to use on Google Playstore and Apple's Appstore.

Mobile Team Lead (SDE-3)

Signzy Technologies
    Demonstrated proficiency in leading a team consisting of 2 app developers & 3 web developers, ensuring timely completion and adherence to project deadlines. Led the entire 'GO Mobile App/RM App' project, from conceptualizing features to deployment. The project includes a custom mobile app, a web portal and a backend service with a DB. Contributed to the app development cycles across multiple sprints & releases. Cross-team collaboration to get the additional support from the backend server or web frontend counter part of the app. Created a unique solution of the dynamic apk generation for various clients that fits with the organizations guidelines & does not involve any 3rd party delivery system. Write well-designed and efficient code by using the best software development practices.

SDE-3, Pod Lead

Signzy Technologies
Mar, 2022 - May, 20242 yr 2 months
    Spearheaded the 'GO Web & Mobile App' project from concept to deployment, driving cross-functional collaboration with a team of 5 experienced full-stack developers. Worked on integrating new features for mobile app, web portal, and backend service. Reduced mobile app delivery time by 87.5% by automating app customization and build processes.

Lead Flutter Developer

Rockers Technologies
    Lead & manage mobile app projects for the clients. Developing and deploying various types of mobile apps for clients [Flutter & android native]. Maintaining and updating company's live apps. Desiging app architecture & implement app design mockups. Integrating with external devices in various client apps. Identify & troubleshoot customer issues for all mobile apps. Interview and recruit for company and mentor interns, trainees & new employees.

Senior Software Engineer (Mobile Team)

Proseon Technologies
    Maintaining and updating company's production app. Updating production environment & app framework for scalability. Troubleshoot customer issues on behalf of supervisors when in need. Interview and recruit Freshers for company.

Achievements

  • Reduced mobile app delivery time by 87.5% by automating app customization and build processes
  • Delivered 50+ features to production
  • Developed Open source Plugins on pub.dev
  • Developed custom solutions for integrating devices like Thermal Printer & Cash drawer for POS and ESP32 chipboard communication

Major Projects

12Projects

Global Onboarding/Relationship Manager App

    44K+ active users, Signzy

Investar Mobile App

    100K+ downloads, Proseon

Flutter Ul Kit - Quick Start kit

    500+ downloads, Rockers

Quick Start Flutter login kit

    100+ downloads, Rockers

Check-in manager App

    Rockers

Equity & Real-estate Crowdfunding App

    Rockers

School event tickets App

    Rockers

Take it & Go (Custom POS) App

    Rockers

ESP32 Device custom configuration App

    Rockers

Freelance Earnings Calculator

    A small free utility PWA allowing users to easily calculate their earnings in any currency, while also accounting for deductions and other charges to find actual in-hand earnings.

Custom App Builder API - In-house Project for Signzy

    A unique solution for dynamic APK generation for Signzy clients. Automated Flutter app build for android using a single API call, reducing manual customization work from 4-5 hours to 30 minutes.

To-Discord

    A browser extension for sending content to a Discord Channel's WebHook. Allows sharing various contents like hyperlinks, embedded media, and URLs directly to Discord channels from the browser tab.

Education

  • B.E. Computer Science & Engineering

    Parul Institute of Technology, Vadodara
  • B.E. Computer Science and Engineering

    Parul Institute of Technology, Vadodara (2017)

Certifications

  • Flutter expert certificate- pluralsight

  • Android expert certificate - pluralsight

  • Kotlin course completion - caster.io

  • Python coursera

  • React js coursera

  • Node.js and express coursera

  • Flutter coursera

  • Kotlin caster.io

  • Ci/cd linkedin

AI-interview Questions & Answers

Could you help me understand more about the background by giving a brief introduction? Okay. So, basically, I've been working as a mobile app developer since, 2, 017. I started as a mobile app developer only. I started I started working with Android And beneath you, so after that, I'll, I'll move to, Flutter after a few years, and, that particular switch was also, inspired by the management, We are rewriting the existing native Android application to flutter. We are covering both, iOS and Android, platforms with that. So that is, that was the initial switch to Flutter. After that, I have been working, I I have worked with service provider company.

What is the best way to manage it? Manage a complex state that includes user interaction, data fetching, and local persistent. Best way to manage complex state is basically it depends on the type of, uh, application we are building. A complex state is basically including many type of data included in a single state. Also, handling user interaction inside a state is a complex part. But, uh, I would prefer using Flutter Block or QBuild, um, because they allow us, um, having many freedom and control over the events and the states that we are going to have. Um, also, uh, local persistence, I would basically try to use preferences for simple applications, but, uh, there are other complex, uh, persistent storage libraries also available, like, uh, SQLite, SQLite, and, uh, Hive. Hive is basically, uh, dynamic, uh, storage. It can store any serializable data in any format. So yeah. That's it.

How would you optimize a Flutter app's network request? I'm dealing with large play payloads. Gaut, try to minimize the, uh, API callbacks. Um, going back and forth to the API takes a lot of time and uses a lot of resources as well. Um, I also seen a better drainage when excessively calling APIs. So for that, I would, uh, basically club all the requests, uh, using the future APIs or try to prioritize the recent events. Like, let's say, if we are dealing with, uh, application that calls an API on user click, so I would prefer, uh, or I would prioritize the recent click, uh, rather than handling all the all the requests. Um, basically, debounce any events. Uh, so yeah. That's it.

What approaches do you use to keep the Flutter code base maintainable and readable? Um, I try to keep the, uh, logic away from the widgets. I basically followed the, uh, MVC pattern, but, uh, MVC pattern with a slight change where controller doesn't have, uh, any control over the view. But, uh, it's a mix of MVVM and MVC, uh, for me. I try to keep the logic away from widgets. The domain knowledge keeps inside the model. Any processor or any services that I have, I'll I create a manager class, a manager or a controller class, basically, that processes the data, uh, stores it in the model, and, uh, whenever the data is updated, an observable data reference is forwarded to the widget, so the widget updates directly. Most likely, uh, in Flutter block, uh, package you see, uh, there's a block builder. So block builder is what, uh, I use, uh, generally.

Describe a method for ensuring data security when integrating with third party libraries. Basically, security, I I would prefer using 3rd party libraries with verified uploaders only, um, mostly from the Flutter or that teams. Um, there are some other verified uploaders as well, uh, like, uh, there's a, uh, symphony, uh, there's a symphony company that basically creates a few custom UI libraries, like charting libraries and everything. I review the third party libraries first, even if it is uploaded by a 3rd party, you know, verified uploader. Um, I try to go through the source code as much as possible. Since Flutter is mostly open source, I can review everything. And, uh, that's how I try to manage the security part of security part of checks, uh, for the packages. The other thing I try to do is I check for number of updates that particular package is getting. So, like, uh, if the package is complex, I I try to find any packages that are recently updated. And those packages that are, uh, you know, those packages that are updated with the latest Flutter upgrade as well. So, like, any recent updates with Flutter SDK should be reflected in that package. Um, that's what I look for.

The refactor application to improve your performance and intability using flatter block package. Um, basically, I would try to, uh, separate out all the states and, uh, events. Um, basically, I would try to remove any interaction directly applying on the widgets, and, uh, instead, uh, I would just fire, uh, you know, specific events, uh, to be captured by the block, and then the state can be handled, uh, map to event, uh, sorry, map, uh, event to states, uh, method is responsible to convert that particular event to the state. And, uh, block builder will be updating the particular widget with whenever the state is finally updated. So that's how I would basically refactor a Flutter application. Um, I will try to start, uh, that particular application with the, uh, Flutter block as soon as possible rather than having to having it to be refactored, uh, later on. So yeah.

This is in Flutter block package. What debug strategy would you suggest to ensure that the load data event results in the correct state? I am not sure what load data method or is a method is going to do in here? Let me check. Okay. So my data block is we are adding an event on my data block to load the data. Okay. Uh, tester then comes and settle. Uh, expect later. What debug strategy would you suggest to ensure? In debugging, I would suggest, uh, just, uh, going through the entire event to state conversion. Um, so I'm going to the blocks, uh, map event to state method. Uh, I would check for the particular event where switch case or if statement is there. Uh, I will go through the following method or implementation for converting that particular event, processing that event, and, uh, finalizing or updating the new state before using it. So 1 point is that the other point is where I will receive the event, which is in block, uh, listener or block data. So I'll check for that particular state and state data there. Look for any anomalies or inconsistencies in that. So yeah.

What could cause performance bottleneck in Flutter app, and how might you resolve it? Uh, most of the time, I've seen a Flutter performance bottleneck is due to, uh, widget renders with, uh, heavy API calls or, uh, very, very frequent, uh, rebuilds. So, uh, for starter, I would, uh, I would try to limit the rebuilds of that particular widget. I try to understand, uh, like, why is it rebuilding? Why why, uh, what is causing that particular loop? Um, try to resolve that, uh, that problem and, uh, mostly try to, what, um, like, um, resolve the multiple rebuilds. If not necessary, I would convert it into a stateful widget with, uh, particular events that triggers and creates a new widget, uh, again instead of having it as a straightforward widget. So those will be my initial, uh, implementations, initial changes. The other things I would check was I I would check is that that tools. Dealing tools are performance tools that we get with the that SDK and. So, uh, those tools will allow me to check, like, which particular widget is rebuilding or what is getting, uh, what is happening behind the scenes, uh, like inside the memory or CPU, uh, function calls. So I'll use that to dive deeper into the into the issue and, uh, find the root cause. So, yeah, that's

What strategies do you employ for unit and digit testing in Flutter to ensure high quality code? Um, I try to, uh, follow the TDD someday. I create widgets with, uh, along with their, uh, basic tests. I don't go into the entire testing as well just like in 3dd, but, uh, I try to cover, uh, as much as, uh, basic criterias for that particular widget before I start working on the logic. Also, I I, uh, I try to I try to cover the business logic as well inside the unit testing. I try to keep them separate so that they can be tested proper properly, um, keep them modularized. And the other thing is I I would use, uh, mockable APIs, mockable, uh, plugins, um, that allow me to mock particular widgets with the test data. So, yeah, that's that's it.

Could you suggest a strategy to enhance prototype CICD pipeline sharing screen line code? And then and affect your overall screenings. I'm not sure, like, what is the expected strategy here. Now it depends on the existing strategy. But, uh, let's say, for me, the recent, uh, work I've done with any CICD pipeline was a custom pipeline only. So I'm not aware of the situation here. But, uh, to streamline the, uh, deployment, I would suggest that, uh, every code not every code commit to that particular repository should go through the Flutter Links. Uh, Flutter Links, when the test is passed, it should run the unit tests. Once the unit test passed, uh, it should run all the integration tests if available, uh, if, uh, there are integrations available in the pipeline as well. If not, we can skip it. Uh, integration test can be done by the manual queue as well. Um, there are automated workflows available for tools like, uh, they have manual testing automated, tools like Maestro, mobile testing tool. So it's there. Uh, we can use that in our inside our CICD. Other than that, uh, I would say it's just, uh, uh, passing all the tests is the first, uh, first task. If the test passed, then we build the APKs or iOS files or anything that we want. Um, if any test fails, we are not going to build that. We are just going to, uh, fill that pipeline or fill that particular push and, uh, ask a fix from the developer. So yeah.

How would you utilize additional state management solution like provider? Um, I'm I've been using provider alongside Flutter block. I've been using it as a, uh, basically, block provider in some states where the blocks we cannot pass blocks directly, um, or we cannot create a new instance of a particular block, uh, in some cases. So I I assign it to a provider, and I use the provided, uh, provider reference in, uh, children widgets in some other files to access that particular block. A reward port works the same. Uh, the working of provider and reward are similar, so I use the same approach.