Full-stack engineer, 15+ years in production. Ruby and Rails at the core, TypeScript and Go alongside it. I ship end to end: schema, backend, frontend, deploy pipeline. Coding agents are part of my daily workflow, and I review what they produce the same way I'd review any other contributor's patch.
Based in Yerevan (UTC+4). I work late, so my day overlaps a full US East workday.
The work below is mostly closed-source, so here's the stuff you can actually click into.
sec_id - a securities-identifier toolkit: validate, parse, normalize, detect, convert, generate, classify and repair 16 schemes (ISIN, CUSIP, CEI, SEDOL, FIGI, LEI, IBAN, CIK, OCC, WKN, Valoren, CFI, FISN, BIC, DTI, UPI), check-digit math included. My oldest gem: first released in 2019, 18 versions since, now on 7.x. RBS type signatures, a written migration guide for every major bump, and CI across supported Rubies.
clsx-rails - clsx/cn view helpers for Rails, a drop-in replacement for class_names that benchmarks 2-4x faster and never slower on realistic markup. The framework-agnostic core ships separately as clsx-ruby for ViewComponent, Phlex, or plain templates.
oss-kit - curated agent skills for open-source maintainers. Audit a repo's health and get back only the gaps, each routed to the skill that fixes it: improve the README, bring the project in line with community guidelines and best practices, and publish releases to npm, RubyGems, PyPI and crates.io. Works on repos hosted on GitHub or GitLab, and holds itself to its own standard. Docs.
hacker_news_sorted - Chrome extension that re-sorts the HN front page by points, time, comments, velocity or heat, marks posts you haven't seen, and highlights repeat comment authors. TypeScript, Manifest V3, zero data collection.
oz - config-driven CLI wizard framework in Go: define prompts in YAML, wrap any tool in a discoverable TUI. golangci-lint, GoReleaser, CI on every push.
13 more
AI & agent tooling
- agentskills-lint - zero-config
npxlinter for the Agent Skills spec: errors for spec violations, warnings for weak authoring. - agent-toolkit - reusable skills and plugins for Claude Code, Cursor, Codex, and Gemini CLI; the agent setup I actually work with day to day.
Ruby gems
- candor - turn a block or callable into a real method with an honest signature.
- briefly - a terse, curated facade over your application's most reached-for objects.
- card_dealer - a delightful card-dealing companion for your digital table.
- http_wrapper - a small, ergonomic skin over stdlib
Net::HTTP. - smsru-ruby - dependency-free client for the SMS.ru API: send SMS, phone-call verification, delivery status. Fully RBS-typed, with constant-time webhook signature verification.
Frontend for Rails / Tailwind
- clsx-ruby - the framework-agnostic core behind clsx-rails: conditional CSS class strings for ViewComponent, Phlex, or plain templates.
- tailwind-merge-typography - a tailwind-merge plugin that resolves
@tailwindcss/typographyprose-*conflicts correctly.
TypeScript libraries
- devto-client - typed, zero-dependency client for the dev.to (Forem) v1 API. Response types come from Forem's own OpenAPI spec; the versioned Accept header and the undocumented rate limits are handled for you, so requests can't silently downgrade to the deprecated v0 API.
CLI tools & wizards
- create-rails-app · create-ruby-gem - interactive wizards for
rails newandbundle gem, so you stop looking up flags.
Learning by building
- database-transactions - learn database transactions from verified, runnable examples. Every claim proven against a real PostgreSQL/MySQL database.
- deck - basic operations on a deck of playing cards, in Elixir.
- A blank repo and broad ownership - schema, infra, deploy pipeline, the lot.
ozandcreate-rails-appboth exist because I kept starting from zero and wanted the starting part to be good. - Designing good interfaces -
candorandbrieflyare entirely about this: the implementations are small, the shape of the API was the whole problem. - Making slow things fast - finding the real bottleneck and killing it.
clsx-railsis the smallest public version of that: 2-4x, measured, with the benchmark in the repo so you can check. - Small teams with a short chain of command. Move fast, but with quality; no long approval chains.





