Skip to content
View harshverma27's full-sized avatar
🐈‍⬛
Learning
🐈‍⬛
Learning

Highlights

  • Pro

Block or report harshverma27

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
harshverma27/README.md

Typing SVG


Portfolio   LinkedIn   Email   Profile Views

$ whoami

harsh@arch:~$ whoami --verbose
➜  EE undergrad @ NIT Hamirpur                 # '24 → '28
➜  I live one layer below the app             # firmware, CLIs, build tooling, CI
➜  Daily driver: Arch Linux                   # VS Code + a terminal that never closes
➜  Currently: turning STM32CubeIDE pain       # ...into a 4 MB Rust binary

🛰️  What I'm into

  • Embedded systems & PCB / power design
  • Developer tooling that's CLI-first & diffable
  • CI/CD automation across GitHub & GitLab
  • Real-time tracing, HALs, code-gen

⚡  Right now

  • Building Nucleus — a modern STM32 platform in Rust
  • Building SparkIDE — block-based Arduino IDE
  • Writing tests for GIMP & fixing GNOME CI

$ cat ./flagship_builds/*

◢ Nucleus  ·  a modern STM32 developer platform

Not an IDE replacement. A developer platform.

STM32CubeIDE locks embedded devs into a 2 GB Eclipse fork, a click-through pin GUI, and opaque XML you can't diff or run in CI. Nucleus replaces both lock-ins with a 4 MB Rust CLI and a VS Code extension:

  • 🧩  Declarative stm32.toml — version-controllable, CI-friendly hardware config
  • 🧮  Pinmux compiler + constraint solver instead of a point-and-click GUI
  • 📡  ITM trace daemon — real-time debug without a $600 Segger license
  • 🦀  Rust core · TypeScript + React extension · LSP-powered editor UX


# stm32.toml — diffable hardware
[chip]
mcu = "STM32F411CEU6"

[pin.PA5]
mode  = "output"
label = "led"

[trace]
itm  = true   # real-time ITM
baud = 2_000_000

◢ SparkIDE  ·  Arduino, without the cliff

// snap blocks → get this C++
void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(500);
}

Scratch-like blocks → real Arduino C++ → flashed to your board, in one click.

A lightweight, native PyQt6 desktop IDE that wraps Google Blockly in a maker-lab shell so beginners on Linux can learn embedded the friendly way:

  • 🧱  50+ custom blocks covering the full standard Arduino library
  • 👁️  Live C++ generation — watch code write itself as you snap blocks
  • 🔌  Board discovery, one-click compile & flash via arduino-cli
  • 🟢  Offline Blockly via QtWebEngine · phosphor-green lab console UI


$ git log --author="harsh" --oneline

Active contributor to GNOME (GitLab @harshverma) — building the kind of unglamorous infra that keeps big projects honest.

Project Contribution Impact
GIMP Built a unit-testing framework from scratch for core libraries Covered 65+ files, wired into GitLab CI, surfaced a hidden env-var bug
BABL · GEGL Fixed CI flaw spawning duplicate pipelines on every commit Cut runner resource usage by ~50%
GIMP Replaced weighted blur with Gaussian-distributed kernels Sharper, spec-aligned blur strength

$ ls ./toolchain

Languages

Rust C C++ Python Kotlin Bash SQL

Embedded · Hardware

STM32 Arduino Raspberry Pi GTK FFmpeg

Backend · Mobile · Cloud

Django Jetpack Compose Firebase PyQt

Automation · Systems

Linux GitHub Actions GitLab CI Git

$ ./run --stats

 
contribution snake
metrics

"The best way to predict the firmware is to flash it." — me, debugging at 3am

Pinned Loading

  1. nucleus nucleus Public

    A modern STM32 developer platform for declarative hardware configuration and real-time trace debugging.

    Rust 10

  2. SparkIDE SparkIDE Public

    SparkIDE - A easier and beginner friendly IDE for Arudino Boards

    Python 2

  3. harshverma27.github.io harshverma27.github.io Public

    A 3d-portfolio made using TypeScript, with skills and projects sections.

    TypeScript 1