profile-pic
Vetted Talent

MOHAMMED AZHAR

Vetted Talent

Highly experienced Front End Developer with 12 years of experience using MVC, JavaScript, Node.js, Kubernetes, Azure, Kafka, Redux, CI/CD, REST API, SQL Server, QA, MicroServices and Cosmos Db. Skilled in developing high-performance applications for web and mobile platforms utilizing the latest technologies.

  • Role

    Senior IOT Consultant

  • Years of Experience

    15.5 years

Skillsets

  • NoSQL
  • C#
  • Cosmos
  • CSS
  • Cypress
  • EC2
  • Github
  • Linux
  • Mongo
  • MS SQL Server
  • nginx
  • Nodejs
  • AWS
  • PostgreSQL
  • Report Builder
  • REST
  • SSIS
  • SSRS
  • SVN
  • TFS
  • TypeScript
  • Visual Studio
  • WebSocket
  • Windows
  • MQTT
  • JavaScript - 10.0 Years
  • Azure - 6 Years
  • Kafka - 1.5 Years
  • Redux - 3 Years
  • CI/CD - 4 Years
  • .NET
  • Angular
  • Bootstrap
  • Docker
  • Entity Framework
  • HTML5 - 10.0 Years
  • Redux
  • Python - 7.0 Years
  • react
  • RxJS
  • Terraform
  • WCF
  • Azure
  • react - 8.0 Years
  • SQL - 6.0 Years
  • ADO.NET
  • AKS

Vetted For

17Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Sr. Full Stack Developer/ArchitectureAI Screening
  • 67%
    icon-arrow-down
  • Skills assessed :Adaptability, Leadership Qualities, Proactive approach, Team Collaboration, Cloud Services, Containerization Technologies, Database Systems, gRPC, Micro services, Node Js, Orchestration Tools, Pixel Perfect Coding, Restful APIs, testing frameworks, Kafka, Quality Assurance, Time Management
  • Score: 101/150

Professional Summary

15.5Years
  • Mar, 2023 - Present3 yr 2 months

    Senior Full Stack AI Engineer at Aramco

    Tata Consultancy Services
  • Mar, 2022 - Oct, 20231 yr 7 months

    Senior Full Stack Developer

    Shell
  • Apr, 2021 - Nov, 20221 yr 7 months

    Senior Full Stack Developer

    Avery Dennison
  • Feb, 2016 - Apr, 20171 yr 2 months

    Developer

    Capgemini India
  • Apr, 2017 - Jul, 20203 yr 3 months

    Senior Full Stack Developer

    Expert Global Group
  • Jul, 2020 - Jan, 2021 6 months

    Senior IoT Consultant

    TechnePlus
  • Oct, 2011 - Feb, 20164 yr 4 months

    Software Engineer

    Syntel Limited

Applications & Tools Known

  • icon-tool

    Javascript

  • icon-tool

    C#

  • icon-tool

    Node.js

  • icon-tool

    Apache Kafka

  • icon-tool

    REST API

  • icon-tool

    ReactJS

  • icon-tool

    AWS (Amazon Web Services)

  • icon-tool

    Azure

  • icon-tool

    Visual Studio

  • icon-tool

    SVN

  • icon-tool

    Report Builder

  • icon-tool

    MS SQL Server

  • icon-tool

    Cosmos DB

  • icon-tool

    MongoDB

  • icon-tool

    AWS

  • icon-tool

    NGINX

  • icon-tool

    Docker

  • icon-tool

    Terraform

  • icon-tool

    GitHub Actions

  • icon-tool

    Cassandra

  • icon-tool

    PostgreSQL

  • icon-tool

    SQL Server

  • icon-tool

    AngularJS

  • icon-tool

    Bootstrap

  • icon-tool

    HTML5

  • icon-tool

    CSS

  • icon-tool

    ASP.Net

  • icon-tool

    Entity Framework

  • icon-tool

    TypeScript

  • icon-tool

    SSRS

  • icon-tool

    SSIS

Work History

15.5Years

Senior Full Stack AI Engineer at Aramco

Tata Consultancy Services
Mar, 2023 - Present3 yr 2 months

Senior Full Stack Developer

Shell
Mar, 2022 - Oct, 20231 yr 7 months

