Software Engineer

I am a software engineer with a passion for building high-performance, responsive, and user-friendly web applications using modern technologies, clean code, and best practices for seamless user experiences.

SaaS Web Apps (Frontend + Backend)·

Build and ship scalable SaaS features end-to-end: React/Next.js UI + Node/Nest.js APIs with clean architecture.

Services

Full-stack development for SaaS: React/Next.js frontends and Node/Nest.js backends, built for scale, stability, and fast iteration.

UI Implementation

Pixel-perfect UI from Figma with modern React tooling (Next.js/Vite), responsive layouts, and performance-focused components.

Use Meaningful Variable Names
Choose descriptive variable names that clearly indicate their purpose, improving readability and maintainability.
Keep Functions Small and Focused
A function should do one thing and do it well. Keeping functions small improves readability and makes debugging easier.
Avoid Global Variables
Use local variables or encapsulation to prevent unintended side effects and improve modularity.
Use Consistent Formatting
Follow a consistent code style, such as indentation, spacing, and naming conventions, to improve readability.
Write Modular Code
Break your code into reusable modules or components to improve maintainability and scalability.
Use Comments Wisely
Write comments only when necessary to explain complex logic; avoid redundant comments that state the obvious.
Handle Errors Properly
Use try-catch blocks and meaningful error messages to handle exceptions gracefully.
Optimize Loops and Conditions
Avoid unnecessary iterations and use efficient data structures to improve performance.
Avoid Hardcoding Values
Use constants, environment variables, or configuration files to manage configurable values.
Use Version Control
Use Git or another version control system to track changes and collaborate effectively.
Use Meaningful Variable Names
Choose descriptive variable names that clearly indicate their purpose, improving readability and maintainability.
Keep Functions Small and Focused
A function should do one thing and do it well. Keeping functions small improves readability and makes debugging easier.
Avoid Global Variables
Use local variables or encapsulation to prevent unintended side effects and improve modularity.
Use Consistent Formatting
Follow a consistent code style, such as indentation, spacing, and naming conventions, to improve readability.
Write Modular Code
Break your code into reusable modules or components to improve maintainability and scalability.
Use Comments Wisely
Write comments only when necessary to explain complex logic; avoid redundant comments that state the obvious.
Handle Errors Properly
Use try-catch blocks and meaningful error messages to handle exceptions gracefully.
Optimize Loops and Conditions
Avoid unnecessary iterations and use efficient data structures to improve performance.
Avoid Hardcoding Values
Use constants, environment variables, or configuration files to manage configurable values.
Use Version Control
Use Git or another version control system to track changes and collaborate effectively.
Use Meaningful Variable Names
Choose descriptive variable names that clearly indicate their purpose, improving readability and maintainability.
Keep Functions Small and Focused
A function should do one thing and do it well. Keeping functions small improves readability and makes debugging easier.
Avoid Global Variables
Use local variables or encapsulation to prevent unintended side effects and improve modularity.
Use Consistent Formatting
Follow a consistent code style, such as indentation, spacing, and naming conventions, to improve readability.
Write Modular Code
Break your code into reusable modules or components to improve maintainability and scalability.
Use Comments Wisely
Write comments only when necessary to explain complex logic; avoid redundant comments that state the obvious.
Handle Errors Properly
Use try-catch blocks and meaningful error messages to handle exceptions gracefully.
Optimize Loops and Conditions
Avoid unnecessary iterations and use efficient data structures to improve performance.
Avoid Hardcoding Values
Use constants, environment variables, or configuration files to manage configurable values.
Use Version Control
Use Git or another version control system to track changes and collaborate effectively.
Use Meaningful Variable Names
Choose descriptive variable names that clearly indicate their purpose, improving readability and maintainability.
Keep Functions Small and Focused
A function should do one thing and do it well. Keeping functions small improves readability and makes debugging easier.
Avoid Global Variables
Use local variables or encapsulation to prevent unintended side effects and improve modularity.
Use Consistent Formatting
Follow a consistent code style, such as indentation, spacing, and naming conventions, to improve readability.
Write Modular Code
Break your code into reusable modules or components to improve maintainability and scalability.
Use Comments Wisely
Write comments only when necessary to explain complex logic; avoid redundant comments that state the obvious.
Handle Errors Properly
Use try-catch blocks and meaningful error messages to handle exceptions gracefully.
Optimize Loops and Conditions
Avoid unnecessary iterations and use efficient data structures to improve performance.
Avoid Hardcoding Values
Use constants, environment variables, or configuration files to manage configurable values.
Use Version Control
Use Git or another version control system to track changes and collaborate effectively.

Clean Architecture

Maintainable, testable code with best practices: TypeScript, Nx monorepo structure, code reviews, and automated testing.

Technology Stack

