Files
ThreatHunt/SKILLS/25-algorithms-performance.md
mblanke 9b98ab9614 feat: interactive network map, IOC highlighting, AUP hunt selector, type filters
- NetworkMap: hunt-scoped force-directed graph with click-to-inspect popover
- NetworkMap: zoom/pan (wheel, drag, buttons), viewport transform
- NetworkMap: clickable IP/Host/Domain/URL legend chips to filter node types
- NetworkMap: brighter colors, 20% smaller nodes
- DatasetViewer: IOC columns highlighted with colored headers + cell tinting
- AUPScanner: hunt dropdown replacing dataset checkboxes, auto-select all
- Rename 'Social Media (Personal)' theme to 'Social Media' with DB migration
- Fix /api/hunts timeout: Dataset.rows lazy='noload' (was selectin cascade)
- Add OS column mapping to normalizer
- Full backend services, DB models, alembic migrations, new routes
- New components: Dashboard, HuntManager, FileUpload, NetworkMap, etc.
- Docker Compose deployment with nginx reverse proxy
2026-02-19 15:41:15 -05:00

892 B

Algorithms & Performance

Use this skill when performance matters (large inputs, hot paths, or repeated calls).

Checklist

  • Identify the state you're recomputing.
  • Add memoization / caching when the same subproblem repeats.
  • Prefer linear scans + caches over nested loops when possible.
  • If you can write it as a recurrence, you can test it.

Practical heuristics

  • Measure first when possible (timing + input sizes).
  • Optimize the biggest wins: avoid repeated I/O, repeated parsing, repeated network calls.
  • Keep caches bounded (size/TTL) and invalidate safely.
  • Choose data structures intentionally: dict/set for membership, heap for top-k, deque for queues.

Review notes (for PRs)

  • Call out accidental O(n²) patterns.
  • Suggest table/DP or memoization when repeated work is obvious.
  • Add tests that cover base cases + typical cases + worst-case size.