karan@embedded:~$ skills --grouped
Skills
Firmware
- C
- C++
- STM32 HAL
- FreeRTOS
- RTOS internals
- Bare-metal firmware
- Bootloaders
- Low-power / hibernation
Platforms / MCUs
- ARM Cortex-M
- STM32
- TI Tiva TM4C
- ESP32 / ESP32-C3
- Raspberry Pi
Linux / Drivers
- Kernel modules
- Character drivers
- Virtual network drivers
- net_device
- Linux user-space
- Kali Linux
Interfaces
- CAN
- UART
- SPI
- I2C
- Ethernet / IP
- BLE
- Zigbee
Debugging / Tools
- GDB
- JTAG/SWD
- Trace32
- Oscilloscope
- Logic analyzer
- Python diagnostics
- Git / JIRA / Jenkins
AI-Assisted Engineering
- Claude / Codex
- Spec-driven development
- Prompt → context → harness engineering
- AI agent orchestration
- Architecture & test docs
- Code review
Foundations
- Requirements-first
- Architecture-first
- Phased development
- Validation plans
karan@embedded:~$ cat engineering-style.md
Engineering Style
01 Requirements
Start from what the system must do, written down.
02 Architecture
Define modules, interfaces and data flow before code.
03 Design decisions
Record trade-offs so choices are explainable later.
04 Phased build
Ship in small, working increments.
05 Validation
Plan how each behavior is proven correct.
06 Debug observability
Build in logging/CLI so the system can be inspected.
07 Documentation
Treat docs as an engineering output, not an afterthought.