Last active
June 27, 2025 10:57
-
-
Save nguyenvanduocit/66b2cc8bbef5f299772fb486a9b36a11 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "nodes":[ | |
| {"id":"c277b6f7d2ba9bde","type":"text","text":"Focus on delivery\nFocus on shipping when you are struggling with what to do next to be better as a software engineer. When you ship something new, users will try out your build and give you feedback. It may contain bugs. It may ship with the wrong flow implemented. It may ship with known issues. You may feel bad but and frustrated but those emotions will save you ton of time. The point is: Users will let you know.\n\nStop overthinking. All the myths about software quality and stuff will reveal when someone uses your product. The workflow your team applies, and stop thinking about the architecture, new library, or framework you saw on hacker news last week, etc. doesn’t matter.\n\nQuality comes after. They come later after you ship the product to the user's hands. Just ask yourself:\n\nWhat are we gonna ship?\nWhat is the end product look like?\nWhat is the user gonna think about it?\nWhat do they expect?\nAre they gonna use it?\nIs it helpful?\nIt's all about delivery. Know what to build and focus on shipping!\n\nAgain, software quality can only measure after you ship.\n\nStop overthinking or overreacting to the process.\n\nShip the right thing to your users.\n\nPeople that block you from delivery, they block your way to success.","x":-1020,"y":-1185,"width":680,"height":630}, | |
| {"id":"dab8df0ea5f3550f","type":"text","text":"Example:\n\n1. https://github.com/golang/go/issues/73581\n2. https://app.amplitude.com/analytics/kudosi/dashboard/3mbafqrj","x":-3060,"y":-147,"width":700,"height":294}, | |
| {"id":"8516aed539147714","type":"file","file":"Clippings/Mental models for prompting.md","x":-1820,"y":-1185,"width":760,"height":630}, | |
| {"id":"0ec688d584bf13ee","type":"text","text":"Các metric cơ bản nhất cần theo dõi","x":-914,"y":2121,"width":433,"height":158}, | |
| {"id":"e8fb6c0176fe562f","type":"text","text":"**Technical Metrics quan trọng:**\n- Page load time, API response time\n- Error rate, Uptime/Downtime\n- Code coverage, Deployment frequency\n- Database query performance\n\n**Business Metrics liên quan:**\n- User satisfaction, Bounce rate\n- Conversion rate, Revenue impact\n- Customer support tickets\n- User retention\n\n**Mối quan hệ nhân quả:**\n- Page load time chậm → Bounce rate cao → Conversion giảm\n- API errors → User frustration → Churn rate tăng\n- Deployment frequency cao → Feature delivery nhanh → Competitive advantage\n\n**Giá trị cho Product Engineer:**\nHiểu được cách tối ưu hóa technical metrics để cải thiện business outcomes, chứng minh giá trị của công việc kỹ thuật.","x":-200,"y":1844,"width":800,"height":712}, | |
| {"id":"149aa7610e7642a5","type":"text","text":"Thế nào là Product Engineer?\n\n**Định nghĩa:** Product Engineer là một kỹ sư phần mềm có sự hiểu biết sâu sắc về sản phẩm, người dùng và mục tiêu kinh doanh. Họ không chỉ tập trung vào việc viết code mà còn tham gia vào toàn bộ vòng đời phát triển sản phẩm, từ ý tưởng, thiết kế, phát triển, triển khai cho đến thu thập phản hồi và cải tiến.\n\n**Vai trò mở rộng:**\n* **Hiểu biết về người dùng:** Nghiên cứu, phân tích hành vi người dùng để đưa ra giải pháp phù hợp.\n* **Tư duy sản phẩm:** Tham gia vào việc định hình tính năng, ưu tiên công việc dựa trên giá trị sản phẩm mang lại.\n* **Kỹ năng giao tiếp:** Làm việc chặt chẽ với Product Manager, Designer, và các bên liên quan khác.\n* **Định hướng kinh doanh:** Hiểu rõ tác động của các quyết định kỹ thuật đến mục tiêu kinh doanh.\n* **Vòng đời sản phẩm:** Chịu trách nhiệm từ A-Z, không chỉ dừng lại ở việc code.\n\n**Sự khác biệt với Software Engineer truyền thống:** Trong khi Software Engineer truyền thống có thể tập trung nhiều hơn vào khía cạnh kỹ thuật, tối ưu hóa code, kiến trúc hệ thống, thì Product Engineer mở rộng phạm vi trách nhiệm sang cả khía cạnh kinh doanh và người dùng.","x":-1390,"y":316,"width":740,"height":651}, | |
| {"id":"16d8be2370d1c275","type":"text","text":"Sự khác biệt giữa Product Engineer và Product Manager\n\n**Ranh giới vai trò:**\n- **Product Engineer:** Tập trung vào việc xây dựng và triển khai giải pháp kỹ thuật với tư duy sản phẩm. Có khả năng code và hiểu sâu về kiến trúc hệ thống.\n- **Product Manager:** Tập trung vào chiến lược sản phẩm, nghiên cứu thị trường, định nghĩa yêu cầu và điều phối các bên liên quan.\n\n**Điểm giao thoa:**\n- Cả hai đều cần hiểu biết về người dùng và mục tiêu kinh doanh\n- Đều tham gia vào quy trình ra quyết định về tính năng\n- Cần kỹ năng giao tiếp và hợp tác tốt\n\n**Lợi thế cạnh tranh:**\n- Product Engineer có thể đánh giá tính khả thi kỹ thuật ngay từ giai đoạn ý tưởng\n- Có thể prototype nhanh chóng để validate ý tưởng\n- Hiểu rõ trade-offs giữa chất lượng kỹ thuật và tốc độ phát triển","x":-2220,"y":335,"width":680,"height":614}, | |
| {"id":"1245934476c5a536","type":"text","text":"Các yếu tố để trở thành product engineer","x":-1222,"y":1120,"width":366,"height":145}, | |
| {"id":"2661373950a05672","type":"text","text":"Lợi ích của việc trở thành Product Engineer:\n\n- **Tăng cường giá trị cá nhân trên thị trường lao động:** Kỹ sư có tư duy sản phẩm toàn diện sẽ được các công ty săn đón hơn, đặc biệt trong bối cảnh AI tự động hóa các tác vụ cơ bản, vì họ mang lại giá trị chiến lược cao hơn.\n- **Cơ hội thăng tiến sự nghiệp rộng mở:** Mở ra các con đường lên vị trí lãnh đạo kỹ thuật (Tech Lead, Engineering Manager) hoặc chuyển sang Product Management, nơi có ảnh hưởng lớn hơn đến định hướng và thành công của sản phẩm.\n- **Công việc ý nghĩa và tác động hơn:** Cảm thấy được đóng góp trực tiếp vào thành công của sản phẩm và doanh nghiệp, không chỉ là người thực thi kỹ thuật mà còn là người kiến tạo giá trị.\n- **Phát triển kỹ năng toàn diện:** Rèn luyện và phát triển các kỹ năng mềm (giao tiếp, lãnh đạo, giải quyết vấn đề, tư duy phản biện) và kỹ năng kinh doanh, giúp phát triển bản thân một cách cân bằng và bền vững.\n- **Khả năng thích ứng với tương lai:** Chuẩn bị tốt hơn cho một tương lai mà AI sẽ đảm nhiệm nhiều công việc kỹ thuật, giúp kỹ sư tập trung vào các khía cạnh sáng tạo, chiến lược và tương tác con người.\n- **Mức lương và đãi ngộ tốt hơn:** Do giá trị mang lại cao hơn cho doanh nghiệp, Product Engineer thường có mức lương và cơ hội đãi ngộ tốt hơn so với Software Engineer truyền thống.","x":-604,"y":269,"width":679,"height":680}, | |
| {"id":"4af21c58c84ca4da","type":"text","text":"### Vượt qua Thử thách: Lộ trình Hành động cho Product Engineer\n\nĐây là khung hành động để đối mặt và vượt qua những thách thức được nêu trong quá trình chuyển đổi thành Product Engineer. Mỗi chiến lược dưới đây tương ứng trực tiếp với một thách thức đã xác định.\n\n**1. Đối phó với \"Cú sốc về tư duy\":**\n* **Chiến lược:** Rèn luyện tư duy \"Bắt đầu từ Tại sao\".\n* **Hành động:**\n * Với mỗi feature/task, hãy tự hỏi và trả lời \"5 Whys\" để tìm ra gốc rễ vấn đề của người dùng.\n * Dành 30 phút mỗi tuần để sử dụng sản phẩm của bạn như một người dùng cuối thực thụ. Ghi lại những điểm khó chịu.\n * Xin tham gia (dù chỉ với vai trò quan sát) các buổi user interview hoặc product meeting.\n\n**2. Lấp đầy \"Khoảng trống về kỹ năng\":**\n* **Chiến lược:** Học tập có chủ đích và tìm kiếm sự hướng dẫn.\n* **Hành động:**\n * Đọc 1 bài viết mỗi tuần về product management, UX design, hoặc data analysis.\n * Tìm một mentor là Product Manager hoặc Senior Product Engineer. Nhờ họ review cách bạn trình bày một vấn đề kỹ thuật dưới góc độ kinh doanh.\n * Thực hành giải thích một quyết định kỹ thuật phức tạp cho một người không chuyên về kỹ thuật.\n\n**3. Thích ứng với \"Môi trường chưa sẵn sàng\":**\n* **Chiến lược:** Bắt đầu nhỏ, chứng minh giá trị, và xây dựng liên minh.\n* **Hành động:**\n * Chọn một feature nhỏ và chủ động đề xuất một cải tiến nhỏ dựa trên feedback của người dùng.\n * Khi báo cáo tiến độ, thay vì chỉ nói \"đã xong task X\", hãy nói \"đã giải quyết vấn đề Y cho người dùng bằng cách hoàn thành task X\".\n * Xây dựng mối quan hệ tốt với PM và Designer của bạn. Hỏi họ về những ưu tiên và khó khăn của họ.\n\n**4. Giải quyết \"Khó khăn trong việc đo lường\":**\n* **Chiến lược:** Kết nối công việc kỹ thuật với các chỉ số kinh doanh.\n* **Hành động:**\n * Xác định 1-2 business metric (ví dụ: user engagement, conversion rate) mà feature bạn đang làm có thể ảnh hưởng.\n * Sử dụng các công cụ như Amplitude, Mixpanel để xem dữ liệu sử dụng feature sau khi release.\n * Trong các buổi review, trình bày tác động của công việc của bạn: \"Chúng ta đã giảm 50% lỗi ở flow X, giúp giảm Y% số ticket support.\"\n\n**5. Vượt qua \"Nỗi sợ từ chính bản thân\":**\n* **Chiến lược:** Tái định hình vai trò và giảm thiểu rủi ro.\n* **Hành động:**\n * Hiểu rằng chuyên môn kỹ thuật sâu của bạn chính là lợi thế cạnh tranh, không phải thứ bạn đang từ bỏ. Nó giúp bạn đưa ra quyết định sản phẩm thực tế hơn.\n * Bắt đầu đóng góp ý kiến ở những lĩnh vực an toàn, có rủi ro thấp.\n * Dành 80% thời gian cho công việc kỹ thuật cốt lõi và 20% cho việc phát triển kỹ năng sản phẩm.\n\n**6. Quản lý \"Kỳ vọng không thực tế\":**\n* **Chiến lược:** Giao tiếp chủ động và thiết lập mục tiêu rõ ràng.\n* **Hành động:**\n * Trao đổi thẳng thắn với quản lý của bạn về vai trò, trách nhiệm và mục tiêu của một Product Engineer trong team.\n * Thiết lập mục tiêu 30-60-90 ngày cho sự chuyển đổi của bạn. Ví dụ: \"Trong 30 ngày, tôi sẽ hiểu rõ các business metric chính của team.\"\n * Chủ động yêu cầu feedback thường xuyên về các kỹ năng sản phẩm của bạn.","x":1940,"y":-119,"width":1460,"height":1420,"color":"#FFD700"}, | |
| {"id":"930ec6b9aa646256","type":"text","text":"### ⚠️ Assumption Analysis: Product Engineer Action Roadmap\n\n**Summary:**\nThis analysis examines the \"Lộ trình Hành động cho Product Engineer\" note. The roadmap provides practical, actionable steps for an individual engineer. However, its effectiveness rests on a series of optimistic assumptions about the engineer's autonomy, influence, and—most critically—the receptiveness of their organizational environment. The strategies are sound in a supportive context but may lead to frustration or failure if the underlying systemic factors are not acknowledged and addressed first.\n\n**Assumptions Identified:**\n\n---\n\n**1. Assumption: The proposed actions are sufficient to induce a fundamental mindset shift.**\n- **Statement:** Following prescribed actions like asking \"5 Whys,\" using the product, and reading articles will successfully transform a software engineer's thinking into that of a product engineer.\n- **Type:** Causal\n- **Evidence For:** These are common and effective techniques for developing empathy and a deeper understanding of user problems. They force a shift from \"how\" to \"why.\"\n- **Evidence Against:** Mindset shifts are deeply personal and often slow. An engineer can go through the motions of these actions without internalizing the principles. External pressures (like tight deadlines) can force a regression to a task-focused mindset.\n- **If Inverted:** What if an engineer asks \"5 Whys\" but their PM or lead tells them to \"just build the feature\"? The action is punished, and the mindset shift is stifled. The engineer becomes cynical.\n- **Confidence Level:** 5/10. The actions are necessary, but not sufficient. Their success is highly dependent on the environment.\n- **Testing Method:** Attempt the actions on a small scale. Observe the reactions of peers and leads. Does the organization reward or punish this type of inquiry?\n\n---\n\n**2. Assumption: The organizational environment is rational and rewards proactive, value-driven behavior.**\n- **Statement:** The roadmap assumes that if an engineer demonstrates value (e.g., by linking their work to business metrics or proposing improvements), the organization will recognize and support this behavior.\n- **Type:** Causal / Cultural\n- **Evidence For:** In healthy, product-led organizations, this is often true. Proactive engineers who show business acumen are typically valued and promoted.\n- **Evidence Against:** Many organizations are siloed, politically complex, or culturally rigid. An engineer stepping outside their \"box\" can be seen as a threat, overstepping their role, or being a distraction. Proving value can be ignored if it doesn't align with a manager's existing goals or KPIs.\n- **If Inverted:** What if the organization is a \"feature factory\"? Proposing a small improvement based on user feedback could be seen as derailing the roadmap. The engineer is told their job is to code, not to think about the product.\n- **Confidence Level:** 4/10. This is a highly optimistic view of corporate culture.\n- **Testing Method:** Diagnose the environment first. Observe how others who have tried this are treated. Analyze the company's promotion criteria and project success stories. Do they reward technical execution or product impact?\n\n---\n\n**3. Assumption: Necessary resources (data, mentors, access) are available.**\n- **Statement:** The engineer can find a willing mentor, get access to business analytics tools (Amplitude, Mixpanel), and be invited to user/product meetings.\n- **Type:** Factual / Contextual\n- **Evidence For:** Many modern tech companies provide these resources as a matter of course.\n- **Evidence Against:** Access to data and strategic meetings is often restricted by role or seniority. Senior staff may be too busy to mentor effectively. The tools may not even exist in the company.\n- **If Inverted:** What if the engineer is told \"That data is for the product team only\"? They are blocked from making the connection between their work and the outcome, making Step 4 (\"Giải quyết 'Khó khăn trong việc đo lường'\") impossible.\n- **Confidence Level:** 6/10. Availability varies wildly between companies. It should not be taken for granted.\n- **Testing Method:** Directly ask for access. Frame it as a way to better understand the impact of your work. The response will be a clear indicator of the company's transparency and culture.\n\n---\n\n**4. Assumption: The impact of technical work is directly and clearly attributable to business outcomes.**\n- **Statement:** An engineer can confidently state, \"We reduced errors by 50%, which helped reduce support tickets by Y%.\"\n- **Type:** Causal\n- **Evidence For:** In some cases, the link is clear (e.g., fixing a bug in the checkout flow directly impacts conversion rate).\n- **Evidence Against:** Correlation does not equal causation. Many factors influence business metrics (e.g., marketing campaigns, competitor actions, seasonality). It's often difficult to isolate the impact of a single technical change.\n- **If Inverted:** What if you improve performance, but a new marketing campaign brings in low-quality leads, and the overall conversion rate *drops*? Your contribution is rendered invisible or, worse, you are associated with the negative outcome.\n- **Confidence Level:** 5/10. Attribution is a notoriously hard problem. Claiming direct causality is risky.\n- **Testing Method:** Use A/B testing to isolate the impact of your change. Frame your contribution in terms of \"contributing factors\" rather than sole causes. E.g., \"Our performance improvements were a key factor in supporting the new marketing campaign.\"\n\n---\n\n**Critical Findings:**\n- **The Highest-Impact Assumption:** The most critical and fragile assumption is that the **organization is a meritocracy that is ready and willing to support this transition.** The entire roadmap is built on this foundation. If the system is resistant, the individual's efforts will likely fail.\n- **Overlooked Alternative:** The roadmap overlooks the possibility that the engineer's current role is rigidly defined for a reason, and attempts to change it will be met with friction. It doesn't consider the alternative strategy of finding a new role or company that already embraces the Product Engineer culture.\n- **Burden of Change:** The framework places 100% of the burden on the individual engineer, which is empowering but also potentially naive. It doesn't account for the need to \"manage up\" or build political capital.\n\n**Recommendations:**\n1. **Diagnose Before Acting:** Before embarking on this roadmap, perform an \"environmental audit.\" Assess your manager's goals, the team's culture, and the availability of resources. This will determine the feasibility of the roadmap.\n2. **Seek Alliances First:** The strategy \"Bắt đầu nhỏ, chứng minh giá trị, và xây dựng liên minh\" should be re-ordered. **Build alliances first.** Have informal conversations with your PM and Designer *before* you start proposing changes. Gain their trust and support.\n3. **Reframe \"Proving Value\":** Instead of trying to prove your own value, frame your actions as helping your PM or manager achieve *their* goals. This shifts the focus from individual ambition to collaborative success and is less likely to be met with resistance.\n4. **Add a \"Plan B\":** The roadmap needs a \"What if this doesn't work?\" section. This should include strategies for dealing with resistance, finding a more suitable team internally, or recognizing when it's time to find a new company that aligns with your career goals.","x":1996,"y":1500,"width":1348,"height":2569,"color":"#FFD700"}, | |
| {"id":"118cc05d5f0756f3","type":"text","text":"Sự chuyển đổi từ Software Engineer sang Product Engineer là xu hướng tất yếu do:\n\n1. **AI & LLM tự động hóa:** AI và LLM giải phóng kỹ sư khỏi tác vụ lặp lại, cho phép họ tập trung vào giá trị sản phẩm và tối ưu hóa.\n2. **Tầm quan trọng của tư duy sản phẩm:** Thị trường đòi hỏi kỹ sư hiểu rõ người dùng, thị trường để tạo ra sản phẩm hữu ích, có giá trị. Việc \"ship\" sản phẩm và nhận phản hồi là tối quan trọng.\n3. **Nhu cầu doanh nghiệp:** Các công ty tìm kiếm kỹ sư có khả năng nhìn nhận tổng thể, đóng góp vào chiến lược sản phẩm và tăng trưởng kinh doanh.\n4. **Phát triển cá nhân & sự nghiệp:** Chuyển đổi mở ra cơ hội phát triển kỹ năng mềm, tăng ảnh hưởng đến định hướng sản phẩm và thăng tiến.\n5. **Tiến hóa vai trò kỹ sư:** Các vai trò mới (Architect, Tinkerer, Planner) đều cần hiểu biết sản phẩm để tối ưu hóa hợp tác với AI, Product Engineer tổng hòa các kỹ năng này.","x":-60,"y":-267,"width":860,"height":434}, | |
| {"id":"238df76043c32dc0","type":"text","text":"# Topic: Software Engineer đang dần trở thành Product Engineer\n\nTôi cần tìm hiểu mọi khía cạnh về việc chuyển đổi của software engineer/developer trở thành Product Engineer.","x":-1261,"y":-180,"width":581,"height":260}, | |
| {"id":"309a03ff2d4214a1","type":"text","text":"Engineers in the AI landscape: architects, tinkerers, planners, and the vibers\nThe ground is shifting beneath our feet. If you're a software engineer and you're not feeling it, you're either lying or you're already obsolete. The introduction of powerful large language models is not just another tool; it's a fundamental paradigm shift that is cleaving the engineering world into distinct archetypes. I've noticed a few patterns emerge from the chaos. Understanding where you and your team fit in is the difference between building the future and getting buried by it.\n\nThis isn't just about who can prompt an AI the best. It's about workflow, mindset, and the cognitive structures we use to build things. Your team is likely a mix of these new roles, and the friction you feel is the system trying to self-correct. Let's break them down.\n\nThe AI-augmented architect\npepe architect\n\nThis is the distinguished engineer who gets it. The architect sees AI not as a replacement but as a massive force multiplier, a ghostwriter for the tedious parts of creation. They operate at a high level of abstraction, feeding the model a well-defined structure and then reviewing the flood of code that comes back. They can manage this because they hold a mental map of the entire system in their head. Their value isn't in writing boilerplate; it's in their taste, their architectural vision, and their ability to conduct rapid, high-level code reviews.\n\nTheir weakness: cognitive overload. The sheer volume of code an AI can produce is staggering. Reviewing tens of thousands of lines of code, even good code, is mentally taxing in a way writing it never was. It's a new flavor of burnout, born from the immense cognitive load of constant validation. They risk becoming a bottleneck, the sole validator of an AI's torrential output.\n\nHow to cover for it: Aggressive automation and delegation are key. Architects need to offload the initial review process to automated systems. This means robust continuous integration/continuous deployment (CI/CD) pipelines with extensive automated testing suites - unit tests, integration tests, end-to-end tests. They must also empower other team members to become better reviewers by enforcing strict coding standards and documentation, potentially even using a linter AI to check for style and basic errors before the code ever reaches a human. They need to build a system of trust, but that trust must be verified programmatically.\n\nThe tinkerer-turned-creator\npepe tinkerer\n\nThis is the person who always had great ideas but couldn't write the code to make them real. Now they can. The tinkerer uses AI as a manifestation engine. They are less concerned with the elegance of the codebase and more with the functionality of the output. They are masters of prompt engineering and rapid iteration, treating the AI as a black box and judging it solely by its results. They are bringing a flood of new, functional products and solutions to life that otherwise would have died as ideas on a whiteboard.\n\nTheir weakness: technical debt and scalability. While their creations work, they often lack the robust architecture needed to scale or be maintained. They don't know what they don't know about design patterns, security vulnerabilities, or efficient database queries. Their projects are often a single bug away from total collapse, a house of cards built on \"vibe-coded\" slop.\n\nHow to cover for it: Pair them with an architect or a methodical planner immediately. The tinkerer is an incredible source of innovation, but their output needs to be refined and hardened by someone with deep systems knowledge. Implement a mandatory architectural review before any project by a tinkerer goes into production. Give them a \"sandbox\" environment where they can build and break things without consequence, but have a formal handoff process to a senior engineer who can rebuild the prototype correctly for production. The goal is to harness their creativity without inheriting their technical debt.\n\nThe methodical planner\npepe planner\n\nThis engineer is the antithesis of the \"move fast and break things\" mantra. They understand that with AI, moving fast is easy, but moving in the right direction is hard. They spend an enormous amount of time on planning, structuring, and testing before they even let the AI start generating code. They build intricate scaffolding of requirements and tests that forces the AI's output to conform to a high-quality standard. They are building massive, stable systems by treating the AI not as a creator but as a hyper-efficient subordinate that executes a very detailed plan.\n\nTheir weakness: analysis paralysis. The methodical planner can become so obsessed with creating the perfect plan that they slow down innovation to a crawl. They can miss market opportunities or fail to pivot quickly because their entire workflow is built around a rigid, upfront structure. They risk designing a perfect system for a problem that no longer exists by the time they're finished.\n\nHow to cover for it: Force them into an agile framework. Planners need to work in sprints with concrete, unmovable deadlines. Their detailed plans should be for the next two weeks, not the next two years. Pair them with a tinkerer to inject a sense of urgency and user-centric chaos into their process. The goal is to get the planner to build the minimum viable plan necessary to get started, and then iterate. Celebrate shipping a functional 80% solution over planning a perfect 100% solution that never gets built.\n\nThe \"vibe coder\"\npepe viber\n\nThis is the most dangerous archetype. This engineer is seduced by the promise of fully autonomous agentic code generation. They point the AI at a problem, press \"go,\" and hope for the best. They are thrilled by the initial burst of activity but quickly find themselves with a sprawling, incomprehensible codebase that is impossible to debug. They have completely abdicated their responsibility as an engineer and have no mental map of the project. They are not managing the AI; they are being managed by it, stuck in a frustrating loop of generating, testing, and failing.\n\nTheir weakness: everything. They produce unmaintainable, buggy, and insecure code. They have no understanding of the systems they are creating and are a massive liability to any serious project. This isn't a workflow; it's a slot machine.\n\nHow to cover for it: This is a rescue mission. The unguided vibe coder needs immediate, intensive re-training. They must be banned from using agentic workflows and forced back to basics. Mandate that they write code manually, or at the very least, use AI in a co-pilot capacity where they are writing and reviewing every single line. Pair them with a methodical planner to learn the discipline of structured development. Their access to AI tooling should be restricted until they can demonstrate a fundamental understanding of the systems they are building. Sometimes the best way to use a new tool is to first remember how to work without it.\n\nA balanced system\nThe critical skill now is not just mastering AI tools, but mastering yourself. You need to honestly assess whether you're an architect, a tinkerer, or a planner and then aggressively mitigate the inherent weaknesses of that archetype.\n\nThe real goal isn't to become some mythical, perfect engineer who embodies all of these traits. That person doesn't exist. The goal is to build a team that does. A team composed of a planner to lay the foundation, a tinkerer to drive rapid innovation, and an architect to ensure it all scales is a force of nature. The unguided vibe coder serves as a cautionary tale of what happens when you let the tool become the master.","x":-264,"y":-1185,"width":720,"height":630}, | |
| {"id":"88baacd938e90e0a","type":"text","text":"Con đường phát triển thành Product Engineer\n\n**1. Thay đổi cách nhìn về công việc**\n- Thay vì chỉ hỏi \"Làm thế nào?\", hãy bắt đầu hỏi \"Tại sao?\"\n- Từ \"Hoàn thành task\" → \"Giải quyết vấn đề của user\"\n- Từ \"Code chạy được\" → \"User có thể sử dụng dễ dàng\"\n\n**2. Hiểu rõ người dùng**\n- Thử dùng sản phẩm của mình như một user thật\n- Đọc feedback, bug reports để hiểu pain points\n- Tham gia user interview nếu có cơ hội\n\n**3. Học cách giao tiếp**\n- Giải thích technical concepts bằng ngôn ngữ đơn giản\n- Thảo luận trade-offs thay vì chỉ nói \"không thể làm được\"\n- Chủ động chia sẻ ý kiến trong meetings\n\n**4. Kết nối code với business**\n- Tìm hiểu sản phẩm kiếm tiền như thế nào\n- Theo dõi metrics: user engagement, conversion rate\n- Hiểu OKRs/KPIs của team và công ty\n\n**5. Sử dụng AI hiệu quả**\n- Để AI làm boilerplate code, focus vào logic phức tạp\n- Dùng AI để học nhanh domain knowledge mới\n- Tập trung vào architecture và product thinking\n\n**6. Ownership mindset**\n- Theo dõi feature sau khi deploy\n- Chủ động đề xuất improvements\n- Nghĩ về long-term impact, không chỉ short-term tasks\n\n**Bắt đầu từ đâu:**\n- Chọn 1 feature bạn đang làm, tìm hiểu user journey\n- Đặt câu hỏi \"Tại sao user cần cái này?\" trong mỗi task\n- Theo dõi 1-2 business metrics liên quan đến công việc của bạn","x":-2500,"y":1541,"width":960,"height":1160}, | |
| {"id":"4131716359efd1a6","type":"text","text":"Lợi ích và thách thức của việc chuyển đổi lên product engineer","x":210,"y":515,"width":369,"height":151}, | |
| {"id":"ca981d288ef1f795","type":"text","text":"### Những thử thách khi chuyển mình thành Product Engineer\n\nHành trình chuyển đổi sang Product Engineer không chỉ trải hoa hồng. Đây là những thách thức thực tế mà bạn có thể phải đối mặt:\n\n- **Cú sốc về tư duy:** Đây là rào cản lớn nhất. Bạn phải học cách thoát khỏi \"đường hầm kỹ thuật\" (technical tunnel vision) để nhìn vào bức tranh lớn hơn về sản phẩm, người dùng và kinh doanh. Việc này đòi hỏi một sự thay đổi lớn trong cách bạn suy nghĩ và làm việc hàng ngày.\n\n- **Khoảng trống về kỹ năng:** Code giỏi là chưa đủ. Bạn sẽ nhận ra mình cần những kỹ năng \"mềm\" như giao tiếp, thuyết phục, hay kể cả kỹ năng nghiên cứu người dùng và phân tích số liệu kinh doanh. Việc lấp đầy những khoảng trống này cần thời gian và nỗ lực có chủ đích.\n\n- **Môi trường chưa sẵn sàng:** Không phải công ty nào cũng có sẵn quy trình hay văn hóa để một Product Engineer phát huy hết khả năng. Bạn có thể phải đối mặt với sự thiếu hợp tác, quy trình cứng nhắc, hoặc đơn giản là sự \"lạ lẫm\" của mọi người với vai trò mới này.\n\n- **Khó khăn trong việc đo lường:** Làm sao để đo lường sự thành công của bạn? Nó không còn đơn giản là số dòng code hay số task hoàn thành. Giá trị bạn tạo ra cho sản phẩm và kinh doanh khó đong đếm hơn nhiều, và việc chứng minh nó cũng là một thử thách.\n\n- **Nỗi sợ từ chính bản thân:** Việc mở rộng trách nhiệm có thể khiến bạn cảm thấy không thoải mái. Nỗi lo mất đi chuyên môn kỹ thuật sâu, hay đơn giản là không muốn \"dính\" vào những việc phi kỹ thuật là một rào cản tâm lý có thật.\n\n- **Kỳ vọng không thực tế:** Cả bạn và quản lý cần hiểu rõ vai trò này không phải là một \"phép màu\". Cần có sự thống nhất về mục tiêu, phạm vi công việc và lộ trình chuyển đổi để tránh những hiểu lầm đáng tiếc.","x":720,"y":214,"width":820,"height":753} | |
| ], | |
| "edges":[ | |
| {"id":"315488b0275c2abb","fromNode":"c277b6f7d2ba9bde","fromSide":"bottom","toNode":"238df76043c32dc0","toSide":"top"}, | |
| {"id":"f8494f2807eb6889","fromNode":"309a03ff2d4214a1","fromSide":"bottom","toNode":"238df76043c32dc0","toSide":"top"}, | |
| {"id":"693646914274a60b","fromNode":"238df76043c32dc0","fromSide":"bottom","toNode":"149aa7610e7642a5","toSide":"top"}, | |
| {"id":"5ecf5079744d4219","fromNode":"238df76043c32dc0","fromSide":"right","toNode":"118cc05d5f0756f3","toSide":"left"}, | |
| {"id":"d4fc922f681bb506","fromNode":"8516aed539147714","fromSide":"bottom","toNode":"238df76043c32dc0","toSide":"top"}, | |
| {"id":"53596b8f740e608b","fromNode":"4131716359efd1a6","fromSide":"right","toNode":"ca981d288ef1f795","toSide":"left"}, | |
| {"id":"6374ba7dcaf735d6","fromNode":"4131716359efd1a6","fromSide":"left","toNode":"2661373950a05672","toSide":"right"}, | |
| {"id":"cbeeac56d1a4d6ed","fromNode":"118cc05d5f0756f3","fromSide":"bottom","toNode":"4131716359efd1a6","toSide":"top"}, | |
| {"id":"126a34302f5bd1f6","fromNode":"149aa7610e7642a5","fromSide":"bottom","toNode":"1245934476c5a536","toSide":"top"}, | |
| {"id":"0a992e5e3891ec1b","fromNode":"1245934476c5a536","fromSide":"bottom","toNode":"88baacd938e90e0a","toSide":"top"}, | |
| {"id":"8510e50a0c8c4878","fromNode":"149aa7610e7642a5","fromSide":"left","toNode":"16d8be2370d1c275","toSide":"right"}, | |
| {"id":"60efa98bd7dd66b5","fromNode":"88baacd938e90e0a","fromSide":"right","toNode":"0ec688d584bf13ee","toSide":"left"}, | |
| {"id":"fabaa45c0981b5d5","fromNode":"0ec688d584bf13ee","fromSide":"right","toNode":"e8fb6c0176fe562f","toSide":"left"}, | |
| {"id":"49e00824a3210f9e","fromNode":"ca981d288ef1f795","fromSide":"right","toNode":"4af21c58c84ca4da","toSide":"left","color":"#FFD700"}, | |
| {"id":"d1ab8a7c423569e4","fromNode":"4af21c58c84ca4da","fromSide":"bottom","toNode":"930ec6b9aa646256","toSide":"top","color":"#FFD700"} | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment