Software engineer
Backend, Android, and production systems without unnecessary drama.
I work where application code meets operations: services that need clear failure modes, mobile clients that keep state safely, and deployment paths that can be explained during an incident.
Practical engineering for systems that need to keep running.
-
Service operations
Nginx frontends, systemd units, TLS renewal, log rotation, backup checks, and rollback notes for small production services.
-
Mobile reliability
Kotlin and Android work around offline queues, deep links, storage migrations, release checks, and failure states that users can recover from.
-
Internal tooling
Command-line helpers, CI checks, and reviewable scripts that turn repeated operational work into documented, repeatable steps.
How I prefer to work.
-
Make failures inspectable
Structured logs, useful health checks, and alert text that points to the next action.
-
Keep deploys boring
Small changes, reversible steps, versioned configuration, and clear ownership.
-
Write the runbook early
If a process matters, it should be understandable without asking who last touched it.
Tools I use often.
- Linux
- Nginx
- Docker
- systemd
- Go
- Kotlin
- TypeScript
- PostgreSQL
- SQLite
- OpenTelemetry
Topics I keep close when building and operating software.
-
Deployment checklists
What changed, how it is monitored, how to roll it back, and what needs to be checked the next morning.
-
State and migration safety
Testing schema changes, retry behavior, and recovery paths before they reach production users.
-
Incident reviews
Separate the timeline from the fix, write down missing signals, and remove a class of repeats.
Send a concise note with context, constraints, and what a good outcome looks like.
I am most useful on production hardening, backend service cleanup, Android reliability work, and practical reviews of deployment or observability setups.