Understands basic O(n) and O(1) complexity when working with collections in Angular components. Uses built-in array methods (filter, map, find) in templates and services, aware of their linear cost.
Roles · Frontend Developer (Angular) · Junior
What a Junior } should know
24 core skills, 52 in total. Expectations per skill, and what changes at the next level.
This page lists what a Junior } is expected to know and do, skill by skill. Core skills are the ones a manager and peers assess in a review cycle; the rest count only in self-assessment. Main areas: Programming Fundamentals, Frontend Development.
Core skills for a Junior
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 7
Understands promises and async/await for HTTP requests in Angular services. Uses basic RxJS operators (subscribe, pipe) and AsyncPipe in templates for automatic Observable unsubscription.
Follows the Angular style guide and configured ESLint rules. Uses Angular CLI for generating components, services, and modules with proper structure. Writes clear names for component properties and methods.
Works with arrays and objects in Angular components for rendering lists via @for. Understands the difference between mutation and immutable data updates for correct OnPush change detection behavior.
Applies basic Angular patterns: component-based approach, dependency injection via constructor, smart/dumb component separation. Uses services as singletons via providedIn: root.
Understands basic OOP concepts in TypeScript: classes, interfaces, decorators, generics. Applies simple SOLID principles following Angular project architecture. Follows team patterns for component/service class structure and Angular DI usage.
Uses basic TypeScript types in Angular components: interfaces for data models, typed @Input/@Output, strict HTTP response typing via HttpClient.get<T>(). Avoids using any.
Frontend Development · 17
Uses Angular Core at a basic level. Creates simple components from designs. Understands basic concepts and follows component guidelines.
Understands bundle size impact on Angular application performance. Uses ng build --configuration production for tree-shaking and minification. Analyzes bundles with source-map-explorer.
Writes basic unit tests for Angular components via TestBed: render verification, @Input binding, @Output emission. Uses ComponentFixture and DebugElement for DOM access in tests.
Understands Core Web Vitals metrics (LCP, FID, CLS) and their measurement for Angular applications. Uses Chrome DevTools and Lighthouse for basic Angular component performance diagnostics.
Uses HttpClient for GET/POST requests in Angular services. Applies response typing via generics, handles errors with catchError, displays loading states in templates.
Uses ready-made Angular Material or ng-zorro-antd components in projects. Understands design system principles: consistency, component reuse, following color and typography guidelines.
Applies modern CSS in Angular components: Flexbox and Grid for layout, CSS Custom Properties for themes, :host and ::ng-deep (carefully) for styling. Understands ViewEncapsulation modes.
Understands PWA fundamentals including service workers and web app manifests in Angular. Uses Angular CLI to generate PWA scaffolding with @angular/pwa. Follows offline-first caching strategies from documentation.
Uses RxJS and reactive programming at a basic level. Creates simple components from designs. Understands basic concepts and follows component guidelines.
Understands SSR/SSG concepts and their benefits for Angular applications: SEO, First Contentful Paint. Knows about Angular Universal and basic server rendering setup via ng add @angular/ssr.
Manages state in Angular via services with BehaviorSubject and Angular signals. Understands the difference between local component state and global application state. Uses @Input/@Output for communication.
Applies Tailwind CSS utility classes in Angular templates for basic styling: colors, spacing, typography. Uses responsive prefixes (sm:, md:, lg:) and dark theme via the dark: modifier.
Understands the concept of visual regression testing for Angular components. Takes component screenshots via Storybook, knows about font and animation issues in visual comparison.
Understands the bundler's role in Angular CLI: esbuild as the default builder in Angular 17+. Knows the difference between dev server (fast rebuilds) and production build (optimization). Uses ng serve for development.
Applies basic accessibility in Angular templates: semantic HTML, alt for images, ARIA attributes via attribute binding, using Angular Material components with built-in a11y support.
Uses basic Web APIs in Angular components: localStorage/sessionStorage for state, Fetch API via HttpClient, DOM API via ElementRef and Renderer2 instead of direct document access.
Understands the Web Components concept and its relation to Angular Elements. Uses third-party Web Components in Angular templates via CUSTOM_ELEMENTS_SCHEMA in component metadata.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Mid-level
52 skills get a higher expectation or become core when moving from Junior to Mid-level. The biggest jumps first.
- Micro Frontends: Awareness → Working · becomes core
- Algorithms & Complexity: Awareness → Working
- Angular Core: Awareness → Working
- Async Programming: Awareness → Working
- Bundle Optimization: Awareness → Working
- Code Quality & Refactoring: Awareness → Working
- Component Testing: Awareness → Working
- Core Web Vitals: Awareness → Working
- Data Fetching: Awareness → Working
- Data Structures: Awareness → Working
} in the open competency matrix: 52 skills across 5 levels. The matrix is free for individuals and stays free.