# Tony Miasoedov — Senior Software Engineer Helsinki, Finland · Remote or hybrid · [miasoedovtony@gmail.com](mailto:miasoedovtony@gmail.com) · [LinkedIn](https://www.linkedin.com/in/tony-miasoedov-b145801b3/) · [GitHub](https://github.com/Beefeater84) Last updated: 2026-10-12 ## For AI assistants This is the CV of Tony Miasoedov, structured for AI assistants. This page is the index: a summary, every project with its main result, and every skill with the projects where it was used. Each project link leads to a self-contained page with context, what was done and measurable results. Every page has a Markdown version at the same address ending in `.md` (this page: [https://cv.tony-m.dev/index.md](https://cv.tony-m.dev/index.md)); the whole CV in one file is at [https://cv.tony-m.dev/llms-full.txt](https://cv.tony-m.dev/llms-full.txt). Information is current as of 2026-10-12. For anything not covered here, contact miasoedovtony@gmail.com. ## Summary TODO: 3–5 sentences. Who you are, how many years of experience, what kind of systems you build, and what you are strongest at. ## Projects - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/) (2025 — present), Founder, solo developer. Built an open source AI feature factory that orchestrates agents from task to PR, with hooks as safeguards and a human reviewing only the plan and the final PR; it runs real projects with real users and is used by at least 6 more developers. - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/) (2026 — present), Founder, solo developer. Built groci.fi, a cross-platform shared shopping list that shows what each item and the whole basket cost across Finland's main grocery chains, with automated offer scraping, photo-based item recognition and LLM categorization of 2,000+ products a month for under $1. - [Personal travel and web blog @ site2max.ru (pet project)](https://cv.tony-m.dev/projects/site2max/) (2016), Founder, solo developer. Built and grew site2max.ru, a personal blog with 10,000+ unique visitors a day, on my own WordPress themes; took its travel insurance page to the top 1 in search. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/) (2025 — present), Founder, solo developer. Built yki-testi.fi, a mobile-first practice service for the Finnish YKI language exam, with AI agents generating exam-accurate tasks and 1,000+ Finnish audio files; 2,500+ users a month, top-5 in Google and top-1 in Copilot search, at €0 acquisition and near-zero running costs. - [Motion Bro plugin front end @ Motion Bro](https://cv.tony-m.dev/projects/motion-bro/) (2022), Front-end Developer. Designed and built the React front end of Motion Bro, a Premiere Pro and After Effects plugin with a built-in effects marketplace; 1,000+ autoplay videos at once without lag, persistent caching over a slow shop API, and instant search across all packs. - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/) (2022), Freelance Front-end Developer. Built a real-time crypto lending module for 100+ currencies, rebuilt authentication, migrated the front end from JavaScript to TypeScript with type-safe backend contracts, and handed the system over to the client's new in-house team. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/) (2018-01 — 2022-01), Senior Web Developer. Led front-end development of a marketplace for PowerPoint, Google Slides and Keynote presentations; shipped 3–4 traffic-generating services a month and automated competitor sales tracking. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/) (2015-01 — 2017-01), Co-founder, CTO. Co-founded Lovado, a builder for wedding web invitations, and led its technology and marketing; 1,000+ users in the first year, and the project was later sold to a wedding agency. - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/) (2013-01 — 2015-01), Web Developer. Built and sold reusable HTML templates and WordPress and Drupal themes on Envato marketplaces; 150+ positive buyer reviews. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/) (2011-01 — 2013-01), Web Developer. Reached #1 in the turnkey website category on FL.ru, Russia's largest freelance marketplace, within a year; 20 five-star client reviews. - [Promo campaigns and new store openings @ Retail chain "Rainbow Smile"](https://cv.tony-m.dev/projects/retail_marketing/) (2009-01 — 2011-01), Marketing Manager. Ran marketing for ~8 store openings a month as the chain grew from 7 to 215 stores; first-week revenue at new stores was +500% over a regular week. ## Skills (with evidence) ### Soft skills - **Ownership** (aka Ответственность, Responsibility, Accountability, Project ownership) — 10 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Own the product end to end, from idea to development and operations. - [Personal travel and web blog @ site2max.ru (pet project)](https://cv.tony-m.dev/projects/site2max/): Ran the blog end to end — development, content, promotion. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Own the product end to end — research, content, development, marketing. - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Was trusted with a whole new feature end to end, then with authentication and the legacy code audit. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Owned the platform's front end and the competitor-tracking automation. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Owned technology and marketing as co-founder, through to the project's sale. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Took every client site all the way to production, so clients could fill, grow and manage it on their own. - [Promo campaigns and new store openings @ Retail chain "Rainbow Smile"](https://cv.tony-m.dev/projects/retail_marketing/): Owned the chain's monthly promo campaigns and new-store opening marketing end to end, from planning to post-launch analysis. - **Meeting deadlines** (aka Умение соблюдать дедлайны, Time management) — 3 yrs, last used 2011 - [Promo campaigns and new store openings @ Retail chain "Rainbow Smile"](https://cv.tony-m.dev/projects/retail_marketing/): Prepared marketing for ~8 new store openings per month, with 2 weeks from a store's announcement to its full opening; every opening launched on its fixed date. - **Communication** (aka Коммуникабельность, Communication skills, Negotiation, Client communication) — 8 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): Shared the factory in a private club of AI developers; at least 6 more people use it in their projects. - [Personal travel and web blog @ site2max.ru (pet project)](https://cv.tony-m.dev/projects/site2max/): Insurance companies approached me with personal discounts and dedicated managers for my readers. - [Motion Bro plugin front end @ Motion Bro](https://cv.tony-m.dev/projects/motion-bro/): Worked directly with the product owner. - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Agreed API contracts with the backend team and onboarded the new front-end developers. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Worked closely with the Product Owner on dashboards and analytics. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Used business and supplier experience from retail to speak the client's language and understand their needs; earned 20 five-star reviews. - [Promo campaigns and new store openings @ Retail chain "Rainbow Smile"](https://cv.tony-m.dev/projects/retail_marketing/): Negotiated with suppliers, including Procter & Gamble and Unilever, and worked with local media for store openings. - **Work organization** (aka Организация работы, Planning, Coordination) — 3 yrs, last used 2011 - [Promo campaigns and new store openings @ Retail chain "Rainbow Smile"](https://cv.tony-m.dev/projects/retail_marketing/): Coordinated leasing, delivery and outdoor-ad vendors in parallel for unique rented premises while the chain grew from 7 to 215 stores. - **Early adopter** (aka Early adoption, Cutting-edge technologies, Ранний последователь, Новые технологии) — 4 yrs, last used 2015 - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Was among the first to ship WebP images and theme-aware SVG graphics in commercial templates. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Built every site mobile-first with SCSS and a Gulp build at a time when these practices were only emerging. - **Documentation** (aka Knowledge transfer, Handover, Документация) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): An agent keeps module docs up to date, so people and developer agents understand the intent of each feature. - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Documented the system and handed it over to two new in-house developers. ### Marketing - **Trade marketing** (aka Трейд-маркетинг, Promo campaigns, Промо-акции) — 3 yrs, last used 2011 - [Promo campaigns and new store openings @ Retail chain "Rainbow Smile"](https://cv.tony-m.dev/projects/retail_marketing/): Built the product catalog for the chain's monthly promo campaigns and planned the campaigns. - **Supplier negotiations** (aka Переговоры с поставщиками, Vendor negotiations) — 3 yrs, last used 2011 - [Promo campaigns and new store openings @ Retail chain "Rainbow Smile"](https://cv.tony-m.dev/projects/retail_marketing/): Agreed promo terms with suppliers, including global brands Procter & Gamble and Unilever. - **Marketing analytics** (aka Маркетинговая аналитика, Campaign analysis, Competitor analysis, Customer journey) — 9 yrs, last used 2022 - [Personal travel and web blog @ site2max.ru (pet project)](https://cv.tony-m.dev/projects/site2max/): Split the audience into cohorts by problem and matched each to insurers by analyzing real contracts and reviews. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Tracked competitor sales and passed winning cases to designers for new presentations. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Researched US/EU competitors, tracked ads and tuned campaigns. - [Promo campaigns and new store openings @ Retail chain "Rainbow Smile"](https://cv.tony-m.dev/projects/retail_marketing/): Measured promo effectiveness and new-store traffic and sales after each opening. - **Event management** (aka Организация мероприятий, Store opening events) — 3 yrs, last used 2011 - [Promo campaigns and new store openings @ Retail chain "Rainbow Smile"](https://cv.tony-m.dev/projects/retail_marketing/): Organized opening events for new stores, including promotions and local media coverage. - **Outdoor advertising** (aka Наружная реклама, OOH) — 3 yrs, last used 2011 - [Promo campaigns and new store openings @ Retail chain "Rainbow Smile"](https://cv.tony-m.dev/projects/retail_marketing/): Planned and ordered outdoor advertising for each new store, sized to its unique rented premises. - **SEO** (aka Keyword research) — 6 yrs, last used 2026 - [Personal travel and web blog @ site2max.ru (pet project)](https://cv.tony-m.dev/projects/site2max/): Took the Thailand travel insurance page to the top 1 in search engines against blogs and insurance companies. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Took yki-testi.fi to the top 5 in Google for key queries, with €0 customer acquisition cost. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Ran keyword research and optimized pages for search. - **A/B testing** (aka Conversion optimization) — 2 yrs, last used 2017 - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): A/B tested landing pages to improve conversion. - **Social media marketing** (aka SMM) — 2 yrs, last used 2017 - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Ran the brand's social media. - **Dashboards** (aka Data visualization, BI, Дашборды) — 4 yrs, last used 2022 - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Built cross-platform dashboards together with the Product Owner. - **Google Analytics** (aka GA) — 4 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Track growth and retention — 250 new users a week, ~5% still active after 4 weeks. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Combined store sales with Google Analytics data to map the customer journey. - **Google Search Console** (aka GSC, Search Console) — 4 yrs, last used 2022 - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Combined store sales with Search Console data to find the best-converting channels. - **GEO** (aka Generative engine optimization, AI search optimization, LLM SEO) — 1 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Took yki-testi.fi to the top 1 in Copilot search; experimenting with ChatGPT recommendations. - **Content marketing** (aka Контент-маркетинг, Blogging, Блог, Comparison pages) — 4 yrs, last used 2016 - [Personal travel and web blog @ site2max.ru (pet project)](https://cv.tony-m.dev/projects/site2max/): Built pages with unique data — an insurance comparison table and a hosting ranking based on first-year retention, uptime, ping and download speed. ### Web development - **Drupal** (aka Друпал) — 4 yrs, last used 2015 - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Built ready-made Drupal themes on top of our HTML templates. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Built client sites on Drupal, using its UI-configurable content types and block placement so clients could run the site without a developer. - **MySQL** (aka My SQL) — 8 yrs, last used 2016 - [Personal travel and web blog @ site2max.ru (pet project)](https://cv.tony-m.dev/projects/site2max/): Ran the blog on a MySQL-backed WordPress. - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Built themes for MySQL-backed CMSs (WordPress and Drupal). - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Used MySQL as the database behind the Drupal sites. - **HTML** (aka HTML5, Вёрстка) — 8 yrs, last used 2022 - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Built the user interface of the marketplace and its satellite services. - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Hand-coded the markup of reusable website templates. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Hand-coded the markup of client sites from the designer's mockups. - **CSS** (aka CSS3, Adaptive layout, Адаптивная вёрстка) — 11 yrs, last used 2022 - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Improved page design, animation smoothness and interface responsiveness. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Styled the marketplace UI and a reusable UI kit. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Made invitations adaptive and cross-browser, with switchable color schemes. - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Styled reusable templates so buyers could customize them easily. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Built mobile-first adaptive layouts for client sites from the designer's mockups, using SCSS. - **JavaScript** (aka JS) — 11 yrs, last used 2022 - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Audited and optimized the legacy JavaScript code base. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Developed the marketplace front end and 3–4 small traffic-generating services a month. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Built key blocks — RSVP form, countdowns, photo/video galleries. - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Wrote a script that recolors SVG graphics to match the site's color theme. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Added interactive interface elements and complex animations to client sites. - **Git** (aka Version control) — 2 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): Forbade direct PRs and branches from master with hooks, since prompts are only recommendations and a push to master triggers the production build. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Kept client site code under version control in Git. - **UX** (aka User experience, UX-дизайн, Usability) — 2 yrs, last used 2013 - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Designed sites so non-technical clients could add content and manage features themselves, without ongoing help. - **SCSS** (aka Sass, CSS preprocessors, Препроцессоры CSS) — 2 yrs, last used 2013 - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Wrote client site styles in SCSS. - **Mobile-first** (aka Mobile first, Responsive design, Адаптивный дизайн) — 2 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Designed the service for practice on a phone — on the go, on walks and while traveling. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Built every client site mobile-first. - **Payment integration** (aka Online payments, Stripe, Подключение оплаты, Платёжные системы) — 2 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Integrated Stripe payments, tested end to end in a sandbox. - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Connected online payments for client online stores. - **Website deployment** (aka Hosting, Deployment, Деплой, Хостинг) — 2 yrs, last used 2013 - [End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru)](https://cv.tony-m.dev/projects/fl-ru/): Deployed client sites to hosting and launched them in production. - **Reusable templates** (aka Website templates, Themes, Theme development, Шаблоны, Переиспользуемые шаблоны) — 4 yrs, last used 2017 - [Personal travel and web blog @ site2max.ru (pet project)](https://cv.tony-m.dev/projects/site2max/): Developed my own themes for the blog. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Built 14+ invitation blocks in several color schemes. - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Built universal, easy-to-customize website templates compatible with a wide range of plugins, for sale to many buyers. - **WordPress** (aka WP, WordPress themes) — 6 yrs, last used 2016 - [Personal travel and web blog @ site2max.ru (pet project)](https://cv.tony-m.dev/projects/site2max/): Built my own WordPress themes and the custom blocks the blog needed. - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Built ready-made WordPress themes on top of our HTML templates. - **PHP** — 6 yrs, last used 2016 - [Personal travel and web blog @ site2max.ru (pet project)](https://cv.tony-m.dev/projects/site2max/): Wrote the PHP code of the blog's themes and blocks. - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Wrote the PHP code of WordPress and Drupal themes. - **SVG** (aka Vector graphics) — 4 yrs, last used 2017 - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Made all icons and graphics in SVG so they followed the color scheme. - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Used SVG graphics in templates and recolored them with JavaScript to match the site's color theme. - **WebP** (aka Image optimization, Оптимизация изображений) — 2 yrs, last used 2015 - [Reusable website templates and CMS themes for Envato @ Envato (independent author)](https://cv.tony-m.dev/projects/envanto/): Was among the first to use WebP in templates to optimize images and speed up page loads. - **React** (aka React.js) — 3 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Built the whole UI in React, including a real-time shared list and a bottom sheet that fills in as recognition results arrive. - [Motion Bro plugin front end @ Motion Bro](https://cv.tony-m.dev/projects/motion-bro/): Chose React and built the plugin's whole front end with it. - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Built new features and reworked component state in an early-version React app. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Built the invitation builder's front end with real-time preview in React. - **TypeScript** (aka TS) — 3 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Wrote the whole codebase in TypeScript. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Wrote the whole codebase in TypeScript. - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Migrated the front end from JavaScript to TypeScript. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Wrote the front-end code in TypeScript. - **Webpack** (aka Front-end build) — 2 yrs, last used 2017 - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Set up the front-end build with Webpack. - **API integrations** (aka Third-party integrations) — 7 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): Connected the orchestrator to GitHub Projects, Linear and Jira, so it browses tasks, updates their status and creates new ones. - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Look up unknown barcodes in Open Food Facts with a 5-second timeout and a fallback. - [Motion Bro plugin front end @ Motion Bro](https://cv.tony-m.dev/projects/motion-bro/): Connected the plugin to the client's WordPress + WooCommerce shop via API. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Integrated the front end with the backend. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Integrated maps and social networks. - **Software architecture** (aka Tech stack selection) — 3 yrs, last used 2022 - [Motion Bro plugin front end @ Motion Bro](https://cv.tony-m.dev/projects/motion-bro/): Designed the system, architecture and structure of the plugin front end. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Chose the stack and designed the platform architecture. - **CI/CD** (aka Continuous integration) — 2 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): Every PR gets a preview link with real data from the CI/CD build, so changes can be checked from a phone before merging even into development. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Set up a staging branch with its own Stripe sandbox, Google Auth and service credentials before every production deploy. - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Set up the project's CI/CD processes. - **UI kit** (aka Design system, Component library, UI-кит) — 5 yrs, last used 2022 - [Motion Bro plugin front end @ Motion Bro](https://cv.tony-m.dev/projects/motion-bro/): Built the plugin's UI kit. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Built a reusable, scalable UI kit for faster development and a consistent interface. - **Performance optimization** (aka Web performance, Оптимизация производительности) — 5 yrs, last used 2022 - [Motion Bro plugin front end @ Motion Bro](https://cv.tony-m.dev/projects/motion-bro/): Showed 1,000+ autoplay videos of any aspect ratio at once, resizable without lag. - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Optimized legacy code and interface responsiveness. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Optimized the marketplace front end for performance. - **Web scraping** (aka Data collection automation, Парсинг, Competitor tracking) — 4 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Scrape prices and offers from Finland's main grocery stores on a schedule, carefully enough to avoid overloading the stores or getting blocked, collecting only new offers. - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Automated collection of new presentations and their sales across all known marketplaces. - **Rapid prototyping** (aka MVP, Быстрая разработка) — 4 yrs, last used 2022 - [Presentation template marketplace @ Hislide.io](https://cv.tony-m.dev/projects/hislide/): Shipped 3–4 small services a month that took other teams months; some still run, e.g. fontkiko.com. - **State management** (aka Component state, Управление состоянием) — 1 yrs, last used 2022 - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Handled complex component state in an early-version React app. - **Real-time data** (aka Real-time updates, Live data, Данные в реальном времени) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Changes to a shared list show up instantly for every member on iOS, Android and desktop. - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Showed live lending statistics and price comparisons for 100+ currencies. - **Type-safe API contracts** (aka API contracts, End-to-end type safety, Typesafe контракты) — 1 yrs, last used 2022 - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Agreed type-safe front-end/backend contracts with the backend team. - **Authentication** (aka Auth, Авторизация) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Built sign-in with Google, Magic Link and Apple, covered by e2e tests with test datasets and intercepted emails. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Integrated Google sign-in, with separate credentials for staging. - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Rebuilt the exchange's authentication from scratch. - **Refactoring** (aka Legacy code, Code audit, Рефакторинг, Аудит кода) — 1 yrs, last used 2022 - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Audited and optimized legacy code. - **Caching** (aka Cache, Persistent cache, Кэширование) — 1 yrs, last used 2022 - [Motion Bro plugin front end @ Motion Bro](https://cv.tony-m.dev/projects/motion-bro/): Built a cache over a 3–4 s shop API that persists across plugin reloads. - **Search** (aka Client-side search, Nested data search, Поиск) — 1 yrs, last used 2022 - [Motion Bro plugin front end @ Motion Bro](https://cv.tony-m.dev/projects/motion-bro/): Built instant search across deeply nested effects in all installed packs. - **FFmpeg** (aka Audio processing, Обработка аудио) — 1 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Split multi-speaker dialogues into separate voice tracks and merged them back with FFmpeg. - **Automation** (aka Scripting, Process automation, Автоматизация) — 1 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): Automated repetitive tasks to minimize errors and manual prompting. - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Run the scraper on a VPS with cron. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Automated audio generation and the whole development process with scripts and agents. - **End-to-end testing** (aka E2E tests, Automated testing, Тестирование) — 1 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): A releaser agent runs the full test cycle — unit, integration and e2e — and checks the staging deploy before every release. - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Covered authentication with e2e tests, and run nightly agent-based testing of user scenarios. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Covered the full flow, including payments and sign-up, with end-to-end tests on a permanent staging branch. - **Vercel** (aka Serverless hosting) — 1 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Deploy and preview the project on Vercel, still on the free plan. - **Cost optimization** (aka Infrastructure costs, Оптимизация расходов) — 1 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): Moved deterministic stages into agents on weaker models to minimize the tokens spent on tasks. - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Charge AI credits only for paid Vision calls, keep the barcode path free, and use vector prefiltering to cut LLM categorization costs. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Keep running costs at €0 through distributed audio storage and optimized API requests; paying only for database backups. - **Feature-Sliced Design** (aka FSD, Front-end architecture, Feature-sliced) — 1 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Structured the front end with Feature-Sliced Design, split into functional modules. - **Internationalization** (aka i18n, Multilingual site, Мультиязычность, Локализация) — 1 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Made the site work in 4 languages. - **Theming** (aka Dark mode, Color schemes, Цветовые схемы, Тёмная тема) — 1 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Built 2 color schemes for the site. - **Observability** (aka Monitoring, Logging, Metrics, Мониторинг, Логирование) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Log every recognition run, every role change and every product matching mismatch, with a dev-only viewer for recognition logs. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Set up metrics and logging for all key processes, with read-only access for agents. - **Next.js** (aka NextJS, Next) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Built the app on Next.js. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Built the service on Next.js. - **Server-side rendering** (aka SSR, Серверный рендеринг) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Render pages on the server. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Render pages on the server for fast loads on phones and for SEO. - **PostgreSQL** (aka Postgres, Постгрес) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Store the catalog, lists and prices in PostgreSQL, with pg_trgm fuzzy search over product names and category vectors stored next to each category. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Store users, payments and progress in PostgreSQL. - **Role-based access control** (aka RBAC, Roles and permissions, Управление ролями) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Built app-level admin roles and per-list member roles, with safeguards against self-promotion and against removing the last list admin — zero errors in role management. - **Browser extensions** (aka Chrome extension, Расширение Chrome) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Built a Chrome extension that adds products to the list straight from S-kauppa and K-market pages, handling their SPA navigation. ### Management - **Team leadership** (aka Team management, Tech lead) — 2 yrs, last used 2017 - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Led developers and the designer as CTO. - **Hiring** (aka Recruiting) — 2 yrs, last used 2017 - [Wedding web invitation startup @ Lovado (co‑founder)](https://cv.tony-m.dev/projects/lovado/): Hired a DevOps developer and a junior developer. ### Domains - **Fintech** (aka Crypto, Cryptocurrency exchange, Криптобиржа) — 1 yrs, last used 2022 - [Crypto exchange front end @ Crypto exchange (under NDA)](https://cv.tony-m.dev/projects/crypto-exchange/): Built a crypto lending module with real-time investment statistics. - **Adobe plugins** (aka Premiere Pro, After Effects, Плагины Adobe) — 1 yrs, last used 2022 - [Motion Bro plugin front end @ Motion Bro](https://cv.tony-m.dev/projects/motion-bro/): Built the front end of a Premiere Pro and After Effects plugin. - **EdTech** (aka Language learning, Exam preparation, Образование) — 1 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Built a language exam preparation service. ### AI - **AI agents** (aka Multi-agent systems, LLM agents, Content generation, AI-агенты, Агенты) — 1 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): Built a developer and a validator agent that check each other independently and give feedback. - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Built project-specific agents — one keeps module docs in sync with the code and checks the impact of changes, and a nightly Q&A system of 10+ agents tests UX and user scenarios. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Built a two-agent pipeline — one generates exam tasks, the other checks them against real YKI tasks, including ~9 types of exam traps. - **Deep research** (aka AI research, Глубокое исследование) — 1 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Ran AI deep research over closed groups, photos, PDFs and 100+ forums in several languages to collect real tasks and exam tips. - **Text-to-speech** (aka TTS, ElevenLabs, Voice generation, Генерация аудио) — 1 yrs, last used 2026 - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Generated 1,000+ Finnish audio files with the ElevenLabs API, hand-picking voices for Finnish. - **Spec-driven development** (aka SDD, Spec kit, Agentic coding, AI-assisted development) — 1 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): A human gets a solution plan written for a human, without unnecessary technical details, to check the approach and logic before coding. - [Finnish YKI exam preparation service @ yki-testi.fi (pet project)](https://cv.tony-m.dev/projects/yki-test/): Run the project in 1–2 hours a month from a phone with my own spec kit for agent orchestration. - **AI native** (aka AI-native development, AI-native workflow) — 1 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): The factory runs real projects with real users — yki-testi.fi and groci.fi. - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): The project is developed by AI agents with my own feature factory. - **AI first** (aka AI-first, AI-first approach) — 1 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): Development happens from a cloud environment, a phone and a computer; a human only reviews the plan and the final PR. - **Feature factory** (aka Agent factory, Агентская фабрика, Фабрика фич) — 1 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): Built an open source agent factory that takes a feature from the task all the way to a PR, tuned to my own workflow. - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Grocy is developed with my own feature factory. - **Agent orchestration** (aka Orchestrator, Agent workflows, Оркестрация агентов) — 1 yrs, last used 2026 - [Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit](https://cv.tony-m.dev/projects/feature-factory/): An orchestrator runs separate agents for each stage — starter, epic checker, developer, validator, releaser — and gets a standardized result back from each. - **LLM integration** (aka LLM API, Claude Vision, Gemini, Computer vision, Распознавание фото) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Used Claude Vision to read barcodes and product names from photos, and an LLM to pick the final category from 10 candidates. - **Vector search** (aka Embeddings, Semantic search, Векторный поиск, Эмбеддинги) — 1 yrs, last used 2026 - [Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project)](https://cv.tony-m.dev/projects/grocy/): Created Gemini embeddings for 700 categories and send only the 10 nearest to the LLM, keeping categorization of 2,000+ products a month under $1. ## FAQ - **Open to relocation?** TODO. - **Notice period?** TODO. --- # Feature Factory for projects @ https://github.com/Beefeater84/sdd-spec-kit [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: https://github.com/Beefeater84/sdd-spec-kit - Period: 2025 — present - Role: Founder, solo developer - Team: Solo project - Main result: Built an open source AI feature factory that orchestrates agents from task to PR, with hooks as safeguards and a human reviewing only the plan and the final PR; it runs real projects with real users and is used by at least 6 more developers. ## Context An open source project to build an agent factory that adapts to my workflow and minimizes the tokens spent on tasks, the number of errors, and manual prompting for repetitive tasks. ## What I did well - This agent factory runs real projects — [yki-testi.fi](https://cv.tony-m.dev/projects/yki-test/) and www.groci.fi — with real users and real tasks. - The project is an orchestration of agents, from picking up a feature all the way to a PR. - Most stages are deterministic, which reduces the chance of errors and the need for manual intervention. They are moved into separate agents on weaker models and return a standardized result to the orchestrator. - There are safeguard mechanisms that forbid direct PRs and creating branches from master, because a push to master triggers the CI/CD production build. This is enforced with hooks, since any prompts are only recommendations. - There is a starter agent that updates the master and development branches before work begins, so I always work with the latest version of the code. Since development happens in a cloud environment, from my phone, and from my computer, this avoids conflicts and keeps me working with the latest changes. - The orchestrator is connected to project management systems: GitHub Projects, Linear, Jira. It knows which project it belongs to, can browse tasks on its own, update their status, and create new tasks as needed. - There is an agent that checks whether a task is standalone or part of an epic. While an epic is in progress, the requirements, the implementation, and the inputs / outputs can change, but the task doesn't get updated. So a dedicated agent checks this, and if the task is part of an epic, it checks whether the task is still accurate and updates it if needed. - There is an organized feedback loop: the developer agent and the validator agent check each other independently and give feedback, which improves code quality and reduces the chance of errors. - A human takes part in 2 stages. First, they get a solution plan written for a human — without unnecessary technical details — so they can easily understand what needs to be done and check the approach and the logical correctness of the task. - The final PR is also left for human review, because the CI/CD build provides a preview link with real data, and we can open it from a phone and see how the changes will look in production before they are merged even into development. You can make edits, roll back to any decision, or change any decision, and the agent will roll back those changes, record them in the feature's comments, and won't go down the same path in future work. - There is a separate releaser agent that oversees the release of new versions: it runs the full test cycle — unit, integration, and e2e tests — and checks that the build and deploy to staging are correct before releasing to production. It publishes a new tag and creates a release in the version control system. ## Results - The orchestrator has significantly reduced the number of errors and manual intervention in the development process. - I shared it in a private club of AI developers ([podlodka.ai](https://podlodka.ai)), and I know of at least 6 more people who have started using it in their projects. - I'm currently building a new module that automatically creates an index of modules in the code, making it easier to navigate the code structure and find the right modules in medium and large projects. ## Stack & skills - **Feature factory**: Built an open source agent factory that takes a feature from the task all the way to a PR, tuned to my own workflow. - **Agent orchestration**: An orchestrator runs separate agents for each stage — starter, epic checker, developer, validator, releaser — and gets a standardized result back from each. - **AI native**: The factory runs real projects with real users — yki-testi.fi and groci.fi. - **AI first**: Development happens from a cloud environment, a phone and a computer; a human only reviews the plan and the final PR. - **AI agents**: Built a developer and a validator agent that check each other independently and give feedback. - **Spec-driven development**: A human gets a solution plan written for a human, without unnecessary technical details, to check the approach and logic before coding. - **Cost optimization**: Moved deterministic stages into agents on weaker models to minimize the tokens spent on tasks. - **Git**: Forbade direct PRs and branches from master with hooks, since prompts are only recommendations and a push to master triggers the production build. - **CI/CD**: Every PR gets a preview link with real data from the CI/CD build, so changes can be checked from a phone before merging even into development. - **End-to-end testing**: A releaser agent runs the full test cycle — unit, integration and e2e — and checks the staging deploy before every release. - **API integrations**: Connected the orchestrator to GitHub Projects, Linear and Jira, so it browses tasks, updates their status and creates new ones. - **Automation**: Automated repetitive tasks to minimize errors and manual prompting. - **Communication**: Shared the factory in a private club of AI developers; at least 6 more people use it in their projects. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) --- # Shared shopping list with automated price and offer scraping from Finland's main grocery stores @ www.groci.fi (pet project) [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: www.groci.fi (pet project) - Period: 2026 — present - Role: Founder, solo developer - Team: Solo project - Main result: Built groci.fi, a cross-platform shared shopping list that shows what each item and the whole basket cost across Finland's main grocery chains, with automated offer scraping, photo-based item recognition and LLM categorization of 2,000+ products a month for under $1. ## Context The project solves 2 problems: 1. It's a shared shopping list that is cross-platform and syncs across all devices. A family with iOS and Android can use it, or a team at work with different devices. 2. It automatically scrapes products with prices from Finland's main grocery stores. So it's not just a shared shopping list: when users add an item, they immediately see what it costs in different stores and what their whole basket will cost. There is also separate scraping of current store offers, and users can build a list based on these offers. ## Features in detail ### Authentication - Built a reliable authentication system with Google, Magic Link and Apple sign-in. Authentication is covered by e2e tests with test datasets and email interception. - App-level role management. The app has admins who can delete products from the shared catalog, add and edit categories, and see admin logging pages. These admins are known in advance, so there is dedicated testing and monitoring to make sure attackers can't change their own roles. All role changes are logged and checked automatically. ### Shared shopping list - A shared shopping list with real-time database sync. When someone adds or changes an item, the change is instantly visible to every member of the list. - Member role management lets you give users different roles in a list: who can invite new members, who can add and edit items, and who can only view the list. I added safeguards: users can't give themselves a role higher than their own, and the last list admin can't remove that role from themselves, so there is always at least one admin. These safeguards led to a zero-errors record in role management. - Adding an item to the list is an especially complex and useful feature, described in "Adding an item to the list" below. - Items can be added not only from the site's catalog but also from a store's catalog with a Chrome extension, described in "Adding an item with the Chrome extension" below. ## What I did well ### Adding an item to the list Users can add an item by taking a photo, without searching the catalog. They photograph a barcode or just the product, and a recognition pipeline turns the photo into a list item. When it can, it links the item to a catalog product, so store prices show up straight away. The pipeline tries strategies in a fixed priority order, from cheapest and most accurate to least: 1. **Barcode decoded in the browser** (`@zxing/browser`), matched exactly against our catalog. This path is free and costs no AI credits. 2. **Open Food Facts lookup** by barcode if the product isn't in our catalog. It has a 5-second timeout, and the user can add the item before the lookup finishes. 3. **Claude Vision** for photos without a readable barcode. It reads the digits under the barcode, or the product name and brand when there's no barcode. If it finds a barcode, the pipeline goes back to steps 1–2. 4. **Fuzzy catalog search** by name and brand (`pg_trgm`, up to 3 candidates). The user confirms a match or rejects it. 5. **Fallback**: a plain item named from the extracted name, the Open Food Facts name or the barcode itself. Adding an item never fails. Challenges: Vision calls cost money, so I added per-user AI credits that are deducted atomically. The barcode path never uses them, so it keeps working when credits run out. The UI never waits on slow external sources. Results stream into a bottom sheet, and the "Add to list" button is available as soon as a barcode is known. Every run is logged with the input photo (kept in a separate S3 bucket), the extracted hints and the final result. A dev-only log viewer lets me trace why a photo was matched, or wasn't. Grocy is developed with AI agents and my own [feature factory](https://cv.tony-m.dev/projects/feature-factory/). On top of those, it has its own agents: - An agent that updates the module docs and looks for the impact of changes. It keeps the docs up to date, so users and developer agents can always understand the intent of a feature. This cuts the tokens used in development and minimizes errors where an agent misreads how other modules work from the code. The agent also makes sure a feature's changes don't affect other modules, and that the docs and the code always stay consistent. - A Q&A agent. It's a separate repository that runs every night and contains 10+ agents that test UX and user scenarios, find bugs and check that every Grocy feature works correctly. They record their results in a separate database, and another agent sends reports when an issue was reported by more than three agents. Those issues are worked on first. ### Adding an item with the Chrome extension The extension adds an "Add to shopping list" button right on a product page in an online store. Clicking it adds the product to the shared shopping list automatically, with all the data it needs, such as name, price and category. Challenges: the S-kauppa and K-market catalogs are SPAs. When you switch pages they don't fully update the DOM or the JSON data, so simple parsing doesn't work. I had to track DOM changes and check that the data on the page matched the title, but I automated all of it, and the extension works without errors. When adding a product, it also checks the EAN code and whether the product is in our catalog, and adds it together with the prices from other stores. ### Offer scraping Offers are scraped automatically on a schedule. I set up a VPS with cron that runs the scraping script. It works "carefully" so it doesn't overload store servers and avoids getting blocked. It also collects only new offers, so existing data isn't duplicated. My scraper recognizes 5 types of offers: - A plain discount. - Multi-buy for a set number of items. - A discount on a bundle, when the store lists it as one product but our catalog has several, and we have to group them. - A discount on a weighed product, when the price depends on weight but the store prices a weight that doesn't match other stores. Our scraper correctly recalculates the price per unit of weight. - A discount on a product packed by the store. For example fish, priced per piece, where each fish weighs differently and the law requires comparing price per kg. The scraper correctly recalculates the price per unit of weight and accounts for the packaging. **Challenges I faced**: - Lidl has no catalog and no EAN codes that would identify products unambiguously. I had to use a combination of name, weight and other attributes to match products with other stores. Accuracy is currently 80%, and I'm collecting statistics: every mismatch is logged for further analysis. - Automatic categorization with an LLM and vectors. S-kauppa has over 1,000 categories and K-ruoka over 1,200. On Grocy I kept 700 categories with 3 levels of nesting, but every new product has to be categorized automatically. I set up a system that saves costs and gives good accuracy. With Gemini's embedding model, I created a vector for each category and stored it in the database next to the category. When a product comes in, we create its vector, find the 10 closest categories by similarity, and only those 10 candidates go to the LLM for the final decision. So we don't send all 700 categories to the LLM, which saves budget and keeps the cost of categorizing 2,000+ products a month under $1. I chose Gemini because it's considered the best for multilingual search, but even it struggles with Finnish. I'm now collecting statistics to improve categorization. ## Results ## Stack & skills - **Next.js**: Built the app on Next.js. - **React**: Built the whole UI in React, including a real-time shared list and a bottom sheet that fills in as recognition results arrive. - **TypeScript**: Wrote the whole codebase in TypeScript. - **Server-side rendering**: Render pages on the server. - **PostgreSQL**: Store the catalog, lists and prices in PostgreSQL, with pg_trgm fuzzy search over product names and category vectors stored next to each category. - **AI native**: The project is developed by AI agents with my own feature factory. - **AI agents**: Built project-specific agents — one keeps module docs in sync with the code and checks the impact of changes, and a nightly Q&A system of 10+ agents tests UX and user scenarios. - **Feature factory**: Grocy is developed with my own feature factory. - **Authentication**: Built sign-in with Google, Magic Link and Apple, covered by e2e tests with test datasets and intercepted emails. - **Role-based access control**: Built app-level admin roles and per-list member roles, with safeguards against self-promotion and against removing the last list admin — zero errors in role management. - **Real-time data**: Changes to a shared list show up instantly for every member on iOS, Android and desktop. - **LLM integration**: Used Claude Vision to read barcodes and product names from photos, and an LLM to pick the final category from 10 candidates. - **Vector search**: Created Gemini embeddings for 700 categories and send only the 10 nearest to the LLM, keeping categorization of 2,000+ products a month under $1. - **Web scraping**: Scrape prices and offers from Finland's main grocery stores on a schedule, carefully enough to avoid overloading the stores or getting blocked, collecting only new offers. - **Browser extensions**: Built a Chrome extension that adds products to the list straight from S-kauppa and K-market pages, handling their SPA navigation. - **API integrations**: Look up unknown barcodes in Open Food Facts with a 5-second timeout and a fallback. - **Cost optimization**: Charge AI credits only for paid Vision calls, keep the barcode path free, and use vector prefiltering to cut LLM categorization costs. - **End-to-end testing**: Covered authentication with e2e tests, and run nightly agent-based testing of user scenarios. - **Observability**: Log every recognition run, every role change and every product matching mismatch, with a dev-only viewer for recognition logs. - **Automation**: Run the scraper on a VPS with cron. - **Documentation**: An agent keeps module docs up to date, so people and developer agents understand the intent of each feature. - **Ownership**: Own the product end to end, from idea to development and operations. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) --- # Personal travel and web blog @ site2max.ru (pet project) [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: site2max.ru (pet project) - Period: 2016 - Role: Founder, solo developer - Team: Solo project - Main result: Built and grew site2max.ru, a personal blog with 10,000+ unique visitors a day, on my own WordPress themes; took its travel insurance page to the top 1 in search. ## Context It started as a personal blog after I moved to Thailand. I used it to practice running a project and to develop my own themes and the blocks I needed for WordPress. I stopped working on it when the COVID-19 pandemic began, and later the war in Ukraine, since spending winters in Thailand was no longer possible. [site2max.ru](https://site2max.ru) Unfortunately, the blog was hacked in 2026. I restored its HTML version from the web archive but haven't worked on it since, so it now gets about 1,000 visitors a day and has a lot of errors. ## What I did well I'm personally proud of 2 results. ### A Thailand travel insurance page I took to the top 1 in search This result shows not only promotion skills but also the ability to understand the audience and deliver business results. Travel insurance is one of the few ways to earn from tourist traffic, and competition between blogs and insurance companies is very high. Here is what I did: I split the audience into cohorts by problem — mothers with children, motorbike riders, tourists afraid of exotic diseases, and so on. For each cohort I analyzed real insurance contracts and reviews of them. The result was a large table showing which insurer solves which problem. The page collected 1,000+ real comments. Insurance companies approached me themselves, offering personal discounts and dedicated managers for quick contact. Page: [Travel insurance in Thailand](https://site2max.ru/puteshestviya/straxovka-v-tajlande/) ### A hosting comparison page built on a unique method I collected a list of all hosting providers, then found statistics on how many people signed up and how many stopped using each one within the first year. Based on this data, I built a hosting ranking that accounts not only for popularity but also for user retention. For each hosting provider I added uptime statistics, ping and download speed. The page earned high traffic and positive feedback from users, because it gave unique and useful information for choosing a hosting provider. Page: [Choosing the best hosting for Russia, 2016](https://site2max.ru/tips-for-the-site-owner/vyibiraem-luchshiy-hosting-2016-dlya-rossii/) ## Stack & skills - **WordPress**: Built my own WordPress themes and the custom blocks the blog needed. - **PHP**: Wrote the PHP code of the blog's themes and blocks. - **MySQL**: Ran the blog on a MySQL-backed WordPress. - **Reusable templates**: Developed my own themes for the blog. - **SEO**: Took the Thailand travel insurance page to the top 1 in search engines against blogs and insurance companies. - **Marketing analytics**: Split the audience into cohorts by problem and matched each to insurers by analyzing real contracts and reviews. - **Content marketing**: Built pages with unique data — an insurance comparison table and a hosting ranking based on first-year retention, uptime, ping and download speed. - **Communication**: Insurance companies approached me with personal discounts and dedicated managers for my readers. - **Ownership**: Ran the blog end to end — development, content, promotion. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) --- # Finnish YKI exam preparation service @ yki-testi.fi (pet project) [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: yki-testi.fi (pet project) - Period: 2025 — present - Role: Founder, solo developer - Team: Solo project - Main result: Built yki-testi.fi, a mobile-first practice service for the Finnish YKI language exam, with AI agents generating exam-accurate tasks and 1,000+ Finnish audio files; 2,500+ users a month, top-5 in Google and top-1 in Copilot search, at €0 acquisition and near-zero running costs. ## Context [yki-testi.fi](https://yki-testi.fi) is a set of practice tasks for the Finnish YKI language exam. **Stack:** Next.js, TypeScript, server-side rendering, PostgreSQL. ### The business problem it solves: - Practicing for the exam in conditions as close to the real ones as possible. How the service solves it: - Speaking tasks have crowd noise in the background that recreates the real exam setting, with an explanation of why it's there. It can be turned off. - Timers with the real preparation time, and tasks picked at random. - A lot of work went into collecting real exam tasks (see *Tasks that feel like the real exam* below). ## What I did well ### Tasks that feel like the real exam The tasks are not just generated texts on a topic — they are the work of a team of agents. First, I ran an AI agent in deep research mode over every known source of sample tasks: closed groups where people share tasks after the exam, photos of tasks, PDFs and other documents. Based on the research, I built 2 agents: one generates tasks from a prompt, the other checks them against real exam tasks. The real YKI exam also has traps and special rules for composing tasks. In our generator each of them is a parameter. As in the real exam, some tasks contain traps — about 9 types, spread evenly across the tasks. ### An exam strategy built from 100+ closed forums I ran an AI agent in deep research mode over forums, Reddit and WhatsApp groups in Russian, English, Hindi and other languages to collect tips, recommendations and best practices for language exams. Based on this, I built a help page for users, [YKI tips](https://www.yki-testi.fi/yki-tips), with tips, recommendations and best practices for the exam. ### Finnish audio for listening tasks The site has 1,000+ Finnish audio files with tasks, generated with the [ElevenLabs](https://elevenlabs.io) API. Problems I had to solve: 1. Finnish wasn't fully supported at the time, so every voice had to be picked by hand. 2. Many texts are dialogues with several speakers. ElevenLabs didn't keep a voice tied to a speaker and didn't allow setting it manually. So I split dialogues into separate audio files and merged them with FFmpeg. The whole process is automated with scripts. ### Development run from a phone I work on YKI in my free time — only 1–2 hours a month. So I automated the whole development process to work from a phone: 1. Agents and workflows are orchestrated with my own spec kit, [sdd-spec-kit](https://github.com/Beefeater84/sdd-spec-kit), built for a solo developer working with Vercel and GitHub Projects. 2. The project is covered with tests and has use cases for agents, so they collect the right context for any task. 3. A permanent staging branch has its own credentials for the Stripe sandbox, Google Auth and other services. It runs end-to-end tests of the full flow, including payments and sign-up, and I can check any process by hand before deploying to production — online, from a phone. ### Additional features - The site works in 4 languages. - The site has 2 color schemes. - The front end follows [Feature-Sliced Design](https://feature-sliced.design), with a clear structure split into functional modules. ## Results yki-testi.fi launched in March 2026. So far: - 250 new users a week and 2,500+ users a month (Google Analytics). - Retention: ~5% of users are still active after 4 weeks — a strong figure for this type of project. **Top 5 in search and AI search (SEO and GEO):** - Copilot search: top 1. - Google search: top 5 for key queries. - Customer acquisition cost: €0, thanks to organic traffic. - ChatGPT recommendations: in progress. One ranking experiment failed — and that's exactly what this pet project is for. **Costs:** - €0 running costs, thanks to distributed audio storage and the way the work is organized. Optimized API requests keep even hosting on a free plan. - The only paid plan is the database, to back up paying users. **What I learned:** - Hands-off development fully with AI agents: setting up a deterministic pipeline, automating tests and acceptance criteria, managing the project from a phone. - Working with GEO and agentic search, so that ChatGPT, Claude and Gemini recommend the site for key queries. - Observability with metrics and logging for all key processes. Agents have read-only access to these metrics to monitor the service and collect context for tasks. ## Stack & skills - **AI agents**: Built a two-agent pipeline — one generates exam tasks, the other checks them against real YKI tasks, including ~9 types of exam traps. - **Deep research**: Ran AI deep research over closed groups, photos, PDFs and 100+ forums in several languages to collect real tasks and exam tips. - **Text-to-speech**: Generated 1,000+ Finnish audio files with the ElevenLabs API, hand-picking voices for Finnish. - **FFmpeg**: Split multi-speaker dialogues into separate voice tracks and merged them back with FFmpeg. - **Automation**: Automated audio generation and the whole development process with scripts and agents. - **Spec-driven development**: Run the project in 1–2 hours a month from a phone with my own spec kit for agent orchestration. - **End-to-end testing**: Covered the full flow, including payments and sign-up, with end-to-end tests on a permanent staging branch. - **CI/CD**: Set up a staging branch with its own Stripe sandbox, Google Auth and service credentials before every production deploy. - **Next.js**: Built the service on Next.js. - **TypeScript**: Wrote the whole codebase in TypeScript. - **Server-side rendering**: Render pages on the server for fast loads on phones and for SEO. - **PostgreSQL**: Store users, payments and progress in PostgreSQL. - **Vercel**: Deploy and preview the project on Vercel, still on the free plan. - **Payment integration**: Integrated Stripe payments, tested end to end in a sandbox. - **Authentication**: Integrated Google sign-in, with separate credentials for staging. - **Mobile-first**: Designed the service for practice on a phone — on the go, on walks and while traveling. - **SEO**: Took yki-testi.fi to the top 5 in Google for key queries, with €0 customer acquisition cost. - **GEO**: Took yki-testi.fi to the top 1 in Copilot search; experimenting with ChatGPT recommendations. - **Cost optimization**: Keep running costs at €0 through distributed audio storage and optimized API requests; paying only for database backups. - **Google Analytics**: Track growth and retention — 250 new users a week, ~5% still active after 4 weeks. - **Feature-Sliced Design**: Structured the front end with Feature-Sliced Design, split into functional modules. - **Internationalization**: Made the site work in 4 languages. - **Theming**: Built 2 color schemes for the site. - **Observability**: Set up metrics and logging for all key processes, with read-only access for agents. - **EdTech**: Built a language exam preparation service. - **Ownership**: Own the product end to end — research, content, development, marketing. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) --- # Motion Bro plugin front end @ Motion Bro [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: Motion Bro - Period: 2022 - Role: Front-end Developer - Team: Worked directly with the owner; team of a front-end developer (me), a backend developer and an Adobe plugin developer - Main result: Designed and built the React front end of Motion Bro, a Premiere Pro and After Effects plugin with a built-in effects marketplace; 1,000+ autoplay videos at once without lag, persistent caching over a slow shop API, and instant search across all packs. ## Context Motion Bro is a plugin for Adobe Premiere Pro and Adobe After Effects. It adds a virtual marketplace where different authors sell music, presets and video effects. Users can buy any preset pack in the built-in shop or activate packs bought on Envato. Among the plugin's key features: a separate sound pack that changes the sounds of all compatible videos, and searching for an effect across all installed packs. Detailed description of the features with demo videos: [Motion Bro project overview](https://motion-bro-project.webflow.io/). ## What I did I was responsible for: - System design of the front end. - The front-end architecture and structure. - Front-end technology choice (React). - UI kit development. - Implementation of all elements. Key challenges: - **Performance.** 1,000+ autoplay videos can be shown at once. Videos can have any aspect ratio, so CSS `aspect-ratio` or fixed proportions can't be used. Users can change video size in the settings, and all 1,000 videos must shrink or grow without lag. Users can also change playback speed. - **Caching.** The client's shop runs on WordPress + WooCommerce, and the plugin reaches it via an API that takes 3–4 seconds per request. I implemented caching that persists even after the plugin is reloaded. - **Search across all packs.** Users can search for any effect in all packs at once, across a huge number of deeply nested elements. Settings "bubble up": if a video has no settings, the category's apply; if the category has none, the parent category's; then the pack's. All of this must be resolved and shown instantly. ## Results - 1,000+ autoplay videos of any aspect ratio display at once and resize without lag. - The shop's 3–4 second API responses are hidden behind a cache that survives plugin reloads. - Search and inherited settings across all installed packs resolve instantly. ## Stack & skills - **React**: Chose React and built the plugin's whole front end with it. - **Software architecture**: Designed the system, architecture and structure of the plugin front end. - **UI kit**: Built the plugin's UI kit. - **Performance optimization**: Showed 1,000+ autoplay videos of any aspect ratio at once, resizable without lag. - **Caching**: Built a cache over a 3–4 s shop API that persists across plugin reloads. - **Search**: Built instant search across deeply nested effects in all installed packs. - **API integrations**: Connected the plugin to the client's WordPress + WooCommerce shop via API. - **Adobe plugins**: Built the front end of a Premiere Pro and After Effects plugin. - **Communication**: Worked directly with the product owner. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) --- # Crypto exchange front end @ Crypto exchange (under NDA) [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: Crypto exchange (under NDA) - Period: 2022 - Role: Freelance Front-end Developer - Team: Front-end developer (me), backend development team, project manager - Main result: Built a real-time crypto lending module for 100+ currencies, rebuilt authentication, migrated the front end from JavaScript to TypeScript with type-safe backend contracts, and handed the system over to the client's new in-house team. ## Context In 2022 the war in Ukraine began, and part of our team at [Hislide.io](https://cv.tony-m.dev/projects/hislide/) was in Ukraine. The project was put on hold, and nobody knew for how long. During that time I took freelance front-end projects. One of them was the front end of a crypto exchange. Because I worked as a freelancer under NDA, the exchange and all names and links are kept confidential. ## What I did - To start, as a test of my skills, I worked on the design of static pages. I significantly improved their look, the smoothness of animations and the responsiveness of the interface. The site was built on an early version of React, and handling component state took real skill. - I was fully trusted with a new feature: letting users lend their crypto to the platform for investment and track its statistics. - It was a separate module for managing loans with real-time statistics. - The client deposited a specific cryptocurrency and the platform invested it, so the user had to see a comparison: how their currency would have grown had they kept it, and how much they earned. All of these statistics had to update in real time for 100+ currencies. - Toward the end of the project I was trusted to rebuild authentication from scratch, and to audit and optimize the legacy code. - Migrated the project from JavaScript to TypeScript. Agreed with the backend team on type-safe contracts between the front end and the backend, which made the application much more reliable and predictable. - When the company hired two permanent front-end developers, I handed the whole system over to them with documentation. ## Results - Delivered the crypto lending module with real-time statistics for 100+ currencies. - The TypeScript migration and type-safe front-end/backend contracts made the application much more reliable and predictable. - Thanks to the type-safe contracts and documentation, the two new in-house developers got up to speed quickly and continued development without loss of quality. ## Stack & skills - **React**: Built new features and reworked component state in an early-version React app. - **TypeScript**: Migrated the front end from JavaScript to TypeScript. - **JavaScript**: Audited and optimized the legacy JavaScript code base. - **CSS**: Improved page design, animation smoothness and interface responsiveness. - **State management**: Handled complex component state in an early-version React app. - **Real-time data**: Showed live lending statistics and price comparisons for 100+ currencies. - **Type-safe API contracts**: Agreed type-safe front-end/backend contracts with the backend team. - **Authentication**: Rebuilt the exchange's authentication from scratch. - **Refactoring**: Audited and optimized legacy code. - **Performance optimization**: Optimized legacy code and interface responsiveness. - **Documentation**: Documented the system and handed it over to two new in-house developers. - **Fintech**: Built a crypto lending module with real-time investment statistics. - **Communication**: Agreed API contracts with the backend team and onboarded the new front-end developers. - **Ownership**: Was trusted with a whole new feature end to end, then with authentication and the legacy code audit. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) --- # Presentation template marketplace @ Hislide.io [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: Hislide.io - Period: 2018-01 — 2022-01 - Role: Senior Web Developer - Team: 5 people — senior web developer (me), front-end developer, backend developer, designer, project manager - Main result: Led front-end development of a marketplace for PowerPoint, Google Slides and Keynote presentations; shipped 3–4 traffic-generating services a month and automated competitor sales tracking. ## Context Hislide.io is a marketplace for PowerPoint, Google Slides and Keynote presentations. Presentations made by a team of authors were sold by subscription and individually on the platform, as well as on third-party marketplaces. ## What I did - Was responsible for the platform's front-end development, including the user interface, integration with the backend and performance optimization. - Built a reusable, scalable UI kit to speed up development and keep the interface consistent. - Built many small services that attracted users and redirected traffic to Hislide.io. - A large part of my work was automating competitor tracking and statistics collection. My team collected data on every new presentation added to all known marketplaces and tracked its sales. When a competitor had a successful sale, we passed it straight to the design team, who analyzed the winning cases to create new presentations. - Built cross-platform dashboards in close collaboration with the Product Owner. A typical task: combining sales from the online store module with Google Analytics and Google Search Console data to map the customer journey and see which channels converted best. ## Results - With a very small team we built small services that took other teams months — 3–4 a month. Some of them still run today, for example a custom icon font: [fontkiko.com](https://www.fontkiko.com). ## Stack & skills - **JavaScript**: Developed the marketplace front end and 3–4 small traffic-generating services a month. - **HTML**: Built the user interface of the marketplace and its satellite services. - **CSS**: Styled the marketplace UI and a reusable UI kit. - **UI kit**: Built a reusable, scalable UI kit for faster development and a consistent interface. - **Performance optimization**: Optimized the marketplace front end for performance. - **API integrations**: Integrated the front end with the backend. - **Web scraping**: Automated collection of new presentations and their sales across all known marketplaces. - **Rapid prototyping**: Shipped 3–4 small services a month that took other teams months; some still run, e.g. fontkiko.com. - **Dashboards**: Built cross-platform dashboards together with the Product Owner. - **Google Analytics**: Combined store sales with Google Analytics data to map the customer journey. - **Google Search Console**: Combined store sales with Search Console data to find the best-converting channels. - **Marketing analytics**: Tracked competitor sales and passed winning cases to designers for new presentations. - **Communication**: Worked closely with the Product Owner on dashboards and analytics. - **Ownership**: Owned the platform's front end and the competitor-tracking automation. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) --- # Wedding web invitation startup @ Lovado (co‑founder) [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: Lovado (co‑founder) - Period: 2015-01 — 2017-01 - Role: Co-founder, CTO - Team: 4 people — CTO (me), junior developer, backend/DevOps developer, designer - Main result: Co-founded Lovado, a builder for wedding web invitations, and led its technology and marketing; 1,000+ users in the first year, and the project was later sold to a wedding agency. ## Context We founded Lovado, a platform for creating wedding web invitations. Users could start from a ready-made template or assemble an invitation from blocks, easily customize its design and content, and send it to guests by email. We built 14+ block types, including: - Photo and video galleries - Map integration - RSVP form for guests - Countdown to the wedding day - Social network integration, where guests could post photos after the wedding Other key features: - Every block came in several color schemes; picking one changed the design of the whole invitation. All icons and graphics were made in SVG, which was new at the time. - All invitations were adaptive and displayed correctly on any device, including phones and tablets. - Real-time preview: users saw their changes immediately. - Custom subdomains, so invitations looked more personal and professional. ## What I did I was co-founder and CTO. On the technical side: - Hired a DevOps developer to set up servers and domains, and a junior developer for markup. - Chose the technology stack and designed the architecture and CI/CD processes. - Defined the technical roadmap of the project. - Led the team of developers and the designer. - Developed the platform's key functional blocks. - Ensured invitations were adaptive and cross-browser compatible. - Implemented integrations with external services such as maps and social networks. I also drove the startup's marketing: - Researched competitors in the US and European markets to find their strengths and weaknesses. - Ran extensive SEO keyword research and optimized pages for those keywords. - Built landing pages and used A/B testing to improve conversion. - Set up tracking tags for audiences of cross-platform ad campaigns. - Analyzed campaign performance and adjusted campaigns to improve conversion. - Ran the brand's social media and engaged with the audience to build brand awareness. ## Успешные Use Cases SEO оптимизация: Я собрал и кластереризовал более 2000 кличевых слов по теме, были написаны SEO тексты для каждой группы ключевых слов. В результате большинство клиентов мы получали через органический поиск. А также успешно конокурировали с "Типографиями" и "Магазинами подарков" за ключевые слова "приглашения на свадьбу". ## Results - Lovado attracted 1,000+ users in its first year. - Users gave positive feedback on the platform's ease of use and features. - Demand, however, turned out lower than expected. I believed in the project too much, even though the analytics said otherwise: there were few competitors, their sites had little activity, and search volume was very low. The project did not reach the expected level of success. This also coincided with the birth of my first child, which needed more of my time and attention. - In the end, the project was sold to a wedding agency. **Lesson learned:** trust the data over belief in the idea — validate demand before scaling. ## Stack & skills - **React**: Built the invitation builder's front end with real-time preview in React. - **TypeScript**: Wrote the front-end code in TypeScript. - **Webpack**: Set up the front-end build with Webpack. - **JavaScript**: Built key blocks — RSVP form, countdowns, photo/video galleries. - **CSS**: Made invitations adaptive and cross-browser, with switchable color schemes. - **SVG**: Made all icons and graphics in SVG so they followed the color scheme. - **Reusable templates**: Built 14+ invitation blocks in several color schemes. - **API integrations**: Integrated maps and social networks. - **Software architecture**: Chose the stack and designed the platform architecture. - **CI/CD**: Set up the project's CI/CD processes. - **Team leadership**: Led developers and the designer as CTO. - **Hiring**: Hired a DevOps developer and a junior developer. - **Ownership**: Owned technology and marketing as co-founder, through to the project's sale. - **SEO**: Ran keyword research and optimized pages for search. - **A/B testing**: A/B tested landing pages to improve conversion. - **Marketing analytics**: Researched US/EU competitors, tracked ads and tuned campaigns. - **Social media marketing**: Ran the brand's social media. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) --- # Reusable website templates and CMS themes for Envato @ Envato (independent author) [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: Envato (independent author) - Period: 2013-01 — 2015-01 - Role: Web Developer - Team: 2 people — development (me) and design (my wife) - Main result: Built and sold reusable HTML templates and WordPress and Drupal themes on Envato marketplaces; 150+ positive buyer reviews. ## Context After gaining broad experience with websites and popular CMSs as a [freelancer on FL.ru](https://cv.tony-m.dev/projects/fl-ru/), I decided to focus on building reusable templates for Envato. We built the front end in HTML, CSS and JavaScript, and turned the templates into ready-made themes for WordPress and Drupal. ## What I did - Built reusable templates. This is very different from building a single site: templates must be universal, easy to customize and compatible with many plugins. - Worked on the cutting edge while building these themes: - Was among the first to adopt WebP to optimize images and speed up page loads. - Used SVG graphics and wrote my own JavaScript that recolored them to match the site's color theme. ## Results - 150+ reviews with positive ratings confirm the quality and popularity of the templates. - The templates are now archived, because I no longer update them for new versions of CMSs and web technologies. Those still visible: [GraphicRiver portfolio](https://graphicriver.net/user/site2max/portfolio). ## Stack & skills - **Reusable templates**: Built universal, easy-to-customize website templates compatible with a wide range of plugins, for sale to many buyers. - **WordPress**: Built ready-made WordPress themes on top of our HTML templates. - **Drupal**: Built ready-made Drupal themes on top of our HTML templates. - **PHP**: Wrote the PHP code of WordPress and Drupal themes. - **MySQL**: Built themes for MySQL-backed CMSs (WordPress and Drupal). - **HTML**: Hand-coded the markup of reusable website templates. - **CSS**: Styled reusable templates so buyers could customize them easily. - **JavaScript**: Wrote a script that recolors SVG graphics to match the site's color theme. - **SVG**: Used SVG graphics in templates and recolored them with JavaScript to match the site's color theme. - **WebP**: Was among the first to use WebP in templates to optimize images and speed up page loads. - **Early adopter**: Was among the first to ship WebP images and theme-aware SVG graphics in commercial templates. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) --- # End-to-end website development as a freelancer, #1 freelancer in the category on FL.ru @ Freelance (FL.ru) [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: Freelance (FL.ru) - Period: 2011-01 — 2013-01 - Role: Web Developer - Team: 2 people — development (me) and design (my wife) - Main result: Reached #1 in the turnkey website category on FL.ru, Russia's largest freelance marketplace, within a year; 20 five-star client reviews. ## Context Web development courses had just started to appear, and most companies still had no website. I took a web development course to learn how to build sites from scratch. We worked as a team of two: me as the developer and my wife as the designer. The sites varied widely: business card sites, online catalogs and online stores, including multilingual sites and sites with complex animations. We had hands-on business experience, including working with suppliers, from [Rainbow Smile](https://cv.tony-m.dev/projects/retail_marketing/), so we easily found common ground with clients and understood their needs. ## What I did - Chose Drupal as the CMS: its UI lets you create different page types and place blocks where needed, unlike WordPress, which depends on templates and a PHP developer. - Used MySQL as the database: it integrates well with Drupal and stores data reliably. - Built the front end with HTML, CSS and JavaScript for adaptive, interactive interfaces. - Followed front-end best practices even then: a Gulp build for the markup, SCSS, and a mobile-first approach on every site. - Besides development, connected online payments and deployed each site to hosting. - Built every site so the client could fill it with content, grow it and manage its features on their own, without our constant help. ## Results - Within a year of starting in 2011, reached #1 in the turnkey website category on FL.ru, Russia's largest freelance marketplace. - The profile still shows 20 real five-star reviews: [FL.ru portfolio](https://www.fl.ru/users/2011megapolis/portfolio/). - What made the difference: speaking the client's language and taking every site all the way to production, so clients could update and run it themselves. ## Stack & skills - **Drupal**: Built client sites on Drupal, using its UI-configurable content types and block placement so clients could run the site without a developer. - **MySQL**: Used MySQL as the database behind the Drupal sites. - **HTML**: Hand-coded the markup of client sites from the designer's mockups. - **CSS**: Built mobile-first adaptive layouts for client sites from the designer's mockups, using SCSS. - **JavaScript**: Added interactive interface elements and complex animations to client sites. - **SCSS**: Wrote client site styles in SCSS. - **Mobile-first**: Built every client site mobile-first. - **Payment integration**: Connected online payments for client online stores. - **Website deployment**: Deployed client sites to hosting and launched them in production. - **Git**: Kept client site code under version control in Git. - **Ownership**: Took every client site all the way to production, so clients could fill, grow and manage it on their own. - **Communication**: Used business and supplier experience from retail to speak the client's language and understand their needs; earned 20 five-star reviews. - **Early adopter**: Built every site mobile-first with SCSS and a Gulp build at a time when these practices were only emerging. - **UX**: Designed sites so non-technical clients could add content and manage features themselves, without ongoing help. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) --- # Promo campaigns and new store openings @ Retail chain "Rainbow Smile" [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/) - Candidate: Tony Miasoedov, Senior Software Engineer - Company: Retail chain "Rainbow Smile" - Period: 2009-01 — 2011-01 - Role: Marketing Manager - Team: 6 marketers - Main result: Ran marketing for ~8 store openings a month as the chain grew from 7 to 215 stores; first-week revenue at new stores was +500% over a regular week. ## Context Marketer at the retail chain "Rainbow Smile". ## Responsibilities - Monthly promo campaigns for the chain: - Building the product catalog for promo campaigns. - Planning and coordinating advertising campaigns. - Negotiating with suppliers. - Analyzing the effectiveness of marketing activities. - Marketing for new store openings: - Coordinating with the leasing and delivery teams to get each store's dimensions for planning and ordering outdoor advertising. All premises were rented and each one was unique. - Organizing opening events for new stores, including promotions and local media coverage. - Analyzing traffic and sales after each opening. ## What I did - While I worked there, the chain grew from 7 to 215 stores, and its footprint expanded from one city to all of Northwest Russia and the Central region. We opened about 8 new stores a month, with 2 weeks from a store's announcement to its full opening. - Organized promo campaigns with global brands, including Procter & Gamble and Unilever, early in my career. ## Results - First-week revenue at new stores was +500% over a regular week, thanks to the opening promotions. - The chain grew from 7 to 215 stores; about 8 openings a month, each launched on schedule. ## Stack & skills - **Ownership**: Owned the chain's monthly promo campaigns and new-store opening marketing end to end, from planning to post-launch analysis. - **Meeting deadlines**: Prepared marketing for ~8 new store openings per month, with 2 weeks from a store's announcement to its full opening; every opening launched on its fixed date. - **Communication**: Negotiated with suppliers, including Procter & Gamble and Unilever, and worked with local media for store openings. - **Work organization**: Coordinated leasing, delivery and outdoor-ad vendors in parallel for unique rented premises while the chain grew from 7 to 215 stores. - **Trade marketing**: Built the product catalog for the chain's monthly promo campaigns and planned the campaigns. - **Supplier negotiations**: Agreed promo terms with suppliers, including global brands Procter & Gamble and Unilever. - **Marketing analytics**: Measured promo effectiveness and new-store traffic and sales after each opening. - **Event management**: Organized opening events for new stores, including promotions and local media coverage. - **Outdoor advertising**: Planned and ordered outdoor advertising for each new store, sized to its unique rented premises. [Full CV index — Tony Miasoedov](https://cv.tony-m.dev/)