Семён
Fullstack-розробник
- Age:
- 24 years
- City of residence:
- Vinnytsia
- Ready to work:
- Kyiv, Vinnytsia
Contact information
The job seeker has entered a phone number .
Name, contacts and photo are only available to registered employers. To access the candidates' personal information, log in as an employer or sign up.
You can get this candidate's contact information from https://www.work.ua/resumes/18869349/
Uploaded file
This resume is posted as a file. The quick view option may be worse than the original resume.
Full-Stack Developer · React · TypeScript · Node.js
ABOUT ME
Four years in and I still find the work genuinely interesting - partly because working in an outsourcing
company gave me a chance to touch very different domains. I've built tools for event organizers,
Semen Struchev worked on a registration platform used by athletes worldwide, shipped a CRM that doctors open on a
Full-Stack Developer tablet mid-appointment, and built an analytics platform for comparing IT companies.
CONTACT Most of my work has been with React and Node.js, their ecosystems, both relational and
Email non-relational databases, and AWS for infrastructure and deployment. Lately, I've been actively
[
integrating AI into my development workflow - not just for isolated tasks, but as a core part of the
Phone
[
Location security analysis, and test generation. The goal is always to move faster without losing control of
Vinnytsia, Ukraine what actually gets shipped.
[
EXPERIENCE
TECH SKILLS
React / Next.js Events Manager Platform
Full-Stack Developer · Jun 2024 - May 2026
TypeScript
NestJS / Node.js The project consisted of three connected parts: the main internal CRM used by the team, a React
PostgreSQL customer application that clients embedded as an iFrame or shared as a link on their own sites for
event registration, and a legacy Backbone.js version of that same customer app still in use by older
Redis / BullMQ
clients. The backend ran on NestJS - originally built on Express and later migrated.
REST / GraphQL / tRPC
Docker / AWS Worked with AWS for file storage and email delivery: S3 for event documents and participant exports
with presigned URLs for secure direct browser uploads, SES for transactional emails (confirmations,
reminders), S3 lifecycle rules to archive files from completed events automatically, and Lambda for
LIBRARIES & TOOLS PDF generation. Infrastructure described as code with Terraform.
Zustand TanStack Q. Worked on several caching-related bugs across the app - stale data showing up after updates, flicker
Tailwind CSS Zod Storybook
on page transitions, inconsistent state between tabs. One of the trickier ones: WebSocket updates
and TanStack Query were both trying to own the same state, causing conflicts on the main
TypeORM Prisma Swagger
dashboard. Fixed by letting WebSocket patches update the cache directly instead of triggering full
Vitest Playwright Git/CI-CD refetches.
Terraform Built a timeline-based event scheduling board on top of FullCalendar - drag-to-reschedule across
days, real-time conflict highlighting when slots overlap, and undo/redo history. Extended it heavily
with custom interaction logic, Immer-backed state and TanStack Query cache.
AI TOOLS
Cursor Claude API Copilot Worked on a separate customer application embedded as an iFrame on client websites - end users
registered for events directly through it. Handled cross-origin messaging, responsive layout
MCP Protocol Prompt Eng.
constraints inside iFrames, and smooth integration with the main platform API.
AI-TDD
Maintained a separate legacy Backbone.js application running in parallel - occasional bug fixes and
patches, keeping it stable without disrupting active development on the main React app.
LANGUAGES
Towards the end: set up a GitHub Actions workflow that runs an AI agent on every PR - it reviews the
Ukrainian - Native
diff and posts inline comments with suggestions, which reduced the back-and-forth during code
Russian - Native
review.
English - Upper-Intermediate
TypeScript React NestJS Zustand Immer TanStack Query FullCalendar
EDUCATION
Backbone.js Node.js PostgreSQL Storybook Swagger AWS S3 AWS SES
Kharkiv Polytechnic Institute
B.S. Software Engineering Terraform Cursor Claude API Docker
2019 – 2023
CRM for Dentists
Full-Stack Developer · Jun 2023 - May 2024
CRM for private dental clinics covering the full clinic workflow: patient records, appointment scheduling,
treatment history and financials. One of the interesting parts was the supply side - clinics could order
dental prosthetics and materials directly through the platform and track the delivery status of each lab
order, since custom items like crowns or implants often take days to arrive from the dental lab.
Built the lab order module end-to-end - integrated third-party dental lab APIs so clinics could place
and track prosthetic orders (crowns, implants) directly in the platform, with a polling fallback for labs
without webhook support.
Set up Redis/BullMQ job queue for automated SMS/email reminders: exponential-backoff retry,
Dead Letter Queue for failed jobs, BullMQ Board monitoring dashboard.
Worked with the existing PostgreSQL schema: extended it for scheduling as a time-interval conflict
graph with fast availability queries via GiST index, wrote TypeORM migrations keeping each one
reversible.
The UI was tablet-first by design - doctors use it in treatment rooms between patients, so the
interface had to work well on a touchscreen without relying on a keyboard. Built with TanStack
Query, Zustand, React Hook Form + Zod; components in Storybook, covered with Vitest and
Playwright.
Integrated FullStory for session recording - helped the team quickly spot UX issues.
TypeScript React NestJS TypeORM PostgreSQL Redis BullMQ
TanStack Query Zustand Tailwind CSS Zod Vitest Playwright FullStory
IT Outsourcing Companies Rating Platform
Full-Stack Developer · Mar 2023 - May 2023
A platform for people looking to hire an outsourcing company for their project - they could browse and
compare IT companies by ratings, reviews and specialisation. Frontend on Next.js with server-side data
aggregation and an interactive dashboard, backend on Express.js.
Developed the analytics dashboard in Next.js: company comparison views, popularity trend charts
over time, filtering by tech stack, company size and region.
Migrated the existing dataset from MongoDB to PostgreSQL - the original flexible schema worked
fine for collection, but made cross-company comparisons and time-series aggregations painful. After
migration, complex ranking queries dropped from seconds to milliseconds.
Developed a web scraping pipeline in Express.js to collect company ratings from external sources -
integrated a third-party proxy rotation service to distribute requests across multiple IPs and avoid
blocks. Handled rate limiting, retries and data normalisation.
Set up scheduled data sync jobs to pull fresh ratings from external sources and keep the dashboard
up to date without manual updates.
TypeScript Next.js PostgreSQL MongoDB Express.js TypeORM Chart.js
REST API
Sports Events Registration Platform
Frontend Developer · Jul 2022 - Feb 2023
A large sports platform used globally - athletes register for competitions, manage their teams and follow
live results. The product had two sides: a public registration app where users signed up for events, and
an internal CRM for organizers to track registrations, manage schedules and monitor athlete
participation across events.
Built an interactive world map of registered event participants using Mapbox GL JS and supercluster
for dynamic point clustering - handled hundreds of thousands of user pins without performance
issues by clustering at multiple zoom levels and rendering only visible viewport data.
Worked on the registration app - a separate product where users signed up for events: multi-step
forms, Stripe payment integration, real-time status updates over WebSocket.
Built React components for competition management: participant bulk-actions, drag-and-drop
bracket editor, schedule visualisation. State via Redux + Redux-Saga handling concurrent async
flows - retry logic, race conditions, partial failure recovery.
Built dynamic registration forms for the internal CRM - form structure and fields were driven by event
settings configured in the CRM, so the same form engine had to handle very different layouts
depending on the event type.
Reduced initial JS bundle size via route-based code splitting and dynamic imports - improved FCP
across the board.
TypeScript React Redux Redux-Saga Material UI Mapbox GL JS supercluster
WebSocket Stripe Webpack Jest
RECENT SELF STUDY
Studied MCP - built a small server in TypeScript that exposed local project tools to Claude as
structured actions. Helped me understand how AI agents interact with external services and what
good tool design looks like in that context.
Studied security pre-commit hooks - built one using the Claude API that checks code diffs for
common vulnerabilities before each push.
Built a pet project using Supabase and tRPC - Supabase handled auth, real-time, and storage so I
didn't need a custom backend, while tRPC kept the API types in sync between frontend and backend
automatically.
Similar candidates
-
Fullstack-розробник
25000 UAH, Kyiv -
Fullstack-розробник
45000 UAH, Dnipro, Kyiv, Remote -
Fullstack Developer
Dnipro, Zaporizhzhia, Kyiv -
Fullstack-розробник
15000 UAH, Zaporizhzhia, Kyiv , more 2 cities -
Fullstack Developer (Frontend-heavy)
80000 UAH, Kyiv, Remote -
Backend, FullStack PHP-Developer
Kyiv, Remote