I've been alternating and combining many different roles: programmer, product designer, architect, technical writer, R&D manager, ... all in the field of automated software migrations.
In general I want to build great software, but not necessarily all by myself.
My strengths:
- Eye for detail and finish, perseverance and passion to learn
- As a software architect: API, protocol and data-model design, focus on testability and incremental evolution, documentation, explaining complex things in simple terms
- As a software engineer: Java, C#, C, Python, parsers (Bison/YACC, ANTLR), regexes, build tools (MSBuild, Ant, Make)
- As a manager: strategic vision, planning and pragmatism, empathy & humility, clear communication
My weaknesses:
- Slow starter, lots of context needed/wanted
- As a software architect: ?
- As a software engineer: UI design
- As a manager: no interest in micro-management, office politics, long emails