My Projects

Central Management of Puppet Agents (IPA)

Automates the management of Puppet Agents on RHEL systems and integrates LDAP, Icinga2, and scheduling tools.

  • Automates enabling/disabling Puppet Agents via Python.
  • Synchronizes LDAP maintenance flags with Icinga2 downtimes via Perl.
  • Logs actions for auditing and troubleshooting.
  • Integrates LDAP, Icinga2 API, and MySQL.
  • Modular, extensible design.

Note

Due to confidentiality, detailed documentation cannot be shared.

Project 1 Image 1Project 1 Image 2

Personal Portfolio Website (This website)

A fully responsive personal portfolio website built using Next.js, Tailwind CSS, and Netlify hosting.

  • Dynamic animations and smooth transitions.
  • Custom UI components.
  • Contact form with SendGrid integration.
  • Fully responsive design.
Project 2 Image 1Project 2 Image 2

Observability Pipeline (FastAPI, Docker, Prometheus, Grafana)

Development of a full observability architecture for collecting, processing, and visualizing system metrics and logs. Includes a FastAPI input pipeline, Docker container orchestration, Prometheus monitoring, and Grafana dashboards.

  • FastAPI pipeline for metric and log ingestion
  • Containerized deployment using Docker & Docker Compose
  • Prometheus scraping system for real-time monitoring
  • Visualization and dashboarding with Grafana
  • Health checks & API monitoring through Prometheus endpoint
  • Architecture optimized for scalability and developer experience

Further Development of the IPA

Expands the original final exam project with enhanced features.

  • Modular LDAP and job handling.
  • REST API LDAP data retrieval.
  • Improved Puppet Agent management.
  • Advanced logging and error handling.
  • Refined downtime extension process.
  • Modular scheduling helpers.

Enhancements

  • Refactored into modular methods.
  • Replaced synchronous LDAP with REST API.
  • Enhanced input validation and syslog logging.
  • Improved 'at job' time calculation.
  • Encapsulated logic in main() function.

Note

Due to confidentiality, code cannot be shared.