> common-performance-engineering
Universal standards for high-performance development. Use when optimizing, reducing latency, fixing memory leaks, profiling, or improving throughput. (triggers: **/*.ts, **/*.tsx, **/*.go, **/*.dart, **/*.java, **/*.kt, **/*.swift, **/*.py, performance, optimize, profile, scalability, latency, throughput, memory leak, bottleneck)
curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/common-performance-engineering?format=md"Performance Engineering Standards
Universal standards for high-performance software development across all frameworks.
Priority: P0 (CRITICAL)
Universal standards for building high-performance software across all frameworks and languages.
🚀 Core Principles
- Efficiency by Design: Minimize resource consumption (CPU, Memory, Network) without sacrificing readability.
- Measure First: Never optimize without a baseline. Use profiling tools before and after changes.
- Scalability: Design systems to handle increased load by optimizing time and space complexity.
💾 Resource Management
- Memory Efficiency:
- Avoid memory leaks: explicit cleanup of listeners, observers, and streams.
- Optimize data structures: use the most efficient collection for the use case (e.g.,
Setfor lookups,Listfor iteration). - Lazy Initialization: Initialize expensive objects only when needed.
- CPU Optimization:
- Algorithm Complexity: Aim for $O(1)$ or $O(n)$ where possible; avoid $O(n^2)$ in critical paths.
- Offload Work: Move heavy computations to background threads or workers.
- Minimize Re-computation: Use memoization for pure, expensive functions.
🌐 Network & I/O
- Payload Reduction: Use efficient serialization (JSON minification, Protobuf) and compression.
- Batching: Group multiple small requests into single bulk operations.
- Caching Strategy:
- Implement multi-level caching (Memory -> Storage -> Network).
- Use appropriate TTL (Time To Live) and invalidation strategies.
- Non-blocking I/O: Always use asynchronous operations for file system and network access.
⚡ UI/UX Performance
- Minimize Main Thread Work: Keep animations and interactions fluid by keeping the main thread free.
- Virtualization: Use lazy loading or virtualization for long lists/large datasets.
- Tree Shaking: Ensure build tools remove unused code and dependencies.
📊 Monitoring & Testing
- Benchmarking: Write micro-benchmarks for performance-critical functions.
- SLIs/SLOs: Define Service Level Indicators (latency, throughput) and Objectives.
- Load Testing: Test system behavior under peak and stress conditions.
🚫 Anti-Patterns
- Do NOT use standard patterns if specific project rules exist.
- Do NOT ignore error handling or edge cases.
> related_skills --same-repo
> typescript-tooling
Development tools, linting, and build config for TypeScript. Use when configuring ESLint, Prettier, Jest, Vitest, tsconfig, or any TS build tooling. (triggers: tsconfig.json, .eslintrc.*, jest.config.*, package.json, eslint, prettier, jest, vitest, build, compile, lint)
> typescript-security
Secure coding practices for TypeScript. Use when validating input, handling auth tokens, sanitizing data, or managing secrets and sensitive configuration. (triggers: **/*.ts, **/*.tsx, validate, sanitize, xss, injection, auth, password, secret, token)
> typescript-language
Modern TypeScript standards for type safety and maintainability. Use when working with types, interfaces, generics, enums, unions, or tsconfig settings. (triggers: **/*.ts, **/*.tsx, tsconfig.json, type, interface, generic, enum, union, intersection, readonly, const, namespace)
> typescript-best-practices
Idiomatic TypeScript patterns for clean, maintainable code. Use when writing or refactoring TypeScript classes, functions, modules, or async logic. (triggers: **/*.ts, **/*.tsx, class, function, module, import, export, async, promise)