[{"content":" # Hi, I am Mahesh Babu Engineer What do I do? I build intelligent and reliable backend systems using Python and cloud technologies that solve real-world problems through practical, scalable solutions. My work empowers teams and delivers results that scale. Twitter LinkedIn GitHub Mail YouTube Technologies I Work With ","date":"14 February 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/","section":"","summary":"\u003ch6 class=\"relative group\"\u003e\n    \u003cdiv id=\"\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h6\u003e\n\u003cstyle\u003e\n        h1 h2 {\n            text-align: left;\n        }\n        .tech-stack {\n            text-align: center;\n        }\n        .tech-stack .logos {\n            display: flex;\n            flex-wrap: wrap;\n            justify-content: flex-start; /* Aligns logos to the left */\n            align-items: flex-start; /* Ensures vertical alignment starts at top */\n            gap: 10px; /* Spacing between logos */\n            margin: 0; /* Removes default margins */\n            padding: 0; /* Removes padding to align fully left */\n        }\n        .logos img {\n            width: 45px; /* Slightly smaller logos */\n            height: 45px;\n            object-fit: contain;\n            transition: transform 0.3s;\n        }\n        .logos img:hover {\n            transform: scale(1.2); /* Hover effect */\n        }\n        .intro h1 {\n            text-align: left;\n            margin-bottom: 0; /* No gap below main heading */\n            font-size: 3em; /* Larger size for main heading */\n        }\n        .intro .subheading { /* New class for \"Software Engineer\" */\n            text-align: left;\n            margin-top: 10px; /* Minimal gap from main heading */\n            margin-bottom: 15px; /* Space before next section */\n            font-size: 1.2em; /* Smaller than h1, standard text size */\n            line-height: 1.2; /* Tighten line height */\n            display: block; /* Ensure it’s on a new line */\n        }\n        /* CSS */\n        .connect-me-section {\n            text-align: left;\n        }\n        .connect-me-title {\n            font-size: 2rem;\n            margin-bottom: 30px;\n        }\n        .connect-me-links {\n            display: flex;\n            justify-content: left;\n            gap: 15px;\n            flex-wrap: wrap;\n        }\n        .connect-youtube-link,\n        .connect-twitter-link,\n        .connect-linkedin-link,\n        .connect-github-link {\n            text-decoration: none;\n            padding: 8px 16px;\n            border: 1px solid #ccc;\n            border-radius: 8px;\n            color: #a7a7a7 ;\n            font-size: 16px;\n            transition: background-color 0.3s, border-color 0.3s;\n        }\n        .connect-youtube-link:hover,\n        .connect-twitter-link:hover,\n        .connect-linkedin-link:hover,\n        .connect-github-link:hover {\n            background-color: #f0f0f0;\n            border-color: #999;\n        }\n\n        .connect-icon-youtube,\n        .connect-icon-twitter,\n        .connect-icon-linkedin,\n        .connect-icon-github {\n            margin-right: 8px;\n        }\n    \u003c/style\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n    \u003cdiv class=\"intro\"\u003e\n    \u003ch1\u003eHi, I am Mahesh Babu\u003c/h1\u003e\n    \u003cspan class=\"subheading\"\u003eEngineer\u003c/span\u003e \u003c!-- Changed to span with subheading class --\u003e\n    \u003ch2\u003eWhat do I do?\u003c/h2\u003e\n    \u003cp align=\"left\"\u003eI build intelligent and reliable backend systems using Python and cloud technologies that solve real-world problems through practical, scalable solutions. My work empowers teams and delivers results that scale.\n    \u003c/p\u003e","title":"","type":"page"},{"content":"","date":"14 February 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"14 February 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/computer-vision/","section":"Tags","summary":"","title":"Computer Vision","type":"tags"},{"content":"A real-time computer vision project where I control system volume using hand gestures instead of a keyboard or mouse.\nProblem Statement # Traditional volume control depends on physical input devices. In many real situations—presentations, distance interaction, and quick hands-free use—this is not convenient.\nThis project was built to create a touch-free volume control interface that can:\nDetect a hand in real time Track fingertip landmarks accurately Convert finger distance into volume level Show immediate visual feedback to the user Solution Approach # The application captures webcam frames and uses MediaPipe Hands to detect landmarks. The Euclidean distance between the thumb tip and index tip is continuously measured and mapped to a valid volume range.\nTo make interaction practical and stable, I added:\nSmoothing to reduce jitter Graceful camera recovery if frame capture fails Fallback visual-only mode when system-audio APIs are unavailable FPS display for runtime monitoring Technical Flow # Webcam → Frame Read → Hand Detection → Landmark Extraction → Thumb-Index Distance → Interpolation → Audio Set / Visual Fallback → UI Render\nTech Stack # Python for core implementation OpenCV for camera stream, drawing, and UI overlays MediaPipe for robust hand landmark detection NumPy for interpolation and mapping calculations Pycaw for Windows master volume control Math / stream logic for real-time distance and loop control Core Features # 1) Hand Tracking Module # Reusable handDetector class Landmark list extraction (findPosition) Bounding-box detection Finger state detection (fingersUp) 2) Gesture-to-Volume Mapping # Thumb/index Euclidean distance calculation Mapping from 30px–250px to 0–100% volume Smooth stepped updates to avoid rapid fluctuations Visual marker when fingers are close (gesture lock feel) 3) System Audio Integration # Direct system volume set using Pycaw Compatibility fallback to visual-only mode if audio API fails Runtime exception handling for safer execution 4) Performance \u0026amp; Stability # FPS counter on-screen Camera resolution control for steady processing Reconnect attempts if camera stream drops Clean exit with resource release Runtime Preview # Below is a sample runtime screen showing landmark detection, volume bar, and live volume value.\nKey Logic Snapshot # Finger distance is measured each frame. np.interp() maps physical distance to both: system volume level UI bar position and percent Smoothness factor rounds values for stable output. If audio control is unavailable, the app continues in feedback mode instead of crashing. Challenges I Solved # Webcam instability during continuous streaming Short detection drops in fast finger movement Noisy volume changes due to tiny landmark shifts Audio-device/API availability differences across systems Outcome # Real-time, low-latency control experience Stable detection under normal lighting Smooth and intuitive volume transition Working prototype demonstrating practical HCI with AI vision What I Learned # Practical landmark-based interaction design Real-time computer vision optimization basics Robust handling of live camera and device edge cases Mapping human gestures to system-level actions Future Enhancements # Gesture controls for play/pause and track change Brightness control using additional finger gestures Multi-hand support for expanded commands Desktop packaging for one-click use Browser version using TensorFlow.js/WebAssembly Project Files # HandTrackingModule.py VolumeHandControl.py VolumeHandControlAdvance.py Conclusion # This project demonstrates a practical AI-powered human-computer interaction system using real-time hand tracking. It combines computer vision, UI feedback, and system integration into a useful touchless control experience.\n","date":"14 February 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/projects/hand_gesture_volume/","section":"Projects","summary":"\u003cp\u003eA real-time computer vision project where I control system volume using hand gestures instead of a keyboard or mouse.\u003c/p\u003e\n\u003cp\u003e\u003cfigure\u003e\u003cimg\n    class=\"my-0 rounded-md\"\n    loading=\"lazy\"\n    decoding=\"async\"\n    fetchpriority=\"low\"\n    alt=\"\"\n    src=\"./img1.png\"\n    \u003e\u003c/figure\u003e\n\u003c/p\u003e\n\n\u003ch2 class=\"relative group\"\u003eProblem Statement\n    \u003cdiv id=\"problem-statement\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#problem-statement\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h2\u003e\n\u003cp\u003eTraditional volume control depends on physical input devices. In many real situations—presentations, distance interaction, and quick hands-free use—this is not convenient.\u003c/p\u003e\n\u003cp\u003eThis project was built to create a \u003cstrong\u003etouch-free volume control interface\u003c/strong\u003e that can:\u003c/p\u003e","title":"Hand Gesture Volume Control","type":"projects"},{"content":"","date":"14 February 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/mediapipe/","section":"Tags","summary":"","title":"MediaPipe","type":"tags"},{"content":"","date":"14 February 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/categories/projects/","section":"Categories","summary":"","title":"Projects","type":"categories"},{"content":"","date":"14 February 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/projects/","section":"Projects","summary":"","title":"Projects","type":"projects"},{"content":"","date":"14 February 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/python/","section":"Tags","summary":"","title":"Python","type":"tags"},{"content":"","date":"14 February 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":" AWS Certified Cloud Practitioner # Platform: Amazon Web Services (AWS)\nYear: 2026\nI completed AWS Cloud training through SMART Academy and successfully earned the Cloud Practitioner certification.\nThis certification validates my understanding of AWS core services, cloud concepts, billing, pricing, and architecture principles.\n","date":"19 January 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/certifications/awscloudpract/","section":"Certifications","summary":"\u003ch2 class=\"relative group\"\u003eAWS Certified Cloud Practitioner\n    \u003cdiv id=\"aws-certified-cloud-practitioner\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#aws-certified-cloud-practitioner\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePlatform:\u003c/strong\u003e Amazon Web Services (AWS)\u003cbr\u003e\n\u003cstrong\u003eYear:\u003c/strong\u003e 2026\u003c/p\u003e\n\u003cp\u003e\u003cfigure\u003e\u003cimg\n    class=\"my-0 rounded-md\"\n    loading=\"lazy\"\n    decoding=\"async\"\n    fetchpriority=\"auto\"\n    alt=\"\"\n    width=\"1051\"\n    height=\"770\"\n    src=\"/Ayodhya-Mahesh-Babu-Portfolio/certifications/awscloudpract/preview_hu_da0f293800311f57.png\"\n    srcset=\"/Ayodhya-Mahesh-Babu-Portfolio/certifications/awscloudpract/preview_hu_da0f293800311f57.png 800w, /Ayodhya-Mahesh-Babu-Portfolio/certifications/awscloudpract/preview.png 1280w\"\n    sizes=\"(min-width: 768px) 50vw, 65vw\"\n    data-zoom-src=\"/Ayodhya-Mahesh-Babu-Portfolio/certifications/awscloudpract/preview.png\"\u003e\u003c/figure\u003e\n\u003c/p\u003e\n\u003cp\u003eI completed AWS Cloud training through SMART Academy and successfully earned the Cloud Practitioner certification.\u003c/p\u003e\n\u003cp\u003eThis certification validates my understanding of AWS core services, cloud concepts, billing, pricing, and architecture principles.\u003c/p\u003e","title":"AWS Certified Cloud Practitioner","type":"certifications"},{"content":"","date":"19 January 2026","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/certifications/","section":"Certifications","summary":"","title":"Certifications","type":"certifications"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/categories/aws/","section":"Categories","summary":"","title":"Aws","type":"categories"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/aws-certificate-manager/","section":"Tags","summary":"","title":"AWS Certificate Manager","type":"tags"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/aws-codebuild/","section":"Tags","summary":"","title":"AWS CodeBuild","type":"tags"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/aws-codedeploy/","section":"Tags","summary":"","title":"AWS CodeDeploy","type":"tags"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/aws-codepipeline/","section":"Tags","summary":"","title":"AWS CodePipeline","type":"tags"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/aws-systems-manager/","section":"Tags","summary":"","title":"AWS Systems Manager","type":"tags"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/cloudfront/","section":"Tags","summary":"","title":"Cloudfront","type":"tags"},{"content":" Email Me Feel free to reach out for collaborations, inquiries, or just to say hi!\nSend an Email Connect with Me Twitter LinkedIn GitHub YouTube ","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/contact/","section":"","summary":"\u003cstyle\u003e\n        h1 {\n            text-align: left;\n            font-size: 2em;\n            margin-bottom: 20px;\n        }\n        .section {\n            margin-bottom: 30px;\n        }\n        .section h2 {\n            text-align: left;\n            font-size: 1.5em;\n            margin-bottom: 15px;\n        }\n        .email-contact p {\n            text-align: left;\n            margin-bottom: 15px;\n            font-size: 1.1em;\n        }\n        .email-contact a {\n            display: inline-block;\n            padding: 10px 20px;\n            background-color: #3d6c9aff; /* Light mode button color */\n            color: #fff;\n            text-decoration: none;\n            border-radius: 5px;\n            transition: background-color 0.3s;\n        }\n        .email-contact a:hover {\n            background-color: #2c3e50; /* Light mode hover */\n        }\n        .connect-me-section {\n            text-align: left;\n        }\n        .connect-me-title {\n            font-size: 2rem;\n            margin-bottom: 30px;\n        }\n        .connect-me-links {\n            display: flex;\n            justify-content: left;\n            gap: 15px;\n            flex-wrap: wrap;\n        }\n        .connect-youtube-link,\n        .connect-twitter-link,\n        .connect-linkedin-link,\n        .connect-github-link {\n            text-decoration: none;\n            padding: 8px 16px;\n            border: 1px solid #ccc;\n            border-radius: 8px;\n            color: #a7a7a7 ;\n            font-size: 16px;\n            transition: background-color 0.3s, border-color 0.3s;\n        }\n        .connect-youtube-link:hover,\n        .connect-twitter-link:hover,\n        .connect-linkedin-link:hover,\n        .connect-github-link:hover {\n            background-color: #f0f0f0;\n            border-color: #999;\n        }\n\n        .connect-icon-youtube,\n        .connect-icon-twitter,\n        .connect-icon-linkedin,\n        .connect-icon-github {\n            margin-right: 8px;\n        }\n\n        /* Dark Mode Adjustments */\n        @media (prefers-color-scheme: dark) {\n            body {\n                /*background-color: #1a1a1a ;  Dark mode background */\n                color: #e0e0e0; /* Dark mode text */\n            }\n            h1 {\n                color: #e0e0e0;\n            }\n            h2 {\n                color: #b0b0b0; /* Slightly lighter gray for subheadings */\n            }\n            .email-contact a {\n                background-color: #4a90e2; /* Brighter blue for dark mode button */\n            }\n            .email-contact a:hover {\n                background-color: #357abd; /* Darker shade on hover */\n            }\n        }\n    \u003c/style\u003e\n\u003cbody\u003e\n    \u003cdiv class=\"section email-contact\"\u003e\n        \u003ch2\u003eEmail Me\u003c/h2\u003e\n        \u003cp\u003eFeel free to reach out for collaborations, inquiries, or just to say hi!\u003c/p\u003e","title":"Contact","type":"page"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/dynamo-db/","section":"Tags","summary":"","title":"Dynamo DB","type":"tags"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/go/","section":"Tags","summary":"","title":"Go","type":"tags"},{"content":"End-to-End Production-Grade Deployment: Advanced DevOps Practices on AWS\nAbout Project\nDeveloped a professional resume website hosted on AWS, utilizing various AWS services for robustness and security. Leveraged AWS CloudFront CDN for efficient content delivery and AWS S3 bucket for hosting static website content, ensuring scalability and reliability. Implemented HTTPS protocol for enhanced security, supported by SSL/TLS certificate managed by AWS Certificate Manager. Managed DNS with AWS Route 53 for seamless domain management and resolution. Engineered a view tracking API using Go language, integrated with AWS DynamoDB for efficient data storage and retrieval. Containerized the View Tracking API using Docker for streamlined deployment and scalability. Orchestrated deployment pipeline on AWS utilizing AWS CodePipeline, CodeBuild, and CodeDeploy for automated building, testing, and deployment of the API Docker image. Employed various AWS services including IAM Roles and IAM Users for secure access management and authorization. Source Code # Build Website # Build a simple static Resume Website. I used this Bootstrap Template.\nWebsite Hosting # Host the content on S3 Bucket\nCreate a S3 Bucket as same name as you Domain name. Remove check from Block Public Access . Upload all the website files. Enable Static Website hosting. Go to Properties \u0026gt; Static website hosting\nEnable it \u0026amp; fill Index Document Go to the URL it has created, you will get 403 error WHY? What happens?\nWe need to allow to access S3 by defining Bucket Policy { \u0026#34;Version\u0026#34;: \u0026#34;2012-10-17\u0026#34;, \u0026#34;Statement\u0026#34;: [ { \u0026#34;Sid\u0026#34;: \u0026#34;AddPerm\u0026#34;, \u0026#34;Effect\u0026#34;: \u0026#34;Allow\u0026#34;, \u0026#34;Principal\u0026#34;: \u0026#34;*\u0026#34;, \u0026#34;Action\u0026#34;: \u0026#34;s3:GetObject\u0026#34;, \u0026#34;Resource\u0026#34;: \u0026#34;arn:aws:s3:::YOUR_BUCKET_NAME/*\u0026#34; } ] } Now visit the Static website URL of S3 bucket, website is accessible now Issue : We unchecked the Block Public Access, which makes the S3 bucket\u0026rsquo;s content accessible to everyone even to hackers which is an security issue.\nWhy do we need Cloudfront? # Now our website is publicly accessible, why do we need the Cloudfront.\nCloudFront is a Content Delivery Network(CDN) service also provided by AWS, it enables users to deliver content globally with low latency, high data transfer speed, and securely delivered. leveraging AWS edge locations around the world to cache and deliver content from the nearest location to the user, reducing latency and improving performance. It also offers features such as SSL/TLS encryption, access controls, and real-time metrics.\nIssue : Our Website is not secure, it is using http protocol First, check the Block Public Access on S3 bucket.\nCreate a SSL certificate using AWS Certificate Manager, create this certificate in North Verginia region.\nCreate a CNAME record for this certificate in Hosted Zone.\nCreate Cloudfront Distribution\nAfter creating the CDN, add the Bucket policy (CDN will provide you after creating it) to S3 bucket, so that you can not view content of S3 bucket without bypassing the CDN.\nCreate CNAME record with SSL certificate while creating the CDN, so it can use HTTPS protocol. Visit the CDN url, our resume website is live now, but it is not using our Domain name.\nRoute 53 # To manage our DNS records.\nCreate a Hosted Zone.\nAdd the Nameservers of Hosted Zone to the Domain Provider Nameservers. Create a A Record in hosted zone for Alias to redirect the request from domain name to CloudFront Distribution.\nCI pipeline for frontend Code. # We have to upload modified files to S3 bucket and remove the previous ones.\nUsing Github Actions. Do not use AWS credentials publicly, use them as secret variables. name: Push to S3 on: [push] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup AWS CLI uses: aws-actions/configure-aws-credentials@v4 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_REGION }} - name: Sync files to S3 bucket run: | aws s3 sync ./website s3://harisheoran.xyz --delete View Tracking API # API is build using Go, Gin Framework and AWS SDK v2. It uses AWS Dynamo DB to store the views.\nWorking : When we send a GET request on \u0026ldquo;/\u0026rdquo; endpoint, it fetch the current views and add one more to it and save it to the database.\nContainerize the API # Using Go lang as base image, download the dependencies and build a executable file and run it.\nFROM golang:1.22 WORKDIR /app COPY go.* ./ RUN go mod download COPY . . RUN mkdir build RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o build/main . EXPOSE 4000 ENTRYPOINT [ \u0026#34;./build/main\u0026#34; ] My learning \u0026amp; mistakes during building docker image\nLocalhost is the localhost of docker itself not the host machine. Multistage Docker build issue - Can\u0026rsquo;t access the shell of container. Docker Volume helps a lot In development to sync local directory with container Named Volume (Anonymous Volumes) help in not syncing the container\u0026rsquo;s specific directory Bash Script is a must skill to have - $(pwd)\ndocker container run -v $(pwd):/app -v name:/app/main -d -p 4000:4000 --env-file ./.env view_api_img Checking the logs of the container. Setting the environment for container. CI pipline using AWS CodeBuild # Purpose: To build the API image and push to Docker Hub Registry.\nCreate an IAM Role.\nCreate a Group for the project and attach the policy for AWS CODEBUILD full access.\nCreae a user and add to the group and attach Policies.\nList IAM Role (To attach it in Code build service role) To pass a role to a service (here we are giving role to our CodeBuild service). Pipeline: Checkout the code from Github Repository and use Dockerfile to build the image and push to Docker Hub using Docker Credentials.\nConnect to the Github account.\nNeed a Service Role -\nWHY? : So that CodeBuild can perform action on your behalf. How it works: First for which service you need this role and give it permission(Attach policies) for what it is going to do like in our case it need to access AWS Systems Manager Parameter store. Buildspec file: Define how your CI is going to do.\nSteps:\nLogin to Docker Hub, build the image and push the image\nCredentials: Store them in AWS Systems Manager Parameter store.\nLogs are very important, so use the Cloudwatch logs.\nStore this file in root directory.\n# buildspec.yml version: 0.2 env: parameter-store: DOCKER_USERNAME: docker_username DOCKER_PASSWORD: docker_password DOCKER_URL: docker_url phases: build: commands: - cd tracker_api/ - echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin $DOCKER_URL - docker build -t \u0026#34;$DOCKER_USERNAME/view_api_img:latest\u0026#34; . - docker push \u0026#34;$DOCKER_USERNAME/view_api_img:latest\u0026#34; post_build: commands: - echo \u0026#34;Successfully pushed to Docker hub Registry\u0026#34; artifacts: files: - \u0026#39;**/*\u0026#39; name: my-artifact CD pipeline using AWS CodeDeploy # Purpose: To deploy and run the latest code of application on target compute platform.\nIs it looking for change in the codebase? Is it invoked by AWS Pipeline?\nCreate Target Compute \u0026gt; EC2 instance.\nFirst, go to CodeDeploy \u0026gt; Applications \u0026gt; Create application and create an application, choose the EC2 as compute platform.\nCreate Deployment Group.\nInstall the CodeDeploy agent\nWhy do we need CodeDeploy agent? ; It automates code deployments to any instance, including Amazon EC2 instances and instances running on EC2.\nAttach Tags to the EC2 instance. WHY? : Create all the resources of one project under one tag, helps in filtering the AWS resources. Here, we need tag for the code deploy service to id the target EC2 instance, we can assign single or multiple ec2 instances using tags.\nNow, we need a permissions -\nAs, our target EC2 instance going to talk to Code Depoly and vice versa. So, create two service roles, for Code Deploy and EC2. Add another IAM policy to our group to view Tags Keys and values.\nFinally create the Deployment.\nUpload our .env file on EC2 using SSH . It stores the AWS Credentials as API is using Dynamo DB.\nDepolyment Group\nCreate a Deployment Group. Create a appspec.yml\nHere, we define how we want to deploy and run the application, need two scripts to start and stop the container. # appspec.yml version: 0.0 os: linux hooks: ApplicationStop: - location: scripts/stop_container.sh timeout: 300 runas: root AfterInstall: - location: scripts/start_container.sh timeout: 300 runas: root Running the API # Run Migration First from container shell to create the AWS Dynamo DB Table. docker exec -it \u0026lt;docker container id\u0026gt; bash go run migrations/migrations.go ERRORS # AWS CodeBuild CodeDeploy agent was not able to receive the lifecycle event. Check the CodeDeploy agent logs on your host and make sure the agent is running and can connect to the CodeDeploy server.\nSOLUTION:\nCheck Logs at /var/log/aws/codedeploy-agent Restart codedeploy agent service Check IAM role policies for Code Deploy and EC2 AWS CodePipeline Unable to create role\nfor primary source and source version arn:aws:s3:::codepipeline-ap-south-1-972545925755/view_tracking_pipeli/SourceArti/Od8R23 SOLUTION:\nhttps://docs.aws.amazon.com/codepipeline/latest/userguide/troubleshooting.html#codebuild-role-connections\nhttps://stackoverflow.com/questions/64300151/aws-codebuild-failed-client-error-authorization-failed-for-primary-source-and-s\nAWS CodeDeploy during running the CodePipeline Same Issue with Code Deploy - Unable to access the artifact with Amazon S3 object key \u0026lsquo;view_tracking_pipeli/BuildArtif/mOIyXyD\u0026rsquo; located in the Amazon S3 artifact bucket \u0026lsquo;codepipeline-ap-south-1-972545925755\u0026rsquo;. The provided role does not have sufficient permissions.\nSOLUTION:\nUploading Build Artifact Error - https://medium.com/@shanikae/insufficient-permissions-unable-to-access-the-artifact-with-amazon-s3-247f27e6cdc3 Cache Invalidation issue of CloudFront Cache Invaildation Issue: Latest changes are unavailable to the users because the contents are cached at the CloudFront edge locations. The default caching policy keeps the contents cached for up to 24 hours (TTL).\nSOLUTION:\nhttps://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidating-objects-api QUESTIONS\nWhy do we need the Deployment Groups? Why do we need to upload Artifacts to S3 bucket during AWS CodePipeline ","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/projects/aws_resume/","section":"Projects","summary":"\u003cp\u003eEnd-to-End Production-Grade Deployment: Advanced DevOps Practices on AWS\u003c/p\u003e\n\u003cp\u003e\u003cfigure\u003e\u003cimg\n    class=\"my-0 rounded-md\"\n    loading=\"lazy\"\n    decoding=\"async\"\n    fetchpriority=\"low\"\n    alt=\"\"\n    src=\"./featured.png\"\n    \u003e\u003c/figure\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAbout Project\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeveloped a professional resume website hosted on AWS, utilizing various AWS services for robustness and security.\u003c/li\u003e\n\u003cli\u003eLeveraged AWS CloudFront CDN for efficient content delivery and AWS S3 bucket for hosting static website content, ensuring scalability and reliability.\u003c/li\u003e\n\u003cli\u003eImplemented HTTPS protocol for enhanced security, supported by SSL/TLS certificate managed by AWS Certificate Manager.\u003c/li\u003e\n\u003cli\u003eManaged DNS with AWS Route 53 for seamless domain management and resolution.\u003c/li\u003e\n\u003cli\u003eEngineered a view tracking API using Go language, integrated with AWS DynamoDB for efficient data storage and retrieval.\u003c/li\u003e\n\u003cli\u003eContainerized the View Tracking API using Docker for streamlined deployment and scalability.\u003c/li\u003e\n\u003cli\u003eOrchestrated deployment pipeline on AWS utilizing AWS CodePipeline, CodeBuild, and CodeDeploy for automated building, testing, and deployment of the API Docker image.\u003c/li\u003e\n\u003cli\u003eEmployed various AWS services including IAM Roles and IAM Users for secure access management and authorization.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2 class=\"relative group\"\u003eSource Code\n    \u003cdiv id=\"source-code\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#source-code\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h2\u003e\n\n\n\u003ch2 class=\"relative group\"\u003eBuild Website\n    \u003cdiv id=\"build-website\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#build-website\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h2\u003e\n\u003cp\u003eBuild a simple static Resume Website. I used this \u003ca\n  href=\"https://themes.3rdwavemedia.com/bootstrap-templates/resume/risen-free-bootstrap-5-dark-mode-resume-cv-template-for-developers/\"\n    target=\"_blank\"\n  \u003eBootstrap Template\u003c/a\u003e.\u003c/p\u003e","title":"Resume Ops - AWS Static Resume \u0026 View-Tracking","type":"projects"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/route-53/","section":"Tags","summary":"","title":"Route 53","type":"tags"},{"content":"","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/tags/s3/","section":"Tags","summary":"","title":"S3","type":"tags"},{"content":" Resume PDF # Resume PDF - Click here to view About # I’m Ayodhya Mahesh Babu, a recent B.Tech (Computer Science) graduate and a hands-on fresher focused on full-stack development and cloud engineering.\nI build production-oriented web apps and deploy them to the cloud using CI/CD and container workflows, and I hold an AWS Cloud Practitioner certification and I’m currently strengthening my cloud skills through an AWS Cloud training program at Tech Mahindra Smart Academy.\nAs a Cybersecurity Intern at Tech Mark HODU Foundation, I performed vulnerability assessments on 15+ Linux systems using Kali, Nmap and Nessus, helped remediate 20+ critical issues (cutting potential exploit risk by 40%), and contributed to a project that won 3rd place in the Bharat Tech League (Smart Farming - AI).\nMy strengths are problem solving, adaptability and logical thinking, I enjoy exploring the latest technologies, building side projects, and competing in hackathons.\n","date":"17 October 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/resume/","section":"","summary":"\u003ch2 class=\"relative group\"\u003eResume PDF\n    \u003cdiv id=\"resume-pdf\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#resume-pdf\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h2\u003e\n\u003cp\u003e\u003cfigure\u003e\u003cimg\n    class=\"my-0 rounded-md\"\n    loading=\"lazy\"\n    decoding=\"async\"\n    fetchpriority=\"auto\"\n    alt=\"\"\n    width=\"1536\"\n    height=\"1024\"\n    src=\"/Ayodhya-Mahesh-Babu-Portfolio/resume/feature_hu_e5a4df0c266d1b71.png\"\n    srcset=\"/Ayodhya-Mahesh-Babu-Portfolio/resume/feature_hu_e5a4df0c266d1b71.png 800w, /Ayodhya-Mahesh-Babu-Portfolio/resume/feature_hu_5a9b5e255a4d37de.png 1280w\"\n    sizes=\"(min-width: 768px) 50vw, 65vw\"\n    data-zoom-src=\"/Ayodhya-Mahesh-Babu-Portfolio/resume/feature.png\"\u003e\u003c/figure\u003e\n\n\u003ca\n  class=\"!rounded-md bg-primary-600 px-4 py-2 !text-neutral !no-underline hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700\"\n  href=\"https://drive.google.com/file/d/1Fkg0DAlfBHG9d44LLz0CNdAXazg9GbSC/view?usp=sharing\"\n  \n  \n  role=\"button\"\u003e\n  \n\nResume PDF -  Click here to view\n\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch2 class=\"relative group\"\u003eAbout\n    \u003cdiv id=\"about\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#about\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h2\u003e\n\u003cp\u003eI’m Ayodhya Mahesh Babu, a recent B.Tech (Computer Science) graduate and a hands-on fresher focused on full-stack development and cloud engineering.\u003c/p\u003e","title":"","type":"page"},{"content":" SAP Certified – SAP Generative AI Developer # Platform: SAP\nYear: 2025\nThis certification verifies my ability to work with SAP Business AI capabilities and extend SAP BTP applications using Large Language Models (LLMs).\nI gained hands-on experience with:\nSAP AI Core SAP AI Launchpad SAP Generative AI Hub Enterprise AI Integration ","date":"15 May 2025","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/certifications/sap/","section":"Certifications","summary":"\u003ch2 class=\"relative group\"\u003eSAP Certified – SAP Generative AI Developer\n    \u003cdiv id=\"sap-certified--sap-generative-ai-developer\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#sap-certified--sap-generative-ai-developer\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePlatform:\u003c/strong\u003e SAP\u003cbr\u003e\n\u003cstrong\u003eYear:\u003c/strong\u003e 2025\u003c/p\u003e\n\u003cp\u003e\u003cfigure\u003e\u003cimg\n    class=\"my-0 rounded-md\"\n    loading=\"lazy\"\n    decoding=\"async\"\n    fetchpriority=\"auto\"\n    alt=\"\"\n    width=\"2048\"\n    height=\"2048\"\n    src=\"/Ayodhya-Mahesh-Babu-Portfolio/certifications/sap/feature_hu_7a7a5d1efeb08ed6.png\"\n    srcset=\"/Ayodhya-Mahesh-Babu-Portfolio/certifications/sap/feature_hu_7a7a5d1efeb08ed6.png 800w, /Ayodhya-Mahesh-Babu-Portfolio/certifications/sap/feature_hu_94fd363667dc9b87.png 1280w\"\n    sizes=\"(min-width: 768px) 50vw, 65vw\"\n    data-zoom-src=\"/Ayodhya-Mahesh-Babu-Portfolio/certifications/sap/feature.png\"\u003e\u003c/figure\u003e\n\u003c/p\u003e\n\u003cp\u003eThis certification verifies my ability to work with SAP Business AI capabilities and extend SAP BTP applications using Large Language Models (LLMs).\u003c/p\u003e\n\u003cp\u003eI gained hands-on experience with:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSAP AI Core\u003c/li\u003e\n\u003cli\u003eSAP AI Launchpad\u003c/li\u003e\n\u003cli\u003eSAP Generative AI Hub\u003c/li\u003e\n\u003cli\u003eEnterprise AI Integration\u003c/li\u003e\n\u003c/ul\u003e","title":"SAP Certified – SAP Generative AI Developer","type":"certifications"},{"content":" # Building backend services in Go # Connecting to the Database # Need Database driver to translate the commands frm Go to SQL commands.\nCreate the Database connection pool, this is an important diﬀerence to understand. Go manages these connections as needed, automatically opening and closing connections to the database via the driver.\nUnderstanding the Database # Table have row and column\nColumn specifies the type of data like Name, age, email\nRow specfies a single record in the table.\nPrimary Key: Unique Identifier\nForiegn Key: A column that links one table to another by referencing a primary key.\nDesigning Database interaction # Create another directory to store database related code like models and related function, we\u0026rsquo;ll use this directory as a library.\nThe pkg directory is being used to hold ancillary non- application-specific code, which could potentially be reused. A database model which could be used by other applications in the future (like a command line interface application) fits the bill here pkg/models/models.go contains the database model\npkg/models/postgres/.go contain methods to execute commands on database like INSERT, DELETE, etc.\n","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/notes/backend/","section":"Notes","summary":"\u003ch1 class=\"relative group\"\u003e\n    \u003cdiv id=\"\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h1\u003e\n\n\u003ch1 class=\"relative group\"\u003eBuilding backend services in Go\n    \u003cdiv id=\"building-backend-services-in-go\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#building-backend-services-in-go\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h1\u003e\n\n\u003ch2 class=\"relative group\"\u003eConnecting to the Database\n    \u003cdiv id=\"connecting-to-the-database\" class=\"anchor\"\u003e\u003c/div\u003e\n    \n    \u003cspan\n        class=\"absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none\"\u003e\n        \u003ca class=\"text-primary-300 dark:text-neutral-700 !no-underline\" href=\"#connecting-to-the-database\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n    \u003c/span\u003e\n    \n\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNeed Database driver to translate the commands frm Go to SQL commands.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCreate the Database connection pool, this is an\nimportant diﬀerence to understand. Go manages these connections as\nneeded, automatically opening and closing connections to the\ndatabase via the driver.\u003c/p\u003e","title":"","type":"notes"},{"content":"","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/notes/","section":"Notes","summary":"","title":"Notes","type":"notes"},{"content":"","externalUrl":null,"permalink":"/Ayodhya-Mahesh-Babu-Portfolio/series/","section":"Series","summary":"","title":"Series","type":"series"}]