Skip to content
FI
available · selective Moscow / Remote · UTC+3 en · ru build · 2026-07-07

leviann · portfolio

Farid Ismailov Senior SDET, QA Automation & AI Tooling Engineer.

Automation, quality gates and AI tooling for backend and enterprise systems.

positioning

// 01

What I do.

Three areas I work on day to day. Most engagements are a mix of these three.

pillar / 01

Quality engineering

Backend / API, e2e automation, regression, release readiness, CI/CD quality gates.

  • Built test pyramids and regression suites from scratch on three products
  • REST / SQL / contract validation across services and integrations
  • Release readiness, UAT/PSI, quality gates wired into GitLab CI / Jenkins
pillar / 02

AI tooling

LLM / RAG / agents, context engineering, MCP, Playwright automation, self-hosted workflows.

  • LLM routing between Gemini and OpenRouter as a universal fallback (including Grok) with circuit breakers
  • RAG / CRAG over project code, docs and conversation history (ChromaDB)
  • Custom MCP servers and Playwright-based agents driving real test flows
pillar / 03

Infrastructure mindset

Docker, Linux, Nginx, systemd, observability, automation around real constraints.

  • Self-hosted dev / AI stack on Linux: Docker Compose, systemd, Nginx, VPN
  • Diagnosing bugs through logs, traces and SQL
  • Designing for corporate-network constraints: mirrors, proxies, restricted egress

operating principles

// 02

How I work.

A few working habits I rely on day to day.

  • p_01

    “Logs first, theories second.”

    Symptoms get explained from journald, traces and SQL. Reproduce first, then theorize.

  • p_02

    “If it isn't in CI, it doesn't ship.”

    Quality gates live in pipelines, not on a Confluence page. The release branch is the source of truth.

  • p_03

    “Failure modes are designed, not discovered.”

    Retries, circuit breakers, timeouts and idempotency are considered at design time, not after the first incident.

  • p_04

    “Targeted edits over rewrites.”

    Minimal diff, full review of affected areas. Reproduce the issue first, then fix at the root.

ai engineering platform

// 03

Personal stack for working with AI agents.

A toolset for agentic development: custom MCP servers, a tuned IDE setup, and an AI assistant on my PRs. I shake every workflow out on personal projects first, then gradually carry useful patterns over to work tasks.

personal stack
  • p_01

    Custom MCP servers

    I both consume MCP and write my own servers on top of personal infrastructure — 10 servers, from code intelligence to security scanning.

    • Code intelligence: code_ast (token economy + fast code search for agents), jvm_semantic, python_semantic — symbol-aware search and rename-impact preview without a full IDE/LSP
    • Build & verify: gradle_runner (deterministic Gradle task execution for PR checks), playwright_review (Playwright trace / video / har analysis), deps_security (OSV CVE scanning + dependency version conflicts)
    • Research: firecrawl (web scraping), gemini_media (image / video / audio / PDF analysis via Gemini)
    • CRAG · custom RAG over code, ADRs, conversations and decision history
    • Planka bugfix bridge · kanban cards surfaced as bug hypotheses for the IDE agent — it must re-verify each one against code and logs, never trust blindly
  • p_02

    IDE tuned for agents

    Cursor and VS Code configured with discipline around edits and checks: rules, hooks, pre-edit gates.

    • Per-repo `.cursorrules` / `AGENTS.md` rule sets
    • Pre-edit gate: type-check + lint per language before the agent commits
    • Persistent memory via CRAG: sessions, fixes, and decisions survive restarts
    • Single MCP registry shared between Cursor and VS Code
    • Skill files and cursor-hooks for repeatable patterns instead of one-shot prompts
  • p_03

    HassioBot · multi-forge AI reviewer

    First pass over my PRs — now across three forges, with specialist review lanes and static analysis ahead of the LLM.

    • Multi-forge: Gitea (primary) + GitHub + GitLab — one review pipeline regardless of where the repo lives
    • Static analysis as the first pass: ast-grep + semgrep rules filter out the mechanical stuff before the LLM gets involved
    • 5 specialist review lanes: tests-contract, concurrency-state, prompt-runtime-contract, anti-heuristic, blast-radius — each one only looks at its own zone
    • A dedicated golden-eval regression pack — catches it if a reviewer prompt tweak quietly degrades verdict quality
    • Inline comments on the PR where it has something to say, summary in Telegram
    • Non-blocking — a second pair of eyes, final call is mine
  • p_04

    One stack across every project

    The same toolset works for both commercial tasks and personal repos.

    • No separate "play" and "work" environments — Cursor / VS Code are configured the same way
    • CRAG memory survives IDE restarts and sessions — context isn't lost
    • Self-hosted — nothing leaves the perimeter unless explicitly needed
    • Every workflow is shaken out on personal projects first, then carried over to work

