Dmitry Shishov standing with his arms crossed

Dmitry Shishov

AI Engineer, Developer and Product Designer

Just envision it. Dmitry turns ideas into viable, functional and effective digital products powered by AI, from UX/UI concepts and interactive MVPs to shipped, scalable code.

In numbers
0+ years of working experience
0 full brand and product ownerships
0k+ lines of Python and TypeScript shipped
0+ visuals created
0 spoken languages
Eng Spa Rus Cat Fra Srb
0+ modern tools integrated
Four pillars

What I bring to the table

AI Engineering

  • AI integration: voice, chat and actions inside your products
  • Context engineering so AI reasons over your live data, not generic answers
  • Whatever model fits the job, with 3 models across two providers swapped freely
  • Secure inference backends with per-token cost control, 13 in production

AI-Augmented Development

  • First app / web app / landing page iterations in under 24 hours
  • React, React Native, TypeScript, and Python code alongside AI-Augmented workflow
  • From landing pages with payments to full web and mobile apps
  • Whole products built: frontend, backend and deployment

Tech Product Management

  • Full product analysis, deep insights and quick product solutions
  • End-to-end ownership from first concept to shipped product
  • KPI-driven decisions and full web presence management
  • Clear communication across teams, clients and stakeholders

Product and Brand Design

  • Analytical approach to branding and qualitative UX and UI implementation
  • Figma design systems and interactive prototypes
  • Complete visual identities and standing brand guidelines
  • One consistent design language from first sketch to shipped screens
Toolbox

Tools I reach for daily

01AI workflow

  • Claude Code
  • Codex
  • Cursor
  • Google AI
  • Artlist

02Design and media

  • Figma
  • Canva
  • DaVinci Resolve
  • Screen Studio

03Code

  • React & React Native
  • Python
  • TypeScript
  • JavaScript
  • HTML5
  • CSS
  • VS Code

04Version control

  • GitHub
  • GitLab

05Backend, environment and tooling

  • Supabase
  • Docker
  • Postman
  • Expo
  • Vercel
  • Render

06Web and analytics

  • WordPress
  • Elementor
  • Google Search Console
  • Google Analytics

07Business operations

  • Stripe
  • Google Admin Console
  • CRM Systems
  • Microsoft 365
  • Meta
Selected work

Products I own end to end

01

Gymmate

An AI exercise coach, now an iOS app in TypeScript over a Python backend. One short chat and they get a four-week plan for their strength level, every session with its sets, reps, rest and cues, refined in plain language or spoken to from a locked screen that starts the exercise, runs the rest and answers back.

Join the test

A plan read in a gym, not at a desk

The exercises are not the missing piece. Every workout builder already has them, SimplyFitness’s among them. What they leave to the user is the assembly: the split, the movements, every set, rep and load, again and again for each session of the month, slow and entirely manual, and all of it learnt before the app gives anything back. Gymmate does that work instead: a few questions in a chat, then a personalised month that can be changed by saying so in a message. And it belongs on a phone, because the plan is read one set at a time, standing up, with a rest running.

OutputThe manual half of a workout app handed to an assistant, and safety rules that outrank the prompt: never diagnose, never through an injury instead of around it, never a load their numbers don’t support.

A coach’s questions, then one card at a time

The intake is still a chat that asks one thing at a time and pulls the values out of what they say, because “about 180 pounds” and “I can bench my bodyweight” are answers a set of number inputs would have rejected. “I don’t know” starts that group at Novice and gets calibrated in week one, and what is still missing is decided server-side, so the interview ends when that list is empty. The month then reads as a card per movement, carrying its load, its cue, its picture and its stopwatch. Hold one down and it becomes what the chat is about; press its target and the session is under way, in iOS liquid glass, in either theme.

OutputThree tabs in React Native, glass throughout, read one-handed between sets in a noisy gym.

TypeScript on the phone, Python where the numbers are

Expo, React Native, React 19 and Zustand on the phone; a FastAPI backend behind it where every call to Claude goes through one module and the key never reaches the device. Plans come back as structured objects: the shape is a tool schema and the call is forced with tool_choice, so what arrives is already validated, with no JSON to parse, and each key renders straight to a card. The model never sees the whole exercise library either: a local filter puts only what this person can lift in front of it, so a prescribed movement is one it was shown, and a name outside the library is rejected server-side rather than drawn as a blank tile.

The arithmetic stays in Python: BMI, one-rep-max estimates, the five-level banding, every date in the four weeks. The static half of the system prompt is cached; Haiku throughout, since every call happens while they wait. The rest timer is SwiftUI written from TypeScript: two dates go up once and iOS draws the count while the phone sleeps.

