• Stars
    star
    122
  • Rank 291,354 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Research on Frontend Infrastructure

Frontend Infrastructure

Goal

Frontend infrastructure teams empower product teams with the foundational frontend ecosystem and reliable, performant, and developer-friendly tools to efficiently build great user experiences.

How

  • Move core metrics: developer experience, developer velocity, debuggability, performance, and reliability
  • Enhance developer productivity by improving the tooling setup
    • Linting: enforce best practices with static analysis and eslint rules
    • Unit and end to end tests
    • Deployment: continuous integration and continuous delivery
    • Type System: consistent and less-risky applications
    • Shared Configurations: create infrastructure so teams can start building new frontend applications without needing to know tricky configuration details
    • Build System: bundling frontend applications
  • Testing: Infrastructure and testing framework integrations enabling developers to write a comprehensive set of unit, integration, and end-to-end tests
  • Observability: Client-side web logging libraries, integration with vendor error monitoring solutions, alert generators for standard web metrics as well as their usage in automated canary analysis, and testing solutions to ensure logging quality
  • Shape the architecture of frontend systems
    • Define patterns for UIs (design system)
    • Define patterns for data fetching
    • Define patterns for frontend-backend relation: graphql, BFF, rest APIs
  • Make platform-wide changes and upgrade the entire codebase
    • Replace old libraries with new standards
  • Build a strong culture with the foundational platform knowledge
    • Partnering with product teams to encourage adoption of tools and frameworks
    • Share your experiences and expertise with those around you, and multiply your impact through thoughtful teaching, influencing, and setting examples.
  • Improve end-user experience by building infrastructure to support UX consistency across products
    • Optimize the client-side performance of web applications
    • Support teams to build consistent experiences through design systems
    • Monitoring systems: monitoring errors in the application
  • Research and test new languages, libraries and frameworks and evaluate their potential to make sure we never stop innovating.
    • Understand developer pain points and common questions in frontend development, and aim to improve or answer them.
    • Enable different product teams to be more productive by identifying similar features or tasks across teams and making improvements in the frontend stack or processes
    • Engagement in the JavaScript ecosystem/community: understand the ever-evolving JS landscape to proactively ensure the rest of the organization is maintaining a technically healthy product.
  • Build tools and drive initiatives to ensure best practices across teams as well as maximize developer productivity and experience
    • Provide teams with visibility into their test coverage and frontend performance
    • Build tools and processes to increase automated testing adoption in the org
    • Build tooling to provide teams with visibility into their test coverage and frontend performance
    • CLIs

Studies & Research Roadmap

Module System & Bundlers

JavaScript & TypeScript

CI β€” Continuous Integration

  • NPM install cache
  • Build optimization
  • Tests optimization

Skills

  • Knowledge/Deep understanding of modern frontend tech stack: HTML, CSS, JavaScript (ECMAScript), JS frameworks, type systems, package management, module bundling, unit and integration testing, browser capabilities.
  • Knowledge/Deep understanding of validation (CI) and deployment (CD) automation tools: Jenkins, AWS CodePipeline, TravisCI, CircleCI, DroneCI, etc and/or Shell/Bash script.
  • Knowledge/Deep understanding of reusable UI components: implementing WCAG (Web Content Accessibility Guidelines) and consistent design principles.
  • Knowledge/Deep understanding of web bundlers and its surrounding technologies (modules, plugins, compiler hooks, loaders, etc).
  • Knowledge/Deep understanding of systems and scalability: their edge cases, failure modes, and lifecycles.
  • Knowledge/Deep understanding of web performance: metrics, tools, optimizations, architecture.
  • Knowledge/Deep understanding of developer experience: metrics, tools, strategies, mindset.
  • Knowledge/Deep understanding of frontend architecture: frontend layers β€” presentation, application, domain, infrastructure.

Resources

Scope, Closure, and Execution Context

Modules

Bundlers and Build Tools

JavaScript Spec

JavaScript

TypeScript

Infrastructure for migrations and adoption

