
Ashish Gupta is a skilled Magento developer based in Hyderabad, Telangana. He specializes in Magento1, Magento2, PHP, JavaScript, and various web technologies and tools like GTM, AWS, and SonarCloud. Ashish has worked on numerous projects, showcasing his expertise in theme design, custom extension creation, and API integration. Notable projects include Learnship, Hot Tools, Revlon Hair Tools, and Bollywoo, where he was responsible for tasks ranging from theme development, integrating video content, multi-store configurations, payment method implementations, to performance optimizations. He also has experience in Angular projects like Mars Landing Page and Daimler Truck, focusing on multi-language support and user experience enhancements. Ashish's comprehensive role in these projects included frontend and backend development, ensuring a seamless and functional user experience across various platforms and devices.
Freelancer
Self Employee
PHP
REST API

SOAP API

GITHUB

HTML

CSS
Could you help me understand more about your background by giving a deep introduction of yourself? With respect to you, sir, thank you for this opportunity. My name is Ashish Soguptha. I probably represent the heartland of India, the river district, which is a post-backbone within the majestic state of. Professionally, I have been over 10 years of experience in software development, with a focus on the past 8 years in the ecommerce merchant trade. Professionally, I have been involved in various, diverse projects. And, probably, I am hunting on the AWS Commerce Cloud, Inspire Edition, and Open Source. My expertise includes custom module development, team development, and speed optimization, as well as data migration from 1 million to 2 million. We have expertise in creating or overriding, extending the functionality of a third-party extension, third-party configuration on installation, and number application. Any type of customization in the front end, back end, we have the capability to do that. And, we have mostly used the REST API for creating connections with the Salesforce opportunity, and third API for the ERP system. Using these, we have completed challenging tasks in my career. About my academics and the commensurate of secondary school, I recently completed 10th and 12th grade with a 1st division. This laid the groundwork for a subsequent field of computer science with a degree from Rajiv Gandhi, Pedi, Bhopal. My expertise encompasses various platforms and tools, including Magento 2, Magento 1, PHP, HTML, JavaScript, jQuery, CSS, Angular, Jira, Bitbucket, REST API, GraphQL, and Jira Bitbucket to AWS Commerce Cloud. Apart from that, I am an extremely dedicated and honest person. In my leisure time, I find solace in listening to music and playing cricket matches. Thanks for considering my application. Thank you very much. About my roles and responsibilities, so we have my roles and responsibilities have involved providing technical guidelines, software technical guidelines, and monitoring project deadlines, making sure to meet them. We also have code review, and I provide architecture collaboration with teams and other team members when required. My specialties include working with REST API and third-party APIs. We directly discuss with clients regarding requirements using team chat. Then, we take on writing tickets before developing them. We then go to testing, in which our engineers invite integration servers. We then assign testing to QA, approve it, and upload it to the staging server. Finally, we swing the demo with the client after each and every iteration is finalized.
So, roll back is still using the Magento deployment. So, our development means we have been using the breakpoint. We have added the console log. We have added creating the Gen framework 3. They are about we have introduced for the gate method, post method. We have introduced the classes of the Gen for regarding the. So, they are about breakpoint we introduced for that deployment process. That's been for the deployment process, which is just a deployment so that mitigates the risk of a new bug introduced as we use that, just like we use the CICD pipeline, using the process, parallel steady strategy. And that's, we will use the connect characterization concept. We have a use for the CICD pipeline strategy. We will implement the monitoring for each and every time for the monitoring. And that's strategic patterns. We will use that's we have to implement that break point to the using, break, functionality roll back. There, we have created data. And, monitoring when we have a monitoring in each and every time, during that, so we will risk our strategies to introduce new bugs just like up events. So, we are going to implement that and monitoring that. So, suddenly, what bug is coming, then we have to take action as the same time without, lack on the time, and we will take the action and complete the tickets. So, Vax, so these are the basic features of introducing in there. So, they are we have used for that. And, we have used for that, gate to a Sonar cloud, Sonar cloud, that is a very, best one. We will use the PHP, CS, PHP, CS, application for that, bugging the debugging the code, roll back that's there have multiple statements we have doing to that, debugging the code for the new bug, introduce that. So, we have used, suppose in that, we have used the PSPCS. So, there, it will be testing for our module, modules, so everyone functionality component and write the unit testing, what is the positive unit test and write unit test, negative unit test. Then, after that, if we are going to that, talking about data, it is a check the functionality, automation testing. So, these things have a point to be included, then we have going to create rollback strategies for the Magento development as an immediate risk of a new bug introduced.
So, there are many steps to resolve the confliction between two Magento extensions and affecting JavaScript functionality. We need to check exactly where JavaScript functionality is getting data. Suppose that in some time, we have implemented two or three third-party JavaScript libraries, such as jQuery, and our extension in the header. So, that's already happening in there. A conflict will occur. Simply, we will check that scenario, and then we will go into that. So, we will find out the work, actually, where the confliction is occurring during the application. Then, if it is regarding the library, which one is a third-party library we are using, so we are getting the issue. Then, simply, we will try to put some JavaScript libraries or some JavaScript third-party URLs in the header and which one is getting the conflict, then we will put it in the footer. So, by using this order, we will solve the problem. If we have an extension, so we'll use the module dependency concept in there. Module dependency means it will be dependent on your modules. There are two types of module dependencies: Magento 2 hard dependency and soft dependency. Hard dependency means there is a conflict on that is dependent on one module to another one of the functionality completing. So, that's we have not going to use the hard dependency. We will implement our Magento extension by using the soft dependency concept of module development. So, in there, when we have implemented any things just like our functionality, then we will use the soft dependency concept. That is dependent on one extension to another extension. So, if it is not getting any conflict between the two modules, then we will easily identify that first one where we are getting exactly the problem. We will identify that the page or a URL or code. Then we will put in the disable the module if it is not required. If it is required, then we will put that module in a specific place by using the layout XML file for the third-party JavaScript URL. We will need to implement that. We will apply it to the footer. That means different places, we will implement that and check if it is working perfectly. So, that's when we will resolve our confliction in there. Then we will go to the mini file, our JS CSS file. These are the steps by using which we will resolve our conflicts and enduring the getting conflict on the Magento extension hard team functionality of the JavaScript.
How would you handle a Magento site update without causing downtime to live stream live system? So, basically, if we need to go on the Magento upgrade, first, I will update the live site without going to downtime. So, we will take the first step, which is to take a deep backup of all folders and files. Once we have completed the backup of all folders and the database, then we will create a copy of the composer.json file as a backup file. Then, after that, we will check our compatibility with the new requirements, just like the Payflow requirements. If we are going to upgrade to 2.4.6, there have been changes introduced, such as improved security with GraphQL. And, if we are talking about the PSP version, so 8.1, the Jane framework has been introduced for the 3. REST API and GraphQL have enhanced functionality, and security purposes have been enhanced. So, there have been lots of enhancements, such as Elasticsearch 7. We have introduced that. So, there, however, we need to check before we upgrade these all applications, such as supported applications like PHP, composer, Elasticsearch, Redis cache, and Varnish. What we have installed there, then we need to upgrade that or the system. Then, after that, we will run the composer command. After that, we will upgrade the entire system, and then we need to update our composer by using the command line. In there, we will upgrade the data. And, without downtime, because we are taking several hours for this process, because we have already upgraded each and everything. So, in there, and because we have taken the database backup and folder backup, so that's not a worry about that upgrade. We can upgrade without going to downtime. We will go into the command line and run the upgrade command in there. And, so, once that's completed, we will check the functionality and each and everything working in the front end as well as the back end order. We will try to place an order from the frontend, and check if it's going to be successful in checking the email is triggering or not triggering. And, if we check that each and every functionality is working perfectly, so that means these are the process we have used for this then, we will check that, and that means we have followed some commands, etcetera, some steps in there, and two basic commands, run that, and then check the functionality on the front end, back end, and main section. Each and everything working perfectly. So, that means we have successfully completed our Magento upgrade from 2.4.2 to 2.4.6 successfully.
So in these cases, we need to automatically update our Magento system. So we need to implement that concept in there. Just like, okay, we will get the data information in the admin section. What is the current version? We have a system configuration file for creating custom access in the admin section, and what is the current value we are facing right now. There are multiple ways for doing this automatically in Magento. One is that we need to provide the Magento system administrator some configuration. That is, we will put the current version. If it matches our database for the old version, we enable upgrade or not upgrade, yes or no, field. If it matches, we have data that matches the old version and new version. If it's related to that, it's a matching for the old version to new version, then we don't need to upgrade automatically. If it's not matching, suppose the old version is 2.4.6, and the latest version is 2.4.7. Then we get some upgrade on that. So we will save that in the database for the latest version, old version. And then we will run the automatically command when we click on the submit button, which is the latest version and click the submit button on the admin configuration. So it will be upgraded. That's there are some steps we take, like taking a backup before that. We have composer dot backup, then we run the composer command, then we run the setup, d I compile, setup upgrade, set up d I compile command, cache clean, cache plus, steady content deployments, indexer commands. These are the things we need to check. And if we're talking about security patches, we have a using the AWS Commerce Cloud. So in the AWS Commerce Cloud, they provide the ECE tools, which are responsible for getting the patches. There are two types of patches to install. One is custom cache. When we go to the ecommerce websites and check if any patches are available, then we go to the hard fixes folder and run some basic commands, just like setup, upgrade, the icon file, and steady content, deployment, cascade plus clean. This is one way to install recover patches. And otherwise, AWS Commerce Cloud, if you use the ECE tools, it automatically checks in the Magento Commerce Cloud. If there are any patches available inside, then it will upgrade automatically and install the patches in our Magento cloud server. Because we're using the latest ECE tools, so it's always updated when we release new features, bug fixes, or update the functionality of our application. So we're using the EC tools there. We're going to the Magento cloud and
So, securely, if we need to integrate the Magento store with the 3rd party GraphQL API securely, so we will first create the authentication process for getting that data, which is just like a fill login. So we need to use a name and password. We will create an API for getting the login credentials, just like username and password. If it is a right candidate, then we create the token for the particular customer. And if it is a customer who is generated, which means register the user and the current generated data, then we are going to generate the token. Then we have a data that will connect with the data, generate the token inside of it in devices. And that's then we have a getting that data just like we need to connect with the 3rd party API, which is in the Salesforce dashboard. Then we have a getting the authentication key for the private key and public key, and API key, API secret key from the Salesforce dashboard, and we will provide it to our authentication in our application. Then once we have created that, then we have created the token for the particular customer who's logging in for the top party API. Then we have created the token, generate the token. Then what we need to do is like copy, we need to get the order create, then we have run the order GraphQL query, in location. What is the requirement? Just like we need to send that or update the product price? Suppose they have a multiple product, but suppose that the LoRaM is some product in name in our website, then we need to update the price. So we will send the query, application for sending the application just like we need to update the product price for that product. So we will take and write the graph tool for that end condition. We will check that they have a product test queue available, and that's price, what is available, what is the customer group is available. So there are some basic information we need to take from updating the price, and that's product name. Then based on the SKU, we will update the product. So price suppose $100 to $120. So we will update that by using catalog mutations concept. And suppose that we need to create a custom product, so we will send that request for all information, like first name, enable, disable, price, stock quantity, that's product name, SKU, price. So there's some information we need to create a bio mutation, and that will be once we have a guard that, then we have around the gap queue of the query for creating up a new product.
So if we need to maintain this functionality and improve the performance. So first, we need to get that select only field. This is a required field just like copy product ID, SQ name, order ID, order details, and price. And we have a getting that field. Select that field. Not the star, because that is if it is an order getting that software topic collection on the order. They are getting that. So we will fetch that data. And we need to use API concepts in these cases. So we will use API concepts. The interfaces create the repository interface and API data. The respective concrete class of the model. We have a going further this concept. We will speed up our website. And that's another thing. So we will create the bonding cascade implementing our server. Bonding discuss will work as a proxy. Suppose one time we have a sending the request in with the first time, so it will be taking 6 seconds. Then another time we are sending the same request, then we have a getting 4 or 2 or 3 seconds. So by using Bonnie's Cassey, it is possible because Bonnie's Cassey is a caching mechanism when we have a sending task. We have implemented the caching mechanism in our application. So it will be created on the server before that's on a particular server just like a infrastructure of the Apache server. If we are talking about the database server, if we are talking about the Magento server, or what is available. Before that, it will be created on the server. So first time when we have a send the request to the particular customer in application to the browser server. So once it will integrate interact with the Varnish cache. Varnish cache is that if it is there, have a request is available for the particular customer, then it will be if it is available, then it would be going to the cache response in the front end. It will not execute any number of lines during this one. If it is a suppose we have a send that request and does not exist, requesting the one customer, then it will be going to the connect with our database infrastructure server, Magento codes, and creating the response of the particular request and give to the response to the one. And this request and response will be stored on the server. And that's after that, it's storing on the server. It will be going to the front end. So next time when the same request will be arise and send for the customer, so it will be not going to this time to interact with the database or executing the database queries and SMB. He will go into the cache server, check there if it is available, then he will send to the same response to the browser without any number of line execution. So by using this concept, we have improved our performance in that particular code, and maintained our functionality.
So in this case, we will use, just like in there, we have implemented the background color. So in this case, we have used for the list concept, without important styling will effect on the same purpose. So we will use for the list concept. So the last concept is showing, if you have a want to use the list CSS inside of our application, you will need to create the state for the parent, then the child, then the child inside of that child. And that means as a parent child concept, we have using for their parent class, we will introduce, then we are going to the child class, then we have going to that child class. So by using this one, we will implement and create a variable inside of our dot list file. In there, inside of their list file, we have created this for the background color for the primary button. So we will create the variables just to install on top of that. This is a button primary, and provide the colors code. And this is a background color, so this is a background color. We mean we're providing the specific name of a primary button background color, primary buttons, so color, and providing to these variables and pass through these variables to our classes where we have implemented to the parent child class inside of our dot list file. And that's why using this concept, we have no need to implement that important function, and that should be working perfectly for anywhere. So looking at the CSS code and determine that's not need to important inside of it because we have using for the child class, then child class, then child class, then child class. So if we are using these concepts, it will not get to the important of that style seat and it will be working as per expectation without using the not important class inside of your CSS. So this is the way we are using. That's another way we are by using the branch CSS than before the install in the app. Then we have a need to implement that grant or CSS inside of where they are for the implementing the particular not important functionality. This is a similar to that, so on the list, but it is a more flexible, stable, and faster execution during to when we have joined the grant CSS. So say, there are we have also used for the defined as particular in the top of the head of the particular custom grant CSS, and that's implement as a primary button background color the color code of the variable, then this variable, we have inherited that. So that's means by using this concept, we have introduced that is not need to the important and also we have used for this functionality to our current application without affecting anything. So and the main important of creating those variables for the top. So suppose these variables need to require further usable compatibility, that's means these variables have required for the same color for another places, then we have used for the
So Magento system, that's will architect Magento system that can revert back to a previous stable state post upgrade while handling live transactions. So in this case, my system reverts back onto the previous stable state, and we have the same concept. We need to take that and implement it on the previous backup database in our database server. Then we have to configure our a n v dot p s p. That's the username, database, and password. Then we have to implement that. So then we need to run the composer commands, and we need to upgrade with the previous version. Then we have to run the dash command, and then it will be working. We need to rename the successfully completed data. We need to change the h and every functionality because it's implementing data that's with the old version. That means post updated version, we're going to that. So we will check that there. That's the process. This is a very difficult task to handle with live transactions because of when we have handling live transactions, so it will be a case in this, our getting difficulty for the basics. So, basically, that is there are our 3 steps for the means, 2 or 3 functions will authorize our process during the payment transaction. So in there, we have a first use authorization, then we have going to the capture. And that's an honor will if it's a refund or cancel. So this is another part. But in there are only 2 methods required for this, like the transaction from there of our application in version 22, just like a pay authorization. So it will be authorized on the transaction. And once authorized, it will be up and going to the background system to upgrade to our system with the stable version. And once authorized, it will be captured our amounts from our application on the status of the premium methods, which one we have implemented. So once it will be completed, that's prediction. In the background, we have also upgraded the post upgrade system with the stable states. And that's been done to go for this is the basic architecture of the Magento system to divide on the previous stable version and run the basic commands of the Magento setup upgrade, setup DI compile, deploy continue pack as a clean class, indexing, re-indexing. So after that, running these basic commands, then we have going to check that functionality is working properly or not properly. We have going to check the place order. And that's these orders information will be coming inside of the admin section. So after this step, we have handled this situation with live transactions.
So, when we have implemented the front end, that means mobile user experience. So that's what we need to improve the optimized loading page in Magento pages. So basically, we have a discussion about the Magento structure that's been so this one, we have a handling for the layout. So because there are a lot of customizations in the front end. So we need to properly layout or describe the particular part of the Magento application. And apart from that, so we will be using the implement the RPC full page. That means optimize the images, CSS, minified JavaScript and CSS. We will use three vacators that will be automatically added to the functionality s TV bucket 2. It will be automatically implemented as soon as we have added the product image inside of admin, then it will be automatically updated in the S3 bucket with server. So this functionality will be implemented, and fetching the data from S3 bucket just like images. So this concept, we will use, we will use the Varnish compression, CDN network. We will reduce the third-party web bundling, skip bundling, and binding. Then we have going to use the lazy load concept. We will implement that's been reduced, remove the direct call while calling the code inside of the HTML file, CSS inline code of the CSS, and JavaScript code. We have implemented the inline. So these are the basic steps of, we will follow that in the speed optimization of our website as well as of the mobile device. And apart from that, we will use implement the app. Apart from Memcached, we will implement that. Also, Memcached will be used for object memory, rendering the data. And the best API, we have used for the, then it is rendering the data too fast in the JSON concept. If we have implemented that, Memcached, so it will be getting the database requested query to the faster rendering the data, from the database. So this is how we will implement the main cache. Then after that, we have going to implement the Redis cache in there. So Redis how we will work with the Redis classes. So we need to install the Redis classes. So we will run some basic commands, then just like a PPT gate to update, install, that's, Redis services. Then we have need to write the nb.psp file inside of a ptcmb.psp file. So there, we will implement that, nb.psp file, configure our Redis. If we need to take a test how it will work or not work, then we have going to go back to the page case folder and delete that. And we have going to visit the home page and another page. If it is not getting the folder inside of a back as a folder of Webcast, it should be, it's working perfectly. So basically, what's happening in there on the Redis when our customer will enter our website, dvcstore.com, and that's a browser. Then he'll interact with us, controller helper, and Redis install that inside there. So it will be created this one server before that on the custom server. So once request will be sent, then if it is adjusting the request, then we will be showing for the in the front end.
Elaborate one your preferred tool and practice for debugging Magento performance issue on live site. So they are have a PSPCS, we have used or the SonarQube, we will use. These are the 2 best tools for using for debugging the performance. They have a miss functionality. I need to use further debugging tools for Magento performance in live site, then I will implement that Google Page Inside that we are going to test and check our functionality. It means speed optimization, means performance. We have another option for GT metrics. We will go and implement that inside of the GT metrics. Otherwise, the best tool is providing to that, Google Chrome. It is a Lighthouse is providing to that. So we have a check that's our latest performance live action performance on the our application. So we have used for the Lighthouse inside of the Google browser, it's providing the Lighthouse application. So it's mainly used for your exact page speed on your performance you want to live track on the BioGEN Lighthouse concept. So we will check that where it is getting stuck, what we need to performance to improve that. What are the steps of we have reduced the CSS, JS, GP, we need to implement the CDN network, or we need to implement some mini files, CSS, their JavaScript mini files as a file. What is the how much extension we have used for that and that's unused extension, are the that's we have because that's in Magento to use the user of the application. There are a lot of extension already installed on our application. So we need to check that and verify that's which extension we need to use that, which is a perfect utilized for our application. So we need to go for this type of step so we will verify that data, performance in the live site on our production server. And there, apart from that, so we will go into the implement the radius case for the performance, check that. And another thing is that we need to use Lighthouse. So implement that Lighthouse is our light to light tracking. And that's another we have used for the New Relic options. We have a New Relic and Datadog, but I will go for the best option. Compatibility, flexibility, consistency, and maintainability of the our application. So it will be providing to the like of a customer tracking information, your live performance of your Magento application. What is that exactly? And it is also provide the specific type of pages, what pages it should be getting the performance in there, or we will go for like that. We have a suppose we have implemented the small widgets and getting the taking the loss of a speed or performance related issue. So it will be also we will track for the particular widgets option, because this is a very flexible user to provide the New Relic concept in our modern application. So it is the best way we have using for dividing the