Preface
In Taiwan's job market — partly because of its small and shallow scale — a common attitude takes hold: as long as the website works and features ship fast enough, that's good enough. Some engineers develop a mistaken belief that years on the job automatically make them "senior." No one ever told them that seniority implies genuine depth, not just task completion. They may never have been challenged, and they have no clear picture of what a Senior Engineer actually needs to be.
Reference: Definition of a Senior Engineer (Inside.com article)
Based on the following reasons, I proposed a small adjustment to our existing org structure and discussed it with my manager
- To retain the right talent and give them a real platform to grow within the company
- To help newly hired engineers with some experience understand their responsibilities and goals
- To give everyone a visible career path
- As someone who leads people, I need to be able to sketch out a career roadmap for my team members
- The capabilities required to become a Senior engineer take significant time to develop
- When a team is perpetually filled with juniors or members who stop growing, complex business features cannot be owned, technical debt piles up endlessly, and the codebase becomes a condemned building — fixing one thing breaks another. The system can no longer support business growth.
Proposed Solution
In the past, the only distinction was Junior vs. Senior — a binary split that creates an obvious gap. A strong mid-level developer who gets trained up sees no clear promotion opportunity and leaves.
My suggestion: introduce a Middle Developer tier (Web Developer II) between Junior and Senior. This creates a continuous ladder — one where developers can practice and acquire the skills needed for Senior level. Promotion to the next level requires demonstrating those capabilities.
I adapted this from a post shared by a community member on Bahamut: Link
Job Levels
Junior Developer — Web Developer I
A newcomer to the software industry with solid foundational knowledge of software engineering. Can reliably deliver assigned tasks and new features but tends not to focus on performance. Needs to discuss direction with more senior teammates in unfamiliar areas, and regularly asks for help when stuck.
Middle Developer — Web Developer II
An engineer with meaningful experience who brings their own ideas to assigned features and requirements. At this stage, the pursuit of perfection can occasionally lead to over-engineering. They typically propose multiple solutions to a problem and want to discuss the tradeoffs with more senior colleagues before choosing one. Within their own team, they can handle a variety of tasks and answer questions from more junior engineers. They may start mentoring new hires (Buddy role), resolve production issues independently, and are capable of bootstrapping small projects end-to-end while tackling the various challenges that arise. In critical situations, they still seek input from senior engineers.
Senior Developer
A core pillar of the team. Can quickly learn and propose solutions in any unfamiliar domain or project. Capable of breaking down ambiguous goals and leading the team to achieve them. Makes informed technology choices by evaluating tradeoffs in context. Can independently acquire needed knowledge from documentation, sample projects, and tutorials, then distill it into practical solutions. Provides technical leadership and makes significant decisions that shape the direction of technology or product. Represents their team in cross-functional meetings and makes decisions on the spot. At this level, there is also the opportunity to step into a management role and lead a team to drive meaningful business impact.
Staff / Principal Developer
Has deep expertise in specific technical domains and is consulted by upper management on complex technical decisions for large projects. Possesses knowledge and capabilities that are difficult to replace. Serves as the core technical lead on critical products. On the management side, leads a sub-team that plays an indispensable role within a larger organization, clearly articulates the future direction for that team, and guides everyone step by step toward that vision.
Roles
- Team Lead
- Technical PM
Note: In our previous large team, PMs were a mix of technical and non-technical backgrounds.
If the company grows large enough someday, there could also be:
- Business Analyst (requirements gathering, business analysis)
- Solution Architect
- DBA
- etc.
Closing Note
By the way, we're still looking for full-stack and front-end engineers — feel free to reach out.

References
Software Engineer titles and responsibilities at overseas companies
Fun video — Behind every successful project is a warm-hearted Senior Engineer




























Comments