About me

Hello, I would describe myself as a collaborative and solution-driven software engineer with over four years of experience collaborating closely with designers, developers, and programmers to deliver software solutions. Interestingly, I got introduced to programming at National Institute Of Technology, Srinagar where I completed my Bachelors in Computer Science and Engineering (2014-2018) with 7.59 aggregate.

I'm currently working as a Software Developer & DevOps Engineer for EPEK SOFTWARE SOLUTIONS PVT. LTD. My responsibilities include developing and testing Python and Golang-based APIs, as well as managing DevOps processes to ensure efficient deployment, monitoring, and scalability of our applications. I actively contribute to the integration of APIs, third-party services, and databases, ensuring seamless functionality across different platforms.

With a strong background in backend development, I bring a deep understanding of building scalable, efficient systems, along with hands-on experience in managing DevOps pipelines and automating workflows. I am passionate about problem-solving, optimizing processes, and creating secure, reliable solutions tailored to meet the unique needs of customers. My expertise extends to designing and developing web applications, working with cloud technologies, and ensuring accessibility, security, and performance

Here is a list of the technologies that I'm familiar with!

  1. Golang
  2. Python
  3. MongoDB
  4. Fiber, Gin & Go-chi
  5. Flask & Django
  6. QuickBooks
  1. Docker
  2. Kubernetes
  3. GitHub Actions CI/CD
  4. DigitalOcean
  5. Lens
  6. HubSpot

Resume

