Senior Backend Engineer (Ruby on Rails) · Principal Software Engineer at 7Vals · Lahore, Pakistan · mehboob.dev
Five years at 7Vals on Rails backends and IT-asset systems. I led the CMDB build and I run our workflow automation program now. The tooling side got interesting along the way: a Redmine CLI, and Claude Code skills built on it that estimate work against the real codebase. I've also reviewed pull requests from 40+ engineers and interviewed about 100 candidates since 2022.
- rmine
Go
Redmine from a terminal, built for two callers from the start: me, and a coding agent. Structured output, profiles, time logging, an embedded Claude Code skill, tagged releases. My team at EZO uses it with rmine-skills. - rmine-skills
Python
Six workflows on top of rmine./estimaterefuses to price a spec it can't read, grounds each line item in the real codebase, then hands the result to a validator that never sees how it was derived. It prices agent-driven work by default: the time to describe, review and check what an agent writes./calibratechecks the whole rubric against hours actually logged. - clip-studio
JavaScript
Short videos from code, as a Claude Code skill. Every frame is a pure function of time, captured with Playwright and encoded with ffmpeg; two templates, a launch-style product demo and a motion-graphics clip. I use it for my own LinkedIn and portfolio videos. - bitwise_attributes
Ruby
Packs boolean flag attributes into a single ActiveRecord integer column, with generated scopes, validations and inheritance behavior. An internal pattern I used for two years before publishing it. - whatsapp-status-translator
JavaScript
One-click translate for WhatsApp Web Status captions, the one surface WhatsApp's own translate feature leaves out. A Manifest V3 worker over a DOM I don't control and can't rely on.
Closed source, so here is what they were and what they had to solve.
The sync job that took half a day · Rails Delayed Job MySQL
A device sync was taking 12 to 15 hours to run, so new hardware wouldn't show up for most of a working day. N+1 queries and no batching, on a table that had been collecting devices for years. Rebuilt around batched writes: under an hour now, and the MDM integrations added since reuse the same pattern.
Automation that could branch · Rails React Flow ITSM
Automation used to be one trigger paired with one sub-trigger. Fine for a one-step rule, out of room past that. It's a node canvas now: actions chain, each branches on success or failure, and every run writes a step-by-step log, so a rule that misfires can be read instead of guessed at. Led technical delivery with a team of about eight engineers, and built the HTTP request node, webhook triggers and branching myself. It's the program I still run. Documented by EZO ↗
A CMDB that actually models relationships · Rails MySQL Graph modeling
Most CMDBs are static. An asset points at a user, maybe a location, and anything past that takes a support ticket. This one answers everything touching this server, three hops out: a data model with n-level traversal plus the ITSM-integrated UI on top. About seven months from architecture to production, leading a five-person team. I wrote the design RFCs and built the new module's backend. Documented by EZO ↗
Telling devices apart when the serial is wrong · Rails MySQL
Asset records were keyed on the BIOS serial, and some devices report a junk one, so a single laptop could turn into several assets or two machines could merge into one. I built matching that spots invalid serials, falls back to the MAC address, and lets each company keep its own list of serials not to trust.
Four titles in five years, and what stayed behind after each one: mehboob.dev/#trajectory.
- What changed when an agent started using my CLI: rmine was built for two callers from the start: me at a terminal, and a coding agent.
- Three agents that don't trust each other: an effort estimator built from three subagents. What mattered was what to withhold from each one.
- I used it internally for two years before publishing it: most of what makes something a library rather than a snippet lives in that gap.
More at mehboob.dev/blog · RSS
mehboob.dev · LinkedIn · mehboob@mehboob.dev
Earlier work, before Rails: Python, Java, Android, Spring. Mostly in the 2021 repos below.