Platform/Infra teams

Developer Experience

Frontend Architecture

CI/CD

Tests: unit, integration, e2e

Static Analysis & Code Format

Runtimes

Tools

Bundlers

Flow -> TS codemods

Static Analysis & Code Format

Test Frameworks

Jobs

License

MIT Β© TK

More Repositories

1

functional-programming-learning-path

A Learning Path for Functional Programming
Clojure
922
star
2

web-performance-research

Research on Web Performance
462
star
3

algorithms

Algorithms & Data Structures & Computer Science studies
C++
416
star
4

programming-language-research

Programming Language Research, Applied PLT & Compilers
Clojure
74
star
5

thinking-in-types

TypeScript examples to build a mental model for types
TypeScript
61
star
6

advanced-typescript

Advanced TypeScript
TypeScript
57
star
7

pokehooks-labs

A laboratory to use pokemons and do some experiments with React Hooks API
JavaScript
40
star
8

crafting-an-interpreter

Crafting an interpreter/compiler with TypeScript.
TypeScript
39
star
9

crafting-frontend

Research, studies, and practice on Frontend
JavaScript
33
star
10

m2m

Transform a Medium post into a Markdown file
Python
29
star
11

laziness

Laziness is a set of tools for a better developer experience.
TypeScript
25
star
12

javascript-design-patterns

Design Patterns in JavaScript Studies
JavaScript
22
star
13

ui-challenges

UI Challenges - Training Lab
HTML
12
star
14

react-testing-library-recipes

React Testing Library Recipes to test React Applications
JavaScript
11
star
15

frontend-challenges

Frontend Challenges to practice.
JavaScript
10
star
16

boring-test

This repository was moved to the Laziness repo
JavaScript
10
star
17

mini-typescript

A miniature model of the Typescript compiler, intended to teach the structure of the real Typescript compiler
TypeScript
10
star
18

lazy-cypress

This repository was moved to Laziness repo
TypeScript
9
star
19

promising

Playing with Promises for a deep understanding
JavaScript
7
star
20

sql-query-json

Experiment SQL-query in JavaScript for JSON
JavaScript
6
star
21

leandrotk.github.io

This is the old repo for my website.
HTML
5
star
22

publisher

Automate blog post publishing
TypeScript
5
star
23

pokemonad

Understanding Higher Order Functions like filter, map, and reduce using Pokemon
Clojure
4
star
24

mercari-search

Rebuilding Mercari's Search experience.
TypeScript
4
star
25

tokyo

Organize all things to be prepared to work and live in Tokyo, Japan.
4
star
26

ux-studies

Studies on user experience, performance, and typed frontend.
TypeScript
4
star
27

minibundler

Building a mini bundler
JavaScript
4
star
28

nihongo

learning japanese on my own way
4
star
29

talks

Tech Talks - Striving to share knowledge
TypeScript
3
star
30

programming-with-types

Notes and experiments from the book Programming with Types.
TypeScript
3
star
31

year-progress-bar

JavaScript
2
star
32

a11y-bootcamp

JavaScript
2
star
33

hackernews

Hackernews UI
TypeScript
2
star
34

ts-template

TypeScript Template
TypeScript
2
star
35

dating

Dating dates
TypeScript
2
star
36

open-source-ramp-up

reading. learning. sharing. all about open source.
2
star
37

lox.ts

The compiler for the Lox programming language
TypeScript
1
star
38

jobs-algorithm

Jobs Algorithm
Clojure
1
star
39

master-javascript

Mastering JavaScript
JavaScript
1
star
40

rachar-conta

A simple program to split bills with friends
Clojure
1
star
41

imteekay

1
star
42

distractionless-medium

Making the Medium reading experience distractionless.
JavaScript
1
star
43

typed-state-management-poc

PoC of typed state management for Redux
JavaScript
1
star
44

iamtk.co

https://www.iamtk.co
1
star
45

luhn

Luhn algorithm is a simple checksum formula used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, National Provider Identifier numbers
Clojure
1
star