Experience

  1. EPEK SOFTWARE SOLUTIONS PVT. LTD.

    Software Developer | March 2022 — Present | India

    Automated Demo Scheduling using HubSpot API: Built an automated scheduling system using the HubSpot API to streamline demo bookings and manage client interactions. This system automates lead capturing, demo scheduling, and follow-up reminders, improving client engagement and sales efficiency. It includes automated notifications, calendar integration, and customized email workflows to optimize the demo process, reducing manual intervention and enhancing the overall client experience.

    Accounting System Integration with QuickBooks API: Developed an accounting system that integrates with QuickBooks API to automate agreement and invoice generation, commission calculation, and commission confirmation for partners. The system allows seamless creation and sending of invoices, commission management for partners, and efficient handling of financial transactions. This project involved working with QuickBooks API for invoice management, custom commission logic, and data storage for easy retrieval of financial details.

    Facebook Ads Insights and Transaction Data Integration: Built a secure web application using Flask and Facebook's Graph API to automate the retrieval of advertising insights and transaction data from Facebook Ads Manager. The project involves OAuth 2.0 authentication, allowing users to securely authorize access to their Facebook Ads account. It fetches detailed transaction information, including billing details, transaction status, and ad performance insights within a specified date range. This solution streamlines the data extraction process, enabling efficient monitoring of ad expenditures and campaign effectiveness. Key technologies used include Flask, OAuth2Session, Facebook Graph API, and SSL for secure data transfer.

    Automated Data Retrieval Service for FTP Information: Developed a Golang-based service to efficiently fetch and process user-specific FTP data stored in a MongoDB database. The system leverages generic functions to handle data retrieval, ensuring reusability and scalability. The core functionality includes fetching user data, extracting associated FTP information, and adding contextual metadata like realm information for further processing. This project utilizes MongoDB's driver for Go, supports dynamic filtering, and optimizes database queries with flexible options, enabling streamlined data management for scheduled or on-demand operations.

    Automated Discord Membership Monitoring Bot: Built a Golang-powered Discord bot using the Discord API to monitor server membership statuses. The bot periodically checks all members of a specified Discord server to track their membership duration and send automated reminders for expiring memberships. Key functionalities include scheduling regular membership checks, sending direct messages to users when their membership is about to expire, and handling user commands for on-demand status updates. The bot uses environment variables for configuration, supports asynchronous operations, and provides a seamless way to manage member engagement on Discord servers.

    AWS S3 File Monitoring and Automated Slack Notification System: Developed a Golang-based application to automate the monitoring of files in an S3 bucket and send real-time notifications via Slack. The application checks for the presence of a specific file (based on the current date) in an AWS S3 bucket. If the file is not found, it identifies the most recent available file and sends an alert message to a designated Slack channel. Key functionalities include establishing secure connections to AWS using access keys, leveraging S3 APIs to check file existence, listing objects to find the latest file, and integrating with the Slack API to post notifications. The system runs daily, ensuring timely alerts for missing data files and maintaining business operations. It is easily configurable using environment variables for AWS credentials, S3 bucket details, and Slack tokens.

    Visitor Data Management and Reporting System: Built a Golang-powered API using the Fiber web framework to efficiently manage visitor data and generate detailed reports. The system is designed to capture, store, and retrieve information about visitors, such as anonymous IDs, IP addresses, and user agents, while supporting flexible filtering based on date ranges and sorting criteria. Key functionalities include fetching paginated lists of synced visitors, sorting and filtering data using query parameters, and generating CSV reports based on visitor activity within a specified date range. The report generation feature allows for seamless export of visitor data, storing it in CSV format, which can then be downloaded for analysis. The solution leverages MongoDB for data storage, with optimized query handling using the MongoDB Go driver. It is structured to ensure efficient performance and scalability, making it ideal for handling large datasets. The project also includes robust error handling and modular service-oriented design for easy maintenance and extension.

    Dealer Lifecycle Management System: Developed a comprehensive system to manage dealer status and prospect conversions within a Golang-based API. The system handles the full lifecycle of dealers, from claim status to active and stalled states, based on order activity and release conditions. Key functionalities include updating dealer statuses based on order completion, managing the release of dealers, and transitioning them through various stages (CLAIMED, ACTIVE, STALLED, INACTIVE). The system also supports prospect management, including tracking the status of prospects, sending release notifications, and updating statuses as they are either claimed or released. Integrating MongoDB for data storage, the application uses efficient batch updates and conditional querying to ensure the correct handling of dealer and prospect records. Additionally, scheduled tasks like setting password reset requirements are triggered at specific intervals, ensuring seamless operation across different environments (dev/test/prod).

    Droplet and Volume Management System: Developed a Golang-based application to manage DigitalOcean droplets and volumes through the DigitalOcean API. The system allows for the creation of new droplets, attaching volumes to droplets, and listing droplets and volumes. It also integrates SFTP functionality using SSH for file management, enabling the upload and monitoring of files in specified directories on a remote server. Key features include connecting to a remote server via SFTP, listing files in the directory, and managing DigitalOcean resources such as droplets and volumes based on the file system state. The application handles volume creation dynamically based on file sizes, attaches volumes to droplets, and logs all interactions with the DigitalOcean API for resource creation and management. Additionally, it ensures the secure handling of SSH credentials and the automatic connection to SFTP servers via environment variables and SSH agent forwarding.

    File Processing System with RabbitMQ and Address Normalization: Developed a comprehensive system using Golang, Fiber, RabbitMQ, and Python to handle file uploads, message queuing, and address normalization. The Golang-based API enables users to upload files, where each line of the file is hashed using SHA256 and published as a message to a RabbitMQ queue. On the consumer side, a Python script listens for messages from the queue, processes each message, and attempts to standardize addresses using the `scourgify` library. If the address can be normalized, it is formatted into a structured output and printed; otherwise, an error message is logged. This design leverages RabbitMQ to decouple the file processing and address normalization tasks, allowing asynchronous and scalable message handling. Environment variables are utilized for configuration management, while the `logrus` and `pika` libraries are used for logging and RabbitMQ communication, respectively. This architecture ensures efficient file handling, message processing, and real-time address validation in a distributed system.

    Multi-Language Vocabulary Management System: Developed a robust web application using Python (Flask) and MongoDB to manage vocabulary words across multiple languages. This system features user authentication, allowing registered users to securely log in and manage word entries. It includes functionality for adding, editing, and categorizing words and translations, supporting languages like English, Spanish, Dutch, German, and Hindi. The system also provides REST API endpoints for efficient data retrieval, enabling integration with external services. Using Flask-PyMongo, the backend ensures scalable data storage, while HTML templates with Flask's Jinja2 rendering engine offer a dynamic and interactive user interface. This project is ideal for language learners, educators, and content managers seeking efficient multilingual content organization.

    Automated FTP Data Import and Processing System: Built a robust system in Golang to automate data imports from an FTP server and store them in a MongoDB database. The application is designed to handle scheduled imports, specifically tailored to download CSV files, parse the content, and process it for further use.

    Cross-Platform Push Notification Service using Flask, Firebase, and Pusher: Developed a versatile push notification service utilizing Python's Flask framework to deliver notifications to iOS, Android, and web platforms. This project is designed to handle real-time notifications using Firebase Cloud Messaging (FCM) and Pusher Beams for efficient and reliable message delivery.

    Logo Image Scraper for Dealership Websites using Selenium, BeautifulSoup, and CSV: Created a web scraper that extracts logo images from car dealership websites by utilizing Selenium WebDriver to load pages and BeautifulSoup for parsing HTML. The tool scrapes image sources for logos and saves the corresponding URLs to a CSV file, automating the process of gathering dealership logos from a list of URLs provided in an input file. This project helps streamline the collection of logos for use in marketing or website integration.

    Analytics Visible Visitor API using Elasticsearch and Fiber: Developed an API using Go's Fiber framework that processes batch event data from client requests and indexes it into Elasticsearch. The API handles incoming requests containing batch event data, parses the events, and stores the details in Elasticsearch indices for analytics purposes. The project involves marshalling event data into structured documents, extracting contextual information like user agent, screen dimensions, and referrer data, and asynchronously indexing the documents into Elasticsearch. It utilizes concurrency for efficient data processing and includes error handling to ensure smooth operation during document indexing.

    FTP to Cloud Storage File Transfer Automation: Developed a file transfer automation system using Go that connects to an FTP server, retrieves files that are older than 90 days, and uploads them to a cloud storage solution (Spaces). The system starts by establishing a connection to the FTP server using credentials from environment variables. It then checks the modification date of each file in the FTP directory, selecting those older than 90 days for transfer. After retrieving the file contents, it uploads the files to cloud storage, organizing them by the current date. The project integrates FTP handling, file processing, and cloud storage management, automating the archival process of old files to the cloud.

    Data Syncer: Created a robust FTP data synchronization service, managing login, file selection, header mapping, and database integration. Enabled automated data syncing to the database via cron jobs.

    Reporting: Reporting service interfacing Google Analytics to retrieve metrics such as user sessions, session times, traffic sources, platform devices, and page tracking. Integrated real-time data retrieval for enhanced analytics.

    DevOps: Streamlined DevOps pipeline with DigitalOcean, Docker, Kubernetes, GitHub Actions, and Lens, ensuring scalable infrastructure and automated code deployment.

    DataIntegration: Service which processes events data from Elasticsearch, extracting and storing relevant info to database. Offers sessions, pageEvents, ips, and integration management for streamlined data analysis and integration workflows

    AutoTradeX Platform: Led backend overhaul of AutoTradeX, enabling universal dealer integration for seamless operations. Enhanced performance and scalability for streamlined buying, selling, and servicing.

    Notifications: Service for sending email utilizing SendGrid APIs and Firebase for in-app and push notifications.

    AgileFlow - Advanced Project Management Tool: Developed and managed backend Golang APIs for AgileFlow, a versatile project management tool designed to enhance team workflow efficiency. The platform introduced features like task assignment, due date setting, and task commenting for streamlined collaboration. Built a robust messaging and notification service using Google Cloud Platform, enabling seamless communication and allowing external services to post messages to chatrooms via a dedicated API. Key functionalities also included board management, column and task flows, team management, and user-specific timelines for comprehensive project oversight.

  2. Parcelini

    Software Engineer | Feb 2021 — Feb 2022 | India

    Data Cleanser: Implemented Python scripts to process CSV files, removing duplicate entries based on specified columns, standardizing address fields using usaddress-scourgify, and exporting the cleaned data.

    Raw Data Processor: Created a web application dedicated to raw data processing using Flask, enhancing data management and processing capabilities.

  3. Indian Institute of Science, Bangalore

    Research Intern | Nov 2016-jan 2017 | Bangalore, India

    Pan-Sharpening using DT-CWT: Improved satellite imagery quality by applying Java and data fusion techniques to enhance multispectral image resolution through dual-tree complex wavelet transform based Pan-Sharpening, resulting in reduced color distortion and increased scalability and directionality.

  4. Knowledge Point Infotech, Jaipur

    Java Training | Sept 2016-Oct 2016 | Jaipur, India

    Java Training: Covered fundamental and advanced concepts, including object-oriented programming, data structures, and multithreading, to build a strong foundation in Java development.