Senior Full Stack Developer

Avery Dennison
Apr, 2021 - Nov, 20221 yr 7 months
    Solution design and architecture for IOT implementation in digital manufacturing (Industry 4.0). Implemented Azure IOT solutions including IOT Edge features. Developed and implemented API management, reviewed process standards, unit and integration tests. Built React Typescript templates and backend, led requirements gathering, documentation, and team best practices.

Senior IoT Consultant

TechnePlus
Jul, 2020 - Jan, 2021 6 months
    Developed device management system for printer solutions. Gathered requirements, implemented client needs, maintained support documentation, and provided project improvement suggestions.

Senior Full Stack Developer

Expert Global Group
Apr, 2017 - Jul, 20203 yr 3 months
    Led and managed teams for multiple projects including Siemens RFID Tracking, OEE System for Coca Cola, Scrubber system for Viswa Group, Machine Talk platform, Alliance Laundry Systems IOT, and Koverage Tool for KPIT. Responsibilities included requirements gathering, application development, architecture, code review, Agile delivery, documentation, and optimization.

Developer

Capgemini India
Feb, 2016 - Apr, 20171 yr 2 months
    Developed dynamic and automated business websites and vendor portals for American Titles. Participated in Agile processes, scrum meetings, planning, demos, and retrospectives. Maintained support documentation and contributed project improvement suggestions.

Software Engineer

Syntel Limited
Oct, 2011 - Feb, 20164 yr 4 months
    Worked on Demand Management System and Workflow Development for Humana Inc. Developed web applications, console applications, web services, and forms in .NET. Involved in database activities, requirement analysis, deployment, testing, support, maintenance, and Agile delivery. Prepared unit test cases and participated in daily client calls.

Achievements

  • Employee of the year 2017 in Expert Global IT Solutions
  • Simple Value Award by Syntel
  • Synergy team award for working in the Rainbow team

Major Projects

11Projects

RBIS iCore

Jan, 2021 - Present5 yr 4 months
    RBIS iCore One IOT implementation with Regards to Digital Manufacturing Industry 4.0.

Siemens RFID Tracking

Dec, 2019 - Present6 yr 5 months
    RFID Based tracking solution for the Circuit Breakers, Drives and Sub Assembly

PSD Device Management

Jul, 2020 - Jan, 2021 6 months
    Device Management System over printer solutions.

OEE System

Aug, 2019 - Dec, 2019 4 months
    Coca cola machines OEE with the help of Machine Talk device and that of Azure IOT Suite.

Scrubber

Nov, 2018 - Aug, 2019 9 months
    Scrubber system is the digital solution provided for the Scrubbers to monitor the health of scrubber. The system is developed to regulate the SO2 and CO2 content of the gas emitted out of the scrubber. The system involved the real time display of the values from different sensors. The system also includes analytics and reports needed.

Machine Talk

Dec, 2017 - Nov, 2018 11 months
    MachineTalk is integrated M2M & IoT platform that aims to integrate ERP, Machine and Automation Layers of the connected manufacturing enterprise. The MachineTalk platform addresses this issue by allowing Integration with machine Integration of real time data with ERP Manufacturing process orchestration by real-time tracking

Alliance Laundry Systems Internet of Things

Aug, 2017 - Dec, 2017 4 months
    Alliance Laundry Systems are the manufacturer company based in UK. This project Alliance Laundry Systems Internet of things provides an interface between the ALS appliance and the cloud. It reads data from the appliance () , stores it and then sends it to the cloud. In the cloud, it is stored in SQL Server Database for further dashboard reporting and analysis.

Koverage Tool

Apr, 2017 - Jul, 2017 3 months
    Koverage tool is an application developed for KPIT for validating and assisting machine learning in Advanced Driver assistance software application. There are different Modules that are availaible in this tool. The modules include Annotation Module, Project management,User Management,Application Workflow and Dashboard overview. Annotation Module will used for marking and labeling of the target objects in the video frames so as to provide precise decision making for the software to generate alert signals and warning to the driver for efficient driver assistance. Project Management Module is used to to manage different Roles like Data Engineer,Verification Engineer ,Client and Manager. Usermanagement Module is used for user creation,deletion and updation Dashboard gives the overall application status about the videos and Workflow. Manager Modules is used for assignment of work to DataEngineer and Verification Engineer.

