← Risk register Audit · 4 / 4 · Cải thiện điểm Hoàn tất · về Docs Hub ✓

📈 Score Improvement Plan — Threads API v2

From current scorecard to interview-ready · backend-portfolio lens · effort-ranked actions
quick winhours   mediumdays   big lift1–2 weeks

Current overall reads as a strong-build / weak-operations profile: the engine is impressive, but it isn't tested, monitored, or hardened. Every score below moves with the same handful of changes — depth over features. Targets are realistic within 1–2 months of student effort.

At-a-glance — current → target

DimensionNowTargetTrajectorySingle biggest lever
Backend Engineering 7.5 9.0
Add tests + DLQ/queue dashboard around the async tier
Database Design 6.5 8.5
Feed composite index + EXPLAIN proof; transactional counters
System Design 7.0 8.5
ARCHITECTURE.md + load-test numbers + scale story
Product Thinking 4.5 7.0
Cut gamification/AI sprawl; frame one sharp product story
Production Readiness 3.5 8.0
Fix log-leak crits → tests → observability → distributed rate limit
Resume Impact 7.0 8.5
Quantified bullets (req/s, p95) backed by load tests
Interview Potential 7.5 9.0
Be able to whiteboard the Lua like-counter & cache invalidation
Frontend Engineering N/A 7.0
Attach a real client app — or rebrand as "Backend" portfolio

Per-dimension playbook

Backend Engineering 7.59.0

Already the standout: atomic Redis Lua like-counter, 10-queue BullMQ tier, clean route→controller→service→repository layering. What's missing is proof it's robust, not just built.

Database Design 6.58.5

Good normalization (43 tables), 62+ indexes, keyset pagination. Held back by a missing hot-path index and non-transactional denormalized counters.

System Design 7.08.5

Sound modular-monolith + async split + Soketi realtime. The architecture is good but invisible — there's no document or numbers that let a reviewer see it without reading code.

Product Thinking 4.57.0

Lowest score, and it's about focus, not effort. Gamification (soul stones, HP decay, badges = 23% of module code), 4 AI providers, and a museum module signal breadth-chasing for an app with no users.

Production Readiness 3.58.0

The biggest gap and the highest-leverage fix area. Two critical credential-in-logs bugs, zero tests, no monitoring, and an in-memory rate limiter that contradicts the horizontal deploy.

Resume Impact 7.08.5

The material is strong; the phrasing is generic. Recruiters skim for numbers and scope.

Interview Potential 7.59.0

Strong stories already exist — the risk is not being able to defend them live, or getting caught by the in-memory-limiter contradiction.

Frontend Engineering N/A7.0

No client exists in this repo, so a "Fullstack" reviewer scores this as missing. Two valid paths:

Top 5 levers — most score per hour

1
Log redaction (the 2 criticals). ~1 hr. Lifts Production Readiness off the floor and removes the one finding that's outright disqualifying if shipped. Prod ReadinessInterview
2
A real test suite + CI gate. ~1 week. The #1 thing reviewers grep for; moves Backend, Production Readiness, and Interview together. BackendProd Readiness
3
Observability stack (metrics + tracing + Sentry + readiness probe). ~1 week. Turns "can build" into "can operate" — the junior→mid boundary. Prod ReadinessSystem Design
4
Feed index + load test + ARCHITECTURE.md. ~2 days. Produces the EXPLAIN and req/s numbers that power quantified resume bullets. DBSystem DesignResume
5
Cut the sprawl + write a product vision. ~half day. The only thing that meaningfully moves Product Thinking. ProductResume

Effort × Impact quadrant

High impactLower impact
Low effort
do first
Log redaction · feed index + EXPLAIN · transactional counters · CI typecheck/lint gate · quantified resume bulletsJWT algo pinning · CORS prod lockdown · remove empty stub class
High effort
plan for
Test suite · observability stack · load testing + ARCHITECTURE.md · frontend clientMore features (gamification, extra AI providers) — actively avoid

Additional feedback — beyond the scores

Net: you do not need more features. Doing levers 1–5 over 1–2 months realistically moves the overall profile from "strong junior, gets interviews" to "credible mid-level, passes them" — without writing a single new endpoint.