Senior Software Engineerbuilding accessible, scalable web apps.

I help companies migrate legacy codebases to modern standards. Specializing in Next.js, TypeScript, and Design Systems.

Alejandro Castro Quintero

Behind the Code

I'm Alejandro, a Senior Software Engineer who enjoys building and modernizing applications for the web. My journey in tech spans over 12 years, leading me from full-stack development to a deep specialization in the React ecosystem (Next.js, TypeScript, and modern state management).

I’ve had the privilege of architecting scalable frontend solutions and optimizing for Core Web Vitals in various professional environments. My passion lies in mentoring engineers and standardizing codebases to build resilient and efficient digital experiences.

The Work

Illustration for Infinite Canvas Whiteboard Engine
Infinite Canvas Whiteboard Engine

Problem

Building a performant, browser-based drawing tool requires handling complex 2D geometry, real-time rendering of vector shapes, and state management for history (undo/redo) without relying on heavy external libraries.

Architecture

Adopted a custom rendering engine using the HTML5 Canvas API for high-performance immediate mode rendering. Implemented a 'Scene Graph' data structure to manage shape elements, decoupled from the React render cycle to prevent UI freezing during complex redraws.

Solution

Built a custom whiteboard engine in Next.js and TypeScript. Implemented core vector drawing algorithms (lines, rectangles, freehand) and a custom history stack for undo/redo operations.

Impact

Delivered a fully functional, zero-latency drawing experience. Demonstrated ability to implement complex math (geometry intersections) and low-level browser APIs (Canvas context) manually.

Next.js
TypeScript
Canvas API
Tailwind CSS
Vector Math
View Live Project
Illustration for Back Office Application Modernization
Back Office Application Modernization

Problem

The legacy back-office app had slow load times and data consistency issues, hurting operator efficiency. The codebase was difficult to maintain, slowing down new feature development.

Architecture

A full migration to a React Single-Page Application (SPA) was chosen to gain fine-grained control over the user experience and performance. A centralized, atomic state management model (Zustand) was selected over a context-based approach to ensure data consistency and reduce boilerplate across a large, complex application.

Solution

The frontend architecture was migrated to a React SPA to improve performance and maintainability. A centralized, atomic state model was implemented using Zustand, which replaced a legacy prop-drilling approach and improved data consistency across the application.

Impact

The new architecture resulted in a 40% reduction in application load times and a 20% increase in operator efficiency. Adopting a modular component structure also led to a 2x increase in feature delivery velocity.

React
TypeScript
Zustand
TanStack Query
TanStack Router
React Testing Library
SCSS
Illustration for Core Web Vitals Optimization
Core Web Vitals Optimization

Problem

Websites suffered from poor performance metrics (Core Web Vitals), leading to lower SEO rankings and a degraded user experience.

Architecture

A 'performance-first' architectural approach was adopted. The strategy was to aggressively code-split at the route and component levels, ensuring that only critical-path JavaScript was loaded on initialization. This prioritized a faster Time To Interactive (TTI) over a single, monolithic bundle.

Solution

Implemented advanced React code-splitting, component lazy loading, and route-based chunking. Utilized useMemo, useCallback, and React Profiler to identify and optimize critical rendering bottlenecks.

Impact

Achieved a 40% reduction in application load times and significant improvements in Time to Interactive (TTI), directly boosting SEO rankings and user satisfaction.

React
Next.js
Web Performance
Lighthouse
useMemo
useCallback
Illustration for UI Component Library & Design System
UI Component Library & Design System

Problem

Inconsistent UI across applications, slow iteration speeds for design and backend teams, and accumulation of technical debt due to duplicated components.

Architecture

The decision was to build a shared UI component library to be consumed by multiple frontend applications. This centralized approach was chosen to enforce design consistency, reduce code duplication, and create a single source of truth, trading a higher initial investment for long-term scalability and maintainability.

Solution

Designed and maintained a shared UI Component Library, establishing a consistent design system. This involved creating reusable, atomic React components and enforcing strict TypeScript typing for standardization.

Impact

Accelerated design and backend team iteration speed by 2x, reduced technical debt, and improved feature delivery efficiency across various projects.

React
TypeScript
Design Systems
Storybook
SCSS
Illustration for Static Site Generation with Astro
Static Site Generation with Astro

Problem

Content-heavy or static websites built with traditional reactive frameworks incurred unnecessary JavaScript overhead, leading to slower page loads and suboptimal Core Web Vitals, negatively impacting SEO and user experience.

Architecture

The core architectural decision was to shift from a client-side rendering (CSR) model to a static-first approach using Astro's 'Island Architecture'. This was chosen for content-heavy sites where interactivity is minimal, prioritizing zero-JS-by-default for maximum performance and SEO.

Solution

Leveraged Astro with its 'Island Architecture' to build content-focused websites. This approach enabled shipping zero JavaScript by default, selectively hydrating interactive components only when necessary, optimizing for performance.

Impact

Achieved substantial improvements in website performance, resulting in significantly faster page load times, higher Lighthouse scores, and enhanced SEO. This also led to reduced hosting costs through optimized asset delivery and improved user engagement on static and content-rich pages.

Astro
HTML
CSS
JavaScript
Web Performance
SEO
Static Site Generation
Illustration for Utility-First CSS with Tailwind
Utility-First CSS with Tailwind

Problem

Traditional CSS methodologies often lead to large CSS bundles, complex naming conventions, and a disconnect between styling and component structure, slowing down development and making refactoring difficult.

Architecture

Adopted a utility-first CSS approach with Tailwind CSS. This strategy co-locates styling logic directly within the markup, eliminating separate CSS files and complex class naming schemes. The trade-off is a more verbose markup for the benefit of rapid prototyping and easier maintenance within a constrained design system.

Solution

A centralized `tailwind.config.ts` was established as the single source of truth for the design system, defining a themable color palette with CSS variables, custom animations, and typography, ensuring design consistency.

Impact

Increased development velocity due to rapid prototyping within markup. The CSS bundle size was minimized as Tailwind's JIT compiler only includes necessary classes. This reduced style inconsistencies and made the codebase easier to maintain.

Tailwind CSS
PostCSS
CSS Variables
Design Systems
Utility-First CSS

Get In Touch

I'm always open to discussing new projects, creative ideas, or opportunities to be part of an amazing team.