πΊοΈ My Individual Development Plan
From Mid-level to Senior Engineer.
Stack: Java Β· Go Β· Rust (learning) Β· Experience: 6+ years Β· Horizon: 12 months
idp.rsMid-level β Senior
// individual development plan Β· Java Β· Go Β· Rust Β· 12 months
JavaGoπ¦ Rust β learningApache TomEE Committer11 TalksItaΓΊ Unibanco Β· 6+ yrs
πCurrent Diagnosis
β¦Strengths
- 6+ years building distributed systems at ItaΓΊ Unibanco (Java + Go)
- Apache TomEE Committer β active in Jakarta EE ecosystem
- 11 community talks (SouJava, TDC, Campus Party, JUG Nicaragua)
- Active technical blog: Rust, load testing, observability, Pulsar
- Hands-on Rust project: User CRUD with SQLx, async, layered arch
βIdentified Gaps
- Software architecture at scale: DDD, Hexagonal, Event-Driven design docs
- Technical leadership and influence without formal authority
- Writing explicit trade-off records (ADRs, RFCs) at work
- Mentoring and actively developing other engineers
βOpportunities
- Blog already covers real systems β evolve to architecture decision posts
- Rust differentiates: rare profile in Brazilian backend market
- Existing talks history β natural path to tech lead presentations
- Apache committer role β influence in open source architecture
βWhat Senior Demands More
- Own technical decisions end-to-end without supervision
- Guide engineers by teaching, not just doing
- Think in systemic trade-offs, not just working solutions
- Translate technical complexity into business language
// mid-level vs senior β the real difference
| Mid-level does today | Senior does differently |
|---|---|
| Implements what was asked well | Defines what should be built and why |
| Follows patterns in the codebase | Questions, evolves, and documents patterns |
| Solves the ticket | Identifies problems before they become tickets |
| Asks for technical direction | Gives technical direction to the team |
| Uses Kafka because the team uses Kafka | Knows when not to use Kafka β and documents it |
| Blogs about how something works | Blogs about why a trade-off was made |