⭐ TypeScript Engineer · Available on Upwork
TypeScript React Next.js Node.js Full-Stack

TypeScript Engineer
Building Production-Grade Applications

Illya Pihovych — freelance TypeScript developer specializing in React, Next.js, and Node.js. I architect and build scalable web applications with clean code, comprehensive testing, and modern best practices. Available for hire on Upwork for projects of any size.

5+

Years Experience

50+

Projects Delivered

99%

Client Satisfaction

24h

Avg Response Time

What I Can Build For You

From MVP to enterprise platform, I deliver production-ready TypeScript applications with attention to quality, performance, and maintainability.

⚛️

React Development

Modern React applications built with hooks, TypeScript, and best practices. From single-page apps to complex dashboards with state management, routing, and data fetching.

  • React 18 with hooks and Suspense
  • State management (Redux, Zustand, TanStack Query)
  • Custom hooks and reusable components
  • Accessibility (a11y) compliant
  • Comprehensive testing coverage

Next.js Development

Full-stack Next.js applications with App Router, Server Components, and built-in API routes. Optimized for performance, SEO, and developer experience.

  • App Router and Server Components
  • Static Generation (SSG) and SSR
  • API Routes and Route Handlers
  • Incremental Static Regeneration
  • SEO-optimized metadata
🖧

Node.js & APIs

Scalable backend services and APIs built with Node.js. RESTful and GraphQL endpoints with proper authentication, validation, and error handling.

  • Express, NestJS, Fastify frameworks
  • RESTful API design and GraphQL
  • JWT, OAuth, session management
  • PostgreSQL, MongoDB, Redis
  • Prisma, TypeORM, Drizzle ORMs
🔍

Code Review & Refactoring

Improve your existing TypeScript codebase with thorough code reviews, strategic refactoring, and technical debt reduction without disrupting delivery.

  • Comprehensive code audits
  • JavaScript to TypeScript migration
  • Technical debt assessment
  • Architecture review and improvement
  • Performance optimization

Performance Optimization

Make your applications faster with systematic performance analysis, bundle optimization, caching strategies, and Core Web Vitals improvement.

  • Bundle analysis and optimization
  • Code splitting and lazy loading
  • Image and asset optimization
  • Caching strategy implementation
  • 90+ Lighthouse score targeting
🔧

Technical Consulting

Expert guidance on architecture decisions, technology selection, team practices, and development workflows to set your project up for success.

  • Architecture planning and review
  • Technology stack evaluation
  • CI/CD pipeline design
  • Team training and mentorship
  • Best practices implementation

0+

Years Professional Experience

0+

Projects Successfully Delivered

0%

Client Satisfaction Rate

0h

Average Response Time

Technologies I Work With

A curated selection of modern, battle-tested technologies for building reliable, maintainable applications.

Languages & Core

TypeScriptJavaScriptNode.jsES6+HTML5CSS3

Frontend Frameworks

ReactNext.jsRemixGatsbyViteCreate React App

State Management

Redux ToolkitZustandJotaiTanStack QueryReact ContextRTK Query

Styling

Tailwind CSSCSS ModulesStyled ComponentsEmotionRadix UIHeadless UI

Backend & APIs

ExpressNestJSFastifyGraphQLtRPCREST

Databases & ORM

PostgreSQLMySQLMongoDBRedisPrismaTypeORM

Testing

VitestJestReact Testing LibraryPlaywrightCypressMSW

DevOps & Deploy

DockerVercelNetlifyGitHub ActionsAWSGCP

How I Work With Clients

A structured approach to delivering quality software while maintaining clear communication and transparent progress.

1

Discovery

We start with a thorough understanding of your goals, users, technical requirements, and success metrics. I ask questions to clarify scope and identify potential challenges early.

2

Planning

Based on discovery, I create a technical approach, architecture plan, and detailed timeline. You receive a clear breakdown of milestones, deliverables, and pricing before any code is written.

3

Development

I build in iterations with regular check-ins, preview deployments, and transparent progress tracking. You see working software early and can provide feedback throughout the process.

4

Delivery

