Career

How I grew from jQuery and FTP to modern full-stack engineering with AI-augmented workflows.

~2015 – 2018

Foundations

I started my career when the web was built with jQuery, LAMP, and WordPress. Deploys happened over FTP — no Docker, no package managers, no CI/CD. I configured Apache and nginx on Linux servers to serve PHP projects and set up the necessary infrastructure from scratch. I built online shops on Opencart, and at OneTwoSale I worked on a multi-channel messaging platform powered by Zoho CRM — supporting existing code, adding new message channels, building features, and refactoring for maintainability. The platform included a Node.js microservice with MongoDB for sending campaign messages.

From mid-2016 I worked with Sails.js, Node.js, and MongoDB — though we weren't using npm properly yet, treating Node more as a scripting environment than a managed ecosystem. Still, it was my first exposure to JavaScript on the server and a hint of where the industry was heading.

Looking back, this period gave me something irreplaceable: a fundamental understanding of how the web works at the protocol and infrastructure level. HTTP, templates, sessions, authentication, rendering — I learned these without any framework abstraction layer. When tools like React and Docker later entered my workflow, I understood what problems they solved because I had felt those problems myself.

jQueryLAMPWordPressOpencartFTPPHPMySQLJavaScriptLinuxApachenginxSails.jsNode.jsMongoDB

Framework Adoption

I was curious about new frameworks and started learning Laravel in early 2017. By Q3 2017 a customer gave us a project on Laravel — Composer, structured patterns, and modern PHP finally clicked into place. I also experimented with React on a few short projects, though the real React shift came later at Law Insider. At Grodas I worked as a BE-focused full-stack engineer — databases, server config, APIs, integrations. That experience gave me strong backend fundamentals I still draw on today. I also introduced React into Laravel projects, replacing jQuery-powered UI with component-driven architecture.

This era unlocked the opportunity at Law Insider, where I built a custom React SSR solution — replacing Jinja2 templates and bringing modern DX and SEO optimizations to the platform.

LaravelComposerReact.jsnpmESLintSails.jsNode.jsMongoDB
2019 – Present

Modern Engineering

Law Insider was my bridge into modern engineering. I joined as 20% backend (Python 2.7) and 80% frontend (React with custom SSR), working on the full GCP stack. I migrated a legacy jQuery/SPA hybrid to a proper single-root React app, built a configurable paywall with Google Optimize, and set up CI/CD testing. This is where TypeScript, GraphQL, and cloud infrastructure became daily tools.

At Capgemini (former Lohika) I took a Senior FE role. I joined without strong HTML/CSS and no enterprise TypeScript experience — within two months I was writing markup at the level of any other senior on the team. I passed cloud courses for Kubernetes, Terraform, and AWS, and wrote backend code in Nest.js — a framework I had been interested in since 2018. By the end of this period my PHP knowledge had become outdated, and I was fine with that.

Proffiz deepened my frontend expertise. I was 100% focused on frontend, acting as the default PR reviewer and sharing TypeScript and markup knowledge with teammates. I gained strong expertise in GraphQL, Tailwind CSS, and design token systems working with high-quality Figma designs. I applied performance measuring skills I had developed at Law Insider to identify the slowest parts of the monorepo build pipeline — optimizing what actually mattered rather than guessing — and made targeted steps run up to 10x faster.

TypeScriptReact.jsNext.jsGraphQLTailwind CSSGCPAWSKubernetesTerraformNest.jsNXStorybook

AI-Augmented Engineering

At my current role (Proxet) I am a frontend-focused senior full-stack engineer with wide opportunities across BE, infra, data engineering, observability, and monitoring. We use Vercel for frontend apps, GCP and AWS for infrastructure, and Sentry + Datadog for observability. The backend fundamentals I built at Grodas mean I can understand the full stack even when I am not writing BE code daily — and the AI era lets me close gaps in newer stacks fast, whether picking up FastAPI patterns or reasoning about data pipeline transformations.

Starting March 2025, I entered the AI era. Cursor AI dominated my workflow until April 2026. I then transitioned to Claude Code for cross-repo interactions — syncing changes from design system prototypes or adjusting frontend to backend API changes. For small refactoring or pointing at specific code sections, I still reach for Cursor. For personal projects I use OpenCode — it is free and serves my needs well.

I also use Gemini and Perplexity for research unrelated to code changes. The key insight I have learned is that each tool has a strength: Claude Code for multi-repo orchestration, Cursor for precise local edits, and OpenCode for personal work where good-enough and free win.

CursorClaude CodeOpenCodeVercel AI SDKMCPSentryDatadogFastAPIdbt