OutputRoughly 7,800 lines of TypeScript over 7,100 of Python: validated structured output, a closed library, cached prompts, and native work where only native does.

Changes in their own words, and an account behind them

Refinement happens in plain language: a routing tool turns “swap the deadlifts for something my back can handle” into an edit of the card they are holding, rewritten against that card’s own schema, so a misread request is one wrong card, never a rewritten month. Said out loud it needs no app: a Control Center button records through a locked screen — the rest card there is what lets it hold the microphone — and the same assistant starts the exercise, runs the rest, answers anything about the gym, their level or the plan, and reads it back. On screen it streams over SSE, cites its form notes and finds a video by search, every link checked. Accounts came with it: Supabase behind the same backend, the anon key stays there, their token goes up, and row-level security picks the row.

OutputNatural-language editing spoken or typed, grounded links, a month that still goes in a gym bag, and one row nobody else’s token can reach.

Metered, tracked, and on TestFlight

A card starts when its target is pressed and is spent when the rest has run its whole length once per set, so what they actually did is recorded beside what was prescribed. A week before the month runs out the app asks five direct questions, and the next one is written from the answers rather than from the interview again. Every call is billed by the token, so an account gets five dollars a month and a phone with no account a dollar, counted in a ledger that can only be added to.

The backend ships as a Docker image, the app builds through EAS, and every decision above lives beside the code.

GymMate on iPhone: the profile with BMI, goal and level; a week of sessions with prescribed loads and rest timers; and the assistant raising a bench-press max on request
02

Mentor

A holistic lifestyle iOS app powered by AI that grades six key areas of your life and coaches you to your prime, daily. Applied AI engineering at its core: context from live user data, streaming tool use that acts on real plans, voice input, 13 edge functions.

getmentor.tech Join the test

Defining what an AI habit companion actually has to do

An idea on paper. No product, no code, no interface. The first job was turning that concept into a defined product: what does an AI habit companion actually do that a notes app or a generic chatbot can’t? The answer shaped everything. It has to know the user’s real state, and it has to act on their plan rather than describe good intentions. I mapped the core loop (capture, plan, do, reflect) and decided early that the AI would be an applied system, not a chat box bolted onto an app.

OutputA clear product definition, a prioritized feature set, and the architectural constraint that drove every later decision.

A liquid-glass design system across 30+ screens

Built the interface around iOS’s liquid glass design language, with a Figma token system carrying type, color, spacing and motion consistently across 30+ screens. Intuitive design was treated as core engineering work here, not decoration. A habit app only earns repeat use if every interaction feels effortless, so friction in the daily loop was a functional bug, not a polish item.

OutputA complete, consistent design system and screen set validated before implementation.

The grounded, tool-using AI layer at the heart of the product

The heart of the product. Users talk to it by voice through OpenAI Whisper or by text, and a custom context-engineering layer assembles every request from their live profile, habits and progress, so the model reasons over grounded current state rather than generic advice. A system prompt shapes tone, structure and what the assistant is allowed to advise. Because that context grows with the user, I built context-window management and token accounting into the pipeline to keep cost and latency predictable.

On top sits a streaming Claude integration with tool use, giving the model defined operations to read and modify scheduled activities and the long-term plan, so the assistant acts on the app’s data instead of just talking about it. Web search extends that reach outward, surfacing a relevant video or academic paper when a goal calls for it.

OutputAn AI layer that is grounded, capable of taking action, and economically viable at scale.

React Native and Supabase wired around the inference layer

React Native, Expo, React 19 and Zustand on the frontend, wired to the design tokens. A complete Supabase backend behind it: PostgreSQL with row-level security, auth, 9 Deno edge functions acting as a secure inference and orchestration layer, and timezone-aware push notifications so reminders land at the right moment wherever the user is. Roughly 20,000 lines of TypeScript in total.

OutputA fully featured product with the inference layer kept server-side and secure.

Live in TestFlight beta, structured for a growing team

Shipped to beta on TestFlight, where real users now run the daily loop against real data. The codebase and design system were structured for handoff from the start, and the team is currently expanding around it: a live iOS app in beta, plus a foundation another developer can pick up and extend.

Mentor on iPhone: the Focus Zone day list with activities being checked off, the assistant answering what is left for today, and the six life areas above the brain view
03

Midwife

A pregnancy AI companion, now an iOS app. She answers a short set of questions in a chat, once, and gets a personalised plan for her trimester and her exact week that she can anytime refine in plain language and even take away as a PDF. Expo over a FastAPI backend.

Join the test

What the app must do, and what it must never do

