Skip to content
View vZhyryk's full-sized avatar

Block or report vZhyryk

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
vZhyryk/README.md

Vitaliy Zhyryk — Golang Backend Engineer

Warsaw, Poland · LinkedIn · LearnFlow


Go backend engineer specializing in microservices, event-driven architectures, and data-intensive systems — including multi-tenant analytics backends and SaaS platforms. boundary — clean, modular, layered design is an engineering constraint, not a style preference. I rely on Go's native concurrency — goroutines, channels, bounded worker pools — for async pipelines and background job processing. Graceful shutdown with context propagation and structured error handling (%w wrapping, errors.As) are built in from the start — not added when something breaks. I don't build things I can't ship and observe.


Stack

Language Go · goroutines · channels · bounded worker pools
Frameworks / HTTP Gin · net/http stdlib
Databases PostgreSQL · MariaDB · MongoDB · Redis
Infra Docker · GitHub Actions · Jenkins · Linux
Observability Prometheus · Grafana · SonarQube · structured logging
Testing GoConvey · table-driven · integration against real DB
Error handling %w wrapping · errors.As · structured error chains
Security JWT blocklist (Redis) · refresh token rotation + replay detection · fail-closed design · timing-safe auth
Payments Stripe · Przelewy24
Frontend Vue.js — 3+ yrs production

Currently Building: LearnFlow

SaaS learning platform in Go — scoped from day one as a production system, not a tutorial app.

Architecture decisions:

Layer Decision Why
HTTP stdlib net/http, no framework Explicit middleware contracts; full request lifecycle control, no magic
Persistence Raw SQL, no ORM Full query control over a 32-table schema — no hidden N+1 on complex joins
Event delivery Transactional outbox + Redis queue Delivery guaranteed under partial failure — handler crash can't silently drop a notification
Concurrency Bounded goroutine pool for queue drain Prevents goroutine leak under backpressure; controlled parallelism on outbox processing
Structure Clean Architecture · 4 layers · strict inward deps Domain logic runs without infrastructure; each layer independently testable
Observability Prometheus + Grafana wired from Phase 1 Observable by design — can't tune what you're not measuring

Stack: Go 1.26 · PostgreSQL 17 (32 tables · 16 domains) · Redis 7 · Stripe · Przelewy24 · Cloudflare R2 · Resend · Docker Progress: Phase 3 of 9 · actively in development


Experience

Go Backend Engineer — Saving Cloud (contract, ended Apr 2026) Multi-tenant analytics backend in Go for marketplace e-commerce — async event-driven pipeline, pluggable multi-platform architecture, idempotency guarantees.

Full-Stack Developer (Go / Vue.js) — Darigo (3 yrs · Germany · Remote) Reduced report generation from 2.5h → 30s.

Full work history → linkedin.com/in/vitaliyzhyryk


Warsaw · open to on-site, hybrid, remote

Popular repositories Loading

  1. learnflow learnflow Public

    Go 2

  2. vZhyryk vZhyryk Public