Mia Davis

Senior JavaScript Engineer

JavaScript isn't just a language - it's an environment, an interface between users and logic. Writing great JS isn’t about chasing the latest framework. It’s about solving problems predictably, debugging effectively, and collaborating in code. The best engineers I’ve worked with know how to balance clarity, performance, and pragmatism. That’s what I aim to share through my reviews: not just ‘what works’, but why it matters.
Mia Davis

I'm Mia Davis, a Senior JavaScript Engineer with a Computer Science degree from the University of Washington. For over a decade, I've been writing code, building interactive web apps, and helping teams scale front-end architecture efficiently. My passion for JavaScript lies in its dynamic nature, flexibility, and power to shape modern digital experiences - from tiny widgets to robust enterprise SPAs.

Over the years, I've led frontend initiatives in fintech, education, and SaaS domains. My journey includes mentoring junior developers, reviewing hundreds of codebases, and diving deep into performance profiling, accessibility, and component architecture. I write about JavaScript not to teach syntax - but to explain thought processes, design patterns, and how to think like an engineer. At this site I write about JavaScript books. My mission is to help readers go beyond “it works” to “it scales, performs, and lasts.”

What I Believe as a JavaScript Engineer

I believe great engineering is about clarity, consistency, and communication. Code is a conversation across time - and how we write it affects how future developers maintain and extend it. I care deeply about accessibility, testability, and architecture that empowers teams.

I strive to:

  • Write code that's understandable after six months
  • Think in systems, not just components
  • Prioritize user experience alongside performance
  • Mentor without ego
  • Optimize for maintainability, not just speed
  • Choose tools that solve problems, not trends
  • Always leave code better than I found it

Building Scalable Frontends with Real JavaScript Experience

I've worked in both startup and enterprise environments, building products used by thousands of users daily. From greenfield projects to legacy migrations, my focus is always on scalable, maintainable JavaScript solutions.

Key Projects:

CartFlow. A headless eCommerce frontend built with Next.js and TypeScript. I led the implementation of dynamic routing, checkout logic, and Stripe integration. Introduced a modular component system and CI/CD pipelines with Vercel for seamless deployments.

Learnify. An educational platform where I re-architected the frontend from jQuery to React with Redux Toolkit. Integrated LMS APIs, improved performance by 45%, and introduced accessibility features meeting WCAG 2.1 AA.

InvoiceGen. Internal SaaS tool for invoice management (React + Node.js). Designed role-based routing, optimized large-data rendering with virtualization, and maintained test coverage over 85%.

MetricDeck. Real-time analytics dashboard using D3.js and WebSockets. I built reusable data visualization components and implemented logic to cache stream data for offline fallback.

PulseTrack Mobile Web. Progressive web app for health tracking. Used React + PWA APIs + IndexedDB. Focused on offline-first UX, service worker caching, and syncing with a Node.js backend.

Technologies I Use to Build Fast, Scalable Frontend Architectures

Technology Using Since How I Use It in Practice
JavaScript (ES6+) 2015 My core language for frontend logic and UI behavior. I follow ECMAScript proposals closely and write modern, modular JS with focus on readability and performance.
React.js 2016 Used to build dynamic, component-based UIs. I apply React for both client-side and server-side rendering, leveraging hooks and context APIs effectively.
TypeScript 2018 Adds static typing and IDE tooling to my frontend code. I use advanced typing patterns to reduce bugs, improve refactoring, and document intent directly in the code.
Next.js 2020 My go-to framework for building SSR/SSG React applications. I use it for performance-focused apps with dynamic routing, API routes, and image optimization.
Redux Toolkit 2019 Applied for predictable state management in complex UIs. I prefer Redux Toolkit for its boilerplate reduction, devtools integration, and type-safe actions.
Webpack / Vite 2017 I use Vite for lightning-fast local development and Webpack for customized production builds. I often tweak configurations for performance and code-splitting.
Node.js 2015 While primarily frontend-focused, I use Node.js for tooling (scripts, build tasks), serverless functions, and backend APIs when full-stack work is needed.
Cypress & Playwright 2021 Used for writing reliable end-to-end tests that cover UI flows. I integrate them into CI/CD pipelines to ensure consistent regression-free deployments.

For JavaScript Beginners: How to Start Strong

Starting with JavaScript can feel overwhelming - but it's totally doable if you focus on fundamentals first.

Start here:

  • Start with book "React Key Concepts" by Maximilian Schwarzmuller
  • Understand the basics of the DOM and events
  • Learn let, const, arrow functions, and template literals
  • Explore array methods: .map(), .filter(), .reduce()
  • Practice with real mini-projects (to-do app, weather app)
  • Don't rush into frameworks - learn vanilla JS first
  • Read error messages - they teach you
  • Use MDN, not just Stack Overflow

FAQ: Answering Common JavaScript Questions

Should I learn JavaScript before React or Vue?

Yes. Frameworks are tools built on top of JavaScript - and to use them effectively, you need a strong grasp of the core language. Learn how closures, promises, and the event loop work before diving into React. Otherwise, you'll end up copying code instead of truly understanding it.

Is JavaScript still worth learning in 2025?

Absolutely. JavaScript powers most of the web. From modern websites to hybrid mobile apps, it's the backbone of interactive user interfaces. With constant evolution (e.g., ES2024), it's not only relevant but increasingly powerful - especially with TypeScript and edge computing.

How do I avoid writing messy code in JavaScript?

Use a linter (ESLint), formatter (Prettier), and follow conventions like Airbnb's style guide. Break logic into functions, use clear variable names, and comment when necessary. Testing, modularity, and avoiding overengineering are also key to clean, maintainable JS.

What's the hardest concept for beginners in JS?

Understanding asynchronous code - callbacks, promises, and especially async/await. The event loop and how JavaScript handles concurrency is different from other languages. I always recommend building a few apps that use fetch or timers to get comfortable with it.

Do I need to learn TypeScript as a JS developer?

Eventually, yes. While it's not required at the start, TypeScript helps you avoid many runtime bugs and improves collaboration on larger codebases. Once you're comfortable with JavaScript fundamentals, gradually introduce TypeScript and its typesystem - it will pay off long-term.

Books That Shaped My JavaScript Thinking

Table of Contents

The most popular JavaScript books