Lead the development of front-end applications that enhance the user experience and productivity of the platform. With five years of experience in designing, building, and maintaining web applications using Material-UI, Ant Design, React, and Angular frameworks.
Have successfully delivered several modules and components that have improved the performance, functionality, and usability of the platform, such as the Feedback Module, the Courier Segmentation Engine, the Transport Management System, and the Communication Module. Have also collaborated with product managers, engineering managers, and back-end teams to define the requirements, timelines, and API contracts for the front-end tasks. Additionally, have created and followed coding standards and best practices that have increased the code quality and consistency among the team members.
Passionate about learning new technologies and frameworks that can help me create innovative and user-friendly web applications.
Senior Engineer
SaviyntSenior Engineer
Getir IndiaSoftware Engineer
CognizantSoftware Engineer
Accenture DigitalSenior Engineer
BrillioJira
Figma
Javascript
React
React Router
ReactJS
Redux Toolkit
Redux-Saga
HTML5
HTML/CSS
HTML, CSS and JavaScript
Visual Studio Code
Git
GitLab
Jest
I have known Sanskar for more than one and a half years during which time he worked as a software engineer in my teams.
Sanskar is a very strong software engineer with a special flavor in frontend development. He is really comfortable with dealing with challenging (software development) problems. And he is so successful in coming up with elegant solutions very timely to those complex problems. His work during our time together has always been impressing and outstanding.
Sanskar is a self-motivated professional with a very positive attitude. He never hesitates to go the extra mile to ensure quality in everything he does. Sanskar is also a great team player pushing things forward. Also, he enjoys helping his teammates any time needed. That is for sure, Sanskar would be very valuable to any team.
I have worked with many professionals throughout my journey, but Sanskar was a promising one to work. His work ethics are pristine, and he is easily adjustable to a given situation. His expertise as a developer is considerable and helped our team to come up with efficient solutions. I hope to get a chance to work together again.
Developed Feedback module analytical dashboard to understand the overall pulse of couriers as iteration rate has its peak and feedbacks was pending from very long time
Getir provides its own vehicles for delivering the orders from the store houses to customer where Its getir's responsibility to manage all the vehicle across different country, have developed a platform around it
Good. So I'm currently having 6.5 years of experience in front end development, and I'm currently associated with GetThere India. And here, my role is to, uh, work on the front end, the Clitter task. And, um, I majorly worked on the React JS, during my experience, uh, in my experience of 6.5 years. Here, I take the what I used to do is I take the cabins from the product managers, convert it into the technical stories, and, um, then, um, try to convert into technical screen. Try then try to assign it to the team, and then I take up the complex task and assign it to myself. And I use, uh, I used to build up the usable component so that it can be reusable across our application and, uh, using the I also work on the performance optimization techniques, uh, which are used in the React. So I majorly work on the front end side. And also in this process, I, uh, try to, um, develop the API contract, just being required by the back end team. Uh, so providing them back, uh, the API contract is also a part of my role. So yeah. Yeah. That's it.
Okay. So coming to, uh, this question of choosing a Redux or a contact CP. So, uh, we were working on a very small project, um, there where we were, um, used to build our application where our courier or the people who wants to join GetIt, uh, wants to, um, uh, want to fill up a form. And then based on that, we want to take their response and proceed it for further. So in this scenario, um, we try to, um, since this is a very small application, which, uh, don't deal with a lot of complex city and don't have so many models. So there, we try to use the, uh, context API for state management, uh, and in a place where we have multiple, uh, multiple, uh, components where the data of, um, the each of the company needs to be shared between them to do the processing. So they in those scenario, we try to you go for reduction. So based on these parameters, um, my decision improved based on the requirement, complexity, and the need of the project. Uh, it basically have, uh, influenced my decision.
Can you explain how problem? Yeah. Um, so prop drilling is a, um, is a problem where you when you have so many when you have a parent component and there are so many, uh, child component, um, like, there is a parent component inside that, there is a child component, and there are n number of component below this, uh, the child component. So in this scenario, um, what we can do is we can use context API. And using context API, we really don't have to manually, um, pass the the drop through each component. Instead, we define a global context, and that global context can be utilized, uh, like, we can wrap the component, uh, across that, uh, context, and then we can utilize that context throughout through all the, uh, all the, uh, components which are wrapped around it. So, yeah, through this, we can avoid using the state management libraries.
Okay. Uh, outline the steps for connecting the ad component to our Redux store. Okay. So k. So there there there are a few methods which we can use this. Um, certainly, um, to achieve this, first, we install the reducts and the, uh, React reducts, uh, packages, and then we create a reduct store. And, um, then we define the root reducer and the reducers also. Um, based on that, we have a stay, um, like, who called user, um, use selector through which connecting. Yeah. Uselector through which we can connect our component to a store. And that uselector, what it does is it give us the complete access of the store, um, which is in the Redux. So through, uh, use selector, we can yeah. So through use selector, we can connect our component to the store. Earlier, we have earlier, we have a a connect function, uh, which was a higher order function. So, uh, which accepts the maps to 2 props and map dispatch to props. So 2 parameters through which, uh, we we, uh, used to connect the, um, uh, store to our component. So, um, yeah. So these are the ways through which we can connect our, um, store.
Okay. How do you manage application state in a component hierarchy when not using Redux or a context API? Okay. Let me think of so so managing the hierarchy without using, uh, reduction, so we have a we we can leave the state, uh, of the component using use state hook. So use state is a hook which, uh, through which we can manage the state of the component within its component. 2nd one would be the, uh, through prop drilling, um, where we can pass the prop of, uh, where we can pass the, um, the data from one component to another or other. Um, also, we can pass the data from child to parent through callbacks, uh, using properly. So, um, and also to manage the state, uh, we can also use higher order component or render props. Through these techniques, I think, uh, we can manage the application state um, in a component hierarchy. So yeah.
Okay. Uh, strategy strategies do you use to optimize the rendering performance of a React application? Okay. Strategies. Okay. So we have perform for performance. Um, Yep. So what we can do is, um, we can use React memo for functional component, uh, which, uh, um, like, um, it wrap the functional component with the react, uh, dot memo to prevent the unnecessary render when the prop haven't changed. So this is one of the technique. Then we have, uh, in the previous version of the app, we have should component update or pure component for, uh, these are methods are for the class based component. These are the part of the life cycle method, and then we can, um, avoid using, uh, inline functions. So, um, um, through which we can also optimize. And then we have, uh, hooks such as use memo and use callback, uh, which are used to memoize the expensive calculation and use memo. Use memo memoize the expensive calculation and use callback memoize the function. So the these are also the few methods. Then, um, we have something called code splitting. So React has React, uh, lazy and suspend to load the component, um, and which introduces the initial load time. So through this also, we can optimize the performance. And then in case, uh, we have a large, uh, large set of data, um, where we are dealing with a large list of data, then we can, uh, use virtualization in that that scenario. So, um, yeah, these are the few strategies through which we can optimize the performance of the React application.
How do you ensure unit tests are comprehensive and maintainable for React component? Okay. Ensure unit test are comprehensive and okay. So so so we what we can use do is, uh, we can use testing, uh, framework or a library. It's like, uh, test for testing. Uh, test is also there for testing, and the testing library is for rendering the component. Uh, then we can what we can do is we can write a clear and descriptive test. Uh, so when whenever we are writing the test cases, so what we can do is we can, um, write a proper description, uh, to each and every, uh, test suit, what it is trying to do. Then we can test the component behavior, um, not not testing the implementation. So what it does is testing the component behavior, um, will help us in understanding whether we are, um, achieving what we are expected to, uh, achieve. And then we can use, uh, mocking and stubbing of, uh, APIs so that, uh, we can test, uh, whether the whatever we expect from the API, we think, um, we can test the external dependency, and we can isolate the API and, uh, so that we, uh, we test the API thoroughly or the response we are expecting from that function. Then, um, there are discovery tools, uh, through which we can check the coverage, like, whatever the test cases we have written. It is discovering all the code which we have written. Uh, then then I think, uh, yeah, these are the few things which I can, um, through which we can ensure we are writing a comprehensive and maintainable, uh, test case for for the real components.
Discuss a matter of implementing theme switching in React, and what, uh, libraries or tool would you use? Okay. Uh, implementing the themes. So okay. More Teams. So in so for team implementation, uh, we have, uh, react context API, uh, for managing the state globally. So what we can do is we define the context globally, the theme context, and then, um, or we can, um, based based, uh, we we can use the style component for applying the style based on the, uh, current team. So then what we can do is we can create the, um, create the team and provide the team data and a function which, uh, toggle the theme. So through this thing, we can implement the theme context. And yeah. So yeah.
What are key consideration when implementing server side rendering for a React application. Server side rendering. SSL next. Yes. Okay. So so server side rendering has its own benefit. Like, um, when a normal React application, uh, when when we work on a React application, we the React application are generally not SEO friendly. Um, so there is a popular framework, um, which simplifies the, um, the server side rendering for React application known as, um, the React JS. So we can do, uh, the framework choice. So and then what we can do is, uh, the, uh, what it help us is the initial it helped in initial data fetching. So it fetched the data on the server side before rendering the component, uh, which ensure that the data fetching logic is consistent between the server and avoid discrepancies. And, uh, Yeah. So apart from this, yeah, it, uh, um, basically, when we develop application on, um, implementing a server side rendering, um, then we ensure that the metadata such as title description is rendered on the server of, uh, is rendered on the server for SEO benefit, and we use library, like, create help me to, uh, to manage the metadata. And then we have, uh, we can what you can do is we can use code splitting. So splitting your code to reduce the initial load time, like, um, we can use tools like Webpack or, um, or or Wershell, and we can use dynamic import. So we ensure that the code splitting works in seamlessly with, um, server side rendering to avoid any issue. Uh, then what we can do is we can implement caching. Um, so we implement the caching strategies to improve the performance and reduce the server load. And we use a stupid caching header and server side caching solution, uh, like Redis. So, yeah, I think, uh, these will be my key consideration when I'm implementing the server side rendering in in our React application.
Uh, how do you approach implementing custom hooks in a React application for obstructing and reusing logic. So, um, yeah, we can, um, so what we can do is custom hooks. So, uh, let's suppose we have a component where we, uh, we have written a boost effect, uh, which calls the API call. And, uh, we, uh, store that response into our internal state of that component. So we can extract this functionality into our custom home and which and that custom hooks will only deals with the the logic of fetching the data from the network and then, um, return the return the response, um, directly. So if we do this, uh, instead of writing the same logic again again, again and again in all the different company, we will be obstructing um, that logic, um, in into the, uh, hook of in into into our custom hook. And then we can, um, we can reuse this logic at multiple places throughout the application by just simply importing it. And the same through the same logic, we will reduce our code redundancy, and the application will be more performant also. Yeah.
Okay. When would you consider using CSS module in a project, and what benefit do they provide over traditional CSS? Okay. Okay. So using CSS module in a project can be a great choice, um, under, uh, like, um, there are some benefit of using CSS module, like component based, uh, architecture. When when your project is structured around a reusable component, CSS module help to encapsulate, um, the style for each component and avoiding the, uh, uh, avoiding, um, avoiding the global name, skip of pollution. Um, and in case of a large core base, so we can, um, use the CSS module rather than our traditional one. And um, so so and also what it helps is in, uh, the modular, it the code, um, CSS code would be more modular and maintainable, uh, when when you need to, uh, ensure that the Styler scope locally and component locally to the component, uh, improve it it also improve the maintainability and the readability. So so apart from this apart from this so what benefit we can see is the CSS module automatically scope scope the CSS by generating the unique last name and preventing it prevents conflict, Then what we can use is, um, we can avoid the global, uh, name skip pollution, and then we improve the, uh, maintainable. It it is easy, uh, to maintain when you write, um, uh, c when you use CSS module, uh, rather than a traditional one, then yeah. So yeah.