Two halves, decided together. What it must do: turn one short conversation into a plan for the trimester and the week she is actually in, covering nutrition, symptoms, her baby and the appointments due now, that she can change by asking, and derive her week, trimester and BMI rather than ask for them, because no one knows their own day count. And it belongs on a phone, which is where a plan for a week is actually read. What it must never do: diagnose, touch a medication, comment on her weight. Red flags bypass guidance for a contact-your-provider callout, in any week.

OutputA product definition in two halves: an intake reduced to what only she can answer, and safety rules that outrank the prompt.

A conversation instead of a form, a phone screen instead of a page

The intake is a chat that asks one thing at a time and pulls the values out of what she says, because “5 foot 6” and “I’m 20 weeks” are answers a set of number inputs would have rejected. What is still missing is decided server-side, so the interview ends when that list is empty. The plan is then eleven cards she thumbs through — nutrition, symptoms, her baby with visuals, the visits to book — drawn on iOS 26’s own glass.

OutputOne token file carrying both themes, and four native tabs.

A phone in TypeScript, a model graph in Python

Expo, React Native, React 19 and Zustand on the phone; a FastAPI backend behind it where every call to the model goes through one module and the key never reaches the device. Both plans come back as structured objects: the shape is a tool schema and the call is forced with tool_choice, so what arrives is already validated, with no JSON to parse, and each key is one card. Strict mode is off deliberately: it fills a blank field with a placeholder rather than leaving it out.

The weekly plan is a LangGraph state machine rather than a chain: search first, then a conditional edge that forces the schema once the results are in context. Streaming is reserved for the one thing still prose, the assistant, over SSE.

OutputRoughly 5,300 lines of TypeScript over 3,300 of Python: LangChain on gpt-5.6-luna, validated structured output throughout.

Tools outside the model, and an account

The week links a real article, so the model is never allowed to write a URL from memory: a hosted search is locked to one domain and the plan cites what came back. Changes happen in her own words: a routing tool turns “swap the lentils” into an edit of one card, rewritten against that card’s own schema. Accounts came with the phone: Supabase fronted by the same backend, so the anon key never ships in the binary, and row-level security picks the row.

OutputGrounded links, natural-language editing, and a plan kept in a single row that nobody else’s token can reach.

Current on her phone, and shipped from two places

Her copy is the one that lasts: the whole plan sits on the phone and is handed back to a restarted server under the same id, regenerating nothing. Her week is counted again from her dates every time she opens it, so what the calendar has moved past is fetched again, the trimester band with it. Any card can be double-tapped to sit above the chat about it.

The backend ships as a Docker image, the app builds through EAS, and every decision lives beside the code.

Midwife on iPhone: the profile of dates and details she gave, the week 11 plan with her baby, an affirmation and nutrition, and the chat with suggested questions
04

KenAI

Guided learning tracks that build job-ready skills through real output, not another course. Landing page and React web app shipped end to end with Stripe subscription checkout; UX/UI designed in Figma and built alongside a remote back-end developer.

kenai.tech

A working backend with no way for anyone to use it

A working backend with no way for anyone to use it. No landing page, no interface, no path from visitor to paying subscriber. I read the backend as the source of truth (endpoints, auth, chat context, subscription logic) and sat with the founder to translate his concept into intended user outcomes. Then mapped the critical path end to end: land, sign up, 7-day trial, chat, plan selection, subscribe, plus every branch off it.

OutputA clear picture of what the system could do, and the flows that would expose it to real users.

Wireframes through to a validated Figma prototype

Wireframes for structure, then a visual system in Figma covering type, color, spacing and components, built into interactive prototypes the founder could click through. Pressure-testing flows in a frame is faster and cheaper than fixing them in code.

OutputHigh-fidelity designs and a validated prototype for both the landing page and the app.

A React and TypeScript front end shipped in vertical slices

Scaffolded a React and TypeScript codebase with maintainability as the priority, then shipped the landing page first to give the product a public face. From there, built the app in vertical slices: registration, AI chat with context, profile, trial, plan selection, subscription.

OutputA structured, scalable front end delivered feature by feature rather than in one large drop.

Wiring every interface to live server-side logic

The collaboration-heavy phase. Working remotely alongside the backend developer, I wired each interface to live server-side logic (auth tokens, chat context, trial countdown, subscription state), defining API contracts together where they were ambiguous. Then tested the unhappy paths: day 8 of a 7-day trial, declined cards, dropped connections mid-chat.

OutputA front end running on real data, with the edge cases closed.

Continuous delivery on Vercel, landing page and app live

Deployed on Vercel with GitHub-driven continuous delivery, so every change is versioned, previewed and released without ceremony: a live landing page and fully functional web app, plus a workflow where the next improvement ships in hours.

