Avionics monitoring and anomaly detection system (MQTT, InfluxDB, Grafana)
FalconEye is a lightweight modular system to simulate aircraft sensors (temperature, pressure, vibration), collect telemetry through an MQTT broker, detect anomalies (rules, deviations, sliding windows), and visualize them in real time with Grafana.
My own mini-netcat
AthosCat is a lightweight network tool inspired by Netcat, designed for establishing TCP and UDP connections using IPv4 or IPv6. It supports two main modes:
This was my second networking project, which helped me better understand network programming, improve command line UX design, and enhance error management.
Better initial architecture design, unit and integration tests, more thorough documentation, and a visual demonstration.
GitHub ReportSecure Diffie-Hellman key exchange with signatures.
This project implements a simple secure communication channel using Diffie-Hellman key exchange over sockets in C.
My first personal project built independently (without books or tutorials), which led to a lot of research. It was also my first experience with network programming and addressing basic security concerns like MITM attacks.
Unit and integration tests, visual demonstration, improved user experience, and clearer software architecture.
GitHub ReportBasic C compiler from scratch.
The goal of this project is to build a basic C compiler from scratch in C, following the book Writing a C Compiler. It compiles a subset of the C language into x86 assembly.
Since this project is closely guided by the book, I take fewer personal initiatives, focusing mainly on understanding compiler internals. I’ve explored lexical analysis, parsing, abstract syntax trees, and started working on code generation. The book provides a set of tests, which ensures solid error handling and correctness during each stage.
The compiler currently includes a working lexer and parser that produce an AST (Abstract Syntax Tree). Code generation is underway, with gen_expr()
and gen_stmt()
handling most expressions and control structures. The compiler can already translate basic programs into assembly and run them via the provided shell script.