Igor Shevelev

Process - How I work

A closer look at how I take a feature from an idea to something running in production.

Requirements & Planning

Every feature starts with understanding the requirements — reading through specs, mockups, and existing code, and asking questions early when something is ambiguous. On a large product like Mevalim, that often means reviewing designs alongside real production data and existing patterns across the platform.

Once the scope is clear, I break the work into manageable steps and flag dependencies on backend APIs or design decisions early, so the team isn't blocked later in the process.

What this includes

  • Reading specs & mockups
  • Reviewing existing code & patterns
  • Flagging edge cases early
  • API & data contract review
  • Breaking work into steps
  • Aligning with design & backend

Build & Collaborate

I implement the feature with React, Next.js, and TypeScript, keeping components reusable and state predictable with Zustand or Redux depending on the project's existing patterns.

I work closely with backend engineers on API contracts, with QA on test scenarios, and with designers on the finer visual and interaction details — including responsive behaviour and RTL layouts where relevant.

I also use AI-assisted tools like Cursor and Codex as part of my workflow, always reviewing and validating generated code myself before it goes anywhere near production.

Ship & Iterate

Before shipping, I test across devices and edge cases, and coordinate with QA on anything that needs a closer look.

Once a feature is live, I keep an eye on how it performs in production and stay open to feedback from users, teammates, and stakeholders.

I treat shipping as the start of a feedback loop, not the end of the task — refining details, fixing edge cases, and improving performance as needed.

What this includes

  • Cross-device testing. Checking layouts and interactions across breakpoints, browsers, and locales, including RTL.
  • QA collaboration. Working with QA to cover edge cases and confirm the feature behaves as expected before release.
  • Post-launch refinement. Monitoring, fixing issues, and iterating based on real usage and feedback.