Kevin Clark

I'm a React Developer

About


Skills

React
Node.js
TypeScript
APIs
SDKs
JSON
JavaScript
C#
.NET
Entity Framework
ORM
PostgreSQL
MongoDb
Jest
Vitest
Webpack
StencilJS
SolidJS
Microservices
Docker

Hello! 👋 I'm Kevin. I'm a senior-principal level software developer who loves building thoughtful, well-crafted web applications.

Over the years, I've worked across the full stack, partnering with product, design, and engineering teams to turn complex ideas into intuitive, reliable software. I'm especially drawn to modern technologies and frameworks that enable fast, responsive user experiences — but I'm equally comfortable stepping into legacy systems, untangling complexity, and leaving codebases cleaner and more sustainable than I found them.

My work leans about 60/40 toward the front end, which means I spend a lot of time thinking about usability, accessibility, performance, and the subtle details that shape how people experience software. At the same time, I enjoy the architectural and back-end challenges that make those experiences possible — designing APIs, improving system reliability, and making pragmatic decisions that balance scalability with simplicity.

TypeScript is my language of choice, and I'm passionate about building maintainable, well-structured systems that stand the test of time. I care deeply about code quality, clear abstractions, and thoughtful design — not for their own sake, but because they enable teams to move faster and build with confidence.

Above all, I value craftsmanship, collaboration, and continuous improvement. Great software isn't just about shipping features — it's about solving the right problems in ways that are sustainable, elegant, and genuinely useful.

Resume

Here is a brief summary of my last few roles. For my full professional experience, please download my resume.

Education

M.S, Management Information Systems, MBA Concentration

2008 - 2010

Florida State University, Tallahassee, FL (Online)

B.S, Management Information Systems, Minor Computer Science

2000 - 2004

Florida State University, Tallahassee, FL

Professional Experience

Costar Group - Senior Software Engineer

10/2025 - Present
San Diego, CA
Front-end-leaning full stack developer on a SaaS platform enabling companies to manage commercial real estate portfolios, including loans, properties, and collateral. Architecting and enhancing a React/Webpack front end integrated with a Node.js GraphQL backend-for-frontend (BFF) that communicates with containerized .NET microservices hosted in AWS. Driving UI best practices by separating business logic from presentation, introducing reusable custom hooks, and improving component testability and maintainability. Proposing and designing modernization initiatives, including parallel UI/BFF migration behind a Caddy reverse proxy to reduce risk and enable incremental adoption of best practices, as well as consolidating shared models, validation, and business logic to reduce duplication and improve overall code quality.

ICF, International - Principal Software Engineer

06/2022 - 06/2025
Remote
Front-end-leaning full-stack developer delivering custom software solutions for a federal healthcare platform supporting the Centers for Medicare & Medicaid Services (CMS), managing hundreds of thousands of healthcare providers with advanced search, dynamic forms, and complex data visualization. Designed and enhanced features using React, Node.js, Express, and PostgreSQL within a distributed architecture of 12+ TypeScript-based Node microservices containerized with Docker and routed through Kong API Gateway. Leveraged micro-frontends and Jest to maintain modularity and high test coverage across front- and back-end systems. Led development of a shared UI library using Nx and Vite, enabling React 18 components to coexist with a legacy React 16 application for a phased upgrade that improved maintainability and accelerated feature delivery. Migrated JavaScript-based Node APIs to TypeScript, enhancing type safety and developer velocity. Established maintainable front-end architecture patterns by separating presentation from business logic, abstracting state management into reusable custom hooks, and improving testability of business logic independent of UI components. Built an internal React/Node developer tooling application that tracked microservice health, streamed Docker logs, and enabled one-click cloning of test databases into local environments — reducing local setup friction and debugging time.

loanDepot - Senior Software Engineer

09/2020 - 06/2022
Remote
Full-stack developer delivering custom software solutions to support Sales operations and workflow optimization. Led integration of Genesys Cloud calling and messaging directly into Microsoft Dynamics CRM, enabling sales representatives to manage communications within the CRM and streamlining workflows. Designed and built a custom floating softphone widget and Power Apps Component Framework (PCF) controls using React and TypeScript, enhancing CRM usability, data visualization, and workflow efficiency. Contributed to backend architecture by implementing secure OAuth 2.0 authentication, enabling real-time communication with Azure SignalR, and supporting scalable event-driven microservices with Azure Service Bus.

Portfolio

These are just some fun projects I have done in my spare time for practice - please don't judge them too harshly! 😅

KevFi

I am building this because it's a fun challenge

My Job Apps

I built this to track my job applications

Wordy, Me!

I built this game after Wordle made $1 million

Blog

After 20+ years of coding, I've developed (no pun intended) a lot of opinions on what I think works, and what doesn't work. Here are a few of them...thanks for reading! 😁

Don't Put Database Access In Logic Functions

