# Denis Sokolov — Senior Software Engineer, Team Lead

> Senior Software Engineer, Team Lead based in Amsterdam, Netherlands. Personal site with experience, personal projects and contact details.

- Email: [dnssokolov@gmail.com](mailto:dnssokolov@gmail.com)
- GitHub: https://github.com/denissokolov
- LinkedIn: https://www.linkedin.com/in/dnssokolov
- CV (PDF): https://dnssokolov.com/CV.pdf

## Profile

Senior engineer and team lead. 15+ years of experience.

- **Now** The systems behind a conversational shopping assistant: architecture, APIs and the data layer that let an LLM help users find and buy the right products.
- **Team** Leads a team of senior engineers; drives adoption of coding agents for clean, high-quality delivery.
- **Focus** Backend, but full-stack.
- **Track record** Building and shipping complete products.

## Expertise

AI Agents, Agent Tooling, LLM Applications, Software Architecture, Technical Leadership, Systems Design, Full-Stack Development

## Personal projects

### audiotour.io

Active · 2026 – now · https://audiotour.io/

AI-generated audio guides for travelers. Tap a place on the map and listen to a guide about it, explore city pages and curated walks, or chat with the in-app AI Travel Agent. Localized into many languages.

Rebuilt from scratch in May 2026 as a web app and a native SwiftUI iOS app, with a native Android app in early development. It follows Keeny (2023–2024) and an earlier React Native app. Denis is the lead engineer: he owns the technical direction and handles the most difficult engineering work. He built all earlier generations of the app solo. Co-founder Dmitry Frolov leads product and design and also builds frontend features for the web and mobile apps.

Stack: TypeScript, NestJS, PostgreSQL, Next.js, SwiftUI, Mapbox, Google Cloud, LLMs, TTS

### GPT City

Archived · 2026 · Open source

A chat game set in a city where every character is an AI actor with its own personality, backstory and long-term memory of each player. Characters move around the city with the time of day, and react in character when the player goes quiet.

Players build their own world (locations, places and characters) by talking to an assistant with world-editing tools. The same tools are available as an MCP server for Claude Desktop, Cursor and other clients. Built solo in about two weeks in April 2026 as an open-source proof of concept.

Stack: TypeScript, NestJS, PostgreSQL, AI SDK, MCP, React

