igors@portfolio: ~

igors@portfolio:~$ whoami

igors

Igors Savins

senior full-stack developer

I fix technical problems in websites and web systems. I join a project that is already running, work through code someone else wrote, find the cause and fix it.

PHP / Symfony · TypeScript / Node · Next.js · PostgreSQL · Docker

Riga, Latvia · remote · open for projects

write to me see the work

scroll ↓ or open the terminal

igors@portfolio:~$ ./diagnose --project

# what people come with

  • [FAIL]the site stopped working, started throwing errors, or broke after an update
  • [FAIL]the previous programmer is unreachable and there is nobody to maintain the project
  • [FAIL]the site and the CRM, warehouse, accounting or payments do not exchange data
  • [FAIL]slow loading, crashes under load, database trouble
  • [FAIL]search rankings dropped after a move or an update
  • [WARN]data is carried between systems by hand and needs automating
  • [WARN]legacy nobody dares touch — rewritten piece by piece, not all at once
  • [WARN]moving a site or a product catalog to another platform
  • [INFO]new features in an existing site or accounting system
  • [INFO]plugins and modules for a specific CMS
  • [INFO]parsers: collecting data from other sites and from exports
  • [INFO]integrations with external APIs and services
  • [INFO]a new project from scratch — from the data model to launch

Legacy is a normal working situation, not a reason to rewrite everything from scratch: old code, someone else’s code, no documentation, no previous developer. I work it out from the code itself.

A job starts with a written brief: what exactly gets built, in what scope, on what deadline. Once both sides are looking at the same picture, development begins — no guessing, no surprise invoices.

$ how we work

  • formatremote, from Riga (UTC+2/+3)
  • paperworksaimnieciskā darbība — contract and invoice
  • paymenthourly, or a fixed price per task
  • languagesRussian · English · Latvian

igors@portfolio:~$ ls projects/

forest-valuation.md

Forest valuation platform

Estimates the value of a forest property from open state registry data: 270 000+ cadastral units, quarterly ETL, an assortment-based pricing model with three scenarios.

Next.js · Payload CMS · PostgreSQL

drone-exam.md

Drone pilot exam trainer

Preparation for the EASA A1/A3 certificate: nine topics, 429 practice questions, mock exams, a learning mini-game, payments, four languages. 75 unit and 11 e2e tests.

Next.js · Prisma · Playwright

instructor-site.md

Driving instructor website

Online booking, price calculator, interactive tests, blog and admin panel in four languages.

Next.js · Prisma · next-intl

renovation-readiness.md

Building renovation readiness

Helps apartment buildings get ready for renovation funding: data, owner decisions, documents, financing scenarios. The LLM sits inside the product, not only in the tooling.

Next.js · Payload CMS · OpenAI

palpalych-online.md

Pal Palych — strength training app

A mobile web app: an exercise catalog by muscle group and equipment, sets logged in real time during the workout, history, goals in the profile, and a blog of technique breakdowns. Seven languages. Opens in a phone-sized window.

Next.js · Prisma · PostgreSQL

chatbot-platform.md

Chatbot platform (2019–2021)

Designed and built a multi-component chatbot ecosystem: core, RPC layer between services, domain model, embeddable widget, CMS. Seven repositories.

PHP · RPC · JS widget

Also: two public PHP packages and an Arctic Code Vault contribution (GitHub Archive Program, 2020).

igors@portfolio:~$ cat about.md

Ten years of commercial development. Today: senior developer at a product company — about twenty Symfony services in production, ten of them mine as lead developer. The platform runs several hundred services on Kubernetes. On my own products I am full-stack, from database to UI.

On the side I take projects: plug into existing systems, read someone else’s code, build integrations, data migrations and automation. Remote, hourly or fixed price per task.

Symfony at work, TypeScript and Next.js in my own products, NestJS, Vue, Go and Python where they earn their place. I pick the stack for the problem, not the other way around.

igors@portfolio:~$ history | grep work

2021 — now
Backend DeveloperDyninno Travel · Riga
  • About twenty Symfony services in production, ten of them mine as lead developer: each with its own database, contracts and release cycle; confirmed contributions to 40 services and libraries across the platform.
  • Integrations: telecom (SMS, delivery statuses, callbacks — the longest project, 4.5 years), email infrastructure, ad and marketing platforms, geocoding, SSO/SAML and JWT.
  • Eight+ client libraries in PHP, TypeScript and Go generated from OpenAPI, with versioning and backwards compatibility.
  • Async processing with Symfony Messenger (Doctrine, AMQP, cloud queues), workers and restart-safe jobs.
  • Infra as code: 28 CI/CD pipelines, Helm values and ArgoCD for ~20 services, 195 Grafana dashboards in YAML, Prometheus and Sentry.
  • Testing culture: 300+ test files in the largest service, mutation testing with MSI 100 %, PHPStan strict as a pre-commit gate; regular cross-team code review.
