Hey, I'm Hitesh Patil — Embedded Systems Developer

Embedded Systems Trainee with hands-on experience in Embedded C, Linux System Programming, and Bare Metal Programming. Skilled in C/C++, Data Structures, UART, SPI, I2C, and CAN, with practical experience in Linux Device Drivers and embedded project development.

Technical Skills

CC++Embedded CLinux (Ubuntu)WindowsLinux System ProgrammingDevice DriversMemory ManagementInterruptsTimersPWMADCRTCSystem CallsProcessesMulti-ThreadingIPCCPU SchedulingFile ManagementFile DescriptorsPipesShared MemorySemaphoresMutexTCPUDPSocketsNetwork ProgrammingGPIOSPII2CUARTCANUSBPIC18F4580STM32 Blue PillVS CodeMPLAB X IDESTM32CubeIDEGCCGitGitHubMakefilesdmesgprintkKernel Log Analysis

Experience

Nov 2025 — Present

Embedded Systems Trainee

Emertxe Information Technologies · Bengaluru, Karnataka, India

  • Training in Embedded Systems with focus on low-level programming, debugging, and system development.
  • Hands-on experience in C, C++, Data Structures, Linux System Programming, PIC18F4580 programming, interrupts, timers, UART, SPI, and I2C.
  • Developed projects including a USB Device Driver, MP3 Tag Reader, Steganography, Inverted Search, and Address Book.

Sep 2024 — Mar 2025

Embedded Firmware Developer Intern

MR Network Web Solution · Pune, Maharashtra, India

  • Developed and debugged embedded firmware using C and Embedded C.
  • Interfaced microcontrollers with communication protocols including GPIO, UART, SPI, and I2C.
  • Implemented firmware modules, optimized code, and performed hardware-software integration and testing.
  • Collaborated with senior developers to troubleshoot system issues and enhance overall device functionality.

Projects

Car Dashboard Simulation Using CAN Bus

Embedded C, PIC18F4580, CAN, UART, ADC, CLCD, Digital Keypad

Developed an automotive dashboard system using three PIC18F4580-based ECUs communicating over the CAN protocol. Implemented ADC to acquire vehicle speed and engine RPM using potentiometers, while a digital keypad was used for gear selection and turn indicator control. Designed a Master ECU to receive CAN messages from both ECUs and display real-time vehicle information on a CLCD. Used UART with Tera Term for debugging and validating CAN communication between the ECUs.

View on GitHub

Car Black Box

Embedded C, PIC18F4580, I2C, UART, ADC, EEPROM, DS1307 RTC

Developed an embedded vehicle event logging system using PIC18F4580 to monitor and record vehicle information such as speed, gear, and time. Implemented event storage with timestamps in EEPROM using I2C and DS1307 RTC. Added View Log, Download Log, Clear Log, and Set Time features using a matrix keypad and CLCD. Used UART with Tera Term to download and view stored logs.

View on GitHub

USB Device Driver for Linux Kernel

C, Linux Kernel, Makefile, dmesg, printk

Developed a custom USB device driver as a Loadable Kernel Module (LKM) for Linux. Implemented USB device detection using Vendor ID and Product ID, handled probe/disconnect events, and explored character driver operations with kernel logging using printk and dmesg. Gained hands-on experience in USB device detection and Linux kernel driver development.

View on GitHub

Linux Mini Shell

C, Linux System Programming, System Calls, Signals, Pipes, Process Management

Developed a Linux command-line shell in C supporting built-in and external command execution. Implemented process creation and management using fork() and waitpid(). Added signal handling, pipes, background process handling, process tracking, and command parsing. Gained hands-on experience with Linux system calls, process management, file descriptors, and IPC concepts.

View on GitHub

Steganography

C, File Handling, Bit Manipulation

Implemented message encoding and decoding inside image files using bit-level manipulation and file operations. The project focused on secure data hiding, file integrity, and understanding how data can be stored in binary formats.

View on GitHub

Inverted Search

C, Hashing, Linked Lists, Data Structures

Created a file indexing system that stored words with their file locations using hashing and linked lists. It improved my understanding of search optimization, memory handling, and efficient data organization in C.

View on GitHub

Arbitrary Precision Calculator (APC)

C, Linked Lists, Dynamic Memory Allocation

Built a large-number calculator using dynamic memory and linked-list-based arithmetic operations. The project involved addition, subtraction, multiplication, and division for very large integer values, reinforcing core programming and memory-management concepts.

View on GitHub

Education

  • North Maharashtra University · 2024 · B.E. in Mechanical Engineering · 75.38%
  • Maharashtra State Board · 2021 · Diploma in Mechanical Engineering · 76.00%