HTML logo
HTML
CSS logo
CSS
JavaScript logo
JavaScript
TypeScript logo
TypeScript
React logo
React
NextJS logo
NextJS
Tailwind CSS logo
Tailwind CSS
Material UI logo
Material UI
HTML logo
HTML
CSS logo
CSS
JavaScript logo
JavaScript
TypeScript logo
TypeScript
React logo
React
NextJS logo
NextJS
Tailwind CSS logo
Tailwind CSS
Material UI logo
Material UI
HTML logo
HTML
CSS logo
CSS
JavaScript logo
JavaScript
TypeScript logo
TypeScript
React logo
React
NextJS logo
NextJS
Tailwind CSS logo
Tailwind CSS
Material UI logo
Material UI
HTML logo
HTML
CSS logo
CSS
JavaScript logo
JavaScript
TypeScript logo
TypeScript
React logo
React
NextJS logo
NextJS
Tailwind CSS logo
Tailwind CSS
Material UI logo
Material UI
Git logo
Git
Github logo
Github
Postman logo
Postman
Supabase logo
Supabase
Shadcn UI logo
Shadcn UI
Vite logo
Vite
Docker logo
Docker
NX monorepo logo
NX monorepo
Stripe logo
Stripe
Git logo
Git
Github logo
Github
Postman logo
Postman
Supabase logo
Supabase
Shadcn UI logo
Shadcn UI
Vite logo
Vite
Docker logo
Docker
NX monorepo logo
NX monorepo
Stripe logo
Stripe
Git logo
Git
Github logo
Github
Postman logo
Postman
Supabase logo
Supabase
Shadcn UI logo
Shadcn UI
Vite logo
Vite
Docker logo
Docker
NX monorepo logo
NX monorepo
Stripe logo
Stripe
Git logo
Git
Github logo
Github
Postman logo
Postman
Supabase logo
Supabase
Shadcn UI logo
Shadcn UI
Vite logo
Vite
Docker logo
Docker
NX monorepo logo
NX monorepo
Stripe logo
Stripe
Node.js logo
Node.js
NestJS logo
NestJS
MongoDB logo
MongoDB
Express logo
Express
Postgresql logo
Postgresql
GraphQL logo
GraphQL
Prisma logo
Prisma
AWS logo
AWS
Redis logo
Redis
Node.js logo
Node.js
NestJS logo
NestJS
MongoDB logo
MongoDB
Express logo
Express
Postgresql logo
Postgresql
GraphQL logo
GraphQL
Prisma logo
Prisma
AWS logo
AWS
Redis logo
Redis
Node.js logo
Node.js
NestJS logo
NestJS
MongoDB logo
MongoDB
Express logo
Express
Postgresql logo
Postgresql
GraphQL logo
GraphQL
Prisma logo
Prisma
AWS logo
AWS
Redis logo
Redis
Node.js logo
Node.js
NestJS logo
NestJS
MongoDB logo
MongoDB
Express logo
Express
Postgresql logo
Postgresql
GraphQL logo
GraphQL
Prisma logo
Prisma
AWS logo
AWS
Redis logo
Redis

Latest Projects

Poster QR Solutions Platform

Poster QR Solutions Platform

Complete re-architecture of QR platform for 20,000+ venues globally. Rebuilt from scratch with modern stack, achieving 99.95% uptime and driving 90% increase in client sales.

  • Migrated from Next.js/PHP to Vite/Node.js architecture
  • Integrated QR Menu, QR Payments, QR Reviews, and Hub modules
  • UI/UX redesign with API optimization that directly impacted revenue
  • Eliminated legacy code bottlenecks, improved build times significantly
  • Serving 20,000+ restaurants and venues worldwide
React
TypeScript
Vite
Node.js
NestJS
MongoDB
Redis
Fintech Microservices Platform

Fintech Microservices Platform

Event-driven microservices architecture for payment processing and user activity tracking with real-time analytics and modern UI.

  • Built microservice consolidating user activity data for product decisions
  • Implemented event pipeline with Redis/BullMQ processing thousands of real-time events
  • Led full UI/UX redesign and migration from Ant Design to Material UI
  • Refactored monolithic codebase into microservices within Nx monorepo
  • Improved system responsiveness for payment workflows
React
TypeScript
Node.js
NestJS
PostgreSQL
Redis
BullMQ
Material UI
Nx Monorepo
HubSpot Messenger Integration

HubSpot Messenger Integration

Custom automation system connecting HubSpot CRM with customer messaging platform, eliminating manual processes and saving $60K annually.

  • Automated customer communications workflow
  • Reduced manual processes saving company $60K+ annually
  • Real-time webhook integration between HubSpot and messaging platform
  • Custom REST API endpoints for bidirectional data sync
  • Built with Express.js for high performance and reliability
Node.js
Express
TypeScript
Webhooks
REST API
HubSpot API
Avalon

Avalon

Full-stack development of a high-end corporate website for a leading construction firm. Designed to drive lead generation and showcase a premium property portfolio.

  • Secure client access to billing and activity data
  • Document sharing and management system
  • Role-based access control with scoped API keys
  • Modular architecture for easy customization
  • Authentication powered by Clerk
Next.js
Headless CMS
TypeScript
SCSS
Playball

Playball

Developed a comprehensive marketplace for the Lithuanian sports market, bridging the gap between facility owners and athletes.

  • Built a comprehensive marketplace for the Lithuanian sports market, bridging the gap between facility owners and athletes.
  • Built UI components, dashboards, and admin panels
  • Built a comprehensive marketplace for the Lithuanian sports market, bridging the gap between facility owners and athletes.
  • Built a comprehensive marketplace for the Lithuanian sports market, bridging the gap between facility owners and athletes.
React
Next.js
NestJS
PostgreSQL
Material UI
TypeScript