ION

Feb, 2016 - Apr, 20171 yr 2 months
    American Title, Inc. has been operating nationwide for 20 years as a leader in real estate information services. At American Titles we as developers have developed very dynamic and automated business Website called ION and Vendor Portal to make the processes strong and paperless.

Demand Management System

Feb, 2015 - Feb, 20161 yr
    Demand Management System is the inter HR tool of Syntel Limited that deals with the demad of the resource in any of the project. This project is a Web Application that uses C# ,.asp.net and WCF to connect to other services.

Workflow Development

Dec, 2011 - Feb, 20153 yr 2 months
    Workflow team handles all the business related to claims in healthcare for Humana client. It uses the tool called Macess that is used by more than 1600 Humana associates. In this project we developed console application, web services, scripts and forms in Dot net framework. Currently we are working on application called CORD which will based on MVC architecture to keep the UI code clean. Workflow also takes care of correspondence and CLAIMS processing and tracking for the business.

Education

  • B.Tech Information Technology

    Government College of Engineering Amravati (2011)
  • HSC

    Maharashtra Board (2007)
  • SSC

    Maharashtra Board (2005)

Certifications

  • React

    W3School (Sep, 2023)
    Credential ID : 1O44KLSINM

Interests

  • Swimming
  • Chess
  • AI-interview Questions & Answers

    I'm a grammar editor with a background in linguistics and editing. I have overall 12 years of experience working in various companies, including Capgemini Global. Currently, I'm working as a full stack developer with every Denizen, where I'm working as a senior full stack developer. My core skills are around React, Node.js, TypeScript, MongoDB, PostgreSQL, and NestJS. My background is around full stack development, and my domain knowledge is around IoT. I have also worked on cloud solutions, including Azure.

    How does container orchestration with Kubernetes enhance the development of the microservices build with Node.js and gRPC? Okay. So, Kubernetes, like, container orchestration majorly helps around scaling and load balancing. Like, Kubernetes will allow easy scaling of Node.js microservices. So, and then, if you want a consistent environment and deployment, Kubernetes offers that, and that's how it will help enhance the deployment of microservices. We would have version control as well as the ruling of updates, you know, then we would have good resource management, and we can provide isolation and security, which is critical in microservice architecture for security and dependency management. So, definitely, this container orchestration will help around all that stuff.

    We would focus on unit testing, primarily using a unit testing framework like Jest. We can mock external dependencies like Kafka producer or consumers using Jest's mocking features. Then, we can also perform integration testing, end-to-end testing, and load testing. For automation, we can set up a Continuous Integration and Continuous Delivery (CICD) environment. This will ensure our environment remains stable. We can also perform integration, end-to-end testing in this environment.

    We're planning to break a monolithic architecture into microservices using Kafka and gRPC. To ensure a smooth transition with minimum downtime, we'll use a gradual migration pattern. This involves migrating functionality from the monolith to microservices in a step-by-step process. First, we'll understand the system's modeling, mapping functionality, dependencies, and data flow within the monolith. Then, we'll identify microservices by breaking down the monolith into logical, independent, and deployable services, prioritizing them based on ease of extraction, business value, and risk. Next, we'll set up Kafka and other required infrastructure, and establish a gRPC framework. This process will be iterative, allowing us to refine and improve our approach as we progress. Once we've completed the transition, we'll document the new architecture and provide training to other individuals to ensure a seamless handover. A clear roadmap will be defined to guide the process and ensure a successful outcome.

    We can start with analyzing the logs, like Kubernetes logs, and look for errors and warnings that might indicate issues during startup or runtime. We can analyze the startup processes and then optimize the container image, maybe. Is. And then we should check and review the CPU and memory allocated to the container to ensure it is properly allocated. We can then use horizontal scaling, auto scaling, maybe, to manage this. And, like, you can do performance profiling. Like, you can use different profiling tools to see what has been going wrong. If all of this doesn't work, we have to go through our Node.js code and try to optimize it. You can see how much time the database is taking. You can see the network latency. You can check around the Azure network and then review the network, how it is impacting the network, like Azure network latency. It can be impacting. And yes. We can also review the Kubernetes service and ingress. If all this doesn't work, then you can definitely contact Azure support and review their documentation.

    When implementing a new feature, how do you ensure it integrates well with both Kafka event streaming and existing Azure cloud infrastructure? To implement a new feature like this, Azure cloud infrastructure, you know, a series, we can do a series of things to ensure the performance and the reliability of the application. First, you can understand the existing infrastructure feature, then review the current Azure infrastructure and Kafka setup, and understand the existing configuration, such as network setup, security rules, Kafka topics, and so on. Then, you can clearly define your requirements. Once you have defined them, you can review your design, and then set up your development machine. So, to do this, we have to do a feasibility test if our new feature interacts with other services as well, and then we need to do a feasibility test. And if everything is right, then we ensure that correct serialization details of the Kafka message happen, and we can handle Kafka messages, offsets, and partitioning, and implement the necessary.

    Given a specific scenario where a fine-grained microservice architecture needs to be set up with Node.js, gRPC, and Kafka, I would design the system for smooth intercommunication among the services and periodic data syncing with minimum latency as follows. To design a fine-grained microservice architecture, we assume an event-driven architecture. We define boundaries between services to ensure loose coupling and independence. For smooth intercommunication, we consider channels for integration. Load balancing is also crucial to distribute the workload efficiently. We can implement a staging deployment environment to test and refine the system before moving it to production. This staged approach helps to catch and fix any issues before they affect the live system. We would always have a server in between staging and production, ensuring that the production environment remains stable and secure.

    Last day, the step you would take to ensure deploying an application on Azure utilizing both PaaS and IaaS offerings? So, to deploy an Azure or to deploy a Node.js application on Azure, we prepare our Node.js application to ensure it's ready for production. We have source control. We generally set up the database required, and then ensure that your code is on GitHub or Azure Web Apps or Bitbucket or Azure DevOps. Then you can set up the Azure services, like PaaS offering is done by Azure App Service for hosting Node.js. For IaaS, you can consider Azure virtual machine or Azure Kubernetes service if you need a more collaborative, controlled environment or specific configuration that PaaS does not offer. So, then you need databases, network, and security services. We're gonna have a VNet configured, which will help. Then you can configure your Azure app service, and then set up the IaaS environment. Or, if you're opting for AKS, you have to consider Kubernetes concerns according to your complication needs. You can set up CICD pipelines. So, both PaaS and IaaS offerings will be taken care of.

    In Kubernetes environment, how would you address pod scalability based on incoming traffic? To do this, you can generally use the horizontal pod autoscaler. The horizontal pod autoscaler automatically scales the number of replicas in the deployment or replica set based on CPU utilization or other metrics. Addressing this, you can configure your resource request and limits, like with the help of CPU. You specify how many CPUs you want to request and how many CPUs you want to limit. This will help you scale the environment.

    How would you debug performance bottlenecks in a system that uses Kafka for real-time processing and Node.js services? Clearly, if you generally, we connect, monitor, and collect metrics, like input/output operations being done, Node.js CPU utilization, Kafka CPU utilization, we need to determine high latency and low throughput. So, where are the performance issues? Is it from latency issues or performance ratios? And we have to check the bandwidth and see if there's a flag. To profile Node.js services using tools like the inbuilt tools, `--inspect --inspect-flag`, we have Clinic.js that will help us get the profiling of the Node.js application to identify CPU-intensive operations or memory leaks. So, we can review our algorithms and code, or analyze the Kafka producer and consumer performance and check the batch size, linger time, and compression settings. This way, we can debug the performance bottleneck in the system that uses Kafka for real-time processing and Node.js services.

    How would you ensure data consistency across distributed services when applying changes in an event-driven architecture using Kafka? To ensure data consistency across distributed systems, we can use strategies like event sourcing, exactly once semantic Kafka, or atomic transactions. We make sure item potency is there, making the operation item potent. So, retrying the same operation does not change. That means if you retry the same operation, it does not change the state beyond the initial application. We can also use compensating transaction sagas, the saga pattern. We can use event ordering. Then we can use read and write models. This will help us capture the data. We can do good documentation and governance. Graceful error handling will help us ensure that the distributed services apply the changes, ensuring consistency in the data.

    Can you suggest a strategy for monitoring and handling Kafka Messenger delivery failures in a robust manner? There are some comprehensive strategies that will help run in a robust manner. Like, you can configure Kafka reliability by setting appropriate values for acknowledgments, retries, and retry backoff in producer configuration. And, you can use in-sync replicas and replica factors in the broker settings. Proper logging and a strategy for alerting mechanisms, as well as a dead letter queue, like setting up a dead letter queue to capture undelivered messages, is one thing. This ensures that problematic messages are set aside for analysis and don't block processing. You can also use message idempotence techniques to prevent sending duplicate messages. And you should always have end-to-end tracing of the application. You should have retry logic in consumer error handling and in producers. This way you can handle failures in a robust manner.

    In case where there is a sudden surge in user requests causing the microservice architecture orchestration to fail due to Kubernetes, how would you debug and manage and prevent such an incident in the future? Handling the sudden surge of users and failure, we can have an immediate response mechanism. You can use immediate response and mitigation, such as scaling up the service for images. However, to add any additional measures, you can do rate limiting. You can also divert the traffic to another service. So you can debug and manage the situation. But if you want to prevent this in the future, you can identify the bottlenecks. Like, you can monitor the Kubernetes metrics. You can analyze your logs, and then you can do a root cause analysis and try to mitigate and root cause the issue. Like, we can do load balancing. And also, you can do capacity planning to optimize this kind of scenario. So after a post-incident review, you can find out the solution, and you can make sure that next time, if the same issue arises, you can document it. Documentation, documenting your learning, is important.

    To approach database schema changes in a way that ensures compatibility with the microservice, we can do version controlling to ensure compatibility. We can make sure everything is backward compatible. We should also despondent contract patterns like adding a new element without reviewing the old ones. And then you can migrate the application gradually. There are database refactoring tools that will help us analyze the effect of this approach. That would help us and even you can do a phased rollout or a fallback plan. You should always have a fallback plan. This way you can ensure the compatibility with the microservice.

    So how would you recover and ensure minimum service disruption for a large scale Kafka Node Js system where a substantial number of Kafka brokers have failed? So, recovering from such a scenario means you can do a few approaches. The first approach would be to immediately perform an impact assessment. You can quickly assess the impact of the local failure on your system, determine which Kafka traffic and partitions have been affected, and how services have been impacted. You can engage in a disaster recovery plan. If you have one in place, it's time to engage it. You have to implement it, which may include switching to a standby Kafka cluster if available. You can do a restart and data integrity check, and then restart the failed Kafka broker. Once you've checked the integrity, you can also do some replication and failover. You'll always have a replication and failover mechanism, and you can redistribute the load around. This will help you reduce the load and ensure minimum service disruption for Kafka brokers. There are some more things you can do. You can do a root cause analysis. You can review and improve disaster recovery plans. You should also document this incident.

    In what ways have you used functional programming principles in Node.js to tackle complex coding problems? So, functional programming, first of all, focuses on function problems, using immutable datasets, which has a major advantage of having immutable data structures. I've used functional programming, and a key aspect of it is having pure functions, which are functions that don't change. If a function is pure, then it has less chance of failure, and it's always better to have a higher order function like map. For instance, methods like map, filter, and reduce are integral to functional programming and are used to transfer data without mutating the original array. I've also used functional programming concepts like currying, partial application, and recursiveness. Recursiveness is always beneficial, and I've used it multiple times. In fact, recursion is often a better approach than traditional complexity, as it leads to more elegant and efficient code.

    Network security in Azure cloud environment, especially when dealing with external APIs and services, can be approached by utilizing Azure virtual networks to isolate resources from third-party access. This is achieved through Azure VNet, which will isolate all resources. Then, you can create network security groups to control exposure of VMs. Only necessary components are exposed to external APIs. Additionally, an application gateway with web application firewalls can be set up to protect against SQL injection and other threats. Azure Firewall can be used to protect against unauthorized access. Azure API Management is also an option to manage external APIs by implementing authentication policies, rate limiting, and IP filtering. Another approach is to make use of private endpoints. This can be achieved through the Azure API Management service, which will help achieve secure access to resources.