This repository showcases a series of projects that demonstrate a variety of technologies and architectures. The projects span different programming languages and frameworks, focusing on multi-threading, distributed systems, cloud deployment, and more. The first one, Full-Stack Web Application is complete. The Rests are TODO which pick elements of technologies I've been exposed to in my career.
- Technologies: React, Node.js, PostgreSQL, Docker, GitHub Actions (CI/CD)
- Description: This project is a full-featured web application that showcases both front-end and back-end development skills using React, Node.js, PostgreSQL, and Docker. The application also integrates a CI/CD pipeline using GitHub Actions for streamlined testing and deployment.
2. Distributed Microservices with Go and gRPC (not started)
- Technologies: Go, gRPC, Docker, Kubernetes
- Description: Create a distributed application with microservices that communicate using gRPC. The services simulate real-world use cases like order processing, inventory management, and user authentication.
3. Concurrency-Heavy System with C++ (not started)
- Technologies: C++, POSIX Threads, Boost, Docker
- Description: Build a multi-threaded real-time data processing system in C++. This system ingests data from multiple sources and processes it concurrently to simulate an industrial IoT application or financial transaction system.
- Focus: Thread safety, synchronization, message passing, CPU optimization.
4. Python API with AsyncIO and FastAPI (not started)
- Technologies: Python, FastAPI, AsyncIO, PostgreSQL, Redis, Docker
- Description: Develop an asynchronous REST API for a fast, real-time application like a chat system or stock price tracker. Integrate it with a Postgres database for persistence and Redis for caching.
- Focus: API design, database transactions, handling high concurrent requests.
5. Event-Driven Architecture with Kafka Streams (not started)
- Technologies: JavaScript, Node.js, Kafka Streams, Docker, Kubernetes
- Description: Set up an event-driven architecture where events from multiple producers are processed and consumed using Kafka Streams. The application simulates a real-time analytics dashboard.
- Focus: Real-time streaming, fault tolerance, data pipeline.
6. CRUD-based Application with TypeScript and GraphQL (not started)
- Technologies: TypeScript, Node.js, GraphQL, React, PostgreSQL
- Description: Build a full-featured web app (such as a project management tool) using TypeScript and GraphQL for both front-end and back-end. Incorporate user authentication, role management, and API security.
- Focus: Object-oriented design, security, API testing, and database optimization.
7. CI/CD Pipeline for Python Testing Framework (not started)
- Technologies: Python, PyTest, Jenkins, GitHub Actions
- Description: Build a continuous integration and deployment pipeline for a Python-based software testing framework. The framework is built for testing various APIs or full-stack applications.
- Focus: Test automation, CI/CD, pipeline optimization.
8. Networking Application in Go (not started)
- Technologies: Go, gRPC, Docker, Prometheus
- Description: Create a client-server application that handles complex network protocols (e.g., WebSocket or gRPC). The project simulates a multiplayer game server with matchmaking capabilities.
- Focus: Networking, efficient data transmission, performance monitoring.
9. IoT Device Integration with AWS IoT Core (in progress)
- Technologies: AWS IoT Core, MQTT, AWS IAM, AWS S3, AWS DynamoDB, AWS CloudWatch, Terraform, AWS Certificate Manager
- Description: An IoT solution that integrates AWS IoT Core and MQTT for real-time device communication and data streaming.
- Focus: Real-time networking, efficient data transmission via MQTT, and performance monitoring using AWS CloudWatch, with Terraform for automated infrastructure management.
10. c (in progress)
- Multi-threading: Development of concurrency-heavy applications that handle parallel tasks.
- Distributed Architecture: Building systems that span across different nodes using microservices and message-passing techniques.
- Cloud Deployment: Deploying applications to cloud environments like AWS or GCP.
- Load Balancing: Ensuring efficient distribution of network traffic across multiple servers.
- Internet of Things: Managing frameworks to support IoT devices with high availability and fault tolerance.
- Memory Mapping and Visualization: Case studies on process memory, virtual and real.
- The projects could range from testing software (all forms), object-oriented design, multi-threading, network, and database applications (CRUD).
- The programming languages used include Python, JavaScript, C, C++, Go, and TypeScript.
- The architectures explored include cloud-based applications, on-premises distributed applications, messaging, and stand-alone applications.