Skills

A comprehensive overview of my technical skills, development principles, and tools I use to build modern web applications.

Languages

JavaScript

Proficient in modern JavaScript (ES6+), including asynchronous programming (Promises, async/await), DOM manipulation, and REST API integration.

TypeScript

Building a safe development environment through type safety. Writing robust code using interfaces, generics, and union types.

HTML

Designing HTML structures with semantic markup and web accessibility (WCAG AAA) in mind. Enhancing SEO and user experience.

CSS

Implementing layouts using responsive design with CSS Grid/Flexbox. Improving maintainability through CSS variables and modularization.

Frameworks & Libraries

React

Modern React development using functional components and Hooks. Optimizing component design and state management.

Next.js

A React-based full-stack framework. Developing high-performance web applications using SSR, SSG, and the App Router.

Vite

Fast development server and build tool. Experience migrating from CRA to Vite, reducing build time by 82%.

Zustand

A lightweight state management library. Optimizing applications by separating global/local state and reducing complexity.

TailwindCSS

A utility-first CSS framework. Enabling rapid prototyping and consistent design system implementation.

Styled-Components

A CSS-in-JS library. Component-based styling using dynamic styling and theming systems.

D3.js

A data visualization library. Experience implementing complex charts and interactive graphs.

Rete.js

A TypeScript-first framework for creating node-based visual editors. Experience building dataflow-driven interfaces and custom visual programming tools.

OpenSeadragon

A high-resolution image viewer library. Implemented visualization for pathology images and large SVS files.

DevOps & Tools

GitHub Actions

CI/CD pipeline automation. Improving development efficiency by automating build, test, and deployment processes.

Git

Version control and collaboration tool. Systematic code management through branch strategies and commit conventions.

Jest

A JavaScript testing framework. Ensuring code quality through unit and integration tests.

Vitest

A Vite-based testing tool. Fast test execution and development environment optimization.

Development Principles

Web Accessibility

Adhering to WCAG AAA guidelines. Providing an inclusive web experience through dark mode implementation and color contrast optimization.

Modular Architecture

Designing modular components. Applying architectural patterns that consider reusability and maintainability.

Separation of Concerns

Principle of Separation of Concerns. Improving code quality through clear separation of business logic and UI logic.

DRY Principle

Don't Repeat Yourself (DRY) principle. Abstracting common logic and designing reusable components.

Single Responsibility

Single Responsibility Principle. Designing each component and function to have one clear responsibility.

TDD

Test-Driven Development (TDD). Writing stable code by creating tests before implementation.