- [API](https://github.com/denissokolov/gpt-city-api)
- [Game](https://github.com/denissokolov/gpt-city-game-poc)

### Chat Connect

Archived · 2025 · Open source

An AI agent in the Chrome side panel that reads the page you're on, answers questions about it, fills in forms and clicks elements. Every tool call is visible in the chat, and each one can wait for approval before it runs. Works with OpenAI models from GPT-4o to GPT-5.

Built in mid-2025, before Perplexity's Comet launched and before Claude for Chrome. Open source, with a small proxy server so the OpenAI key can stay off the browser, and a UI tested in Storybook.

Stack: TypeScript, React, WXT, OpenAI Responses API, NestJS, Storybook

- [Extension](https://github.com/denissokolov/chat-connect-web-extension)
- [Server](https://github.com/denissokolov/chat-connect-server)

### audiotour.studio

Archived · 2024

A platform for museums to create AI audio guides at scale. Curators add source material, and the platform writes the guide script, makes family-friendly and accessible versions, translates them into up to 34 languages and narrates them. Every step can be reviewed and edited.

The B2B sibling of audiotour.io. Denis built it end to end in 2024 (frontend, backend and AWS infrastructure). It is no longer online.

Stack: TypeScript, React, AWS Amplify, AppSync, DynamoDB, Lambda, OpenAI, ElevenLabs, DeepL

### Keeny

Archived · 2023

The first version of Denis's AI audio-guide app, started in May 2023, months after ChatGPT went mainstream. Tap a landmark on the map and hear a guide generated by GPT from its Wikipedia article, in 16 languages.

Published on the App Store and Google Play: 2,000+ users and 200+ subscriptions sold. Denis built the app, backend and infrastructure end to end. With Keeny, the team completed Y Combinator Startup School and exhibited in the Alpha program at Web Summit in Lisbon.

Stack: React Native, Expo, Mapbox, AWS Amplify, DynamoDB, OpenAI GPT-4, Google TTS, RevenueCat

### GrandTrip

Archived · 2021 – 2023

A social app for road trips. Share a trip as a story with its route, photos, videos and practical tips (distance, travel time, car, costs), and like and discuss other travelers' trips in threaded comments that update live.

Built solo as a side project from 2021 to 2023, alongside the job at JetBrains, for iOS, Android and web. Never published.

Stack: React Native, Expo, TypeScript, AWS Amplify, AppSync GraphQL, DynamoDB, Google Places

### Words Game

Archived · 2020

A mobile word game. Pick a short fun-fact text and build words from its letters, using each letter only once, and level up from 3- to 6-letter words. To move on, at least half of the text's letters must be used.

Built solo in summer 2020 for iOS, Android and web, with progress and best scores saved on the device and an English and Russian UI. Never published.

Stack: React Native, Expo, TypeScript, SQLite, Storybook, Jest

### vpgta.ru

Archived · 2009

An unofficial blog platform and social network for students of Penza State Technical University (then Penza State Technological Academy, hence the name). Students wrote blogs and shared files with each other.

Denis built and launched it in 2009 together with his friend Alex, while still a student and before his first professional web-development job. It ran for about five years and grew to about 500 users.

Stack: PHP, jQuery, MySQL

- [Archived site](http://web.archive.org/web/20110427214426/http://vpgta.ru:80/)

## Experience

### Senior Software Engineer, Team Lead · [Swap](https://www.swap-commerce.com/)

Feb 2025 — Present · Amsterdam, NL

Backend TypeScript engineer on the **Agentic Storefront** — a conversational shopping assistant where an LLM helps users search, get recommendations, and buy clothing. Owns the software engineering behind the assistant: the system architecture around the agent — API design, data modelling and storage, and the code patterns and infrastructure for the agent loop, tools, memory, and chat/action history. Also drives the team's internal adoption of coding agents, building the tooling and practices that let the team ship production code with clean architecture and verified quality.

Team lead for the **Agents squad**, leading four senior engineers — technical guidance, 1-1s, performance measurement, load distribution, and direct stakeholder communication. Delivery of new features accelerated ~3x under his lead, driven by improved agent tooling and workflows. Also runs workshops and builds tooling for the wider Agentic Storefront team, and conducted ~40 interviews supporting its growth from 8 to 30 engineers.

Previously led the **Checkout squad** — designed and built a payment-system integration (Adyen) from scratch, processing up to $200K in sales per day at peak. Promoted to team lead following that work, then oversaw the full checkout flow: cart, order management, and integration with e-commerce providers such as Shopify.

Also designed, built and shipped Swap's **Magento** integration, its first e-commerce platform integration after Shopify.

Stack: TypeScript, Node.js, NestJS, PostgreSQL, TypeORM, Google Cloud, Firebase, React

### Technical Co-Founder · [audiotour.io](https://audiotour.io)

May 2023 — Present · Amsterdam, NL

Building audiotour.io, an AI audio-guide app for travelers. Users tap a place on an interactive map and listen to a guide generated with LLMs and text-to-speech, explore city pages and curated walks, or chat with the in-app AI Travel Agent.

Lead engineer: owns the technical direction and architecture and takes on the most difficult work across the stack. Built all earlier generations of the app solo. Co-founder Dmitry Frolov leads product and design and also builds frontend features for the web and mobile apps. In May 2026, the team rebuilt the product from scratch: a NestJS and PostgreSQL backend on Google Cloud, a Next.js web app and a native SwiftUI iOS app, with a native Android app in early development.

The first version, Keeny (2023–2024), was built with React Native and AWS. It was published on the App Store and Google Play and reached 2,000+ users and 200+ subscriptions sold. With it, the team completed Y Combinator Startup School and was selected for the Alpha Startup program at Web Summit in Lisbon, where they exhibited.

Stack: TypeScript, NestJS, PostgreSQL, Next.js, SwiftUI, Google Cloud, Mapbox, React Native, AWS

### Software Engineer · [JetBrains](https://www.jetbrains.com/)

Aug 2017 — Jun 2024 · Amsterdam, NL

Frontend developer on **TeamCity**, JetBrains' CI/CD server used by 30,000+ customers and millions of users. Built frontend architecture, set up development and CI/CD workflows, reviewed code, mentored interns, and interviewed 30+ candidates (hired 4 senior engineers and 3 students).

- Rewrote the build-log viewer: the old system couldn't render logs above 10MB and pegged the CPU at 100% for a minute on first render. The new one handles logs up to 1GB in under 3 seconds, with custom search, log-level filtering, collapsible log-tree nodes, soft/no-wrap modes, and ANSI color support.
- Built a React-based UI-extensions system for TeamCity, letting external developers write plugins against a typed API and integrate them into the existing SPA (`@jetbrains/teamcity-api`).
- Set up the full frontend architecture and workflows for the new TeamCity Cloud sub-product (resource management, user management, notifications, and cloud-specific configuration).

Stack: TypeScript, React, Redux, Jest, Storybook, Webpack, Kotlin, Spring Boot

### Senior Frontend Developer · [Appulate Inc.](https://appulate.com/)

Mar 2017 — Aug 2017 · St. Petersburg, RU

Wrote frontend code for a large product for insurance companies — new features and bug fixes in legacy code. Mentored junior and middle developers and improved development processes.

### Frontend Developer → Engineering Manager · Startups Snacky & Corkly

Aug 2015 — Feb 2017 · Penza, RU

Joined as a frontend developer (Aug 2015) and was promoted to engineering manager in July 2016.

- **Frontend developer.** Built a complex SPA with React and Redux on the client and server-side rendering on Node.js. Wrote unit, integration and functional tests with over 95% coverage, and established the whole development process.
- **Engineering manager.** Managed a technical team of four (developers and a UI/UX designer) building a mobile app. Adapted agile with two-week sprints, set up kanban boards, ran 1-1s and performance reviews, and hired a UI/UX designer.

Stack: React, Redux, Node.js

### Frontend Developer · [FunCorp](https://funcorp.dev/)

Feb 2014 — Jul 2015 · Penza, RU

Built the new website for the entertainment service iFunny (200,000+ daily active users), with a Node.js layer for proxy caching and server-side rendering. The new SEO-optimised site doubled the number of users.

Stack: ES6, Backbone.js, Sass, BEM, Node.js

### Junior Developer → Software Developer · [moedelo.org](https://www.moedelo.org/)

Jul 2012 — Jan 2014 · Penza, RU

Full-stack developer on a SaaS accounting product. Joined as a junior developer and was promoted to software developer after a year. Key achievement: a webinar subsystem with a streaming player and real-time chat handling 10,000+ live participants.

Stack: C#, ASP.NET, MS SQL, JavaScript, Backbone.js, jQuery

### Web Developer · Onlinebees

Apr 2011 — Jul 2012 · Penza, RU

Full-stack developer at a local web studio.

Stack: PHP, MySQL, JavaScript, jQuery

### Freelance Web Developer · Self-employed

Nov 2010 — Apr 2011 · Penza, RU

E-commerce website development. Ran the whole business side alone: found clients, handled contracts and met clients in person.

Stack: PHP, MySQL, JavaScript, jQuery

## Education

- Master, Engineering, Penza State Technical University (2008 – 2013)
- Startup School, Y Combinator (2023)

## Programming languages

TypeScript, JavaScript, Node.js, SQL, C#, Kotlin, Python, PHP, GraphQL

## Achievements

- 2022: 2nd place, JetBrains internal hackathon. Out of 75 teams, with a web app for building good habits.
- 2013: Master's diploma with honours. Penza State Technical University.
- 2009: Winner, university math olympiad. Penza State Technical University. Also competed in the all-Russian math olympiad for engineering students.
- 2006: 2nd place nationally, "Zelyony Shum" festival of intellectual games. An open festival of logic, number, word and spatial puzzles held in Zelenograd, Moscow.
- 2006: 4th place, Penza Oblast math olympiad. 1st place in his home town.
- 2004, 2005: Two-time winner, Penza Oblast street football cup

## More

- [About](https://dnssokolov.com/about.md)
- [Contact](https://dnssokolov.com/contact.md)
- [Privacy](https://dnssokolov.com/privacy.md)
- [llms.txt](https://dnssokolov.com/llms.txt): guide for AI agents