05

Magii

An AI orchestrator inside corporate messengers that turns plain requests into finished operations. Landing page built end to end with design, code, SEO and a Bitrix CRM funnel, plus application mockups spanning sales, logistics, HR and IT use cases.

magii.io

Getting the product out of the founder’s head

A product that existed almost entirely in the founder’s head. No landing page, no app mockups, no investor or client presentations, no diagrams explaining how the thing actually works. The first job was getting the vision into a shared form. Magii is a B2B AI assistant that acts as a single operational window for companies, letting employees handle CRM updates, HR requests and IT tickets directly through everyday messengers instead of switching between internal systems. I worked through the core use cases (sales, logistics, HR, IT support) and the mechanics behind them, because you can’t design an interface or write a pitch for a product nobody has articulated yet.

OutputA documented understanding of what the product does, who it serves and how it works, agreed across product, design and sales.

Diagrams that make a structural product visible

Turned the concept into visual explanation: schemes and diagrams showing how the assistant sits between employees and their existing systems. This step is often skipped, but for a product whose value is structural rather than visual, a clear diagram does more work than any amount of copy. It also gave the internal team one shared picture to build and sell from.

OutputVisual explanations of the product’s function, usable by engineering, design and sales alike.

Mockups turning each use case into a concrete interface

Designed the mockups for the Magii application, translating each core use case into a concrete interface concept the team could build from. The goal was to make the abstract operational promise tangible: this is what a logistics request looks like, this is what an HR flow looks like.

OutputInterface concepts that gave the build team a clear target and gave stakeholders something real to react to.

A landing page wired into the Bitrix CRM funnel

Developed the Magii landing page end to end, from visual design through technical implementation. I optimized the site for SEO and built the backend conversion funnel connecting the site’s lead forms directly to Bitrix CRM, so every inquiry is captured and routed without manual handling. A landing page that generates leads but drops them isn’t finished.

OutputA live, discoverable site with an automated path from visitor to qualified lead in the CRM.

Decks and 2-pagers the sales team pitches with

Created the visual assets carrying the product into the market: presentation decks and 2-pagers used in client meetings and pilot discussions. Same identity, same story, same diagrams as the site, so a prospect who finds the page and then sits in a meeting encounters one consistent product. The result is a complete set of materials the sales team uses in live client and pilot conversations.

06

CleverIS

Complete brand identity and web presence for an international school in Serbia. Logo, palette, messaging and values, now its standing brand guidelines, plus landing pages for the onsite campus (250+ students) and the KenAI-integrated online division.

Onsite school Online school

One school, several competing identities

An established school with a fractured identity: different logos in circulation, no fixed brand system, no landing page and no clear message about what the school stands for. I audited what existed and where it conflicted (competing logo versions, inconsistent materials, messaging that changed depending on who was speaking), then worked with leadership to define what the school actually stands for, and looked at the audience the identity has to serve. Parents choosing a school are making a high-trust decision, and inconsistency reads as instability.

OutputA clear picture of the fragmentation, and an agreed foundation of positioning and core values to build the identity on.

A complete visual identity built as one system

Created the school’s complete visual identity from the ground up: logo, color palette, typography, messaging and core values, built as one coherent system rather than a set of assets. Every choice was tied back to the positioning agreed in discovery, so the look and the words say the same thing.

OutputA single, defensible identity replacing the versions that had been competing with each other.

Brand guidelines that hold without policing

Turned the identity into standing brand guidelines, which are now the school’s reference point across both digital channels and physical materials. Guidelines matter more than assets here, because the original problem wasn’t a bad logo, it was the absence of a rule that kept everyone using the same one.

OutputConsistent application organization-wide, and a system that holds without me policing it.

A landing page built around the application path

Designed and developed the landing page for the onsite campus in Novi Sad, which serves 250+ enrolled students across primary, secondary and pre-university levels. The page carries the new identity and, more importantly, communicates clearly: what the school offers at each level, who it’s for and how to apply. The application path was treated as the primary job of the page, not an afterthought.

OutputA live landing page that presents the school coherently and moves visitors toward enrollment.

Higher site conversion, higher application rates

The redesign produced a measurable increase in both site conversion and application rates, and the alignment across branding and communications is driving a significant rise in new student volume. Throughout, I act as a key decision-maker on brand and product direction, with the design and messaging choices I put forward adopted directly by leadership. These are results the school can see in enrollment numbers, plus an identity and web presence that keep working as it grows.

Let’s work together!

One idea is all you need. Dmitry handles the design, the code and the brand, from first prompt to shipped product.

Service