
Experienced Technology Manager with over 15+ years of leadership in managing software development projects, cloud infrastructure, and data engineering solutions. Proficient in leading cross-functional teams, optimizing software lifecycles, and integrating advanced technologies such as AWS, AI, and big data frameworks. Demonstrates expertise in overseeing end-to-end project delivery, from conceptualization to deployment, while ensuring alignment with business objectives. Skilled in PHP, Python, DevOps practices, cloud computing, and enterprise architecture. Recognized for fostering a collaborative work environment and consistently achieving project success.
Technology Manager
Hiddenbrains Infotech Pvt Ltd
SonarQube

Git

Trello
.png)
Jenkins
.png)
Docker

Kubernetes

CI/CD Pipelines

Hadoop

Spark

Hive

Kafka

Sqoop

ElasticSearch

Flink

Airflow

RabbitMQ

Delta Lake

ChatGPT

LangChain

Power BI

Apache Superset

Kibana

AWS Glue

Athena

Redshift

AWS EMR

OWASP
I'm a technology manager with 15 years of experience in leading and mentoring teams to deliver impactful and high-valued projects. I have managed teams of 20 to 25 members and delivered complex projects such as e-commerce, real estate management, and ERP solutions. As a technology professional, I have worked with cloud technologies like AWS. In AWS, I have worked with RDS, Lambda, EC2 instances, VPC, and S3. If I talk about specific data engineering services, then I have worked with AWS, Blue, Crowler, Athena, Amazon EMR, and Amazon QuickSight. Additionally, I have worked with Amazon-managed Apache Kafka and streams. Apart from this, as a proficient programmer in multiple languages, I am working with PHP, Python, and front-end frameworks like Node.js or JavaScript and Express. If I talk about big data technologies, I have worked with Apache Hadoop, HDFS, Apache Spark, Apache Flink, Apache Superset, and Apache Hive. So, I have worked with different, versatile technologies. If I talk about the products I've worked on, I always follow software practices like creating property retrenching and deploying projects using CICD pipelines. To maintain the CICD pipeline, I have used GitHub Actions, Jenkins, Kubernetes, and Docker. I'm also contributing to client communication, discussing with clients and stakeholders to convert their business departments into solutions. Additionally, I have been involved in appraisal activities, discussing with clients to give proper technology strategies or suggestive approaches. And, yes, overall, I'm very driven by technology; I'm very passionate about technology. Thank you.
Okay, so here the best example is, like, to set up the proper architectural branching. Normally in a project, we set up the deal, staging, and the production environment. And from the open branch, we always prefer to create the feature branch. So, I will prefer to create a different feature branch. So, suppose I am working, I will create my own feature branch with my particular name. And if the other developer has created one, then they will upload that particular branch. So, which I can easily merge that branch, and my branch will not be updated.
How do you manage the state? There are multiple ways to store the state, like in log normally, in log in state, we are using either local storage or cookies. So, what we can do is suppose if there's a question that was answered, then I will store that particular thing in our local storage. And, like, showing that one, there's no need to refresh the browser, right. And, also, cookies is also one of those solutions. In cookies, we have an extra facility where we can store data for a particular time. For example, if you want to store data for 1 or 2 or 10 minutes, we can get that facility in cookies. But in case of local storage, yes, we can do that, but to maintain that expire time, we have to do it according to our logic only. Like, we have to calculate every time if the time is expired, then we have to clear those local storage. So, this is the option. Like, I suggest using login state, reading the answers, questions in the form of refreshing the browsers also. Thank you.
So, in the symphony, while we are creating the APIs. Right? So first of all, we have to keep the proper standards and we have to create the APIs within basic grounds and list of persons, create, update, delete, and list them. And we'll always follow the proper commenting for that particular list APIs functions, maintaining the proper commenting. So that while deploying, it will be automatically helpful with the tools under our documents accordingly. So, if I talk about the deployment strategies, then what I can consider in this one. I will suggest in the application if you deploy this, I have a presence in Kubernetes, then right? So I will always refer to a rolling update strategy so that if we update the feature, it will not go down, it will not affect the current running. If our new features will be uploaded, once it is uploaded on a particular port, then that previous node, one node will be down. So, I will prefer the rolling strategy in this case. And if my future is very big, it will change in a very large database or something like that. Then I will prefer a blue-green deployment strategy. So, in return, I will create an identical environment where I will deploy that my API. I will test it. And if it is working fine, then gradually I will transfer all my load from the blue environment to the green environment. So, yes, I will use basically this type of strategies like rolling update or a blue-green deployment.
So, yes, in this PHP-based application, what we can do is create a separate, open module, and we'll create a separate database for that particular module. And what we can start with is a high-level example. Suppose if you talk about very usual work with ecommerce. Right? So in ecommerce, we have a product model, a customer model, and basically, we have an order model. We'll create three models, and we can say it's some database for those particular things. And suppose there's one page where I need to display the orders generated by that particular user. So I need to fetch all those orders, and we can set some item details. So what I will prefer in this case is to maintain a separate module. And I will keep a separate database for that one. So what I will do is, whenever anything happens, like customers will register or any product will be added or any orders will be added, I will use a messaging queue system, like RabbitMQ or Apache Kafka or any other messaging service. We can also create an event. Like, we will send that. It means we will push those events into that particular messaging service. And accordingly, as a receiver, in this one, we will sync as in we will either use a hook or something like an event. In this particular case, once we'll receive the event, I will create the database accordingly, like customer, then order ID, and then item ID, that item name, something like that. So I will create a separate database as a combination of all these three modules, so that if the three services are down, then my default services will not have any issues with the other down services. So, yes, I can use microservices architectures in the PHP-based applications.
So, first of all, the first issues I can identify, we have used an async function. So while we are calling the fetch, we have to use 'await' first of all, in that one. Also, as a coding standard, we are just concatenating the string. So as a coding standard, we can use the back tick, and we can use the proper string only so that the user ID will be written properly. And also here, we are directly doing response to JSON, and then directly, we are doing console dot log. Right? But here, in the return statement, we are returning the particular as a string only. But instead, the data that should be written into the function. So, well, I have identified three issues, like an await, first of all. Then, if you have to use a proper coding standard, you have to use a string in the 5 statement, the 1st API/slash user, slash 10, as in dollar user ID as an old string. All and also, in the return, we have to return the data itself. Also, if I talk about any error handling, then here, we are not handling any type of errors, like whether we are receiving the data or not or something. So we can also integrate like try and catch, so that anything happens into this API or something. So if we are not getting a proper response, suppose that API is having some issues and instead of we are receiving a text, so the second statement that then response will not work. So instead, what we can do, we can use an either we can say it's promise resolved or try and catch, error handling cases.
If you talk about web securities, then what we can say is that as an authentication system, like what happens, suppose the user is already logged in, then we can store whether an access token, in a JWT token or something. So if you will send any request to fetch any data after login, like for example, if it's a shopping cart, then I find getting the user's order data. So if I'm calling any APIs to fetch those data, I will send those, along with the token, and at the server end, I will cross-verify whether the token is valid or not. If it is valid, then I will send that data to the particular front end. If I talk about network security, then I will use SSL always. So, in the transition, there will be no changing of data. And suppose if you're not using an SSL, then there are some mechanisms available. Like when we send data along with the token, we will calculate the checksum. So, the checksum is basically whatever the data we are sending to the back end. We'll make them in a sending order, we will make them in one pattern, and then we will generate one using a hash token. And similarly, once we receive the request into the server end, we'll again fetch those data, we'll again do the same calculations, like we do the same process of sorting the data, creating checksums, and we are comparing those checksums. So, that if the checksum is proper, means there is no change, there is no possibility of changing the data. If I talk about entering data, right, so we will always use a proper XSRF token, so that there is no direct DDoS attack. Apart from that, we are not storing, means always we are doing some sanitization in the data. For example, in the first name, suppose if you enter a script, like a script tag, then it won't be stored into our database. Otherwise, what happens, where we are displaying the first name, in that case, it will be alerted. So, what we are doing is normally sanitizing that type of data also, and most of the frameworks have this type of filter available, like in Codeigniter or Laravel or Symfony.
In this one, what we can do, in this one, the first, what I'm seeing, that one has a solid principle. The first is like, whatever, our implementation is there. That should be a single responsibility. Right? So here, if I talk about them, this is a process payment. Right? So if there is a payment issue, then the whole class should be available for the payment itself. But here in this processing payment, we are also calling the shipping method. It's initiating the shipping method. So that's one type of issue. Also, if I talk about their, so what we can say, it's open for extension and open for extension, but closed for modification. Suppose, for example, if there's any change in something like that. So if it's a message data thing, then it should be like, I need to extend those message data things. But here, what happened is the code is available in a single class itself, I have to open and update that particular payment service class itself. So that's evaluating the second principle, like open for extension and closed for modification. If I talk about other issues, then here, basically, what happened is like, after all the procedure here, what actually it is happening. So here, what happened is we can set some payment processes. Right? So after that, we are calling funds, and there's a process to pay after processing the payment. What happened is it's returning one flag, whether it's successful or not. If it's successful, then it's calling, it means it's sending that in a messaging that you, the dispatch where the payment is successful. And it will send the proper order ID. And if it's successful, then they initiate the shipping charges. I mean, ship initiate the shipping. Right? Because if it's a failure, then they're saying, okay, the payment is a failure, and this is the order ID. And as this is the failure, we need not to initiate the shipping method. Right? And also, in the shipping method, what you're checking is whether it's a physical product or not. If it isn't a shipping product, then shipping will be initiated. So here, and if it's not a physical product, you can say it's another product, like a subscription or digital subscription. We can say it's a subscription or digital subscription or something. So that may be a possibility. Sorry. So in that case, we need not to do any physical delivery. So, that's else part is then there's a shipping not required in that case. So, yes, this is under the method the class is specifying.
So, yes, in a single-page application, it doesn't mean we cannot go to another page or something, but every framework provides a proper routing mechanism, right? So we can create, for example, if I talk about React, we usually work with React. So in React, normally we use the Next framework, right? So in the Next framework, we have a path-based, or file-based routing. For example, if I talk about the profile section, so in profile and then edit profile slash edit profile slash show profile slash list, something like that. We can create different files for particular profiles and create a particular component for those pages, so that when we navigate using different links, the default link component is Link. So Link.navigate. If you navigate, then it will not refresh the page. In the internal routing mechanism, it will just clear the current window component and mount the another component according to the file-based routing. Also, in case of core React, we have a routing mechanism there. According to different routes, we change the URL and according to the URL, the component will be automatically changed inside the front-end framework. So yes, according to that, we are based on routing and based on different frameworks, like I discussed in the Next framework, we have file-based routing. So using that, we can maintain multiple pages in a single-page application.