Hello World

I’m a software engineer working primarily in embedded systems and firmware, with experience spanning resource-constrained devices, embedded Linux, and desktop applications. I hold an MSc in Embedded Systems from Kingston University, London, UK with management studies as my minor subject, this educational experience has shaped how I approach engineering decisions beyond just code.
I use this space as a technical notebook and reflection log: to write about firmware, software design, testing strategies, systems thinking, and lessons learned from building software that runs close to hardware. Occasionally, I also share personal interests and side projects, including creative work I pursue in my free time.
My Blog Posts
Some of my Blog contents

Controlling and Automating Measurement Equipment for Hardware Testing Using Python
Good measurement is extremely essential in testing, because acquired data drives key engineering decisions. While engineers prefer automated testing to minimise human error and accelerate the process of data acquisition. But automated testing is not all about running scripts on a loop. If not checked, automated testing can introduce incorrect conclusions and poor engineering decisions Continue reading Controlling and Automating Measurement Equipment for Hardware Testing Using Python

Performance cost std::pmr vs std containers
This blog post explores why memory management is a critical bottleneck in embedded systems and how C++17’s Polymorphic Memory Resources (PMR) can dramatically improve performance, determinism, and memory efficiency compared to traditional std containers. Continue reading Performance cost std::pmr vs std containers

7 C++ Inheritance Nightmares Rust Fixes Forever
Seven ways C++ inheritance can create issues, and how Rust’s composition model fixes them all. From diamond problems to fragile base classes, see why composition wins in the long run. Continue reading 7 C++ Inheritance Nightmares Rust Fixes Forever

From Regulation to Implementation- Understanding Vehicle Cybersecurity legal Compliance & How Vehicle Cybersecurity Actually Gets Done
UNECE R155/R156 are regulatory requirements for vehicle cybersecurity and software updates, while ISO 26262 (functional safety) and IEC 62443 (industrial/IoT cybersecurity) are technical standards. The relationship is that UNECE mandates compliance at a regulatory level, and ISO/IEC standards provide the engineering frameworks and evidence manufacturers use to demonstrate compliance Continue reading From Regulation to Implementation- Understanding Vehicle Cybersecurity legal Compliance & How Vehicle Cybersecurity Actually Gets Done

RAII in C++ vs Rust- How Each Language Manages Resources Without the Garbage collector
Managing memory and resources like files, network connections, or locks is essential in programming. While some languages rely on garbage collectors for automatic cleanup (Java), C++ and Rust use RAII (Resource Acquisition Is Initialization) to handle this deterministically. Continue reading RAII in C++ vs Rust- How Each Language Manages Resources Without the Garbage collector

Pytest for Embedded Developers- Reliable, Maintainable Test Design
Embedded Software testing used to be dominated by only C or C++ with a bit of bash scripts, however in recent times the framework of firmware and embedded-software testing has been changing rapidly integrating Python’s flexibility & ease of usage, with the CI/CD integration the testing has never been faster & secured Continue reading Pytest for Embedded Developers- Reliable, Maintainable Test Design
See Posts for more