The project goes through comprehensive testing, performance validation, and security review. I provide documentation, knowledge transfer, and post-launch support to ensure success.

Feedback From Past Projects

Don't just take my word for it. Here is what clients have said about working with me on Upwork and directly.

★ ★ ★ ★ ★
"Illya delivered our SaaS platform ahead of schedule and the code quality exceeded expectations. His TypeScript expertise caught several issues during development that would have been production bugs with other developers. He communicated daily and was always available for questions. We have hired him for three more projects since."
DK
David Kim Founder, TechFlow SaaS
★ ★ ★ ★ ★
"We hired Illya to migrate our legacy React app from class components to hooks and TypeScript. What impressed me most was how he incrementally refactored without breaking existing functionality. Our team can now actually maintain the codebase instead of fearing it. Worth every penny."
SM
Sarah Mitchell VP Engineering, DataViz Inc.
★ ★ ★ ★ ★
"Our e-commerce site was slow and Illya completely transformed it. He analyzed the performance bottlenecks, implemented code splitting, optimized images, and got our Lighthouse score from 32 to 96. Our conversion rate improved 28% after the changes. He knows his stuff."
MR
Marcus Rodriguez Owner, ModernHome Store

Frequently Asked Questions

Everything you need to know about working with me. If you have other questions, reach out through the contact page or Upwork.

I offer a comprehensive range of TypeScript development services tailored to modern web applications. This includes building production-ready React applications with hooks, context, and state management solutions like Redux Toolkit or Zustand. Next.js development covers both static site generation (SSG) and server-side rendering (SSR), including App Router, Server Components, and API routes. Node.js backend development includes building RESTful APIs, GraphQL endpoints, microservices, and real-time applications with WebSockets. Full-stack development combines frontend and backend expertise using modern stacks like Next.js with tRPC or Express with PostgreSQL. Additional services include code review and refactoring to improve existing TypeScript codebases, performance optimization to reduce bundle sizes and improve Core Web Vitals, database design and integration with SQL and NoSQL databases, and technical consulting on architecture decisions, tooling selection, and best practices. Whether you need a single-page application, a complex enterprise platform, or help with an existing project, I bring deep TypeScript expertise and attention to detail to every engagement.

Hiring me on Upwork follows Upwork's standard freelancer engagement process. First, visit my Upwork profile at https://www.upwork.com/freelancers/~01a7947c341e91a41c to review my portfolio, work history, client testimonials, and hourly rate. Before reaching out, prepare a clear project description including your goals, technical requirements, timeline, and budget. You can send an invitation to interview directly from my Upwork profile, or post a job and invite me to apply. During the initial interview, be prepared to discuss your project in detail including technical stack preferences, design assets you may have, integration requirements with existing systems, and success metrics. I will ask clarifying questions to understand your needs fully and may provide a technical assessment or approach document for complex projects. Once both parties agree on scope, timeline, and pricing, I will send an Upwork contract for your review and acceptance. Upwork provides payment protection, milestone tracking, and dispute resolution services to ensure a smooth working relationship. For ongoing work, you can set up weekly or monthly contracts. After project completion, you will have the opportunity to leave feedback about your experience working together.

I typically work standard business hours (9 AM to 6 PM EET, Eastern European Time), Monday through Friday. My average response time is 24 hours or less for messages during working days. For urgent matters on active projects, I usually respond within a few hours during my working hours. I do not typically work weekends, but for time-sensitive production issues on active projects, I make myself available as needed. When starting a new project, we establish communication expectations upfront including preferred channels (Slack, Upwork Messages, email), check-in frequency, and how to handle urgent matters. For milestone-based projects, I provide weekly progress summaries regardless of message volume. I believe in proactive communication: if I anticipate a delay, encounter a blocker, or need clarification on requirements, I will reach out to you rather than staying silent. This transparency helps keep projects on track and prevents misunderstandings. If you have specific communication needs due to time zone differences or project urgency, we can discuss accommodations during our initial conversation.

