<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Systems | Mahbub H. Raton</title><link>https://mahbub-hr.github.io/tag/systems/</link><atom:link href="https://mahbub-hr.github.io/tag/systems/index.xml" rel="self" type="application/rss+xml"/><description>Systems</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><copyright>© 2026 Mahbub H. Raton</copyright><lastBuildDate>Sun, 01 Feb 2026 00:00:00 +0000</lastBuildDate><image><url>https://mahbub-hr.github.io/media/icon_hu0b7a4cb9992c9ac0e91bd28ffd38dd00_9727_512x512_fill_lanczos_center_2.png</url><title>Systems</title><link>https://mahbub-hr.github.io/tag/systems/</link></image><item><title>IR-Sentinel: LLVM-IR Security Analysis via MCP</title><link>https://mahbub-hr.github.io/project/ir-sentinel-llvm-ir-security-analysis-via-mcp/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://mahbub-hr.github.io/project/ir-sentinel-llvm-ir-security-analysis-via-mcp/</guid><description>&lt;p>Language models are good at recognizing patterns in code and bad at knowing what the compiler actually did with it. IR-Sentinel is a proof of concept that closes that gap by handing the model the compiler.&lt;/p>
&lt;p>It is a &lt;strong>Model Context Protocol (MCP)&lt;/strong> server, built on &lt;code>FastMCP&lt;/code>, that exposes a local LLVM toolchain — &lt;code>clang&lt;/code> and &lt;code>opt&lt;/code> — as tools an AI agent can call. The agent pipeline then:&lt;/p>
&lt;ol>
&lt;li>Compiles C++ source to &lt;strong>LLVM IR&lt;/strong>,&lt;/li>
&lt;li>Extracts &lt;strong>control flow graph&lt;/strong> metrics from it,&lt;/li>
&lt;li>Iteratively queries &lt;strong>Gemini&lt;/strong> against that structured view to identify use-after-free vulnerability patterns.&lt;/li>
&lt;/ol>
&lt;p>The interesting part is that the model reasons over the IR and the CFG rather than over surface syntax, so it sees the program the way the optimizer does.&lt;/p>
&lt;p>&lt;em>Built with Python, LLVM, Gemini, and FastMCP.&lt;/em>&lt;/p></description></item><item><title>Architectural Fault Injection Framework</title><link>https://mahbub-hr.github.io/project/architectural-fault-injection-framework/</link><pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate><guid>https://mahbub-hr.github.io/project/architectural-fault-injection-framework/</guid><description>&lt;p>You cannot argue about how much a reliability technique helps without measuring how often things actually go wrong. This framework extends the gem5 simulator to inject faults into the register file and the L1 cache, and pinpoints the first instruction that reads corrupted data — at under &lt;strong>0.1% simulation overhead&lt;/strong>.&lt;/p>
&lt;p>The harder half of the problem is statistical. A single injection tells you nothing; useful confidence intervals need hundreds of thousands of runs. The Python automation layer around gem5 makes that tractable:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Checkpointing and parallelism.&lt;/strong> Simulations resume from gem5 checkpoints and are distributed across multiple machines. A 600,000-injection campaign across three benchmarks went from &lt;strong>7 days to under 24 hours&lt;/strong>.&lt;/li>
&lt;li>&lt;strong>Outcome classification.&lt;/strong> Each run is automatically classified as silent data corruption, masked, detected, crash, or timeout, and reported with 99% confidence margins.&lt;/li>
&lt;li>&lt;strong>Root-cause analysis.&lt;/strong> When an injection produces a wrong result, the harness diffs execution traces to find where the corrupted value first diverged.&lt;/li>
&lt;/ul>
&lt;p>This is the measurement apparatus behind the &lt;a href="../aegis-llvm-compiler-pass-for-hardware-reliability/">AEGIS&lt;/a> numbers.&lt;/p>
&lt;p>&lt;em>Built with C++, Python, gem5, Docker, and Linux.&lt;/em>&lt;/p></description></item><item><title>College Admission System</title><link>https://mahbub-hr.github.io/project/college-admission-system/</link><pubDate>Mon, 07 Nov 2022 00:00:00 +0000</pubDate><guid>https://mahbub-hr.github.io/project/college-admission-system/</guid><description>&lt;p>College Admission System (CAD) is a part of the parent proejct Integrated Educational Information Management System (IEIMS). IEIMS project is an effort from Ministry of Education, Bangladesh to create a common database of information of every educational entity including students, educational institution and education board. Therefore, the Ministry of education intends to implement a common platform for managing each educational functionalities efficinetly.&lt;/p>
&lt;p>For higher secondary education, Bangladeshi mainstream students must be enrolled in colleges after passing the Secondary School Certificate Examination (SSC). The goal of College Admission System project is to create a web-based application to facilitate the admission process by obeying the guideline passed by the Ministry of Education.&lt;/p>
&lt;p>In CAD project, I designed and developed most of the backend APIs. I was also responsible to secure the APIs using Spring Security. One of my most notable contributions to this project is to implement a way to modify API roles at runtime without the need of recompiling the code.&lt;/p>
&lt;p>Technologies – Spring Boot, Hibernate with JPA, JSON, mockito, junit, Spring Data, Spring Security
Tools – Maven, Git&lt;/p>
&lt;p>My key contributions are:&lt;/p>
&lt;ul>
&lt;li>Created maven projects by implementing various hierarchal pom features and adding various maven plugins.&lt;/li>
&lt;li>Implemented Backend APIs using Spring Boot.&lt;/li>
&lt;li>Secured the APIs using Spring Security module.&lt;/li>
&lt;li>Implemented Data access logic using Spring Data, Hibernate with JPA and criteria builders.&lt;/li>
&lt;li>Setup Keycloak and added single sign on using Keycloak.&lt;/li>
&lt;li>Writing unit test using Junit 5 and Mockito Framework&lt;/li>
&lt;li>Excel file processing using Apache POI library&lt;/li>
&lt;li>Code optimization&lt;/li>
&lt;li>Reviewing code for team members.&lt;/li>
&lt;/ul></description></item><item><title>SliveredChain: A Storage Optimized Private Blockchain</title><link>https://mahbub-hr.github.io/project/sliveredchain-a-storage-optimized-blockchain/</link><pubDate>Sat, 21 Nov 2020 13:15:46 +0000</pubDate><guid>https://mahbub-hr.github.io/project/sliveredchain-a-storage-optimized-blockchain/</guid><description>&lt;!--StartFragment-->
&lt;p>I completed this project as a part of my undergraduate thesis. This project aims to optimize storage usage of a &lt;a href="https://www.investopedia.com/news/public-private-permissioned-blockchains-compared/#toc-private-blockchain" target="_blank" rel="noopener">Private Blockchain&lt;/a> system. Typically, each node in the system stores whole blockchain. This consumes a lot of storage. In my thesis, I propose to only store a part of the chain in each node. &lt;!-- This means the number of copies of the chain in the system is equal to the number of nodes present in the system. --> This is done by carefully dividing the chain and distributing the pieces to each peer. As a proof of concept, I implemented this proposal in &lt;a href="https://flask.palletsprojects.com/en/2.2.x/" target="_blank" rel="noopener">Flask&lt;/a> framework. Our experimental evaluation shows SliveredChain can reduce the required storage by 66.67%. Our method scales very well with the number of nodes in the network.&lt;/p>
&lt;!--EndFragment--></description></item></channel></rss>