featured case studies

// 04

Selected work.

Most live in private repositories. The project names below are public pseudonyms — internal names and customers are kept under NDA. Architecture diagrams and code walk-throughs available on interview.

case / 01 private repo · demo by request

Self-hosted AI Bots Monorepo

AI tooling · self-hosted

Personal monorepo of Telegram and AI bots with a custom MCP stack.

A long-running monorepo of Telegram and AI bots on a personal Linux server. LLMs are used as part of the runtime: routing, fallbacks, persistent memory, tool calling, and CI on every push. On top of it sits 10 custom MCP servers and HassioBot — a multi-forge AI reviewer that takes the first pass over my personal PRs.

highlights

  • Gemini as primary, OpenRouter as a universal fallback (including Grok) via a unified router
  • Personal Memory v2: SQLite ledger + FTS5/BM25 + an LLM query planner replaced the memory graph as the primary layer (Graphiti / Neo4j are now support-only)
  • 10 custom MCP servers — from code intelligence to security scanning, callable directly from Cursor / VS Code
  • Tool calling, function declarations, circuit breakers, retry / timeout discipline
  • HassioBot · AI reviewer on PRs: multi-forge (Gitea / GitHub / GitLab), static analysis as the first pass, specialist review lanes
  • Access-scoped memory router: work context is routed separately from personal data — isolation by visibility, not by password
  • A separate LLM-as-judge quality gate system before every ship (see the AI Judge card below)
  • Docker / Linux / systemd / Nginx; deployed as real services, not notebooks
Architecture · component diagram Click to expand
Architecture · component diagram
Python files
1526
Test-like Python files
655
MCP servers
10
Years running
2+

stack

  • Python 3.12
  • Telethon
  • Gemini
  • OpenRouter
  • WaveSpeed
  • ChromaDB
  • SQLite
  • MCP
  • Playwright
  • Docker
  • systemd
  • Nginx
note · Private repository. Walk-through and code review available on interview.
case / 02 private repo · demo by request

AI Judge · Verify-Ship Gate

AQA · AI quality gate

A two-tier quality gate for AI-authored diffs: a deterministic ship gate plus an LLM judge with bias compensation.

A custom change-acceptance system for the bots monorepo. A deterministic verify-ship gate (~4,900 lines, 15 subcommands) checks every diff for concurrency regressions, cross-bot propagation, agent-scar patterns, and outside-diff proof completeness before it allows a PASSED verdict. Separately, an LLM judge handles semantic answer-quality drift, with explicit compensation for judge-model biases and a SHA-256 read-trace ledger against agent self-deception.

highlights

  • Verify-ship gate: ~4,900 lines, 15 subcommands, 111 dedicated tests — a mandatory barrier before PASSED
  • 14 required verdict keys (concurrency, four-level sweep, cross-bot propagation, anti-heuristic audit, and more) — all must be true
  • 13 recognized agent-scar patterns — catches recurring agent regressions (e.g. free-form intent classifiers, tool-deck drift) before they reach prod
  • 8 categories of outside-diff blast radius (caller / callee / sibling / test / config / prompt / schema / shared state) — the gate demands proof the surrounding orbit was checked, not just the diff
  • SHA-256 read-trace ledger — a PASSED verdict is backed by a machine hash of files actually read, not the agent's word
  • A separate LLM judge (ai_eval_gate.py) for bot answer-quality drift: offline harness (256 anchor tests) → live prompt smoke → an optional judge call gated behind an explicit flag
  • Explicit model-family bias compensation: GPT over-rewards helpfulness, Claude over-rewards hedging, Gemini over-rewards theatrical roleplay — the judge is told to compensate for it explicitly
  • The guard philosophy is documented with citations to OR-Bench (over-refusal), OpenAI's safe-completions work, and DeepMind's specification-gaming research — guards aren't added blind
Architecture · deterministic ship gate + LLM judge with an anti-cheat ledger Click to expand
Architecture · deterministic ship gate + LLM judge with an anti-cheat ledger
Gate lines of code
~4,900
Tests on the gate
111
Agent-scar patterns
13
Required verdict keys
14

stack

  • Python 3.12
  • pytest
  • OpenRouter API
  • Gemini
  • JSON Schema
  • SHA-256 ledger