Projects

  1. Digital Marketing Platform

    Ongoing

    The Digital Marketing Platform is a comprehensive tool designed for agencies and clients to manage custom marketing campaigns. The platform includes specialized portals for audience targeting, operations management, reporting, and accounting, with seamless campaign order creation. Built using a microservices architecture, the platform ensures scalability and performance across various modules, empowering users to efficiently create, execute, and monitor campaigns in real-time.

    Golang, MongoDB, REST APIs, Microservices Architecture
  2. Image Playground

    Backend | May 2024

    DALL-E Image Playground is a web-based application built using Flask that enables users to interact with OpenAI’s DALL-E API. The app allows users to generate images from text prompts, edit existing images, and create variations of uploaded images. It provides an intuitive interface to explore AI-generated visuals with ease, making it an engaging tool for experimenting with generative AI.

    Flask, OpenAI API, HTML, Pillow
  3. Issue Manager

    Fullstack | March 2024

    Designed and developed a project issue management web portal, using Flask for the backend REST API and ReactJS for the user interface, enhancing project workflow and collaboration.

    Flask, ReactJS
  4. Sorting Visualizer

    Frontend | Feb 2022

    Implemented a dynamic sorting visualizer project showcasing Bubble Sort, Selection Sort, Merge Sort, Quick Sort, and Insertion Sort algorithms. It serves as a practical demonstration of sorting algorithms, aiding in understanding their concepts and efficiencies.

    HTML, CSS, Bootstrap, JavaScript
  5. Bitcoin Trading via Machine Learning

    Machine Learning | 2017-2018

    Developed a robust bitcoin price prediction system utilizing machine learning algorithms like ARIMA, LSTM, and Random Forest. Leveraging daily trends in the Bitcoin market, this project aims to forecast future prices, providing valuable insights for investors and analysts in the cryptocurrency domain.

    Python, ML
  6. Digital Certificate Dapp using Ethereum

    BlockChain | 2017-2018

    An idea to use blockchain to create digital certificates, with the goal of sparking innovation that gives individuals the capacity to possess and share their own official records. Recognizing the significance of University degrees (a particular type of certificate), which can help us get the job we want, or prevent us from getting it if we don’t have the right certificate.

    Ethereum

