Skip to content
View banlor's full-sized avatar
😘
😘

Block or report banlor

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.

Content in all repositories owned by your account will be closed.
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
banlor/README.md

Mikhail Basov

Senior DevOps / Platform Engineer at Sberbank

I build the release platform for Sberbank's Risk division (about 1,500 microservices). Around 150 releases a week now go to production at night on their own. Outside work I find Prometheus alerts that can never fire and fix them in open-source projects.

Open to remote work and relocation · Website · LinkedIn · michael.s.basov@gmail.com

Also written as Michael Basov.

Merged upstream PRs

At Sberbank

Risk Division · Senior DevOps Engineer · remote · at Sberbank since 2024

  • Autonomous deployments. About 150 releases a week go to production unattended, in night and weekend maintenance windows. The system plans each rollout and re-checks the gates before every step. Engineers have almost stopped staying late for releases, and deployment errors went down.
  • Release orchestration. Built it and run it (Django, PostgreSQL, async workers). It connects CI with Jira, Nexus and quality gates; coordinating a release went from 2–4 hours to under 10 minutes.
  • AI code review. Started and shipped a production reviewer for Bitbucket pull requests: 1,200+ a day, about 30 s per review at the median. It got the internal Engineering Achievement of the Year 2025 award, and I gave a talk about it at an internal conference.
  • Kubernetes. I work with 24 of the division's ~100 clusters, dev to production, and run 70+ production services and 6 LLM agents under a 99.9% SLO. Incident response, RCA, automated recovery and graceful degradation.
  • RAG assistant for credit managers. In its pilot it closed 30% of routine requests with no human involved.
  • Mentoring. Three engineers so far.

Before that (2022–2024): systems engineer at USSC, Yekaterinburg. Enterprise DLP and PAM rollouts, Linux hardening, PostgreSQL, mentoring interns.

Merged upstream

Most of these are alert rules that could never fire. I audit widely used Prometheus alert rules for silent or misfiring alerts and fix them upstream with promtool regression tests. AI-assisted, disclosed in each PR. The write-up, Silent or Wrong: Producer-Contract Defects in Shipped Prometheus Alerting Rules, comes out as a preprint in November 2026.

Project PR What changed Shipped
Ceph · 17k★ #72067 CephPoolGrowthWarning compared a fraction with 95 instead of 0.95, so it could never fire Merged · tracker #80856
Rook · CNCF graduated · 13k★ #18453 · #18476 Pool-growth and NVMe-oF CPU alerts compared 0–1 values with 95 and 80, so they never fired v1.20.9
Grafana Mimir · 5k★ #16725 Ruler alerts ignored server_error, so real push and query failures stayed silent CHANGELOG
#16739 KEDA alert read a metric removed in KEDA 2.17; now supports old and new Merged
awesome-prometheus-alerts · 8k★ #646 7 rules repaired: a Kubernetes rule file that failed to load, missing series, unreachable thresholds. Added promtool tests to CI Merged
argo-cd-mixin #41 Latency alerts required a P95 above the last histogram bucket, which is unreachable Merged
vLLM Production Stack · 2.7k★ #940 Added a per-model request latency histogram to the router vllm-stack 0.1.11
#943 Dashboard counted every backend once per router replica vllm-stack 0.1.12

One example: Mimir #16725. MimirRulerTooManyFailedPushes and MimirRulerTooManyFailedQueries matched reason="error", but the ruler records server-side failures as server_error. So a ruler failing 5% of its queries never paged anyone. The selectors now include server_error, keep legacy series and exclude client_error. Synthetic checks: 5% server errors mixed with 20% client errors now fires; client errors alone, or exactly 1% server errors, do not.

Also merged: Russian localization of the Linux security docs in kubernetes/website #55710.

In review: Thanos #9057 · Thanos #9058 · kube-prometheus #2901 · kubernetes-mixin #1306 · Ceph #72211 · postgres_exporter #1397

How I use AI

Claude Code and Codex do the legwork: investigation, patches, tests. I write the plan, review every diff and answer for what gets merged. The AI reviewer above is the production version of the same approach. Upstream PRs say how AI was used and follow each project's AI policy.

Stack

Stack

Helm · Groovy shared libraries · PromQL / promtool · OpenTelemetry · Dynatrace · ELK · pgvector · RAG · MCP · Qwen

  • Certified: AWS Solutions Architect – Associate · AWS CloudOps Engineer – Associate · HashiCorp Terraform Associate
  • Studying: BSc Software Engineering at Ural Federal University, part-time, graduating in 2027
  • Languages: English B2, Russian native
  • Community: judge at CSC Back-to-School Hackathon 2026 (Devpost, 115 submissions); judging CSC Winter Sparkathon, Nov 30 – Dec 6, 2026

Pinned Loading

  1. ceph/ceph ceph/ceph Public

    Ceph is a distributed object, block, and file storage platform

    C++ 17.1k 6.5k

  2. rook/rook rook/rook Public

    Storage Orchestration for Kubernetes

    Go 13.7k 2.9k

  3. samber/awesome-prometheus-alerts samber/awesome-prometheus-alerts Public

    🚨 Collection of Prometheus alerting rules

    Astro 8.2k 1.2k

  4. kubernetes/website kubernetes/website Public

    Kubernetes website and documentation repo:

    HTML 5.4k 15.7k

  5. grafana/mimir grafana/mimir Public

    Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus.

    Go 5.3k 856

  6. vllm-project/production-stack vllm-project/production-stack Public

    vLLM’s reference system for K8S-native cluster-wide deployment with community-driven performance optimization

    Python 2.7k 539