Skip to content
View David-A-T-M's full-sized avatar

Highlights

  • Pro

Block or report David-A-T-M

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
David-A-T-M/README.md

Hi there, I'm David πŸ‘‹

πŸŽ“ About Me

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.

πŸ’Ό What I'm Looking For

I'm actively seeking entry-level positions or junior developer roles in:

  • Embedded Systems Development
  • Systems Programming
  • Firmware Development
  • Backend Development
  • DevOps/Infrastructure

πŸ› οΈ Technical Skills

Programming Languages

C C++ Java Python Assembly

Learning

Go Rust

Embedded Systems & Hardware

ARM Microchip NXP

Operating Systems & Platforms

Databases

Tools & Technologies

Development Environment

Learning & Community

GitHub HackerRank Sololearn

Areas of Expertise

  • 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

πŸš€ Featured Projects

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:

image_2026-02-28_115401283
  • ⚑ 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.
  • πŸ› οΈ 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 Page objects with unique {Source IP, Page ID} identification and timeout/quarantine management.
    • Fluent Builder Pattern: A specialized NetworkStats.Builder for 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 packetsSent at source equals packetsReceived + 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 PathTransition and ParallelTransition to 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

πŸ“« Let's Connect

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!

Pinned Loading

  1. LPC17xx-CMSIS-Driver-Enhancement LPC17xx-CMSIS-Driver-Enhancement Public

    C 5 1

  2. CustomShell CustomShell Public

    CMake

  3. RouterSimulator_cpp RouterSimulator_cpp Public

    C++

  4. RouterSimulator_java RouterSimulator_java Public

    Java

  5. PetriNetSimulator PetriNetSimulator Public

    Java