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.