I'm a Computer Engineering in my final year, passionate about embedded systems, systems programming, and low-level software development. With hands-on experience in educational settings and multiple university projects, I'm actively seeking opportunities to transition into the software industry.
Currently, I work as a teaching assistant for Digital Electronics 3, where I help students understand microcontroller programming and embedded system design.
I'm actively seeking entry-level positions or junior developer roles in:
- Embedded Systems Development
- Systems Programming
- Firmware Development
- Backend Development
- DevOps/Infrastructure
- Embedded Systems: Bare-metal programming, CMSIS, peripheral drivers
- Operating Systems: Linux internals, process management, file systems
- Data Structures & Algorithms: Graph algorithms, routing protocols
- System Monitoring: Observability, metrics collection
- DevOps: Containerization, monitoring, infrastructure
Embedded Systems | ARM Cortex-M3 | Testing
DETAILS
Complete refactor and enhancement of NXP LPC1769 microcontroller drivers, improving code quality, maintainability, and following modern embedded programming practices.- β¨ Restructured original NXP drivers for better modularity
- π Enhanced documentation and code readability
- π― Implemented clean API design for peripheral access
- π§ Used in teaching materials for Digital Electronics 3
C++20 | Dijkstraβs Algorithm | STL | Systems Architecture
DETAILS
A robust, event-driven network simulator designed to model packet routing and reassembly in congested topologies. Refactored for high memory efficiency and architectural decoupling.π Real-time Network Monitoring The simulator provides a detailed dashboard of the network state, tracking performance metrics across layers:
- β‘ Modern C++20 Engine: Leverages Concepts, Ranges, and Smart Pointers for a memory-safe, type-secure simulation core.
- π§ Dynamic Routing: Implements a custom Dijkstra-based engine that recalculates optimal paths in real-time based on network load and topology changes.
- π¦ Packet Reassembly Logic: Sophisticated handling of multi-packet pages with unique {Source IP, Page ID} identification and timeout management.
- π Observability: Features a decoupled architecture currently being extended to support Prometheus metric exporting and real-time Grafana dashboards.
- π οΈ Robust Engineering: Zero-warning build (Clang-Tidy/Cppcheck) with automated CI/CD for style and static analysis.
- πΊοΈ Roadmap & Future Enhancements: The architecture is designed to be extensible. Current development goals include:
- π Full Observability Suite: Integration with Prometheus (Textfile Collector) and Grafana for advanced time-series analysis.
- βοΈ External Configuration: Moving from hardcoded parameters to JSON-based configuration for dynamic simulation setups.
- π§΅ Multithreading Engine: Parallelizing router processing logic to handle massive network topologies (1000+ nodes).
- π¨ Interactive UI: Transitioning from CLI to a graphical interface using Dear ImGui or SFML.
Java 21 | Gradle Kotlin DSL | JUnit 5 | Dijkstra
DETAILS
A high-fidelity network simulation engine migrated from C++20 to **Java 21**. This project focuses on **Enterprise Backend Architecture**, implementing robust routing algorithms and automated telemetry collection using modern Java features and SOLID principles.- π§ The "Systems to Backend" Transition. This repository represents a strategic evolution from low-level C++ systems programming to a scalable Java-based architecture. Key improvements include:
- Type Safety & Generics: Elimination of manual casting through a decoupled
NetworkNode<T extends Stats>hierarchy. - Functional Telemetry: Using Java Streams and Map-Reduce patterns for real-time statistics aggregation.
- Immutable Data Carriers: Extensive use of Java Records for thread-safe state snapshots.
- Type Safety & Generics: Elimination of manual casting through a decoupled
- π οΈ Tech Stack
- Language: Java 21 (LTS)
- Build System: Gradle (Kotlin DSL -
build.gradle.kts) - Testing: JUnit 5 (Jupiter) & AssertJ
- Quality: Google Java Style Guide via Checkstyle
- CI/CD: GitHub Actions for automated verification
- π Key Features
- Dynamic Dijkstra Routing: Real-time routing table recalculation based on network load and buffer congestion.
- Packet Reassembly Logic: Sophisticated tracking of multi-packet
Pageobjects with unique{Source IP, Page ID}identification and timeout/quarantine management. - Fluent Builder Pattern: A specialized
NetworkStats.Builderfor incremental, error-resistant accumulation of global metrics.
- π§ͺ Testing & Reliability. The project maintains high standards of reliability with a comprehensive JUnit 5 test suite:
- Unit Testing: Individual logic verification for Dijkstra edge cases (isolated nodes, 1-node networks).
- Integration Testing: Full-cycle simulation tests verifying that
packetsSentat source equalspacketsReceived+packetsDropped+packetsTimedOut. - Property Validation: Record-level validation using compact constructors to ensure network invariants.
- πΊοΈ Backend Roadmap. I am evolving this simulator into a professional Backend showcase:
- Spring Boot REST API: Expose simulation control and stats via HTTP endpoints.
- Persistence (JPA/Hibernate): Store simulation history in PostgreSQL.
- Observability: Integration with Prometheus and Grafana for real-time monitoring.
- Concurrency: Implementation of Java 21 Virtual Threads to scale to 100k+ nodes.
Java 21 | JavaFX | Jackson | Software Architecture
DETAILS
A high-performance Petri Net simulation engine featuring a decoupled architecture and real-time visualization.- ποΈ Architectural Decoupling. The system is strictly divided into three specialized domains to ensure maintainability:
- Logic Engine: Pure mathematical representation of the Petri Net (Incidence matrices, firing rules, and marking invariants).
- Layout Engine: Orthogonal (Manhattan) and curved path routing for clear visualization of complex topologies.
- Workspace Manager: A "Master Config" system that allows switching between different models (Producer-Consumer, Dining Philosophers, Resource Allocation) via JSON injection.
- π Advanced Java 21 Features
- Domain Modeling with Records: Extensive use of deeply nested Java Records to handle immutable configuration states (Layouts, Waypoints, and Petri Logic).
- Functional Pipelines: Leveraging Java Streams and Optionals for robust configuration loading and error handling.
- Modern JavaFX UI: Custom rendering engine that uses
PathTransitionandParallelTransitionto animate tokens across multi-segment paths.
- π οΈ Key Technical Milestones
- Flexible JSON Configuration: Moving from hardcoded parameters to a fully externalized JSON system, enabling "hot-swapping" of network models.
- Concurrency & Events: Event-driven communication between the simulation relay and the UI layer to ensure smooth animations without blocking the engine's logic.
- πΊοΈ Roadmap & Evolution
- Observability Suite: Integration with Prometheus and Grafana to monitor transition firing rates and place congestion in real-time.
- Persistence Layer: Implementation of SQLite to log simulation history and enable "Time-Travel" debugging/replay.
- Interactive Designer: Transitioning from JSON-only setups to a Drag & Drop GUI for real-time Petri Net modeling.
Linux | Prometheus | Grafana | DevOps (Refactor in progress)
DETAILS
Real-time system monitoring solution that reads from the Linux `/proc` filesystem and visualizes metrics using modern observability tools.- π Collects system metrics from /proc filesystem
- π Integrates Prometheus for metrics storage
- π Creates Grafana dashboards for visualization
- β‘ Demonstrates understanding of Linux internals and monitoring best practices
Educational | ARM
DETAILS
Teaching materials and workshop exercises for microcontroller programming course, designed to help students learn embedded systems development.- π Hands-on exercises for LPC1769 microcontroller
- π Comprehensive documentation and learning materials
- π¨ Practical examples of peripheral usage (GPIO, timers, UART, etc.)
Linux | System Programming (Under Development)
DETAILS
Implementation of a custom command-line shell with built-in commands, process management, and piping capabilities.- π₯οΈ Built from scratch in C
- βοΈ Process creation and management
- π Pipeline and redirection support
I'm always interested in discussing embedded systems, low-level programming, or potential opportunities!
βοΈ Feel free to explore my repositories and don't hesitate to reach out!


