yanko-belov

yanko-belov

@yanko-belov

GitHub
28 Skills
364 Total Stars
February 2026 Joined

Public Skills

error-responses

by yanko-belov

Use when returning errors from APIs. Use when exposing internal errors. Use when error responses lack structure.

Processing 13 9mo ago

interface-segregation-principle

by yanko-belov

Use when designing interfaces. Use when implementing interfaces with methods you don't need. Use when forced to implement throw/no-op for interface methods.

Debugging 13 9mo ago

fail-fast

by yanko-belov

Use when handling errors. Use when tempted to catch and swallow exceptions. Use when returning default values to hide failures.

Code Gen 13 9mo ago

composition-over-inheritance

by yanko-belov

Use when tempted to use class inheritance. Use when creating class hierarchies. Use when subclass needs only some parent behavior.

Docker 13 9mo ago

dont-repeat-yourself

by yanko-belov

Use when writing similar code in multiple places. Use when copy-pasting code. Use when making the same change in multiple locations.

File Ops 13 9mo ago

encapsulation

by yanko-belov

Use when exposing internal state. Use when making fields public for convenience. Use when external code modifies object internals.

Code Gen 13 9mo ago

open-closed-principle

by yanko-belov

Use when adding new functionality to existing code. Use when tempted to add if/else or switch branches. Use when extending behavior of existing classes.

Code Gen 13 9mo ago

law-of-demeter

by yanko-belov

Use when accessing nested object properties. Use when chaining method calls. Use when reaching through objects to get data.

Agents 13 9mo ago

n-plus-one-prevention

by yanko-belov

Use when fetching related data in loops. Use when seeing multiple queries for one request. Use when database is slow on list endpoints.

Caching 13 9mo ago

lazy-loading

by yanko-belov

Use when loading all data upfront. Use when initial page load is slow. Use when fetching data that might not be needed.

Analytics 13 9mo ago

error-boundaries

by yanko-belov

Use when deciding where to catch errors. Use when errors propagate too far or not far enough. Use when designing component/service isolation.

Processing 13 9mo ago

you-aint-gonna-need-it

by yanko-belov

Use when tempted to add features "for later". Use when building "production-ready" systems before needed. Use when adding flexibility that isn't required yet.

Embeddings 13 9mo ago

test-driven-development

by yanko-belov

Use when implementing any new feature or function. Use when asked to "add tests later". Use when writing code before tests.

Refactoring 13 9mo ago

api-versioning

by yanko-belov

Use when designing or modifying APIs. Use when adding breaking changes. Use when clients depend on API stability.

API Dev 13 9mo ago

secrets-handling

by yanko-belov

Use when working with API keys, passwords, or credentials. Use when asked to hardcode secrets. Use when secrets might leak.

Debugging 13 9mo ago

caching

by yanko-belov

Use when same data is fetched repeatedly. Use when database queries are slow. Use when implementing caching without invalidation strategy.

Caching 13 9mo ago

dependency-inversion-principle

by yanko-belov

Use when a class creates its own dependencies. Use when instantiating concrete implementations inside a class. Use when told to avoid dependency injection for simplicity.

Code Gen 13 9mo ago

input-validation

by yanko-belov

Use when accepting user input. Use when handling request data. Use when trusting external data without validation.

Processing 13 9mo ago

idempotency

by yanko-belov

Use when creating mutation endpoints. Use when trusting frontend to prevent duplicates. Use when payments or critical operations can be repeated.

Code Gen 13 9mo ago

separation-of-concerns

by yanko-belov

Use when component does too many things. Use when mixing data fetching, logic, and presentation. Use when code is hard to test.

Processing 13 9mo ago

immutability

by yanko-belov

Use when modifying objects or arrays. Use when tempted to mutate function parameters. Use when state changes cause unexpected bugs.

Code Gen 13 9mo ago

auth-patterns

by yanko-belov

Use when implementing authentication. Use when storing passwords. Use when asked to store credentials insecurely.

Auth 13 9mo ago

aaa-pattern

by yanko-belov

Use when writing tests. Use when test structure is unclear. Use when arrange/act/assert phases are mixed.

Code Gen 13 9mo ago

liskov-substitution-principle

by yanko-belov

Use when creating subclasses or implementing interfaces. Use when tempted to override methods with exceptions or no-ops. Use when inheritance hierarchy feels wrong.

Code Gen 13 9mo ago