🚀 My Software Engineering Projects#
Welcome to my project portfolio! Here you’ll find a collection of my work spanning various technologies and domains. From homelab infrastructure to machine learning applications, each project represents my passion for building practical solutions and learning new technologies.
🏠 Homelab & Infrastructure Projects#
In my free time, I enjoy tinkering with my homelab to explore self-hosting, automation, and infrastructure management. My setup includes:
- Proxmox VE for virtualization and lightweight container workloads
- Docker Compose for service orchestration
- Home Assistant for smart home automation
- Grafana + Prometheus for monitoring and dashboards
- Pi-hole for network-wide ad-blocking
- Tools like Ansible, Traefik, and Nginx Proxy Manager to automate infrastructure
— –>
Here are some of the projects I’ve worked on. From small experiments to complete applications - each project has taught me something new and helped me grow as a software engineer.
this is the website you’re currently viewing. i built it using hugo and the papermod theme.
what it is a personal website that showcases my work, thoughts, and journey as a software engineer. it’s fast, clean, and focused on content.
why i built it portfolio - showcase my projects and skills blogging - share what i learn and think about personal branding - establish my online presence learning - explore static site generators tech stack hugo - static site generator papermod theme - clean, minimal design markdown - content management github pages - hosting (planned) key features responsive design - works on all devices dark mode - easy on the eyes fast loading - optimized for performance seo friendly - search engine optimized easy to update - simple content management what i learned hugo is powerful - generates sites in milliseconds static sites are great - fast, secure, reliable content first - design should serve the content simplicity wins - less is more challenges theme configuration - papermod has many options content organization - structuring pages and posts deployment setup - github pages integration next steps add analytics - track visitor behavior optimize performance - improve loading speed add more content - regular blog posts deploy to github pages - make it live view the code the source code is available on github.
...
An automated question paper generator designed to streamline the process of creating educational assessments. The tool features customizable templates, question banks, and automated PDF generation for professional-looking question papers.
📝 What It Is A comprehensive tool for automating the creation of educational question papers. The application features a user-friendly interface, customizable templates, and automated PDF generation to help educators create professional assessments efficiently.
🛠️ Technologies Used C# - Core application development .NET Framework - Application framework Question Generation - Automated question paper creation Document Generation - PDF output creation Database - Question bank management User Interface - Windows Forms or WPF ✨ Key Features Automated Question Paper Generation Intelligent question selection from question banks Support for multiple question types (MCQ, descriptive, etc.) Automated question paper formatting Configurable difficulty levels and topics Question Bank Management Comprehensive question database Question categorization and tagging Difficulty level classification Topic-wise organization Multiple Question Types Support Multiple Choice Questions (MCQ) Descriptive questions Short answer questions True/False questions Matching questions PDF Output Generation Professional question paper formatting Customizable templates Answer key generation Print-ready output 🎯 What I Learned C# Development Windows application development Database integration and management User interface design principles Software architecture patterns Educational Software Design Understanding educational requirements User experience for educators Workflow optimization for teaching Educational technology integration Document Generation PDF creation and formatting Template-based document generation Professional document layout Print optimization User Interface Design Intuitive user interface design Workflow optimization User feedback integration Accessibility considerations 🔧 Technical Challenges Question Selection Algorithm Creating an intelligent algorithm that selects appropriate questions based on difficulty, topic, and other criteria was a significant challenge.
...
A robust and scalable test automation framework for web applications. Built with Python, Selenium WebDriver, and Pytest, featuring Page Object Model design and CI/CD integration.
🧪 What It Is A comprehensive test automation framework designed for web application testing. The framework provides a robust, maintainable, and scalable solution for automated testing with support for multiple browsers, parallel execution, and detailed reporting.
🛠️ Technologies Used Python - Core programming language for test automation Selenium WebDriver - Web browser automation and control Pytest - Testing framework with powerful features Page Object Model - Design pattern for maintainable tests Bitbucket Pipelines - CI/CD integration for automated testing HTML Reporting - Detailed test reports with screenshots ✨ Key Features Page Object Model Maintainable test structure with reusable page objects Separation of test logic from page interactions Easy maintenance and updates Reusable components across test scenarios Cross-Browser Testing Support for multiple browsers (Chrome, Firefox, Safari) Browser-specific configurations and capabilities Parallel execution across different browsers Consistent behavior across platforms Advanced Reporting HTML reports with detailed test results Screenshot capture on test failures Test execution logs and timestamps Historical test result tracking CI/CD Integration Bitbucket Pipelines integration Automated test execution on code changes Test result notifications and alerts Artifact management for reports and logs Configuration Management Environment-specific configurations Flexible test data management Multiple test environment support Easy configuration updates 🎯 What I Learned Test Automation Best Practices Page Object Model: Creating maintainable test structures Test Data Management: Handling test data effectively Wait Strategies: Implementing robust element waiting Test Organization: Structuring tests for scalability Reporting: Creating meaningful test reports Selenium WebDriver Element Locators: Choosing the right locator strategies Browser Automation: Controlling different browsers JavaScript Execution: Using JavaScript for complex interactions Screenshot Capture: Capturing test evidence Parallel Execution: Running tests efficiently Python Testing Pytest Framework: Leveraging pytest’s powerful features Fixtures: Creating reusable test setup Parameterization: Running tests with different data Hooks: Customizing test execution Plugins: Extending pytest functionality CI/CD Integration Pipeline Configuration: Setting up automated testing Environment Management: Managing test environments Artifact Handling: Managing test reports and logs Failure Handling: Dealing with test failures gracefully Notification Systems: Alerting teams about test results 🚀 Project Impact The Test Automation Framework provides:
...
A modern, responsive todo application built with Blazor WebAssembly. Features a clean interface, real-time updates, and component-based architecture using C# and Razor syntax.
📝 What It Is A modern, responsive todo application built with Blazor WebAssembly. The app demonstrates modern .NET web development capabilities, featuring a single-page application architecture with real-time updates and a clean, intuitive user interface.
🛠️ Technologies Used Blazor WebAssembly - Client-side web framework running C# in the browser C# - Primary programming language for application logic Razor Components - UI component framework with HTML and C# integration .NET 6 - Modern .NET runtime and development platform Bootstrap - CSS framework for responsive design Local Storage - Client-side data persistence ✨ Key Features Single Page Application Fast, responsive user experience with no page reloads Client-side routing and navigation Real-time UI updates without server roundtrips Smooth transitions and animations Task Management Add, edit, and delete todo items Mark tasks as complete or incomplete Filter and search through tasks Task categorization and organization Modern UI/UX Clean, intuitive interface design Responsive layout for all devices Smooth animations and transitions Accessibility features and keyboard navigation Component Architecture Reusable Razor components Modular code organization Separation of concerns Easy maintenance and updates Data Persistence Local storage for task data State management and synchronization Offline functionality Data export and import capabilities 🎯 What I Learned Blazor WebAssembly Component Lifecycle: Understanding component initialization and disposal State Management: Managing application state effectively Event Handling: Implementing user interactions and callbacks Data Binding: Using one-way and two-way data binding Routing: Implementing client-side routing with Blazor .NET Web Development Razor Syntax: Writing dynamic HTML with C# Dependency Injection: Using DI container in Blazor Configuration Management: Managing app settings Error Handling: Implementing proper error boundaries Logging: Adding comprehensive logging Modern Web Development Single Page Applications: Building SPAs with .NET Component Architecture: Creating reusable UI components Responsive Design: Making apps work on all devices Performance Optimization: Optimizing for web performance Progressive Enhancement: Building accessible web apps Development Experience Hot Reload: Using Blazor’s hot reload capabilities Debugging: Debugging C# code in the browser Testing: Writing unit tests for Blazor components Deployment: Deploying Blazor WebAssembly apps Tooling: Using Visual Studio and VS Code effectively 🚀 Project Impact The TodoApp demonstrates:
...