Cell Brush

Software,engineered.

Independent software engineerfor modern web products

avanov.dev

Web products, APIs, and platforms.
Available for select projects.

I'm an independent software engineer. I build web products, APIs, and the unglamorous systems that make them dependable — with an eye on the people who inherit the code after me.

What I build.

Drag, scroll or use the arrows

Product frontend

TypeScript · React

Accessible interfaces, design systems, and front ends that stay fast as they grow.

Backend & data

Laravel · PHP · Postgres

APIs, data models, queues, and services with clear contracts and honest failure modes.

Platform & delivery

Docker · CI/CD · Cloud

Build pipelines, observability, staged rollouts, and infrastructure you can reason about.

AI-assisted engineering

Retrieval · Agents · Evals

Practical AI features with evaluation, guardrails, and a human owning the outcome.

The unglamorous parts are the product.

How I work

Most of the value in software is invisible: clear boundaries, honest error states, sensible defaults, tests that describe the contract, and a deployment you can reverse.

I work across product and platform. That means I can sit with a design problem in the morning and a queueing failure in the afternoon, then write the note that helps the next person move faster.

No heroics. No hand-off cliff. Just steady, legible engineering.

A demo is not a product.

What I optimise for

It's easy to make something work once. The work is making it work on a bad network, with a new teammate, six months from now, under load.

AI can produce a plausible first draft in seconds. That makes judgment, review, and test coverage more valuable, not less.

What I aim for

Small, reversible releases. Clear interfaces. Tests that fail for the right reason.

What I avoid

Clever code that only one person can maintain. Demos that fall over under real traffic.

The last ten percent is reliability, observability, and the taste to know what to leave out. That's the part I care about.

Shape. Build.
Harden. Ship.

A small, visible loop. We agree on the smallest useful slice, ship it, learn, and harden what earns its place. No twelve-month reveal.

01Scope

Users, constraints, and a definition of done. The smallest version that answers the real question.

02Build

One vertical slice at a time, with tests around the contracts and review before the surface grows.

03Harden

Error paths, observability, load, and a rollback you have actually tried. Production is part of the design.

04Hand over

Docs, runbooks, and pairing. The codebase should be easier to change when I leave than when I arrived.

A pragmatic stack, chosen for the problem.

Tools & systems

I don't lead with logos. I pick the boring technology that fits, keep the surface area small, and make the boundaries explicit. The usual toolbox: TypeScript, React, Laravel, PostgreSQL, Docker, CI/CD, and cloud primitives.

Comfortable across front ends, API design, data modelling, observability, and the deployment path between them.

See the capabilities
01Clear contracts

Types, APIs, schemas, and error semantics that a new teammate can read without a meeting.

02Small surfaces

Fewer moving parts, fewer dependencies, fewer surprises. Boring is a feature when it keeps the system legible.

03Visible systems

Logs, metrics, traces, and health checks that answer “what changed?” before anyone asks it out loud.

04Boring delivery

CI, feature flags, staged rollouts, and a rollback path. Shipping should be routine, not dramatic.

AI is a power tool, not a personality.

How I use AI

I use AI to explore options, draft tests, summarise unfamiliar code, and get through the blank-page phase faster. Then I review it like any other contribution: provenance, correctness, security, and whether it belongs in the codebase.

The useful pattern is not “let the model write everything”. It is a tight loop with a human owning the contract, the review, and the rollback.

  • L1Assist. Autocomplete, small refactors, and documentation drafts. Useful, but nothing compounds.
  • L3Workflow. A repeated task with tests and a human review gate at the end.
  • L5Agents. Bounded jobs with clear permissions, telemetry, and a kill switch.

I'm happy to help a team adopt this without turning the codebase into an unbounded experiment.

Selected work

Good work deserves a proper write-up.

No public portfolio items yet. I would rather publish work that can be explained properly than fill a grid with screenshots. The write-ups will land here when they are ready.

Status / 2026

No public case studies yet.

In the meantime, the capabilities above are the honest short version. If you want to see how I think, start a conversation — I'm happy to walk through the work directly.

Start a conversation

Let's build something that lasts.

Start a conversation

Independent software engineer, working remotely with product and platform teams. If you have a hard problem, a vague idea, or a codebase that needs a steady hand, I'd like to hear about it.

hello@avanov.dev · avanov.dev · Remote / working across time zones

© 2026 Avanov · vanilla HTML, CSS & Canvas 2D · no trackers