Design Systems for Software Engineers
A comprehensive guide to design system engineering (DSE): when it’s relevant, how AI changes things, and pointers for getting started. From Michael Abernethy, Principal Frontend Engineer at Rubrik

TL;DR
- A design system unifies a product's identity, serving as a source of truth for design and engineering teams.
- Key components of a design system include rules, patterns, reusable code, and documentation.
- Building a design system requires collaboration between UX researchers, designers, and engineers, addressing numerous detailed decisions for each component.
- Benefits of a design system include faster delivery times, higher quality UI, improved collaboration, and cost savings.
- AI can assist in tasks like writing unit tests and documenting components, but cannot currently generate a full design system.
- For smaller teams, using pre-built design system libraries like Material UI or Chakra UI is a viable alternative.
- Testing, including unit tests, Storybook documentation, and visual regression testing with tools like Chromatic, is crucial for maintaining quality.
- Modern design systems incorporate async awareness and handle loading states for improved performance and user experience.