<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/8-frontend-engineering-concepts-every-developer-should-actually-understand-txayrszi5" -->

---
title: 8 Frontend Engineering Concepts Every Developer Should...
description: A practical overview of eight frontend engineering concepts that frequently appear in real-world apps and interviews: lazy loading, preloading critical...
canonical: https://daily.dev/posts/8-frontend-engineering-concepts-every-developer-should-actually-understand-txayrszi5
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: 8 Frontend Engineering Concepts Every Developer Should Actually Understand | daily.dev
og:description: A practical overview of eight frontend engineering concepts that frequently appear in real-world apps and interviews: lazy loading, preloading critical...
og:url: https://daily.dev/posts/8-frontend-engineering-concepts-every-developer-should-actually-understand-txayrszi5
og:image: https://api.daily.dev/og/posts/TXaYRsZi5.png
og:image:alt: 8 Frontend Engineering Concepts Every Developer Should Actually Understand
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 8 Frontend Engineering Concepts Every Developer Should Actually Understand

**[Medium](https://daily.dev/sources/medium_js)** · 9 min read · 8 upvotes · 0 comments

## Summary

A practical overview of eight frontend engineering concepts that frequently appear in real-world apps and interviews: lazy loading, preloading critical resources, code splitting with React.lazy, CORS preflight requests, debounce vs. throttle, forward vs. reverse proxies, microfrontend shell apps, and React memoization hooks (useMemo, useCallback, React.memo). Each concept is explained with plain-language reasoning, code examples, and key nuances — such as when memoization can hurt rather than help performance, and why OPTIONS requests appear in the network tab.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://medium.com/@shrmatwinkle246/8-frontend-engineering-concepts-every-developer-should-actually-understand-ab6961e1d473>

## Questions this post answers

### why does an OPTIONS request show up in the network tab before my actual API call

That OPTIONS request is a CORS preflight check the browser automatically sends before certain cross-origin requests. It happens for non-simple requests, such as those using PUT or DELETE, custom headers like Authorization, or Content-Type: application/json, so the browser can confirm the server allows the real request before sending it.

_developers debugging unexpected network calls dig into these CORS patterns on daily.dev._

### what is the difference between debounce and throttle in javascript

Debounce waits for events to stop for a set delay before firing once, resetting its timer on every new event, making it ideal for search-as-you-type where you want one API call after typing stops. Throttle runs at a fixed interval regardless of how often events fire, useful for infinite scroll checks or rate-limiting comment submissions.

_daily.dev helps developers comparing rate-limiting techniques like these settle on the right one._

### when should I use useMemo, useCallback, or React.memo

Use useMemo to cache an expensive computed value, useCallback to keep a stable function reference for props passed into memoized children, and React.memo to skip re-rendering a component whose props haven't changed. Each carries memory and comparison overhead, so overusing them on cheap, fast-rendering components can make an app slower rather than faster.

_developers weighing memoization trade-offs in React can keep sharpening that judgment via daily.dev._

## Similar posts on daily.dev

- [21 Frontend System Design Concepts for Software Engineers](https://daily.dev/posts/21-frontend-system-design-concepts-for-software-engineers-xa5fr9jyn) · System Design Newsletter · 174 upvotes · 9 comments
- [EP226: API Concepts Every Software Engineer Should Know](https://daily.dev/posts/ep226-api-concepts-every-software-engineer-should-know-rh6pqv5zh) · ByteByteGo · 15 upvotes · 1 comments
- [What front-end engineers need to know about AWS](https://daily.dev/posts/what-front-end-engineers-need-to-know-about-aws-a4zpc4n8d) · InfoWorld · 1 upvotes · 0 comments

---

Tags: [#react](https://daily.dev/tags/react), [#performance](https://daily.dev/tags/performance), [#frontend](https://daily.dev/tags/frontend)

[View this post on daily.dev](https://daily.dev/posts/8-frontend-engineering-concepts-every-developer-should-actually-understand-txayrszi5)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"8 Frontend Engineering Concepts Every Developer Should Actually Understand","url":"https://daily.dev/posts/8-frontend-engineering-concepts-every-developer-should-actually-understand-txayrszi5","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/8-frontend-engineering-concepts-every-developer-should-actually-understand-txayrszi5"},"datePublished":"2026-07-24T10:08:47.164Z","dateModified":"2026-09-14T08:20:48.414Z","description":"A practical overview of eight frontend engineering concepts that frequently appear in real-world apps and interviews: lazy loading, preloading critical...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d6ab0a9a223ee01bc82d647f54feb2d2?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d6ab0a9a223ee01bc82d647f54feb2d2?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Medium","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Medium","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium","url":"https://daily.dev/sources/medium_js"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/8-frontend-engineering-concepts-every-developer-should-actually-understand-txayrszi5","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":8},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"react,performance,frontend","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":3,"name":"8 Frontend Engineering Concepts Every Developer Should Actually Understand"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/8-frontend-engineering-concepts-every-developer-should-actually-understand-txayrszi5#faq","mainEntity":[{"@type":"Question","name":"why does an OPTIONS request show up in the network tab before my actual API call","acceptedAnswer":{"@type":"Answer","text":"That OPTIONS request is a CORS preflight check the browser automatically sends before certain cross-origin requests. It happens for non-simple requests, such as those using PUT or DELETE, custom headers like Authorization, or Content-Type: application/json, so the browser can confirm the server allows the real request before sending it. developers debugging unexpected network calls dig into these CORS patterns on daily.dev."}},{"@type":"Question","name":"what is the difference between debounce and throttle in javascript","acceptedAnswer":{"@type":"Answer","text":"Debounce waits for events to stop for a set delay before firing once, resetting its timer on every new event, making it ideal for search-as-you-type where you want one API call after typing stops. Throttle runs at a fixed interval regardless of how often events fire, useful for infinite scroll checks or rate-limiting comment submissions. daily.dev helps developers comparing rate-limiting techniques like these settle on the right one."}},{"@type":"Question","name":"when should I use useMemo, useCallback, or React.memo","acceptedAnswer":{"@type":"Answer","text":"Use useMemo to cache an expensive computed value, useCallback to keep a stable function reference for props passed into memoized children, and React.memo to skip re-rendering a component whose props haven't changed. Each carries memory and comparison overhead, so overusing them on cheap, fast-rendering components can make an app slower rather than faster. developers weighing memoization trade-offs in React can keep sharpening that judgment via daily.dev."}}]}
```

