---
title: "Solving the Mid-Level Developer Career Dilemma in Your Organization"
description: "An exploration of the career bottleneck that mid-level developers face in Taiwan's software industry, with a proposal to introduce a clear intermediate level between Junior and Senior to retain talent and provide a visible promotion path."
canonical_url: "https://blog.markkulab.net/en/post/solving-the-middle-developer-career-dilemma"
author: "Mark Ku"
author_url: "https://blog.markkulab.net/en/author/mark-ku"
site: "Mark Ku's Tech Notes"
date_published: "2023-02-04 01:01:35 +0800"
category: "Management"
tags: ["management", "career", "developer", "team", "hiring"]
language: "en"
license: "CC BY 4.0"
license_url: "https://creativecommons.org/licenses/by/4.0/"
attribution: "when reusing or quoting, credit the author and link back to the original"
---

# Solving the Mid-Level Developer Career Dilemma in Your Organization

> **TL;DR** — 歡迎收聽 Mark 的技術雜談，我是主持人璦廷。在軟體開發的路上，你是否覺得從初階跨越到資深工程師，就像面對一道難以跨越的鴻溝呢？ 台灣的開發環境常因為講求速度，讓許多人誤以為年資就等於資深，忽略了專業的深度。這不僅讓公司累積技術債，更讓許多好不容易培養起來的中階開發者，因為看不到晉升機會而流失。 讓我們來看看作者提出的解法。文章建議在初階與資深之間，明確增設中階開發者的職級階梯。這個重點值得注意，因為它打破了傳統的二分法。 具體來說，初階工程師負責穩穩完成任務；中階工程師則開始能提出解決方案、主導小型專案並帶領新人；經過這些歷練，最終晉升為能拆解模糊目標、做出技術取捨的資深工程師。這樣的架構微調，能幫助每個人勾勒出清晰的職涯藍圖，讓招聘進來的人才了解自己的責任與目標。 總結來說，建立細緻的職級制度，是留住對的人才與維持系統健康的關鍵。在人工智慧快速改變軟體業的今天，技術能力的要求不斷提升，你的團隊是否也已經為中階人才，鋪好持續成長的階梯了呢？

## 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)

