Mark Ku's Blog
Open in ChatGPTOpen in Claude

歡迎收聽 Mark 的技術雜談,我是璦廷。擔任技術主管,是不是常讓你覺得像一塊夾在專案與人事間的三明治呢? 今天帶大家回顧一位技術主管兩年半來的真實管理筆記。面對突如其來的隕石級需求,他導入敏捷開發穩定團隊節奏。這個重點值得注意,他不只解決技術問題,更跨足改善招募流程、規劃工作分解結構來協調專案,甚至利用私人時間先行研究人工智慧與自動化行銷等新技術,再交接給團隊。 接下來,讓我們來看看他在帶人方面的用心。除了爭取調薪與遠距工作福利,他更透過一對一面談與規劃職涯路徑,凝聚團隊向心力。同時,他也坦誠反省自己的盲點:有時過度保護成員,反而剝奪了他們突破自我的機會;而把別人的工作全攬在身上,長期下來反而會掩蓋組織真實的缺口。 真正的管理,往往是在不斷的試錯中成長。聽完今天的分享,不妨也問問自己:在你的工作崗位上,是否也有需要學會放手讓團隊成長的時刻呢?我們下次見。

Podcast ConversationAI dialogue version of this article · Mandarin audio
Audio for this article is powered by VoAIVoAI

Introduction

Honestly, being a tech lead is not easy. You not only have to do your own work well, but also manage people, plan projects, and work on those projects. You wear multiple hats, and like being the middle of a sandwich, you can easily get squeezed from both sides if you're not careful.

During work hours, you spend time on communication, coordination, and handling emergencies. After work and on weekends, you still have to spend time planning work and maintaining your professional skills.

So, I've taken some time to organize and reflect on the things I've done.

Facing 'Meteor' Crises

When I joined the company two and a half years ago, it was right after the previous manager had retired and a group of engineers had also left. Everything was like a storm; new, urgent problems would pop up every week. Often, the work goals on Monday would be different from those on Friday. A super-high-priority project would appear out of nowhere every so often. To let others focus on their work, I always had to be on the front line, intercepting this storm of incidents. Since there was no one to coordinate, I had to negotiate with others on behalf of the team, even for unreasonable requests. Things got much better after I suggested adopting Agile development and helped my US colleagues implement Jira. At least our two-week goals became stable, and unless there was an urgent need, everything else was scheduled for the next Sprint.

Improving Recruitment Bottlenecks

To address the recruitment bottleneck, we didn't have a dedicated HR person at the time; an assistant handled HR duties part-time. I pulled them in to work on improvements with me, which included revising the company introduction and job descriptions on the 104 job board, replacing unclear images, and optimizing the recruitment copy and process.

Improving the Developer Experience

Since there's a lot to cover, I wrote a separate article about it+

Work Coordination

Often, users from different departments would request that we work on their tasks simultaneously. But with just a few of us, working on everything at once would slow us down. The constant context switching was painful, and everything felt rushed. For smaller tasks, if I could resolve them during my workday, I would help take care of them or find someone to assist. But when faced with larger projects, I would create a WBS (Work Breakdown Structure) to show stakeholders how long development would take, explaining that we couldn't do everything at once in a short period, and negotiated more reasonable delivery timelines.

Filling in the Gaps

To ensure projects went live smoothly, I helped clarify and break down unclear tasks or requirements. When tasks were left undone or dropped, I stepped in to fill the gaps because I cared about the outcome.

Recommending New Hires

In the past, it was common for one person to hold multiple roles in the organization. But as the scale of our work grew, one person, especially in a part-time capacity, could no longer handle all the responsibilities. Therefore, based on the workload and bottlenecks, I continuously recommended to management that we hire more staff: Engineers, an HR professional, a PM, and an MIS specialist.

Technical Initiatives

My regular workload was already heavy, and on top of that, I often received urgent technical requests. I had to use my own time to do some preliminary research on the general approach and execution plan before delegating them to interested colleagues. Examples include: the architecture for the German website, marketing automation, GA4, AI, and 3D.

Holding the Line

Along the way, I encountered some tricky situations. Many were small things I didn't really want to get involved in. But many small problems, if left unaddressed for too long, spread like the broken windows effect. In those moments, I would have a one-on-one conversation. For example: repeatedly breaking the checkout system, work output not meeting expectations, being unreachable during work hours, taking leave on a deadline and dropping work on others, issues with abnormal leave patterns, and arriving late or leaving early without reason.

Code Reviews / Work Reviews

When reviewing work, I had to find different ways to phrase feedback to avoid making team members feel uncomfortable.

Ad-hoc 1-on-1s

I would periodically take colleagues out for a meal or to a coffee shop to chat, to understand what they cared about, what difficulties they were facing, and where they wanted to go in their careers. I'd find areas of alignment between the organization's needs and the member's goals, and then coordinate with my own manager. For example: when someone got married and moved farther away, I helped negotiate one WFH day per week for them. If someone wanted to work on a specific project, I did my best to assign them that work.

Planning Career Paths

The new generation of developers needs a career Roadmap. This was something I proactively suggested to my boss after seeing examples online.

Recommending Salary Increases

For team members with excellent performance or outstanding contributions, I proactively fought for their raises and promotions.

  • Probationary period salary adjustments
  • Year-end salary reviews
  • Positional promotions

Advocating for Team Benefits

  • Secured extra perks, like attending a computer expo, which also served as a team-building activity.
  • Arranged for extra vacation days for colleagues who successfully mentored new hires, based on results.
  • Negotiated for additional WFH days based on a member's special contributions or performance.

Managing Up

  • Proactively syncing on work progress. I believe every manager has information anxiety; if a long time passes without an update, they might start wondering what we're doing all day.
  • For cross-departmental issues, resource shortages during execution, or feedback from team members, I would discuss them with my superior to seek help.
  • Often, the new generation of employees cares about different things. In the past, we would just do what we were told. Now, it takes a lot of time to communicate, clarify goals, and translate them into a language that younger team members understand.

Areas Where I Feel I Fell Short

  • When communicating with others, I sometimes replied too hastily. In reality, it would have been better to slow down, let things settle, and think a bit more.
  • I was too protective of my team members. If I thought they couldn't do something, wouldn't do it well, or wouldn't like it, I might not assign it to them. Looking back, even failing is a form of growth, and I deprived them of opportunities for self-breakthrough.
  • Taking on poorly done work that wasn't my responsibility. This is actually detrimental to the organization in the long run, as it allows the gaps to widen.
  • I overlooked the influence of the environment. But perhaps due to my personality, there are some things I should have just turned a blind eye to.

Author

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。Read More

Found this useful?

The author's free tools, daily podcasts and newsletter are all here.

Mark Ku · This article is licensed under CC BY 4.0. Credit the author and link back to the original when reusing it.

Comments

Subscribe to Newsletter

Subscribe to get new posts delivered instantly — never miss a tech share.

By submitting, you agree to receive emails. You can anytime.

Popular Posts

View all
Mark Ku
··602

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution
Mark Ku
··490

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.
Mark Ku
··333

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki
Mark Ku
··264

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning
Mark Ku
··221

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1
Mark Ku
··215

Setting Up Samba on Ubuntu to Share Folders with Windows 11

Setting Up Samba on Ubuntu to Share Folders with Windows 11
回顧及自省管理工作 - Mark Ku's Tech Notes