This project implements a scalable web server infrastructure using AWS CDK (Cloud Development Kit) that automatically adjusts capacity based on demand. It creates a secure, highly available web hosting environment with automated scaling capabilities and performance monitoring.
The infrastructure deploys a web server environment in AWS using Infrastructure as Code principles. It provisions a VPC with public subnets, configures security groups, sets up an Auto Scaling group with customizable capacity, and implements CPU-based scaling policies. The web servers are automatically configured with Apache and PHP, and deploy a sample web application from an S3 bucket.
This project implements a networking proof-of-concept (POC) environment using AWS CDK that creates multiple interconnected VPCs with EC2 instances. It demonstrates infrastructure as code practices for setting up secure and isolated network environments with controlled access patterns.
The solution creates three VPCs with public and private subnets, each containing an EC2 instance with specific security group rules for SSH and ICMP access. The infrastructure is defined using AWS CDK in Python, providing a reusable and maintainable way to deploy consistent networking environments. Each VPC is configured with NAT gateways and internet gateways, enabling secure outbound internet access while maintaining network isolation.
A Python-based decision tree algorithm from first principles, without relying on any machine learning libraries. The decision tree algorithm is designed to recursively partition the feature space based on the values of input features and their corresponding labels. Implemented key components of the decision tree algorithm, including splitting criteria selection, tree node creation, and tree traversal for prediction. Evaluated the performance of the decision tree algorithm using the Iris dataset from scikit-learn, achieving over 90% accuracy on testing data. The decision tree algorithm demonstrates a fundamental understanding of decision tree principles and serves as a foundational building block for machine learning algorithms.
A Python-based optimizer for Fantasy Premier League (FPL), a popular fantasy football game. Utilized data analytics and machine learning techniques to predict player performance and optimize team selection for each gameweek. Gathered data from the official Premier League API and applied feature engineering to extract relevant player attributes. Trained machine learning models, including linear regression and gradient boosting regression, to predict player points per game (PPG) and total points. Formulated the team selection problem as an optimization task, considering budget and position constraints. Implemented optimization algorithms such as linear programming and heuristic methods to select the best starting 11 players for each gameweek.