Frontend

React.js

Composable, performant React UIs with hooks, Redux Toolkit, and Suspense.

Expert3+ yearsFrontend

React is the UI library I have shipped the most production work with. I build composable component systems with hooks, manage server state with React Query or RTK Query, and handle client state with Redux Toolkit when it earns its place. I care about render correctness and bundle size — not just 'does it work in dev'.

My Journey

How I work with React.js

I started with React on class components and grew with the ecosystem — hooks, context, Suspense, server components. Most of my production React work since 2022 has been on functional components with hooks and a clear separation between server-state and client-state.

I treat React as a serious UI runtime: I profile renders with the React DevTools profiler, memoize judiciously (not reflexively), and keep an eye on bundle size in CI. I prefer composition over prop-drilling and small focused components over giant containers.

I have shipped React in many shapes — Next.js App Router, standard CRA-style SPAs, embedded widgets, and admin dashboards. The pattern that wins for me is co-located data + UI, with a state-management tool added only when actual coordination problems show up.

Where I've Applied It

React.js across business domains

AI & Machine Learning Platforms

Built operator dashboards in React with real-time updates over WebSockets and large-table virtualization for document lists.

Real Estate

Delivered buyer/seller dashboards in React with map-based search, filtered lists, and inline editing.

NFC & Digital Identity

Implemented the analytics dashboard with React + Recharts and tenant-scoped data views.

Automotive Marketplace

Built the buyer-facing browsing experience and the dealership inventory-management UI in React.

Problems Solved

Real issues I resolved using React.js

Cut a heavy table's re-render time from ~600ms to ~80ms

Problem

A dealership inventory table with ~1500 rows was re-rendering the entire list on every keystroke in the filter input.

Solution

Memoized the row component, lifted the filter into a debounced state, and added windowed rendering with react-window for very long lists.

Impact

Typing felt instant, scroll jank disappeared, and the page stopped being the team's #1 perf complaint.

Reactreact-windowTypeScript

Removed prop-drilling without reaching for a global store

Problem

A nested dashboard was passing 6+ props through 5 layers of components, making refactors painful.

Solution

Introduced a tightly-scoped React Context for the dashboard's view state, with a custom hook for consumers — no global store, no Redux required.

Impact

Refactors got dramatically easier and the codebase stayed simple — no over-engineered state layer for a problem context could solve.

ReactTypeScript

Fixed a memory leak in a real-time updates panel

Problem

A panel subscribed to a WebSocket on mount but never cleaned up on unmount — navigating away and back leaked sockets and grew the listener count linearly.

Solution

Returned a proper cleanup function from useEffect that closed the socket and removed listeners; added a custom useWebSocket hook so the pattern was reusable.

Impact

Long-running sessions stopped degrading; memory profile flattened; the bug class went away project-wide once the hook was adopted.

ReactWebSocketsTypeScript
Related Skills

Often used together

Have a React.js project in mind?

I am open to full-time and contract work where React.jsis core to the stack. Let's talk about what you are building.