Skip to content
Available for work

Hi, I'm Sithija Shehara

Senior Software Engineer

I build scalable, performant web applications with React, Next.js, and modern backend technologies. Focused on clean architecture, thoughtful design, and delivering products that are both technically solid and genuinely useful.

About

I'm a Senior Software Engineer at Aventude, where I build production web applications with React, Next.js, and Node.js. I've built a rich text editor on Meta's Lexical framework, reusable UI component libraries, and analytics dashboards used across multiple products, and I mentor other engineers on React and Redux patterns.

I care about the decisions behind the code as much as the code itself: how a system is structured, what happens when it needs to scale, and how easy it is for the next engineer to change. Outside of work I build side projects to go deeper on specific problems, like how the JS event loop actually schedules work, or how rich text editors handle state and hydration.

ReactNext.jsTypeScriptJavaScriptNode.jsExpressMongoDBPostgreSQLSCSSTailwind CSSGitDockerReact NativeExpo

Experience

May 2023 — Present

Senior Software Engineer

Aventude

Built a reusable React component library adopted across multiple product teams.

Built a rich text editor on Meta's Lexical framework, plus analytics dashboards used in production.

Profiled and reworked data fetching and rendering paths to reduce unnecessary re-renders and network calls.

Mentored junior engineers on React and Redux patterns, including code review and pairing.

Mar 2022 — May 2023

Software Engineer

Aventude

Extended a low-code platform's editor UI in React/TypeScript, adding features that drove internal adoption.

Worked full-stack on a legal case management system, from API design to UI implementation.

Profiled slow API endpoints and front-end render paths, then fixed the specific bottlenecks found.

Migrated a legacy class-component codebase to functional components and hooks.

Work I've shipped at Aventude is under NDA, so these are independent projects I've built to go deeper on specific problems.

Screenshot of the SkillHub explore page showing a grid of community-created AI coding skills with tool and tag filters

SkillHub

A community platform for creating, versioning, forking, and sharing AI coding assistant prompts ("skills") for tools like Claude, Cursor, Copilot, Windsurf, and Continue — think npm for prompt engineering.

Key challenge: forking a skill has to stay consistent under concurrent writes, so skill creation, tag copying, the initial version snapshot, and the original's fork count are all wrapped in a single Prisma transaction rather than sequential writes.

Next.jsReactTypeScriptPostgreSQLPrismaClerk
Screenshot of the Lexical rich text editor toolbar and formatting controls

Lexical Rich Text Editor

31

A React and TypeScript-based rich text editor built with Meta's Lexical framework. Features include text formatting, font customization, code blocks with syntax highlighting, lists, links, alignment controls, and undo/redo support.

Key challenge: migrating from Lexical v0.16 to v0.40 across breaking selection-model changes (GridSelection/NodeSelection/RangeSelection consolidated into BaseSelection) without breaking existing editor state.

ReactTypeScriptLexical
Screenshot of the JS Event Loop Visualizer showing the call stack, microtask, and macrotask queues

JS Event Loop Visualizer

An interactive tool that visualizes how JavaScript handles async operations with the event loop, microtasks, and macrotasks through step-by-step simulations.

Key challenge: the analyzer traces real execution by monkey-patching setTimeout/queueMicrotask/console.log inside a Web Worker, then has to detect when tracing is actually finished with no reliable end signal — solved with a quiet-period check that polls pending micro/macrotask counts.

Next.jsReactTypeScriptTailwind CSS
Screenshot of the Mo Marketplace sign-in screen

Mo Marketplace (Assessment)

A full-stack e-commerce marketplace built as a take-home technical assessment: NestJS/TypeORM/PostgreSQL API with a React + Vite frontend, JWT access + refresh-token auth, role-based access control, and product browsing with search, filters, and pagination.

Key challenge: quick-buy has to decrement stock without overselling under concurrent requests, solved with a conditional SQL update on the variant row instead of a check-then-write from application code.

NestJSTypeORMPostgreSQLReactViteTypeScript
Screenshot of the LinkedIn Clone feed showing a post composer and profile sidebar

LinkedIn Clone

A full-stack social media platform with user authentication, posting, commenting, and interactions. Features user profiles, post feeds, like/unlike functionality, and comment management.

Key challenge: sequencing image uploads to Cloudinary with post creation through Next.js server actions so a failed upload never leaves an orphaned post in MongoDB.

Next.jsReactTypeScriptMongoDBClerkCloudinaryTailwind CSS

Contact

I'm looking for Senior Software Engineer roles where I can own complex problems end to end. If that's what you're hiring for, let's talk.