MOHAN KRISHNA

Technological Expert based in Irving, TX

  • Technical Expertise

    Leveraging expertise in software development, cloud computing, and data engineering to drive innovative solutions.

  • Innovative Solutions

    Passionate about creating scalable and efficient applications using cutting-edge technologies and best practices.

  • Commitment to Excellence

    Dedicated to delivering high-quality, optimized, and user-centric applications that meet business goals.

About Me

A Passionate DevOps Engineer Who Loves to Code

12

Successful Years

About Me

A results-driven Software Engineer with expertise in DevOps, cloud computing, and data engineering. Passionate about creating scalable, efficient, and high-performing applications using cutting-edge technologies. Committed to delivering innovative solutions that enhance business processes and user experiences. With 11 years of experience, I have successfully contributed to various projects, specializing in DevOps practices, cloud solutions, and AI-driven applications. My expertise spans across multiple programming languages, automation tools, and modern tech stacks.

    • Name

      Mohankrishna Podile

    • Email

      mohankrishna.podili@gmail.com

    • Phone

      +1-9295951565

    • Address

      Irving, Texas, United States.

    • Degree

      Bachelor of Technology (B.Tech.) in Computer Science and Engineering

  • 0

    Years Experience
  • 0

    Certified Kubernetes Application Developer
  • 0

    Certified Kubernetes Administrator
  • 0+

    Certified Kubernetes Security Specialist

My Certifications

Skills

I Work Hard to Improve My Skills Regularly

Cloud Platforms 95%
Scripting & Programming 80%
Databases 75%
DevOps Tools 90%
Monitoring & Security 85%
Kubernetes, Docker etc. 90%
Services

What I Do for My Clients

  • Cloud Infrastructure & Deployment

    • Expertise in AWS, Azure, GCP for scalable and secure infrastructure. • Proficient in Kubernetes, Docker, and Terraform for automated deployments.

  • DevOps & CI/CD Solutions

    • Experience in Jenkins, GitHub Actions, and Azure DevOps for seamless integration & deployment. • Automation using Ansible, Terraform, and Bash scripting.

  • Security & Monitoring Solutions

    • Implementation of security best practices with Fortify Scan, BlackDuck, and DAST. • Proficient in monitoring tools like Prometheus, Grafana, Splunk, and New Relic.

  • Performance Optimization & Scaling

    • Load balancing, auto-scaling, and high-availability architecture. • Optimizing cloud costs and improving system efficiency.

  • Consulting & Team Leadership

    • Leading teams to implement DevOps culture, best practices, and automation strategies. • Training and mentoring teams on cloud and DevOps technologies.

  • Database & Backend Optimization

    • Experience with PostgreSQL, MySQL, Redis, and Kafka for high-performance data management. • Optimizing databases for scalability and efficiency.

Resume

I Worked for Some Big Companies

Experience

  • Software Development Lead (Apr 2023 – Present)

    Brillio LLC, USA

    • Led Kubernetes infrastructure with Terraform & Ansible (25% faster deployments).
    • Integrated CI/CD pipelines with GitLab & Terraform (30% cycle reduction).

  • Senior Software Engineer (DevOps) (Sep 2019 – Apr 2023)

    Brillio Technologies, India

    • AWS Cloud platform implementation & Kubernetes scaling.
    • Managed Docker, Terraform, CI/CD & microservices deployment.

  • Software Engineer (Jun 2013 – Sep 2019)

    Sinitron Technologies, India

    • Linux server management, log monitoring & system upgrades.
    • RedHat Linux installations, cron jobs & 24/7 support.

Education

  • Chirala, India(Aug 2006 - Jul 2010 )

    Jawaharlal Nehru Technological University Kakinada (JNTUK)

    Bachelor of Technology (B.Tech.) in Computer Science and Engineering

Portfolio

What I Do for My Clients

Feedback

What People Say

Blog

