RADIO Framework Cheatsheet
Overview
RADIO is a structured approach to frontend system design interviews:
- Requirements exploration (15% of time)
- Architecture design (20% of time)
- Data model definition (10% of time)
- Interface specification (15% of time)
- Optimizations and deep dive (40% of time)
R - Requirements Exploration (15%)
Key Questions to Ask
-
Core Use Cases
- Which specific features should we focus on?
- What are the primary user flows?
-
Requirements Classification
- Functional requirements (must-haves)
- Non-functional requirements (nice-to-haves)
-
Technical Constraints
- Supported devices/platforms
- Offline support needs
- Performance requirements
- Target users
-
Design & Styling Requirements
- Theme support (light/dark mode)
- Brand guidelines
- Design system requirements
- Responsive design needs
Device Support Matrix
Breakpoints to Consider:
- Mobile: < 768px
- Tablet: 768px - 1024px
- Desktop: > 1024px
- Large Desktop: > 1440px
💡 Pro Tip: Write down agreed requirements for reference throughout the interview
A - Architecture Design (20%)
Key Components to Consider
- Server (treat as black box)
- View (user interface)
- Controller (user interaction handling)
- Model/Client Store (data management)
Rendering Strategies
-
Client-Side Rendering (CSR)
- Full JavaScript bundle
- Good for dynamic content
- SEO challenges
-
Server-Side Rendering (SSR)
- Better initial load
- Good for SEO
- Higher server load
-
Static Site Generation (SSG)
- Best performance
- Limited dynamic content
- Good for content-heavy sites
-
Incremental Static Regeneration (ISR)
- Hybrid approach
- Balance of dynamic and static
Theming Architecture
-
Theme Implementation
- CSS Variables
- Styled-components
- CSS-in-JS
- CSS Modules
-
Theme Structure
- Colors
- Typography
- Spacing
- Breakpoints
- Component-specific themes
Design Principles
- Separation of concerns
- Component modularity
- Computation placement (client vs server)
- Responsive design patterns
💡 Pro Tip: Draw diagrams using tools like diagrams.net or Excalidraw
D - Data Model Definition (10%)
Data Types
-
Server-originated Data
- Database-sourced
- Shared across users/devices
-
Client-only Data
- Persisted state (form inputs)
- Ephemeral state (UI state)
- Theme preferences
- Device/viewport information
Data Model Template
Entity:
- Fields
- Data source
- Owner component
- Relationships
- Responsive variations
I - Interface Definition (15%)
Server-Client APIs
- HTTP method
- Endpoint path
- Parameters
- Response format
Client-Client APIs
- Function signatures
- Event listeners
- Props (for components)
- Return values
Responsive Component Props
interface ResponsiveProps {
mobile?: React.ReactNode;
tablet?: React.ReactNode;
desktop?: React.ReactNode;
breakpoints?: {
mobile: number;
tablet: number;
desktop: number;
};
}
O - Optimizations & Deep Dive (40%)
Key Areas
-
Performance
- Loading optimization
- Rendering optimization
- Caching strategies
- Code splitting strategies
- Asset optimization
-
Responsive Design Optimizations
- Responsive images
- Container queries
- CSS optimization
- Mobile-first approach
- Touch interactions
-
Theme Implementation
- Runtime theme switching
- Prefers-color-scheme
- CSS Variables vs CSS-in-JS
- Performance considerations
- Storage strategy
-
User Experience
- Error handling
- Loading states
- Animations/transitions
- Responsive behaviors
- Touch gestures
-
Technical Considerations
- Network handling
- Accessibility (a11y)
- Internationalization (i18n)
- Security
- Multi-device support
- Progressive enhancement
Rendering Optimization Techniques
-
Component Level
- Lazy loading
- Virtualization
- Memoization
- Code splitting
-
Style Level
- Critical CSS
- Atomic CSS
- CSS containment
- Container queries
-
Asset Level
- Image optimization
- Font loading
- Icon systems
- Responsive images
Deep Dive Strategy
- Focus on product-critical areas
- Highlight your technical strengths
- Address unique challenges
- Consider device-specific optimizations
Interview Tips
- Stay organized and structured
- Manage time according to RADIO percentages
- Draw clear diagrams
- Write down requirements
- Focus on frontend aspects
- Be ready to adapt based on interviewer feedback
- Consider responsive design from the start
- Address theme implementation early
Remember: This framework is flexible - adapt it based on the specific question and interviewer's interests.