[Link](https://www.inside.com.tw/amparticle/8039-be-a-senior-engineer)

## 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](https://forum.gamer.com.tw/C.php?bsn=60561&snA=20317)

### 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.

![White gaming PC with purple RGB lighting and IBUYPOWER neon sign](https://blog.markkulab.net/content/markku/posts/solving-the-middle-developer-career-dilemma/images/PVjySMJ.jpg)

## References

[Software Engineer titles and responsibilities at overseas companies](https://forum.gamer.com.tw/C.php?bsn=60561&snA=20317)

[Fun video — Behind every successful project is a warm-hearted Senior Engineer](https://www.facebook.com/watch/?v=1548226832312319&extid=NS-UNK-UNK-UNK-IOS_GK0T-GK1C&mibextid=2Rb1fB&ref=sharing)

---

## About this article and its author

Originally published on [Mark Ku's Tech Notes](https://blog.markkulab.net/en/post/solving-the-middle-developer-career-dilemma)

License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — when reusing or quoting, credit the author and link back to the original

### About the author

**[Mark Ku](https://blog.markkulab.net/en/author/mark-ku)** — Software Solution Provider

- 10+ years senior software engineer, now an AI Builder
- Focused on large-platform architecture — North-American e-commerce, AI SaaS subscription billing
- Combining AI Agents and automation to build evolvable product foundations

### Free tools built by the author

All of these are free to use:

- [Free PDF Sign Tool](https://blog.markkulab.net/en/tools/pdf-sign): Online PDF sign tool — draw, type, or upload a signature, then drag, resize, and download. Everything runs in your browser; nothing is uploaded.
- [VS Code Refactory](https://blog.markkulab.net/en/tools/refactory): Refactory is a VS Code refactoring extension: 34 actions plus a 37-rule code-smell inspection layer with a Code Health dashboard, across 18 languages, backed by 534 tests. It learns your repo's conventions: where interfaces live, where DI is registered, whether 'use client' belongs. It ranks files by git churn × complexity so you know what to fix first, and hands any smell to the Claude Code already on your machine. Free to use, and your source never leaves your computer.
- [DB-Kit Database Manager](https://blog.markkulab.net/en/tools/db-kit): DB-Kit is a lightweight, cross-platform database manager built with Tauri + Rust + React. Manage MySQL, MariaDB, PostgreSQL, SQL Server, Oracle, SQLite, MongoDB, Redis, Kafka, Elasticsearch and RabbitMQ from one consistent interface: passwords encrypted in the OS keychain, SSH tunnels, full CRUD, a visual query builder, stacked multi-statement result sets, cross-connection data transfer and compare/sync, Excel / CSV import & export, visualized execution plans, ER diagrams, scheduled backups, SQL stress testing with p50–p99 latency percentiles, a 15-rule SQL review engine, Kafka message browsing with monitoring & alerts, a bilingual UI (Traditional Chinese / English), a built-in AI assistant (natural-language SQL, AI review and tuning advice) and the dbk CLI. Free and open source (MIT), with installers for Windows, macOS and Linux.
- [VS Code Super Mermaid](https://blog.markkulab.net/en/tools/super-mermaid): Super Mermaid is a VS Code extension for beautiful Mermaid diagrams out of the box: auto-colored live preview, mouse pan & zoom, high-res PNG / SVG export, 21 templates and multiple themes. Free and open source (MIT).
- [React Super Mermaid](https://blog.markkulab.net/en/tools/react-super-mermaid): react-super-mermaid is an open-source React component library: render beautiful Mermaid diagrams with a single <MermaidViewer>, with built-in colorful / sketch themes, pan & zoom, in-diagram search, and high-res SVG / PNG export. Lightweight, SSR-safe, fully typed. Free and open source (MIT).
- [Jira / Confluence Super Mermaid](https://blog.markkulab.net/en/tools/jira-super-mermaid): An Atlassian Forge app: write Mermaid syntax directly inside a Jira issue or a Confluence page and get flowcharts, sequence diagrams, state machines and Gantt charts. 11 diagram types, SVG / PNG export, light and dark themes, full CJK support. Runs on Atlassian: your diagrams live in your own site and the app calls no third-party service. Free, coming soon to the Atlassian Marketplace.
- [Mermaid Live Preview](https://blog.markkulab.net/en/tools/mermaid-preview): Write Mermaid in your browser, see it render instantly, and share the whole diagram as a single link. No sign-up, nothing uploaded to a server, and mermaid.live share links work as-is.
- [React Intl Phone Number](https://blog.markkulab.net/en/tools/react-intl-phone-number): react-intl-phone-number is an open-source React component: framework-agnostic and antd-free, with E.164 in/out, a searchable flag / country-code dropdown, configurable validation levels (strict / mobile-strict / loose), themeable CSS, and i18n — phone logic powered by google-libphonenumber. Lightweight and fully typed. Free and open source (MIT).
- [Uptime Kuma Cluster](https://blog.markkulab.net/en/tools/uptime-kuma-cluster): Turn single-node Uptime Kuma into a highly available cluster: OpenResty + Lua smart load balancing, shared MariaDB state, health checks and automatic failover, plus cluster-management REST APIs. One Docker Compose command to start. Free and open source (MIT).
- [Special Education](https://blog.markkulab.net/en/education): Learning materials crafted for special education students

### Daily podcasts

- [Mark's Tech Insights — Daily AI News](https://blog.markkulab.net/en/category/tech-news): Daily curated AI and tech trends. Catch the latest developments via audio summaries — covering AI applications, software architecture, DevOps, and engineering practice. — RSS: https://blog.markkulab.net/feed.xml
- [AI股市蝦聊](https://blog.markkulab.net/en/category/ai-stock-chat): Every trading day, an AI-analyzed take on the Taiwan stock market, delivered as a two-host conversation covering the session and the next-day outlook. — RSS: https://blog.markkulab.net/ai-stock-chat/feed.xml
- [開源好物週報](https://blog.markkulab.net/en/category/open-source-weekly): A weekly two-host pick of free open-source tools surfaced from real Hacker News, GitHub, and Reddit buzz — what pain they solve and the fastest way to get started. — RSS: https://blog.markkulab.net/open-source-weekly/feed.xml

### Newsletter

[Subscribe to the newsletter](https://blog.markkulab.net/en/subscribe) — Be the first to know about new posts. No spam, unsubscribe anytime.