2018 — 2021
Full-stack DeveloperEnVers Group · Riga
  • Online SSL certificate sales system: support and development.
  • Legacy refactoring and splitting a monolith into microservices.
  • Third-party integrations and performance optimization.
2016 — 2018
Full-stack DeveloperCunami Web · Riga
  • Web studio, custom builds: e-commerce, CRM and accounting systems, catalogs, a social network.
  • Parsers and API integrations; new projects and support for existing ones.
  • Blockchain track: Ethereum smart contracts in Solidity and a crypto project built on the blockchain.
2016
Freelance web developerRiga
  • Migrating and extending legacy e-commerce systems: custom data-migration scripts, then purpose-built modules on top.
  • Small projects: e-commerce support on off-the-shelf CMS, new features for existing sites.

igors@portfolio:~$ ls -la skills/

██████████ daily, in production███████░░░ confident, shipped████░░░░░░ tried, not a selling point
drwxr-xr-x backend/
-rw-r--r--PHP ^7 || ^8main language since 2016██████████-rw-r--r--Symfony · Doctrine · Messenger██████████-rw-r--r--Laravel████████░░-rw-r--r--TypeScript · Node.js · NestJS██████████-rw-r--r--Go · Pythonlibraries and tooling only████░░░░░░
drwxr-xr-x frontend/
-rw-r--r--Next.js · Reactown products███████░░░-rw-r--r--Vue.js████████░░
drwxr-xr-x cms/
-rw-r--r--PrestaShopversion migration and custom modules███████░░░-rw-r--r--WordPress · WooCommerceprojects, 2016–2018███████░░░-rw-r--r--October CMS█████████░-rw-r--r--OpenCart█████░░░░░
drwxr-xr-x data/
-rw-r--r--MySQL · MariaDB · PostgreSQL██████████-rw-r--r--Redis · KeyDB · Memcached██████████-rw-r--r--RabbitMQ · AMQP · SQS / SNS██████████-rw-r--r--Elasticsearch · OpenSearch███████░░░-rw-r--r--S3 object storage██████████
drwxr-xr-x infra/
-rw-r--r--Docker · docker compose██████████-rw-r--r--GitLab CI/CD · GitHub Actions28 pipelines maintained██████████-rw-r--r--Helm values · ArgoCD~20 services██████████-rw-r--r--Kubernetesas a user, not an admin███████░░░-rw-r--r--Prometheus · Grafana · Sentry██████████
drwxr-xr-x quality/
-rw-r--r--PHPUnit · Codeception██████████-rw-r--r--Vitest · Jest · Playwright██████████-rw-r--r--Infection mutation testingMSI 100 % on one service███████░░░-rw-r--r--PHPStan strict · Psalm · Rector██████████
drwxr-xr-x ai/
-rw-r--r--MCP servers from scratchPython and Node██████████-rw-r--r--LLM observability (Langfuse)self-hosted███████░░░-rw-r--r--Agent skills · AI workflows30+ skills, 15 repos██████████-rw-r--r--LLM features in products███████░░░

honest scale: no vendor certificates, no Kafka or ClickHouse in production, no ML.

igors@portfolio:~$ ls certificates/

# certificates

Courses and training, not vendor certificates. They show what I have been learning lately, nothing more.

EASA A1/A3 Open Subcategory — online training completed
EASA A1/A3 Open Subcategory — online training completedCivilās aviācijas aģentūra · EASA · 2026-05
Vibe Coding Fundamentals: Tools and Best Practices
Vibe Coding Fundamentals: Tools and Best PracticesLinkedIn Learning · 2026-05
Automate Your Workflows with Generative AI
Automate Your Workflows with Generative AILinkedIn Learning · PMI · 2026-05
AI-Powered Software Development: Coding, Testing, and System Design
AI-Powered Software Development: Coding, Testing, and System DesignLinkedIn Learning · 2026-05
Mastering the Basics of Cybersecurity
Mastering the Basics of CybersecurityMindtickle · Advanced · 2026-05
GDPR — Personal Data Protection Basic Training
GDPR — Personal Data Protection Basic TrainingMindtickle · Advanced · 2026-05
Microservices: Asynchronous Messaging
Microservices: Asynchronous MessagingLinkedIn Learning · 2026-05
Software Design: From Requirements to Release
Software Design: From Requirements to ReleaseLinkedIn Learning · 2026-05
What Is Generative AI?
What Is Generative AI?LinkedIn Learning · 2026-06
Software Architecture: Patterns for Developers
Software Architecture: Patterns for DevelopersLinkedIn Learning · 2026-06
Practice Exam 2 for ISACA AAISM (AI Security Management)
Practice Exam 2 for ISACA AAISM (AI Security Management)LinkedIn Learning · practice exam, not a certification · 2026-06

← → or swipe

igors@portfolio:~$ ls -la ~/contact/

# contact

Describe the task and I will tell you what can be done, how long it takes and what it costs. Three questions, about a minute. Or reach me directly:

I read every message myself and usually reply within a day.