Latest Blog Posts

  • Linux is a free and open-source operating system (OS) that is based on the Unix operating system. It was first developed in 1991 by Linus Torvalds and has since become one of the most popular and widely used operating systems in the world.

    One of the key features of Linux is its flexibility and modularity. The Linux kernel, which is the core of the operating system, is highly configurable and can be customized to suit the needs of different types of devices and systems. This has led to the development of a wide variety of Linux distributions, each with its own set of features and tools.

    Another key feature of Linux is its strong support for open-source software. The majority of the software that runs on Linux is open-source, which means that it can be freely modified and distributed. This has led to the development of a large and active community of developers who contribute to the development and maintenance of Linux and its associated software.

    Linux has a wide range of applications, from servers, desktop environments, mobile phones, to embedded devices, and supercomputers. It is also widely used in cloud computing and in the internet of things (IoT) devices. It is considered a stable, secure and reliable operating system and it is widely used in enterprise environments.

    Some popular Linux distributions include Ubuntu, Fedora, Debian, and Red Hat Enterprise Linux (RHEL).

    1. System and process management: Understanding how to manage and monitor system resources, such as CPU, memory, and network usage, as well as managing processes and services.
    2. Security: Understanding best practices for securing a Linux system, such as setting up firewalls, configuring access controls, and implementing encryption.
    3. Network administration: Understanding how to configure and manage network interfaces, routing, and DNS.
    4. Package management: Understanding how to manage and install software packages on a Linux system, such as using package managers like apt or yum.
    5. Storage management: Understanding how to manage storage devices, partitions, and file systems, including LVM and RAID.
    6. Backup and recovery: Understanding best practices for backing up and restoring data on a Linux system.
    7. User and group management: Understanding how to create, manage, and delete users and groups, as well as managing permissions and access controls.
    8. Shell scripting: Understanding how to write scripts to automate tasks and improve efficiency.
    9. Monitoring and performance tuning: Understanding how to monitor system performance and troubleshoot issues, as well as configuring and tuning system settings for optimal performance.
    10. Virtualization: Understanding the concepts and technologies used in virtualization, such as KVM, and how to create and manage virtual machines.

    These are some of the main topics related to Linux administration, but there are many more areas to explore and learn depending on the use case and specific requirements.

    User management:

    In Linux, user management is the process of creating, modifying, and deleting user accounts and managing their associated permissions and settings. The following are some common tasks related to user management in Linux:

    1. Creating users: The “useradd” command is used to create a new user account. It can be used to set the user’s name, home directory, and default shell, among other options.
    2. Modifying users: The “usermod” command is used to modify an existing user account. It can be used to change the user’s name, home directory, and default shell, among other options.
    3. Deleting users: The “userdel” command is used to delete an existing user account. This command can also be used to remove the user’s home directory and mail spool.
    4. Managing user passwords: The “passwd” command is used to change a user’s password. The “chage” command can be used to set password expiration policies for a user.
    5. Managing user groups: The “groupadd” command is used to create a new group, and the “groupmod” command is used to modify an existing group. The “usermod” command can also be used to add or remove a user from a group.

     

     

    1. Managing permissions: The “chmod” command is used to change the permissions on a file or directory, and the “chown” command is used to change the ownership of a file or directory.
    2. Viewing user information: The “id” command can be used to display information about a user, such as their user ID, primary group ID, and supplementary group IDs. The “finger” command can also be used to display information about a user, such as their login name, real name, and home directory.

    It’s important to keep in mind that user management should be done with proper access control and security in mind, and to have a good understanding of the permissions and groups settings in Linux.

    Disk Management:

    some common tasks related to disk management in Linux and the commands used to perform them:

    1. Viewing disk information: The “fdisk -l” command can be used to view information about the disk devices and partitions on a system. The “lsblk” command can also be used to view information about block devices and their partitions.
    2. Creating partitions: The “fdisk” command can be used to create new partitions on a disk device. It can be used to create primary, extended, and logical partitions.
    3. Formatting partitions: The “mkfs” command can be used to format a partition with a specific file system, such as ext4, xfs, or NTFS.
    4. Mounting partitions: The “mount” command can be used to mount a partition to a specific directory on the file system. The “umount” command can be used to unmount a partition.
    5. Resizing partitions: The “fdisk” command can be used to resize partitions. The “gparted” is also a good graphical tool to resize partitions.
    6. Checking file system: The “fsck” command can be used to check the file system for errors and fix them.
    7. Managing swap partitions: The “swapon” command can be used to enable a swap partition, and the “swapoff” command can be used to disable a swap partition.
    8. Managing LVM: Logical Volume Manager (LVM) is a system for managing logical volumes, or filesystems, that is built on top of physical volumes. It allows for more flexibility in managing storage space. The “pvcreate”, “vgcreate”, “lvcreate”, “lvresize” are common commands to manage LVM.

    It’s important to keep in mind that disk management should be done with proper backups and it’s always good to have a plan before making any changes. Also, understanding the partition table format, file systems and disk layout is very important for disk management.

    1. Logical Volume Manager (LVM) is a system for managing logical volumes, or file systems, that is built on top of physical volumes. It allows for more flexibility in managing storage space, and allows you to easily resize and move partitions. The “pvcreate”, “vgcreate”, “lvcreate”, and “lvresize” are common commands used to manage LVM.
    2. File system management: Different file systems have different features and capabilities, and it is important to choose the appropriate file system for a given partition. Common file systems include ext4, xfs, and NTFS.
    3. Mounting and unmounting partitions: The “mount” command is used to mount a partition to a specific directory on the file system, and the “umount” command can be used to unmount a partition.
    4. Resizing partitions: The “fdisk” command or “gparted” can be used to resize partitions. This allows you to increase or decrease the size of a partition without losing data.
    5. Formatting partitions: The “mkfs” command can be used to format a partition with a specific file system, such as ext4, xfs, or NTFS.
    6. Checking file system: The “fsck” command can be used to check the file system for errors and fix them.
    7. Managing Swap: Swap space is used as a temporary storage area, when the physical memory (RAM) is full. The “swapon” command can be used to enable a swap partition, and the “swapoff” command can be used to disable a swap partition.

    It’s important to keep in mind that volume management should be done with proper backups and it’s always good to have a plan before making any changes. Also, understanding the partition table format, file systems and disk layout is very important for volume management.

  • The architecture of a Kubernetes (K8s) system is composed of several components that work together to manage and orchestrate containerized applications. The main components of a K8s architecture include:

    1. etcd: A distributed key-value store that stores the configuration data of the cluster. It is used to store the configuration data of the cluster and its current state. It allows the master and worker nodes to maintain a consistent view of the cluster state.
    2. API Server: The component that exposes the Kubernetes API and handles communication with the other components. The API server is the main entry point for interacting with the cluster and it is responsible for handling all the RESTful operations that are used to interact with the cluster.
    3. Controller Manager: A component that manages the state of the cluster and ensures that the desired state is achieved. The controller manager watches the state of the cluster and makes decisions on how to move the cluster to the desired state. Some examples of controllers are the Replication Controller, Deployment and StatefulSet.
    4. Scheduler: A component that schedules pods to run on worker nodes. The scheduler is responsible for determining which worker node to run a pod on, based on a set of predefined rules and resource availability.

    These components work together to provide an unified and consistent view of the state of the cluster, and to ensure that the desired state of the cluster is achieved. For example, the API server communicates with the etcd to retrieve the desired state of the cluster, and the controller manager communicates with the API server to update the state of the cluster.

    It is important to note that etcd should be highly available, as it stores the state of the cluster. And the master nodes should also be highly available, as they are the control plane of the cluster and the communication point between the worker nodes and the user.

    The worker node in a Kubernetes (K8s) cluster is responsible for running the containerized workloads. The main components of a worker node include:

    1. Kubelet: A component that communicates with the master node and manages the containers running on the node. The kubelet is responsible for ensuring that the containers are running as expected, and it communicates with the master node to report the state of the node and the containers running on it.
    2. Container Runtime: This is the component that is responsible for running the containers, such as Docker or containerd. This component is responsible for creating, starting, stopping, and deleting the containers on the worker node.
    3. Pod: A pod is the smallest and simplest unit in the Kubernetes object model that can contain one or more containers. Pods provide a logical host for one or more containers, and they are the basic unit of deployment in K8s.
    4. Kube-proxy: a component that runs on each worker node and is responsible for handling network communication for pods running on the node.
    5. Volume: Kubernetes Volumes are used to provide persistent storage for pods, and they can be backed by various types of storage, such as local storage, NFS, or cloud-based storage.
  • The worker nodes communicate with the master node to report the state of the node and the containers running on it, and they receive instructions from the master node on which containers to run and how to manage them. Together, the master and worker nodes work together to manage the state of the cluster and ensure that the desired state is achieved.

    1. Kubernetes Services: Services are an abstraction layer for pods, which allow you to access pods by a stable network IP and a port.
    2. Ingress: An Ingress is a collection of rules that allow inbound connections to reach the cluster services.
    3. Volumes: Volumes are used to provide persistent storage for pods, and they can be backed by various types of storage, such as local storage, NFS, or cloud-based storage.
    4. Namespaces: Namespaces are used to partition resources in a cluster and can be used to isolate resources for different environments, teams, or projects.

    This is a high-level overview of a Kubernetes architecture, and there are many more components and features that can be added to the system depending on the use case. Kubernetes is an extensible platform, new features and functionalities are added regularly.

Contact

I Want to Hear from You

  • Address

    Irving, Texas, United States
  • Email

    mohankrishna.podili@gmail.com
  • Phone

    +1-9295951565

    Subscribe Now

    Get My Newsletter

    Get latest news, tips and tricks in your inbox