Engineering Knowledge Hub
Практические ответы на реальные инженерные вопросы.
Статьи с кодом, типичными ошибками и компромиссами — от основ Java до enterprise-архитектуры. Бесплатно, без регистрации. Статьи доступны на азербайджанском и английском.
Статей: 42
- ADR
Writing Architecture Decision Records that survive the team
What an ADR is, a minimal template, the status lifecycle, examples of a good and a weak record, and how to keep records next to the code so they get read.
8 мин чтенияНачальныйTech Lead, Architect
- AI в backend-системах
How to use AI coding agents safely in a real project
Context files for an AI agent in a Java/Spring Boot project (CLAUDE.md, AGENTS.md), a task contract, prompt injection through PRs and READMEs, sandboxing and least-privilege permissions, negative authorization tests, SAST/SCA/secret scanning and human approval before merge.
11 мин чтенияСреднийMiddle, Senior, Tech Lead
- AI в backend-системах
Calling an LLM from a backend service safely
Treat a language model as an unreliable remote dependency. Validated tool calls, timeouts, retries, budgets, prompt-injection defence, privacy-aware logging and evaluation.
6 мин чтенияСреднийMiddle, Senior
- Безопасность API
API security for backend engineers with the OWASP API Security Top 10
Fix broken object level authorization and mass assignment, add rate limiting and input validation, handle secrets and logs safely, and use a review checklist built on the OWASP API Security Top 10 categories.
7 мин чтенияСреднийMiddle, Senior
- Модель C4
The C4 model: architecture diagrams that people actually read
How to use the four C4 levels (context, container, component, code), who each diagram is for, notation tips and how to keep diagrams from rotting.
8 мин чтенияСреднийTech Lead, Architect
- System Design
Caching strategies - cache-aside, write-through, TTLs and stampedes
Cache-aside, read-through and write-through compared, how to choose TTLs, invalidate safely, prevent stampedes, what not to cache, and which Redis data structures fit which job.
6 мин чтенияСреднийMiddle, Senior
- CI/CD
A CI/CD pipeline for a Java service
Design a pipeline from commit to deploy: build, test, static checks, image, promotion between environments, rollbacks and secrets. Includes a GitHub Actions-style example.
7 мин чтенияСреднийMiddle
- Clean Architecture
Pragmatic clean architecture in a Spring application
The dependency rule, ports and adapters in Spring Boot, how they improve testing, and an honest look at where the structure pays off and where it is just ceremony.
8 мин чтенияСреднийSenior
- Облачная архитектура
Cloud architecture basics for backend engineers
Regions and zones, managed versus self-hosted services, stateless design, database choices, cost drivers and the shared-responsibility model, explained in vendor-neutral terms.
6 мин чтенияСреднийMiddle, Senior
- Техническое лидерство
Code review culture that helps teams
What reviews are for, how to keep Pull Requests small, how to separate blocking comments from nits, how to phrase feedback kindly, and how to disagree productively.
6 мин чтенияНачальныйMiddle, Tech Lead
- DDD
DDD aggregates, bounded contexts and invariants
Ubiquitous language, bounded contexts, aggregates as consistency boundaries, protecting invariants, referencing other aggregates by id and publishing domain events, with Java examples.
7 мин чтенияПродвинутыйSenior, Architect
- Распределённые системы
Failure handling in distributed systems
Timeouts, retries with backoff and jitter, circuit breakers, bulkheads and fallbacks. How partial failure spreads between services and how Resilience4j concepts contain it.
7 мин чтенияПродвинутыйSenior
- Docker
Docker for Java services
Build small, safe images for Spring Boot services. Multi-stage builds, layered jars, JRE base images, non-root users, container memory, health checks and docker compose for local development.
7 мин чтенияНачальныйJunior, Middle
- Enterprise Architecture
Enterprise architecture: capabilities, portfolios and governance without bureaucracy
What enterprise architecture is, how it differs from solution architecture, and how capability maps, application portfolios, standards and target architectures work together without turning into paperwork.
5 мин чтенияПродвинутыйArchitect
- Событийная архитектура
Event-driven architecture trade-offs
Events versus commands, choreography versus orchestration, eventual consistency in the UI, schema evolution, debugging, and the cases where a plain synchronous call is the better design.
6 мин чтенияПродвинутыйSenior, Architect
- Распределённые системы
Idempotency patterns for safe retries
Why retries create duplicates, and how idempotency keys, stored request hashes and outcomes, natural idempotency and expiry make payment-style operations safe to repeat.
7 мин чтенияСреднийMiddle, Senior
- Java Core
Choosing the right Java collection
Pick List, Set, Map or Deque by access pattern. ArrayList versus LinkedList, HashMap versus TreeMap versus LinkedHashMap, immutable collections and a decision table.
6 мин чтенияНачальныйJunior
- Advanced Java
Java concurrency basics
Threads versus ExecutorService, visibility and happens-before, volatile versus synchronized, atomic classes, ConcurrentHashMap, and a race condition with its fix.
8 мин чтенияСреднийMiddle
- Java Core
The equals and hashCode contract in Java
Why equals and hashCode must agree, how a mutable key disappears from a HashMap, and when to use records, IDE generation or a compareTo-consistent ordering.
7 мин чтенияНачальныйJunior
- Java Core
Designing exceptions in Java services
Checked versus unchecked exceptions, wrapping with a cause, never swallowing errors, domain exceptions, translating them to HTTP at the edge, and try-with-resources.
7 мин чтенияНачальныйJunior, Middle
- Advanced Java
Java memory and garbage collection for service developers
Where a JVM keeps its data, how generational garbage collection works, how to size the JVM inside a container, and how to read a GC log line and recognise common leak patterns.
8 мин чтенияПродвинутыйSenior
- Java Core
Java streams: readable pipelines and common pitfalls
Write readable stream pipelines, avoid side effects in map and forEach, use groupingBy and toMap correctly, know when a loop is clearer and why parallel streams need caution.
7 мин чтенияСреднийJunior, Middle
- Advanced Java
Virtual threads in Java 21 and Spring Boot
What virtual threads change for blocking I/O, how synchronized pinning works in different JDKs, thread-locals, why connection pools still limit you, and when not to use them.
8 мин чтенияПродвинутыйMiddle, Senior
- JPA / Hibernate
The N+1 query problem in JPA and how to fix it
How to detect N+1 selects in Spring Data JPA and choose between fetch joins, entity graphs, batch fetching and DTO projections, including the pagination caveat.
6 мин чтенияСреднийJunior, Middle
- Событийная архитектура
Delivery semantics, idempotent consumers and the outbox pattern
What at-most-once, at-least-once and exactly-once really mean with Kafka, why dual writes lose events, and how a transactional outbox and idempotent consumers close the gap.
8 мин чтенияПродвинутыйSenior
- Kafka
Kafka fundamentals for backend engineers
Topics, partitions, offsets, consumer groups, ordering per key, retention, replication and producer acks, with a Spring Kafka producer and listener you can reason about.
7 мин чтенияСреднийMiddle
- Микросервисы
Drawing microservice boundaries
How to find service boundaries from business capabilities and data ownership, recognise a distributed monolith, start with a modular monolith, and account for team structure.
6 мин чтенияПродвинутыйSenior, Architect
- Solution Architecture
When and how to modernize a legacy monolith
Keep, refactor, modularize, extract one capability or rewrite — business and technical decision criteria, dependency and data ownership mapping, Strangler Fig and Branch by Abstraction, a fictional notification extraction with an outbox and an idempotent consumer, incremental routing, the limits of rollback and the metrics that define success.
9 мин чтенияПродвинутыйSenior, Tech Lead, Architect
- Observability
Observability: logs, metrics and traces
How structured logs with correlation ids, RED and USE metrics and distributed traces work together, how Micrometer and OpenTelemetry fit in, and how to design alerts around symptoms.
6 мин чтенияСреднийMiddle, Senior
- AI в backend-системах
RAG for backend engineers
How retrieval-augmented generation works as a pipeline: chunking, embeddings, retrieval, grounded answers with citations, freshness and evaluation, and when keyword search is enough.
6 мин чтенияПродвинутыйSenior
- Solution Architecture
The solution architect role: from requirements to a working solution
How a solution architect turns requirements into a design: quality attributes, constraints, options, trade-off analysis, documentation and day-to-day work with delivery teams.
5 мин чтенияСреднийArchitect
- Spring Boot
Layering a Spring Boot application: controller, service, repository
What each layer is responsible for, why DTOs and entities should stay apart, where business rules belong, and when to organise packages by feature instead of by layer, shown with a small Order example.
8 мин чтенияНачальныйJunior
- Spring Security
JWT or server sessions in Spring Security
Compare server-side sessions with stateless tokens on revocation, rotation, CSRF and storage, understand refresh tokens, and choose a pragmatic default for a first-party web app versus a mobile or API client.
6 мин чтенияСреднийMiddle
- Транзакции и согласованность
Spring @Transactional pitfalls: proxies, propagation and rollback rules
How @Transactional works through proxies, why self-invocation silently skips it, what REQUIRED and REQUIRES_NEW do, which exceptions roll back by default, and why external calls do not belong inside a transaction.
7 мин чтенияСреднийMiddle
- Spring Boot
Validation and error responses in Spring Boot with ProblemDetail
Validate DTOs with Bean Validation, write custom constraints, centralise error handling in a controller advice and return RFC 9457 problem details with stable error codes that clients can rely on.
8 мин чтенияСреднийJunior, Middle
- SQL и производительность
SQL indexes explained with PostgreSQL EXPLAIN
How a B-tree index works, how to read EXPLAIN (ANALYZE) in PostgreSQL, why column order matters in composite indexes, and when an index costs more than it gives.
7 мин чтенияСреднийJunior, Middle
- Транзакции и согласованность
Transaction isolation levels and lost updates in PostgreSQL
Dirty, non-repeatable and phantom reads, how PostgreSQL implements READ COMMITTED, REPEATABLE READ and SERIALIZABLE, and how to prevent lost updates with row locks or @Version.
6 мин чтенияПродвинутыйMiddle, Senior
- System Design
A repeatable method for system design interviews and design reviews
Eight steps from clarifying questions to failure modes, with a worked mini-example, common mistakes and a practice plan. It works equally well for real design reviews.
6 мин чтенияСреднийMiddle, Senior
- System Design
System design walkthrough: a URL shortener
A worked design of a URL shortener, from requirements and rough estimates to API, data model, ID generation, caching, redirects, analytics and abuse prevention, with trade-offs stated.
7 мин чтенияСреднийSenior
- Техническое лидерство
Tech lead: the first 90 days
What changes when a strong senior engineer becomes a tech lead, and a practical plan for listening, setting direction, delegating, reviewing and communicating.
6 мин чтенияСреднийTech Lead
- Стратегия тестирования
Integration tests with Testcontainers and a real PostgreSQL
Run integration tests against a real PostgreSQL instead of an in-memory fake. Covers @ServiceConnection, container reuse, test isolation, speed and CI setup.
6 мин чтенияСреднийMiddle
- Стратегия тестирования
A practical testing strategy for Spring Boot backends
The test pyramid as a guide, when to use unit tests, slice tests (@WebMvcTest, @DataJpaTest) and integration tests, what to mock, how to name tests and how to build test data.
7 мин чтенияНачальныйJunior, Middle
02Роудмапы
С чего начать? Выберите свою роль
Каждый роудмап показывает ожидаемые знания, типичные ошибки, приоритеты и подходящие статьи.
- L1Junior Java DeveloperКорректный читаемый Java-код, SQL, основы Spring Boot и навыки работы в команде.
- L2Middle Java DeveloperСамостоятельная поставка, производительность, стратегия тестирования и грамотная работа с транзакциями.
- L3Senior Backend DeveloperСистемные компромиссы, надёжность, распределённые системы и рост уровня команды.
- L4Tech LeadТехническое направление, видимые решения, культура качества и команда, которая поставляет результат.
- L5Solution ArchitectОт требований к архитектуре: атрибуты качества, интеграция, анализ компромиссов и документирование.
- L6Enterprise ArchitectПортфель, бизнес-способности, стандарты, дорожные карты и governance, который направляет, а не блокирует.
Хотите узнать свой уровень?
Короткая оценка навыков покажет сильные стороны и пробелы и порекомендует именно нужные статьи.