note · Private repository. Architecture walk-through and gate code shown on interview.
case / 03 private repo · demo by request

SBS · E2E Automation

QA Automation · enterprise

End-to-end automation for an admin web panel and a PWA — with an AI triage helper.

A Kotlin-based automation framework for an internal web admin panel and a companion mobile PWA across several environments. On top of the regular pipeline sits a small AI triage layer: an agent pulls failed-run logs through an S3 MCP server, cross-checks the observed behavior against project documentation indexed in CRAG, and drafts a Jira bug report that I finalize by hand. The same CRAG index also works the other way — as a project-docs search surface for the team.

highlights

  • Kotlin 1.9 + JUnit 5 + Playwright for Java + Allure
  • End-to-end coverage for an internal admin web panel and a mobile PWA
  • Runs in staging / pre-prod / prod with restricted-egress build agents
  • Local Playwright browser mirror handling for offline build hosts
  • Test IT / Allure reporting, regression and release-readiness gates
  • CRAG as the project's documentation index — specs, ADRs, runbooks, domain guides
  • AI triage: agent fetches logs via S3 MCP, cross-checks with CRAG, drafts a Jira bug
  • Project-docs search from the IDE: "how does X work?" returns relevant doc snippets
Architecture · E2E pipeline with an AI triage layer Click to expand
Architecture · E2E pipeline with an AI triage layer

stack

  • Kotlin 1.9
  • JUnit 5
  • Playwright for Java
  • Allure
  • Test IT
  • Gradle
  • GitLab CI
  • CRAG
  • S3 MCP
  • Jira API
note · Private NDA repo · name is a public pseudonym. Sanitized architecture walk-through available on interview.
case / 04 private repo · demo by request

Conference Capture

AI tooling · browser + local backend

Local recorder + live transcription + post-processing for video calls.

A Chromium extension paired with a local Python backend that captures tab audio and microphone in parallel, renders a live transcription overlay, and notifies when chosen keywords are spoken. Sessions persist to disk and run through a post-processing worker.

highlights

  • Chromium extension capturing tab audio and microphone in parallel
  • Live transcription overlay rendered alongside the meeting tab
  • Gemini Live as primary STT, Yandex SpeechKit as fallback
  • Hotword notifications with low-latency check
  • Audio + transcript persisted locally, post-processing worker for cleanup and indexing
Architecture · capture and transcription chain Click to expand
Architecture · capture and transcription chain

stack

  • Chromium extension
  • TypeScript
  • Python
  • FastAPI
  • Gemini Live
  • Yandex SpeechKit
  • WebAudio
note · Private repository · name is a public pseudonym. Demo on interview.
case / 05 private repo · demo by request

Hassio Walkie

AI tooling · mobile + voice

Mobile app for voice conversation with a personal AI bot.

Part of the bots monorepo — a mobile app for voice conversation with a personal bot over push-to-talk: voice capture, LLM reply, streaming TTS back into the earpiece. Additionally — a karaoke mode with word-level highlighting of synthesised speech and a Home Assistant integration: voice control of devices over the same channel.

highlights

  • Native mobile, Kotlin + Jetpack Compose · low-latency PTT capture with visual feedback
  • STT via Gemini Live; replies from my own bot inside the bots monorepo
  • Streaming TTS — phrases start playing before the LLM has finished generating
  • Karaoke mode: real-time word highlighting locked to the TTS timing
  • Home Assistant integration: voice commands to devices over the same channel
  • Self-hosted backend, runs on the personal network — voice never leaves the perimeter
Architecture · voice loop and karaoke rendering Click to expand
Architecture · voice loop and karaoke rendering

stack

  • Kotlin
  • Jetpack Compose
  • Material 3
  • Gemini Live
  • Streaming TTS
  • WebSocket
  • Home Assistant API
  • OkHttp
note · Part of the private bots monorepo. Demo on interview.
case / 06 private repo · demo by request

Not So Super Whisper

AI tooling · voice + cross-platform desktop

Cross-platform local dictation tool — offline ASR instead of a SaaS subscription.

A personal dictation tool for macOS and Windows: hold the hotkey to record, release it and the text is already on the clipboard and in a dated Markdown note. ASR and VAD are fully local (NVIDIA Parakeet TDT v3 + Silero) — voice never leaves the machine, aside from an optional LLM polish pass via OpenRouter. Windows isn't an afterthought: AGENTS.md locks in a hard parity contract — any user-facing behavior has to land on both platforms in the same task.