I regularly work with existing TypeScript and JavaScript projects and offer several specialized services for codebases that are already in production. Code audits represent a common starting point: I conduct a comprehensive review of your existing codebase covering architecture, code quality, type safety, test coverage, security practices, performance characteristics, and maintainability. The audit deliverable includes a detailed report with findings organized by severity, actionable recommendations prioritized by impact and effort, and estimated timelines for addressing issues. TypeScript migrations are another key service: migrating JavaScript codebases to TypeScript incrementally using allowJs and strict mode opt-in, adding type definitions gradually, setting up proper tsconfig configurations, and training your team on TypeScript best practices. This incremental approach allows the project to continue shipping features while improving type safety. Refactoring projects address technical debt: extracting reusable components from duplicated code, reorganizing project structure for better discoverability, replacing outdated patterns with modern equivalents (like converting class components to functional components with hooks), implementing proper state management where ad-hoc solutions have accumulated, and establishing testing patterns where none existed. Performance optimization for existing applications follows the same rigorous methodology as new builds but may additionally include profiling to identify specific bottlenecks, analyzing Web Vitals data from real users, and conducting A/B tests to validate improvements. Upgrades keep your stack current: major version upgrades for React, Next.js, Node.js, and key dependencies, along with addressing any breaking changes and deprecated APIs. Whether your existing project needs minor improvements or a major overhaul, I bring systematic thinking and attention to detail without disrupting your ability to ship.

I maintain rigorous standards for code quality and testing on every project. Code quality starts with strong TypeScript typing throughout the codebase, ensuring type safety catches errors early in development rather than in production. I follow established coding conventions enforced through ESLint with TypeScript-specific rules and Prettier for consistent formatting. Husky Git hooks prevent poorly formatted or untested code from being committed. Architecture follows proven patterns: separation of concerns, modular components, dependency injection where appropriate, and clear boundaries between presentation, business logic, and data access layers. For testing, I follow the testing trophy model with a balanced mix of test types. Unit tests cover utility functions, custom hooks, and individual components in isolation using Vitest and React Testing Library, with a focus on user behavior rather than implementation details. Integration tests verify that multiple components work together correctly, particularly around data fetching and state transitions. End-to-end tests using Playwright cover critical user journeys across real browser environments, ensuring the application works as expected from the user's perspective. I set minimum acceptable coverage thresholds and enforce them in CI/CD pipelines. Accessibility testing with axe-core catches issues like missing labels, insufficient contrast, and keyboard navigation problems. Performance budgets ensure the application stays within acceptable bundle sizes and load times. Every project includes comprehensive documentation: READMEs, architecture decision records (ADRs), API documentation, and inline comments where necessary. This commitment to quality ensures applications are reliable, maintainable, and ready for production.

I offer flexible pricing models depending on the project type and your preferences. Fixed-price contracts work best for well-defined projects with clear requirements and scope. After understanding your needs through our discovery conversation, I provide a detailed breakdown of the work, milestones, timeline, and total cost. You pay as milestones are completed and accepted, providing predictable budgeting and clear deliverables. Hourly contracts are ideal for projects with evolving requirements, ongoing maintenance, or discovery-phase work where scope is not yet fully defined. I track hours transparently through Upwork's time tracker, and you receive weekly reports showing what was accomplished. Monthly retainers work best for ongoing work like feature development, maintenance, and technical consulting. We agree on a set number of hours per month (typically 20, 40, or 80) at a discounted rate compared to hourly. This provides consistent availability and prioritizes your work. For all contract types, I work through Upwork which provides escrow protection for fixed-price milestones, dispute resolution, and a structured feedback system. This protects both parties and ensures fair dealing. Before any contract begins, we have a detailed conversation about your needs, priorities, and expectations. I never recommend a pricing model that is not in your best interest. For example, if your project has unclear requirements, I will suggest starting with a small paid discovery phase to define scope before committing to a larger fixed-price contract. This reduces risk for everyone involved. Transparency around pricing is important to me; you will never receive hidden charges or surprise invoices.

Ready to Discuss Your Project?

Whether you have a clear specification or just an idea you want to explore, I would love to hear about what you are building. Reach out through Upwork or the contact form to start a conversation.

View My Upwork Profile Contact Me Directly