Tech Stack & Experience
Over the years I’ve built and maintained systems ranging from tiny prototypes to multi-year products. Sometimes I led teams, sometimes I reinforced them, sometimes I substituted for missing pieces.
My focus has always been on the difficult problems: research, estimation, prototypes, and bridging technologies. In short: I don’t chase the easy path. I make the complex simple — and, occasionally, the simple complex.
Languages & Frameworks
Core Languages
- PHP: main battlefield. Symfony is the current flagship, but I’ve also wrestled with Laravel, Yii2, Slim. Composer, Doctrine, API platforms, and yes — plenty of legacy cleanup.
- C# / .NET: years with .NET Framework & Core, ASP.NET MVC, Web API, Entity Framework, LINQ. Still remember the joy of endless XML configs.
- Java: Jersey, JDBI, and the Android SDK. Not my daily driver now, but the scars remain.
- Objective-C: iOS dev back in the day. Also hybrid hacks with PhoneGap and Cordova — don’t judge, that’s what we had.
JavaScript & Frontend
- Node.js & Express for backend services
- Frontend tooling: Webpack, AngularJS 1.x (yes, that Angular — we all suffered), jQuery (legacy support, because someone has to)
- Modern frontend integration: enough to survive in full-stack environments without losing sanity
Markup & Data
- HTML & CSS for UI integration
- XML, XPath, Ajax — because not everything is JSON, unfortunately
I really tried to keep this section short and to the point — resisting the urge to turn it into an endless wall of acronyms and buzzwords. Kinda managed (in the sense of “not really”). Below, though (see Databases, DevOps, and the rest), I lost control. Sorry, couldn’t help it. Better not read further — honestly, don’t.
Databases
Engines
- MySQL (main expertise)
- MariaDB
- PostgreSQL (basic experience)
- SQLite (regular use)
- MS SQL Server (5 years of production use)
- Redis (occasional use)
Skills
- SQL design and querying (DML, DDL, DCL)
- Database design, normalization, schema evolution
- Optimization: indexes, query tuning, execution plans
- Transactions and ACID principles
- Stored procedures, functions, triggers
- Backup/restore, replication strategies
DevOps & Tools
- Containerization: Docker, Docker Compose; some exposure to LXC
- Orchestration: Kubernetes (basic knowledge)
- CI/CD: GitLab CI, GitHub Actions; Ant (legacy builds)
- Monitoring: Prometheus, Grafana; basic ELK stack
- Error tracking: Sentry
- Configuration management: Ansible (basic usage)
- Infrastructure as Code: Terraform
- Collaboration & docs: Jira, Confluence, Notion, Google Docs, Office
- Automation: Slack bots, Telegram bots, (historically Skype bots)
Operating Systems
- Linux: Ubuntu, Debian, Amazon Linux, Fedora, Alpine, RHEL/CentOS
- Desktop Linux: Mint, other distros occasionally
- Windows: both Server (AD, IIS) and Desktop (dev environments)
- macOS: primary workstation OS
- Hackintosh: built and tuned hardware personally
Web Servers & App Servers
- Apache (classic LAMP stack)
- Nginx (reverse proxy, static serving)
- HAProxy (load balancing, health checks)
- Tomcat (Java applications)
- IIS (Windows hosting)
- Caddy (basic)
- Lighttpd
Networking & Sysadmin
- TCP/IP fundamentals (packet tracing, MTU, TTL)
- DNS: BIND;
- DHCP
- LDAP
- NTP
- VPN/IPsec tunnels; WireGuard and OpenVPN (manual setup)
- Firewalls: iptables, pf
- Traffic monitoring with tcpdump and Wireshark
Servers & Utilities
- Cron scheduling
- Logrotate (and similar tools)
- Shell scripting (bash primarily, some zsh)
- Coreutils (sed, awk, grep, find)
Cloud & Infrastructure
Cloud providers
- AWS: EC2, S3, RDS, IAM, CloudFront, Lambda/serverless
- Microsoft Azure: VMs, Blob Storage, Azure AD integration
Infrastructure & hosting
- Dedicated/colocation: Hetzner, Hivelocity, other
- ARM vs x86 deployments: Raspberry Pi, Orange Pi, mini-PCs
Networking
- DNS management: BIND, Cloudflare DNS, Route53
- Reverse proxies/CDN/WAF: Cloudflare, Nginx reverse proxy, Traefik
- VPN & tunnels: WireGuard, IPsec, OpenVPN, Cloudflare Tunnels
- Load balancers: HAProxy, Nginx, cloud-native LB
Storage & backup
- Object storage: S3-compatible
- Block storage: AWS EBS
- File storage: NFS, Samba
- Backup: Kopia, Restic, Borg
Security & identity
- SSL/TLS management: Let’s Encrypt, certbot, Cloudflare SSL
- IAM systems: AWS IAM, Azure AD
Testing & QA
Unit & Integration Testing
- PHPUnit (regular use)
- Integration tests with DB-backed services
- Test doubles: mocks, stubs, fixtures
Behavior-Driven Development (BDD)
- Cucumber
Static Analysis & Code Quality
- PHPStan
End-to-End & Functional Testing
- Selenium & WebDriver (experience with classic browser automation)
- Webdriver.io (JavaScript E2E testing)
- Mocha & Chai (JavaScript testing stack)
Performance & Load Testing
- JMeter
CI Integration
- Running tests in CI/CD pipelines (GitLab CI, GitHub Actions)
Project Management
Agile & Methodologies
- Agile practices: Scrum (sprints, roles, ceremonies) and Kanban (flow-based, WIP limits)
- Comfortable with hybrid approaches and adapting process to team/project context
Tools
- Jira: beyond task tracking, worked with roadmaps and dashboards
- Trello: used primarily for team collaboration
- Redmine: full ecosystem — issue tracking, wiki, time tracking, Gantt charts, backlog (via plugins)
- Mantis: bug-tracking in live projects
- Monday: applied at a fairly deep level
Processes
- Task estimation using story points, T-shirt sizing, and hours
- Participated in and facilitated retrospectives and sprint reviews
- Experience with prioritization frameworks (e.g., MoSCoW, WSJF)
- Release planning and versioning (semver, milestones)
- Regular stakeholder communication with tailored reporting
Documentation
- Confluence and Notion for project documentation
Other
- Resource management: assigning work with load balancing across the team
- Risk management: handled at a moderate level in real projects