
Sr. Solution Architect CTO Portfolio
Sasken TechnologiesDirector
Spinsci Health-TechDGM/Practice HeadFusion Platform | Data & AI
L&T Tech.Director Strategic Consulting
IT ConvergenceDirector, Cloud Products & Data Systems
OracleVP of Product Development
Columbus Global ServicesFMW Practice Leader
Mahindra SatyamSr. Development Manager, Cloud Products & Data Systems
OracleSr. Consultant
Techspan IncExecutive/Engineer
IIS InfotechExecutive/Engineer
EurolinkExecutive/Engineer
Nucleus
Apache NiFi

Streamlit

Keras

PyTorch

OpenCV

Kafka

Cassandra

PostgreSQL
.jpg)
Grafana

HDFS

ELK

AWS Glue

Redshift

Android

React

Node JS
.png)
Jenkins

Ansible
.png)
Docker

Kubernetes

AWS

Google Cloud

Oracle Cloud

Python

Kafka

Cassandra

HDFS

Redshift

Google Map

GIS

Node JS

API Gateways

SonarQube

Fortify

WebInspect

Hyperion

ETL

SOA

Salesforce CRM

Oracle Fusion HCM

Oracle EBS
I'm a technical architect and engineering leader. I have a 5-year background in AI and machine learning systems. I've created very complex and complicated global world-class solutions for startups as well as Fortune 100 companies. I'm extremely good at designing complex systems while also considering the customer side of the picture. I've covered data science, prediction, recommendation, computer vision, and data science, with a major focus on the AI side. Apart from that, I've dealt with high-volume, high-performing systems, high-speed communication systems, which typically require analytics and inferencing on the fly. Those are the things I can cover. I come with rich experience in managing and leading teams, and I'm open to working in any domain. I'm looking for
To design an ETL pipeline, first, I need to understand the use case, that is, what exactly is the use case. So, depending on the source and target data, you need to use basically different components. Right? One part could be that, for example, if you are reading something from IoT devices, you may have socket-based protocols or IoT listeners created in Python, which can listen to the data coming from the specific IoT devices. Then, finally, you can park it in the staging area. And then, from the staging area, another batch program can pick it up and do the remaining part on the ETL, extracting the right information for summarizing. And then finally, converting it to data frames. And those data frames can be used for a variety of purposes depending on the needs. And post that, we can dump that data into the target database. It could be a NoSQL database or a multidimensional database, where you can understand the different aspects and finally use it for the visualization process. In addition to that, you have a variety of other tools, which are either Java or Python based, like, you can utilize tools like that to deliver some of the no-code ETL flows as well. There are alternates. It depends on the situation. It can go as complex as reading 50,000 meters data, for example, from the energy analytics part, and capturing the data, understanding the frequency, reading, and other things, and converting into a summarized set of the window. For example, a window could be a 15-minute window, a 1-hour window, or a 30-minute window. And then those summarized data can be basically put into the target data warehouse or data lake to cover the ETL. All that can be done in Python. And using Python, you have a number of frameworks, including the data tree and the NumPy library, where you can do a number of manipulations on the data. You can do a number of formatting on the input data. You can also filter the data to part out the invalid records from the normal flow. And then you should be able to give the ability to correct that data at a later point in time and then ingest it back into the ETL pipeline. So, these are basically some of the ways in which you can utilize Python. Another important aspect is when you are dealing with really high-volume data, you know, Python may not be able to handle the volume flow. So, what you can do is use the divide and conquer technique, segment the data, partition the data, and then adjust the data using Python less frameworks.
So you can have Docker images, which are for various ML systems in question. And these Docker images can be deployed on the port. Right? So you can have port, and then you can use key tests to manage the scaling up and scaling down. Geared tests can be used for a variety of other purposes. For example, managing communication between different clusters or zones or subclusters. You can have different kinds of rollouts using QA tests when you're actually upgrading something or you want to apply AB testing. So there are a variety of things which you can do using the accommodation of containers as well as key tests. Right? The time-efficient part only comes because you have a readily available container in place, and it doesn't take very long to spawn a new container. Right? To handle, for example, the surging of volume in this particular case. Right? And on top of that, you can have your own repository and templates for various key test-based deployments, and those things can be utilized again to save a lot of time while upgrading or downgrading or holding certain things. So that becomes much more time-efficient. Another important aspect is that in the QTS and container and port case, you can also use a number of parameters to test certain things. Typically, which is not that easy and typically just a container kind of environment. For example, you can run Chaos Monkey to see how you're basically DCDR is gonna work in a particular case. Right? So all those things can be done with the combination of details in a container, Docker container, or any other container in a timely manner.
Yeah. So, utilizing multiprocessing capabilities to improve performance. So, typically, what you can do is you can do parallel training, number 1, and distributed training for model training. So, typically, in that process, what happens is our parent process basically does the coordinator job to run all the tasks where your ML model is getting trained on the particular requirement of the training dataset, and all that can be combined. For example, you can use the Microsoft library, which is already available for you to consume. It's a Python-based library, which can enable you to do multi-GPU or multi-CPU based training and final results are combined and delivered to you. So, on top of that result, you can figure out how your model was performing. That saves a lot of time, and in fact, when you're trying to run a sequential number of epochs to train your model. In practicalities, our typical model training on a typical GPU may take this long. With distributed and multiprocessing capabilities, you can reduce it to a number of hours. That's a serious advantage when it comes to multiprocessing capability. It's a parent-child kind of coordinator mechanism, what you've already seen in Hadoop and other distributed processing engines. The same techniques can be applied here to train your model, right, in a distributed manner.
So, QA test offers a lot of self-monitoring capabilities, number one. You can utilize that to give you steps on the datasets. On top of that, you can also create your own datasets, for example, how many number of requests are coming and going and, you know, how many inference requests are coming. Right? For example, what is the throughput time or the response time, right, when a request comes in and the output goes out of any known ML deployment. That is a very critical factor. The third important factor is how many requests a particular pod, for example, is able to serve. Right? So all this data can be collected. And based on that, you can do fine-tuning to optimize. So there are a number of optimizations which can be done at the model level, at the kernel level, and at the hardware level as well. Alright? So there are techniques which can allow you to run a number of feeds of the streams onto a CPU or a GPU. You can fine-tune that using all managed MLM multipliers. Number two is, you can also look at different groups. You can create different groups based on different requirements. So, for example, in your case, you may be running a number of models. Right? Some models may be lightweight in nature. Some models may be heavyweight in nature. So, depends on those models as well. So you can create different groups, and those groups can be managed independently and fine-tuned independently so that you can look at different rates, input rate, data input rate, response rate, right, and execution time. And then finally, you fine-tune them and accordingly provision the underlying hardware in the different categories. You know? So it requires a lot of fine-tuning at all layers, not just the K test, but other layers as well when you are actually dealing with optimization and performance.
Docker images can be Docker images, which can serve as version controls using our typical version control systems. There are a number of version control systems available. Number one, you can basically use that. The second thing is most important: you have to have a deployment strategy where you have a template, typically, which you need to fill and cover the dependencies. Right? Starting with the Docker images to the software version, and that version can be checked into your image repositories. Those image repositories can be linked to your different releases, the version of the software. Right? Then you can utilize during the DevOps cycle these Docker images to build a final binary or deployable unit onto the target platform. Right? So that's the technique we will use for version control on Docker.
Can any deployment be done using this. And, first, you need to execute the command line statement, which tells us about your deployment and the option to specify Kennedy deployments, and that can basically take care of this.
Generally, for optimizing cost, there are a number of things you can do on the Docker Hub. It depends a lot on the model as well. The first point is to reduce or eliminate unnecessary installs which are there in typical Docker images. Just install only necessary things, which are needed. Number 1. Number 2, what you can do is optimize your image by removing unnecessary components. That will be another important thing to look at. Our third thing is to look at the different layers which are part of our particular Docker file. You can also write scripts which can take care of automating runtime behaviors. For example, if you want to start certain services at the beginning, you can do that level of optimization. Another important aspect is that there are certain additional libraries in case of any workloads which can be utilized to optimize the token value. So, for example, you want to use a combination of GPUs and CPUs in a given email. And that optimization will not directly come from the typical installation that you have. So what you can do is optimize OpenVINO tools, and optimize your model beforehand on the Dockerfile. And then if you deploy that Dockerfile, some of the simple models can easily run on CPUs as well for inferencing purposes. In that way, you could optimize your Dockerfile and ML workload. Another important thing is when you are looking at the Dockerfile, you need to also understand the different capacity which is actually located to a particular instance. So you have to have control on the memory. You have to have control on the RAM. You have to have control on the CPU. What is the total number of CPUs you can utilize for a particular setup? And in Docker file, you can do all these optimizations to take care of your ML modules. And I've seen that you can sometimes multiply by a factor of 4 per CPU or GPU. There are other things like parallel computing and distributed computing that you can take advantage of.
I haven't done this to my company before, but I've worked with clients who have had similar issues.