About
Hi, I’m Mersad Karimi
I’m an Embedded Linux Developer based in Kermanshah, Iran, specializing in system programming, device driver development, and Linux system integration. My passion lies in building robust, efficient systems for modern embedded devices using cutting-edge tools and open-source technologies.
What I Do
My work focuses on the fundamental building blocks of embedded Linux systems—from bootloaders and toolchains to kernel customization and root filesystem construction. I believe in understanding systems from the ground up, which is why I prefer building things from scratch rather than relying solely on pre-built solutions.
Core Expertise
- Embedded Linux System Development: Building complete systems from scratch and using build systems like Yocto Project
- Device Driver Development: Creating and debugging drivers for various hardware devices
- System Programming: Developing reliable C-based applications for both user-space and kernel-space
- Bootloader Customization: Deep experience with U-Boot and bootloader configuration
- Cross-Compilation: Building toolchains, libraries, and applications for ARM-based platforms like Raspberry Pi
- IoT Integration: Combining sensors, protocols, and embedded systems for innovative projects
Notable Projects
BusyPy
A lightweight filesystem written in Python that ships coreutils and system programs without requiring compilation on target devices. This project demonstrates my approach to creating portable, efficient solutions for embedded environments.
U-Boot on Web
A web-based interface for configuring U-Boot remotely—no serial connection required. Features real-time AJAX updates, WiFi-enabled board support, and comprehensive documentation for serial pinout and static IP deployment.
Embedded Linux Practice
Step-by-step exercises and solutions covering bootloader, rootfs, kernel, and toolchain development with real-world integration examples. A practical resource for anyone learning embedded Linux.
Cross-Compiler From Scratch
Automated scripts to produce a complete aarch64 (glibc) cross-toolchain including binutils, GCC stages, Linux headers, and glibc for compiling C/C++ on x86_64 hosts.
My Approach
I’m a firm believer in hands-on learning and deep technical understanding. Whether it’s building a motion-controlled gaming gun with MPU-6050 sensors or implementing dynamic device tree address adjustment in U-Boot, I enjoy tackling challenges that push the boundaries of what embedded systems can do.
My philosophy is simple: understand how things work at a fundamental level, contribute to the open-source community, and continuously expand my expertise through practical projects and real-world problem-solving.
Education
- Bachelor Degree in Software Engineering (2025 - 2027)
- Associate Degree in Software Engineering (2023 - 2025)
Get In Touch
- GitHub: @xmersad
- LinkedIn: /in/xmersad
- Email: xmersadkarimi@gmail.com
- Location: Kermanshah, Iran
When I’m not working on embedded systems, you’ll find me exploring new technologies, contributing to open-source projects, or experimenting with innovative ways to integrate hardware and software. I’m always excited to collaborate on interesting projects and connect with fellow developers in the embedded systems community.
Let’s build something amazing together!