Education

  1. B.Tech in Computer Science & Engineering

    2014 — 2018

    National Institute of Technology, Srinagar

  2. Intermediate

    2012 — 2013

    Sharda Senior Secondary School Badu, Nagaur (Rajasthan)

  3. High school

    2010 — 2011

    Shree Veer Teja Senior Secondary School Bhadwa, Nagaur (Rajasthan)

My skills

  • Programming :  
    C, Python, Golang, HTML, CSS, JavaScript, Java
  • LIBRARIES/FRAMEWORKS :  
    Flask, Django, Fiber, Gin, Go-Chi
  • DevOps :  
    Docker, Kubernetes, GitHub Actions, DigitalOcean, Lens
  • TOOLS/PLATFORMS :  
    Git, Heroku, VS Code, Windows, Linux, Swagger, Postman, Google Analytics
  • Databases :  
    MongoDB, PostgreSQL
  • OTHERS :  
    QuickBooks, HubSpot

Awards/certifications

  1. Rajsthan Hackathon

    Participated | April 2018

    - Developed distributed Voting Application.

  2. Techfest NIT Srinagar

    3rd position | April 2015

    - Participated in Robotics event.

Training/Courses

  1. Knowledge Point Infotech, Jaipur

    CoreJava Training | sept 2016-oct 2016 | Jaipur, India

  2. The Complete Web Developer

    Nov 2021-Jan 2022 | Udemy

  3. MongoDB Basics

    Sept 2022-Oct 2022 | MongoDB University