highlights

  • Global hotkey capture (Carbon EventHotKey on macOS, a low-level WH_KEYBOARD_LL hook on Windows) — hold to record, or double-tap right Cmd / Alt for a no-file quick-insert paste
  • The same ASR — NVIDIA Parakeet TDT v3 (0.6B) — on two different local runtimes: CoreML/FluidAudio on Mac, quantized int8 ONNX via sherpa-onnx on Windows
  • Silero VAD gates silence on both platforms; an identical ~650ms post-release tail buffer (independently implemented in Swift and C#) avoids clipping the last syllable
  • Optional LLM polish via OpenRouter cleans the transcript and generates a title; on failure it quietly degrades to the raw transcript instead of blocking the flow
  • AGENTS.md locks in a parity contract: any user-facing behavior change must ship mirrored on both platforms in the same task, or be explicitly justified otherwise
  • One-command release (build_all.sh): builds and signs the Mac bundle, rsyncs Windows sources over SSH to a second machine, publishes the exe with the OpenRouter key XOR-embedded at compile time (placeholder restored right after), pulls models, ships the artifact back — and fails the release outright if the key file leaked into the zip
  • Menu bar / tray on both platforms: last 10 recordings with copy/open, Launch at Login, a real Quit — no Task Manager needed
Architecture · dictation pipeline + cross-platform release Click to expand
Architecture · dictation pipeline + cross-platform release
Platforms
2
Lines of code
~4000
Commits
20
Weeks of dev
~3

stack

  • Swift
  • AppKit
  • CoreML
  • FluidAudio
  • C#
  • .NET
  • WPF
  • Win32 API
  • NAudio
  • sherpa-onnx
  • Silero VAD
  • OpenRouter API
note · Separate private repository (not the bots monorepo), self-hosted git. Demo on interview.

commercial experience

// 05

Experience.

Three companies where I owned release quality: financial post-trade, international enterprise, B2B/B2C marketplace inside Sber.

  1. Apr 2026 — present · ongoing

    Lead SDET / QA Automation Lead — Mobile · BB

    Large-scale consumer product with Android / iOS apps. Leading the QA automation practice: test strategy, tooling, hiring and mentoring the team.

    • Leading the QA automation practice for the mobile platform (Android / iOS) of a large-scale consumer product
    • Building and scaling a mobile automation framework in Kotlin + Appium on top of a real-device cloud (BrowserStack)
    • Managing test management via TestIT: test plans, regression suites, requirements traceability
    • Shaping quality gate and release-readiness strategy for mobile releases
    • Hiring, onboarding and mentoring QA automation engineers; growing the team
    • Integrating mobile automation into CI/CD; coordinating with mobile developers

    stack

    • Kotlin
    • Appium
    • BrowserStack
    • TestIT
    • Android
    • iOS
    • CI/CD
    • Allure
    • Jira
  2. Sep 2020 — Apr 2026 · 5 yrs 8 mo

    Lead SDET / Hands-on QA Lead · Sber

    B2B / B2C marketplace and e-commerce product inside Sberbank. Team of 17+ developers and 1–2 QA. Owned release quality, backend / API testing, automation, regression, UAT/PSI, CI/CD quality gates, and release readiness.

    • Owned release stability for 5+ years on a product with 17+ developers and 1–2 QA
    • Built QA infrastructure: regression suites, UAT/PSI, release-readiness criteria, quality gates
    • Built an automation framework in Python (Selenium / Playwright), later migrated to Kotlin to align with the dev stack
    • Coverage of smoke, regression and end-to-end flows: complex creation, sales, statuses, reports, integrations
    • Backend / API testing: REST, JSON schemas, business rules, SQL data validation, defect diagnostics through logs and traces
    • Performance work on API / integration scenarios with JMeter and Yandex.Tank: latency, throughput, error rate, endpoint regressions
    • Integrated automation into CI/CD: GitLab CI, Jenkins, OpenShift / Kubernetes; MR templates and release-branch runs
    • Onboarded and mentored QA engineers; participated in test code review and shift-left requirement decomposition

    stack

    • Python
    • Kotlin
    • Java
    • Selenium
    • Playwright
    • Appium
    • REST API
    • Postman
    • RestAssured
    • SQL
    • PostgreSQL
    • MySQL
    • GitLab CI
    • Jenkins
    • Docker
    • OpenShift
    • Kubernetes
    • JMeter
    • Yandex.Tank
    • Allure
    • Jira
    • Confluence
  3. Nov 2016 — Aug 2020 · 3 yrs 10 mo

    Senior QA Engineer · Wiley

    International enterprise: online learning platforms, scientific journals, and educational content distribution systems. Distributed team, English-speaking colleagues.

    • Built test infrastructure: test cases, test plans, requirements traceability matrices, regression coverage
    • Developed and maintained UI automation in Selenium WebDriver + Java / Python
    • Tested REST APIs and integrations between platform components
    • Verified data and diagnosed defects across Oracle, MySQL, PostgreSQL, MS SQL
    • Worked in CI/CD: Jenkins / GitLab CI, automation integration, failure analysis, defect prioritization
    • Test leadership: requirement decomposition, effort estimation, coordination of testing activities

    stack

    • Java
    • Python
    • Selenium WebDriver
    • TestNG
    • JUnit
    • Allure
    • REST API
    • RestAssured
    • Postman
    • SQL
    • Oracle
    • MySQL
    • PostgreSQL
    • MS SQL
    • Jenkins
    • GitLab CI
    • Jira
    • Confluence
  4. Jul 2014 — Nov 2016 · 2 yrs 5 mo

    QA Engineer · Exactpro Systems

    Financial systems: post-trade infrastructure, clearing, settlement, two-factor authentication. Customers — exchanges, clearing houses, financial organizations under FCA-grade regulation.

    • Functional, integration, regression, smoke and exploratory testing
    • Designed test scenarios from project documentation and financial-domain requirements
    • Tested 2FA scenarios using mobile applications
    • Validated UI and data through SQL
    • Worked in Jira / Redmine, TestRail, Git / SVN
    • Tested 24/7 critical post-trade systems for an exchange and a clearing house under regulator-grade requirements

    stack

    • Java
    • Selenium
    • Selenide
    • TestNG
    • Allure
    • SQL
    • Oracle
    • MySQL
    • Postman
    • HTML
    • CSS
    • JS
    • Git
    • SVN
    • Jira
    • Redmine
    • TestRail

stack

// 06

Stack.

Grouped by area. Comfortable in any environment that talks REST, SQL, Docker and Git.

QA / Automation

qa_automation

Frameworks and tooling I write and own day to day.

  • Playwright (Java / Python)
  • Selenium WebDriver
  • Appium
  • JUnit 5
  • TestNG
  • Pytest
  • RestAssured
  • Postman
  • Allure
  • Test IT
  • JMeter
  • Yandex.Tank
  • pytest-xdist

Backend / API

backend_api

Languages and surfaces I test and integrate with directly.

  • Python 3.12
  • Kotlin 1.9
  • Java
  • REST
  • JSON Schema
  • WebSocket
  • SQL
  • Bash / PowerShell

CI/CD / Infrastructure

ci_cd_infra

Where the pipelines, services and quality gates actually live.

  • GitLab CI
  • Jenkins
  • Docker
  • Docker Compose
  • OpenShift
  • Kubernetes
  • Linux
  • Nginx
  • systemd
  • VPN
  • Git

AI / LLM

ai_llm

Practical, self-hosted LLM and agent tooling.

  • Gemini
  • OpenRouter
  • WaveSpeed
  • Telethon
  • RAG / CRAG
  • ChromaDB
  • Graphiti
  • Neo4j
  • MCP
  • Function calling
  • LLM routing
  • Context engineering

Databases

databases

Where I read, validate and diagnose production-grade data.

  • PostgreSQL
  • MySQL
  • Oracle
  • MS SQL
  • SQLite
  • ChromaDB
  • Neo4j

Tools

tools

Editor, tracking, and the rest of the daily kit.

  • Cursor
  • VS Code
  • IntelliJ IDEA
  • Jira
  • Confluence
  • TestRail
  • Redmine
  • Git
  • GitHub

proof / signals

// 07

Quick facts.

No invented metrics. Only verifiable numbers from real experience.

12+ yrs
QA / SDET experience

Exactpro · Wiley · Sber

5+ yrs
release-quality ownership on a marketplace product

B2B / B2C e-commerce inside Sber

17+ devs / 1–2 QA
team context held

Hands-on lead, no separate QA unit

3 frameworks
built from scratch

Python · Kotlin · Java automation stacks

REST · SQL · CI/CD
daily surface area

JMeter and Yandex.Tank for performance work

Private demos
GitHub repos walked through on interview

github.com/Leviann

contact

// 08

Get in touch.

Open to Senior SDET / QA Automation / AI Tooling Engineer roles. Remote or Moscow hybrid. Happy to do a short technical call before any formal process.