Directly embedding database access in logic functions is a clear anti-pattern that compromises key software qualities. By embracing separation of concerns and clean architectural boundaries, developers can build systems that are easier to maintain, test, and evolve over time. For teams striving toward clean code and robust systems, this pattern is worth avoiding early and often.

Denormalizing Should Be Normalized

Denormalization shouldn't be treated as a dirty word. Like any tool, it has its place. If you're building a system where certain reads are expensive and consistent patterns emerge, it's worth asking: Can I store this value once, rather than computing it every time? The next time you're designing a schema or troubleshooting a slow query, consider where a little denormalization might go a long way.

Don't Mix Logic In Your Transport Layer

Mixing logic within your transport layer, i.e. your middleware or routers/controllers, makes unit testing logic more difficult, in addition to making it much more difficult to change transport layers (i.e. self-hosted to serverless). Avoiding logic in controllers or middleware isn't just about code cleanliness—it's about flexibility, testability, and long-term maintainability.

Use Narrowly Defined Interfaces For Easier Testing

Narrowly defined interfaces allows for simpler and more maintainable tests, reduced coupling between components, greater flexibility in refactoring, and clearer intent in your code. If you're working with TypeScript, consider reaching for Pick (and friends like Omit, Partial, etc.) more often. You'll write leaner, cleaner, and more robust code.

Interfaces For Agility And Testability

Interfaces are essential for building robust, testable, and adaptable software. They enable mocking for unit testing without relying on heavy or stateful dependencies. They decouple consumers from implementations, reducing impact of change. And they improve agility and support scaleability by allowing one to change concrete dependencies much easier.

From Modular Monolith To Microservices

Jumping straight from a traditional monolith to microservices can be risky and complex. If you have clean domain segregation, and as much segregation as possible with your transport and infrastructure layers, you can make the switch to microservices a lot less painful.

Testimonials

Here are some things people have said about working with me:


Kevin is a spectacular full-stack engineer with a modern, system-level mindset. He quickly grasps both the technical and domain nuances of a distributed microservices architecture and delivers solutions that meet requirements while setting up clean, scalable paths forward. He shows up early, brings genuine positivity, and contributes with an energy that lifts the whole team. Conversations with him are thoughtful and engaging, and he has a rare ability to anticipate challenges before they surface. His experience spans code architecture, developer tooling, and design planning. He's contributed type-safe internationalization patterns, backend modularization strategies, and an extensible component suite. When navigating a mix of legacy systems and active development, his insight becomes especially valuable - he consistently surfaces considerations that strengthen planning and improve long-term cohesion. Kevin is someone I genuinely enjoyed working with! He brings curiosity, humility, and a steady confidence that makes collaboration easy and rewarding. He made our team better in every sense, and I'm grateful for the time we had together. Any team would be lucky to have him.

Yuriy Sountsov

Software Engineer II

Kevin is an incredibly passionate software engineer who has a great eye for architecture and code quality. He was always pushing our team toward improvement, both by writing high quality code and providing excellent feedback on other people's. He is a smart learner and quick to pick up new concepts. I appreciated his dedication to self-improvement during my time managing him. Kevin is a valuable asset to any team he is on.

Jesse Kawell

Director of Software Engineering

I am pleased to recommend Kevin Clark, a highly skilled software developer with whom I had the privilege of working at both loanDepot and ICF. Kevin's combination of technical expertise, teamwork, and professionalism make him an outstanding candidate for any software development role. I am confident that he will continue to excel and contribute positively to any team he joins.

Brian Serotini

Program Manager

Kevin is a standout technical talent. While working together at loanDepot, I was consistently impressed by his deep expertise in Genesys and his sharp skills in both front-end and back-end technologies. It's rare to find someone who can master complex contact center systems while also delivering great user experiences and solid server-side code. Kevin is a dedicated problem-solver and a fantastic teammate, any company would be lucky to have him.

Imran Panjewale

Lead Software Engineer

I worked with Kevin on a large modernization project for a government agency. Kevin was a thought leader on integrating new technologies as we updated our backend stack from legacy .NET to .NET Core. He was a lead on designing our client side application with the latest Javascript frameworks merged with our backend API. Kevin shared his insights with regular presentations to the team, and provided comprehensive documentation for others to follow. Kevin was able to research area where we had the greatest need, and was able to provide sound, reasoned decisions on where we should go as team, and collaborating where needed to include all viewpoints and requirements. Kevin has excelled in is craft, and I believe he would be a great addition to any development team.

Tom Morgan

Software Architect

I had the pleasure of working with Kevin on my team. He is highly knowledgeable with UI (react) as well as backend (C#, NodeJs) and I am sure much more. He taught me patterns that I continue to use today and it was nice to not only to work with him but to hear his ideas and thoughts about things I hadn't thought much about related to our stack. Not only is he familiar with the stacks I use but he knows about all the popular frameworks that are becoming meta at other companies and showed me many technologies/frameworks/libraries that I have never even heard of but can make my life easier during development. I think he is a great addition to any team and will bring ideas / patterns / architecture that will improve your codebase

Christian Garcia

Software Engineer II