Frontend Developer
Build fast, accessible interfaces: from HTML and CSS to TypeScript and React.
Internet
What happens between typing a URL and seeing a page.
- How the internet works — Clients, servers, IP addresses, and how packets travel between them.
- HTTP and HTTPS — Requests, responses, methods, status codes, headers, and TLS.
- DNS and domain names — How a domain name resolves to an address and what records control it.
- Hosting — Where websites live: static hosting, servers, and platforms.
- How browsers work — Parsing, layout, painting, and the rendering pipeline.
HTML
The structure and meaning of every web page.
- HTML basics — Document structure, elements, attributes, links, images, and lists.
- Semantic HTML — Choose elements for their meaning: headings, landmarks, article, nav, and more.
- Forms and validation — Inputs, labels, built-in validation, and submitting data.
- Accessibility — Build pages that work with keyboards and assistive technology.
CSS
Style, layout, and responsive design.
- CSS basics — Selectors, the cascade, specificity, the box model, and units.
- Flexbox — One-dimensional layout for rows and columns.
- CSS Grid — Two-dimensional layout with tracks, areas, and alignment.
- Responsive design — Media queries, fluid sizing, and container queries.
- Custom properties — Design tokens and theming with CSS variables.
JavaScript
The language of the web.
- Language fundamentals — Variables, types, functions, scope, closures, and control flow.
- The DOM and events — Select, change, and respond to elements in the page.
- Promises and async/await — Handle asynchronous work, errors, and the event loop.
- Modules — Split code into files with import and export.
- Fetching data — Call APIs with fetch, handle JSON, and deal with failures.
TypeScript
Add static types to JavaScript.
- Types and interfaces — Primitives, objects, unions, and describing the shape of data.
- Narrowing — Refine union types with guards and discriminated unions.
- Generics — Write reusable, type-safe functions and types.
- Project configuration — tsconfig options and strict mode.
Git and GitHub
Track changes and collaborate with other developers.
- Commits and history — Stage, commit, and inspect changes in a repository.
- Branching and merging — Work in isolation and combine changes safely.
- Pull requests — Review and merge work with GitHub.
React
Build interfaces from components.
- Components and JSX — Compose UI from small functions that return markup.
- State and props — Pass data down and keep local state close to where it is used.
- Effects — Synchronize with external systems, and learn when not to use an effect.
- Routing — Map URLs to screens with React Router.
- Server state — Fetch, cache, and update remote data with TanStack Query.
Testing
Ship changes with confidence.
- Unit tests — Test small pieces of logic in isolation.
- Integration tests — Verify that modules work together.
- End-to-end tests — Automate real user flows in a browser.