Skip to content
View dnnsk's full-sized avatar
🧠
🧠

Sponsoring

@obra

Organizations

@EduLike @finlabs-org

Block or report dnnsk

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
dnnsk/README.md
██████╗ ███████╗███╗   ██╗██╗███████╗
██╔══██╗██╔════╝████╗  ██║██║██╔════╝
██║  ██║█████╗  ██╔██╗ ██║██║███████╗
██║  ██║██╔══╝  ██║╚██╗██║██║╚════██║
██████╔╝███████╗██║ ╚████║██║███████║
╚═════╝ ╚══════╝╚═╝  ╚═══╝╚═╝╚══════╝
Denis Kalinichenko — Product Engineer & Engineering Leader

denis.app  ·  denis.app/cli  ·  in/dnskl  ·  @dnsk96


$ cat about.md

> Π-shaped builder. Engineering craft on one side, org design on the other.
> Ex-G2A, Intercom, Volvo. Ukrainian, in Poland ~13 years.
> 13 years shipping. Currently building AI-native products end-to-end.

I read research papers as warm-ups. I prototype in Claude Code, then cull half of what I built before anyone sees it. The thing I'm best at is shrinking the loop between "what if" and "deployed."


$ stats --recent

14M+
users served
5 → 40
team scaled
60K
errors fixed in a day
13 yrs
shipping since 2014

$ ls projects/

Non-profit · AI

For anyone facing a chronic diagnosis. A free AI tool that turns real medical research into a plain-language report — approved treatments, active trials, what's coming next.

Next.js 16 · React 19 · Claude · SSE · Upstash · Vercel

Non-profit · Open

A curated catalogue of apps and starter kits that keep working when the connection doesn't — offline maps, encrypted messaging, mesh networking, local AI, medical references.

Next.js 16 · Supabase · Serwist PWA · Cloudflare · next-intl


$ cat stack.config.ts


// daily drivers, sorted by where they live
import type { Stack } from "./denis";

export const stack: Stack = {
  languages: ["TypeScript", "JavaScript (ES6+)", "SQL", "HTML", "CSS"],

  frontend: {
    core:    ["React 19", "Next.js 16", "React Native"],
    styling: ["Tailwind CSS", "Styled Components", "CSS Modules", "PostCSS"],
    motion:  ["GSAP", "Framer Motion", "Canvas"],
    state:   ["Redux", "TanStack Query", "Zustand", "Context API"],
  },

  backend: {
    runtime:  ["Node.js", "NestJS", "Express"],
    realtime: ["WebSockets", "SSE", "WebRTC"],
    apis:     ["REST", "OAuth 2.0", "tRPC"],
  },

  data: {
    relational: ["PostgreSQL"],
    keyvalue:   ["Redis", "Upstash"],
    document:   ["MongoDB"],
    backend:    ["Supabase"],
  },

  infra: {
    cloud:      ["AWS", "Cloudflare", "Vercel"],
    containers: ["Docker", "Kubernetes"],
    ci_cd:      ["GitHub Actions", "Feature Flags"],
  },

  ai: {
    sdks:    ["Anthropic SDK", "Vercel AI SDK", "AI Gateway"],
    coding:  ["Claude Code", "Codex", "Cursor", "Copilot"],
    custom:  ["MCP servers", "Figma MCP", "Multi-agent code review"],
    craft:   ["Prompt engineering", "Context engineering", "n8n", "Make.com"],
  },

  testing:       ["Vitest", "Jest", "Playwright", "Cypress", "Testing Library", "TDD/BDD"],
  observability: ["Sentry", "Datadog", "SonarQube", "Core Web Vitals", "Lighthouse"],
  tooling:       ["Vite", "Turbopack", "Webpack", "pnpm", "ESLint", "Prettier", "Nx"],
  design:        ["Figma (Dev Mode)", "Design Tokens", "Storybook", "WCAG 2.1"],

  shippingSince: 2014,
} as const;

$ tail -f writing


$ ./now

+ shipping myhopereport.com — research → plain-language reports for chronic dx
+ growing offline.directory — catalogue of resilient apps
+ writing about Π-shaped engineers and how AI reshapes product teams
~ open to staff/principal engineering & engineering leadership conversations

$ contact --connect

where handle what for
email hi@denis.app the long version
LinkedIn in/dnskl long-form writing
X @dnsk96 short takes · AI · eng
Threads @dnsk.ig lighter side
coffee buymeacoffee.com/dnsk if you want to

Contribution activity

GitHub streak

psssst — denis.app/cli runs a Claude-backed shell.
$ /ask anything  ·  say hi.

Pinned Loading

  1. js-cropper js-cropper Public

    Pure JavaScript image cropper

    JavaScript 14 3

  2. kantor kantor Public

    Currency Exchange App & Widget with cryptonym "kantor" 💷💶💴💵

    TypeScript 1

  3. icon-sprite-generator icon-sprite-generator Public

    User-friendly SVG sprite generation

    JavaScript 1

  4. getLocalIdentBem getLocalIdentBem Public

    It makes BEM-like class names using a CSS Modules

    JavaScript