SDET · Computer Science MSc Student
Engineering confidence.Measuring performance.
I build automated verification systems for embedded radar software using Robot Framework, Python, and C++ simulators. Alongside my professional work, I research LLM inference performance on CPU architectures with High-Bandwidth Memory.
About this engineering pathT01-TC01 Verify SUT Responds Before Coffee Timeout
embedded-test-demo — Visual Test Workbench
Read-only Robot and Python source files
test.robot
*** Settings ***Documentation Public Robot Framework BDD demonstration.Library keywords.EmbeddedSystemKeywordsTest Teardown Close Test Session *** Variables ***${TEST_ID} T01-TC01${EXPECTED_STATUS} READY *** Test Cases ***T01-TC01 Verify SUT Responds Before Coffee Timeout [Documentation] Public demo using fictional values only. Given Simulator Connection Is Open And Test Session Is Started ${TEST_ID} When System Health Is Requested Then SUT Response Status Should Be ${EXPECTED_STATUS} And Test Note Is Logged The SUT is awake. Engineering may proceed.
keywords.py
from client import SimulatorClient # Display code only; no module is imported or executed. class EmbeddedSystemKeywords: ROBOT_LIBRARY_SCOPE = "SUITE" def __init__(self) -> None: self.client: SimulatorClient | None = None self.response_status: str | None = None def simulator_connection_is_open(self) -> None: self.client = SimulatorClient(host="simulator", port=9001) self.client.connect() def test_session_is_started(self, test_id: str) -> None: self._require_client().send("START_TEST", {"test_id": test_id}) def system_health_is_requested(self) -> None: client = self._require_client() client.send("READ_HEALTH_STATUS", {}) self.response_status = client.receive()["status"] def sut_response_status_should_be(self, expected_status: str) -> None: assert self.response_status == expected_status def test_note_is_logged(self, note: str) -> None: print(note) def close_test_session(self) -> None: if self.client is not None: self.client.close() def _require_client(self) -> SimulatorClient: if self.client is None: raise RuntimeError("Simulator client is not connected") return self.client
$ robot -t "T01-TC01" test.robotDifferent systems. The same discipline: control the input, observe the execution, measure the result.
Current Research
LLM inference across CPU and memory architectures.
As a Computer Science MSc student at Sapienza University of Rome, I investigate how CPU architecture and High-Bandwidth Memory shape LLM inference performance through reproducible Slurm workloads, benchmarking, and memory-bandwidth analysis.
- Program
- Computer Science MSc
- Method
- Slurm workloads · CPU inference · HBM
- Evidence
- Correctness · Latency · Throughput · Memory bandwidth
Verify, simulate, and measure
Selected Engineering Work
Tools for observable, repeatable verification.
Selected work across test automation, model-driven workflows, HPC research, machine learning, data tooling, and network systems. Repository metadata comes from synchronized GitHub data.
Personal / LucianCrainic
robot-visual
🤖Web dashboard to visualize Robot Framework test runs.
Academic / struggling-student
FSM2Suites
🧪From Models to Suites: FSM-Based Robot Test Generator
Personal / LucianCrainic
MSc Thesis
Benchmarking LLM inference workloads across GPU systems and CPUs with High-Bandwidth Memory.
Personal / LucianCrainic
JSONBro
💪🏻JSONBro: fast JSON format, search, and diff in VS Code.
Personal / LucianCrainic
BSc-Thesis
👨🎓 BSc. Thesis in Computer Science at La Sapienza University of Rome. "Machine Learning for Human Movement Classification Based on Kinect Skeleton Data".
Academic / struggling-student
kathara-hw
📡 Solution to the Kathara Homework for the "Network Infrastructures" course at La Sapienza University
Latest Notes
Evidence, experiments, and engineering notes.
Writing on test automation, systems, High Performance Computing, and the assumptions behind technical results.
Example: Understanding LLM Inference Bottlenecks
Example article demonstrating the blog folder, frontmatter, media, and GitHub-flavored Markdown format.
About
One method, applied across different systems.
I move between requirements, automated tests, simulators, performance experiments, and technical writing. The common thread is collecting enough evidence to explain whether a system is correct, efficient, and understood.
Read the full background