<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss/styles.xsl" type="text/xsl"?><rss version="2.0"><channel><title>Malcolm Kee</title><description>Web developer, front end engineer</description><link>https://malcolmkee.com/</link><item><title>The Underrated Skill: Writing Effective Bug Reports</title><link>https://malcolmkee.com/blog/writing-effective-bug-reports/</link><guid isPermaLink="true">https://malcolmkee.com/blog/writing-effective-bug-reports/</guid><description>Engineering isn&apos;t just about code; it&apos;s about communication. Learn why high-quality bug reports are vital for your team and how to write them effectively.</description><pubDate>Thu, 04 Dec 2025 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>How I Write Tests</title><link>https://malcolmkee.com/blog/how-i-write-tests/</link><guid isPermaLink="true">https://malcolmkee.com/blog/how-i-write-tests/</guid><description>How I write tests so that they are clean and maintainable</description><pubDate>Tue, 22 Jul 2025 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Rethinking Cancellation in Frontend Engineering</title><link>https://malcolmkee.com/blog/cancellation-in-frontend-engineering/</link><guid isPermaLink="true">https://malcolmkee.com/blog/cancellation-in-frontend-engineering/</guid><description>Explore why cancellation is crucial, not optional, in modern frontend engineering. Learn how to manage asynchronous JavaScript, prevent race conditions, and improve UI stability by rethinking request cancellation.</description><pubDate>Tue, 13 May 2025 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>责任心</title><link>https://malcolmkee.com/blog/ownership/</link><guid isPermaLink="true">https://malcolmkee.com/blog/ownership/</guid><description>关于责任心的一些粗略想法</description><pubDate>Sun, 30 Apr 2023 00:00:00 GMT</pubDate><language>zh-Hans</language></item><item><title>OpenAPI: A backend developer&apos;s tool, a frontend developer&apos;s friend</title><link>https://malcolmkee.com/blog/open-api/</link><guid isPermaLink="true">https://malcolmkee.com/blog/open-api/</guid><description>Learn about OpenAPI, a tool that is popular for API development, and can be used to help with frontend development.</description><pubDate>Fri, 31 Mar 2023 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Using View Transition API in React App</title><link>https://malcolmkee.com/blog/view-transition-api-in-react-app/</link><guid isPermaLink="true">https://malcolmkee.com/blog/view-transition-api-in-react-app/</guid><description>Discover how to use the View Transition API in your React apps to create engaging and fluid navigational experiences. This API simplifies the process of animating shared elements and can be used in various practical scenarios, such as showcasing product images, animating modals, and more.</description><pubDate>Fri, 17 Mar 2023 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Automating Refactoring with Codemod</title><link>https://malcolmkee.com/blog/automating-refactoring-with-codemod/</link><guid isPermaLink="true">https://malcolmkee.com/blog/automating-refactoring-with-codemod/</guid><description>Simple refactoring, when applied to large-scale codebase requires huge amount of manual work. Fortunately, you can make them manageable by using codemod - code transformations that runs on the codebase.</description><pubDate>Thu, 02 Mar 2023 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>A Plugin-Based Frontend using Module Federation</title><link>https://malcolmkee.com/blog/a-plugin-based-frontend-with-module-federation/</link><guid isPermaLink="true">https://malcolmkee.com/blog/a-plugin-based-frontend-with-module-federation/</guid><description>A plugin-based frontend architecture using Module Federation can be a powerful approach for microfrontend.</description><pubDate>Fri, 24 Feb 2023 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Using TailwindCSS with Module Federation</title><link>https://malcolmkee.com/blog/using-tailwindcss-with-module-federation/</link><guid isPermaLink="true">https://malcolmkee.com/blog/using-tailwindcss-with-module-federation/</guid><description>Solving CSS conflicts when using TailwindCSS with Module Federation</description><pubDate>Tue, 21 Feb 2023 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>How to Create CV using HTML</title><link>https://malcolmkee.com/blog/how-to-create-cv-using-html/</link><guid isPermaLink="true">https://malcolmkee.com/blog/how-to-create-cv-using-html/</guid><description>Creating CV using HTML with CSS is straightforward if you know them, but making it exportable as PDF is more involving</description><pubDate>Mon, 20 Feb 2023 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Sorting Without Library</title><link>https://malcolmkee.com/today-i-learnt/sorting-without-library/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/sorting-without-library/</guid><pubDate>Fri, 27 Jan 2023 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Migrating Large Angular Apps to React</title><link>https://malcolmkee.com/blog/migrating-large-angular-apps-to-react/</link><guid isPermaLink="true">https://malcolmkee.com/blog/migrating-large-angular-apps-to-react/</guid><description>My experience migrating production angular applications to React and lessons learnt in the process</description><pubDate>Fri, 20 Jan 2023 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Flutter for React Developers</title><link>https://malcolmkee.com/blog/flutter-for-react-developers/</link><guid isPermaLink="true">https://malcolmkee.com/blog/flutter-for-react-developers/</guid><description>Translations of terminology in Flutter to React</description><pubDate>Wed, 04 Jan 2023 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>On Running</title><link>https://malcolmkee.com/blog/on-running/</link><guid isPermaLink="true">https://malcolmkee.com/blog/on-running/</guid><pubDate>Fri, 02 Dec 2022 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>On Expanding Purpose</title><link>https://malcolmkee.com/blog/on-expanding-purpose/</link><guid isPermaLink="true">https://malcolmkee.com/blog/on-expanding-purpose/</guid><pubDate>Thu, 01 Dec 2022 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Tips for Newbie Frontend Engineer</title><link>https://malcolmkee.com/blog/tips-for-newbie-programmer/</link><guid isPermaLink="true">https://malcolmkee.com/blog/tips-for-newbie-programmer/</guid><pubDate>Sun, 23 Oct 2022 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>How to Make Things Happen</title><link>https://malcolmkee.com/blog/getting-things-done/</link><guid isPermaLink="true">https://malcolmkee.com/blog/getting-things-done/</guid><description>My takeaway while reading The 4 Disciplines of Execution</description><pubDate>Mon, 05 Sep 2022 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Using TypeScript with Module Federation</title><link>https://malcolmkee.com/blog/using-typescript-with-module-federation/</link><guid isPermaLink="true">https://malcolmkee.com/blog/using-typescript-with-module-federation/</guid><description>How to use TypeScript in Module Federation without overengineering</description><pubDate>Fri, 01 Jul 2022 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Starting a New Blog (Again)</title><link>https://malcolmkee.com/blog/starting-a-new-blog-again/</link><guid isPermaLink="true">https://malcolmkee.com/blog/starting-a-new-blog-again/</guid><pubDate>Sat, 25 Jun 2022 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>No Perfect Time</title><link>https://malcolmkee.com/blog/no-perfect-time/</link><guid isPermaLink="true">https://malcolmkee.com/blog/no-perfect-time/</guid><pubDate>Sun, 13 Jun 2021 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>React Portal to Subtree</title><link>https://malcolmkee.com/blog/portal-to-subtree/</link><guid isPermaLink="true">https://malcolmkee.com/blog/portal-to-subtree/</guid><description>How to render into any subtree in React</description><pubDate>Thu, 29 Oct 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>How to Keep Creating</title><link>https://malcolmkee.com/blog/how-to-keep-creating/</link><guid isPermaLink="true">https://malcolmkee.com/blog/how-to-keep-creating/</guid><pubDate>Sat, 02 May 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Live Streaming</title><link>https://malcolmkee.com/blog/live-streaming/</link><guid isPermaLink="true">https://malcolmkee.com/blog/live-streaming/</guid><description>I started live-streaming on Youtube and Facebook recently, and I kinda like it.</description><pubDate>Fri, 01 May 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Upstream: The Quest to Solve Problems Before They Happen</title><link>https://malcolmkee.com/blog/upstream/</link><guid isPermaLink="true">https://malcolmkee.com/blog/upstream/</guid><description>A book review</description><pubDate>Fri, 01 May 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>The Coin Always Has Two Sides</title><link>https://malcolmkee.com/blog/the-coin/</link><guid isPermaLink="true">https://malcolmkee.com/blog/the-coin/</guid><description>The bad of good things and the good of bad things</description><pubDate>Sat, 18 Apr 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>How Does That Scale?</title><link>https://malcolmkee.com/blog/how-does-that-scale/</link><guid isPermaLink="true">https://malcolmkee.com/blog/how-does-that-scale/</guid><description>A frontend developer&apos;s answer for the question.</description><pubDate>Wed, 15 Apr 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Interview as a Learning Tool</title><link>https://malcolmkee.com/blog/interview-as-a-learning-tool/</link><guid isPermaLink="true">https://malcolmkee.com/blog/interview-as-a-learning-tool/</guid><pubDate>Sat, 28 Mar 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>A Chapter A Day</title><link>https://malcolmkee.com/blog/a-chapter-a-day/</link><guid isPermaLink="true">https://malcolmkee.com/blog/a-chapter-a-day/</guid><pubDate>Thu, 26 Mar 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Bookmarklet</title><link>https://malcolmkee.com/today-i-learnt/bookmarklet/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/bookmarklet/</guid><pubDate>Sun, 15 Mar 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Next.js: First Impression</title><link>https://malcolmkee.com/blog/next-js-impression/</link><guid isPermaLink="true">https://malcolmkee.com/blog/next-js-impression/</guid><description>Next.js is very versatile compared to GatsbyJS or Create React App. This flexibility is very appealing as you can evolves your application architecture as requirements change.</description><pubDate>Sat, 29 Feb 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Jest Mock in TypeScript</title><link>https://malcolmkee.com/today-i-learnt/jest-mock-in-typescript/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/jest-mock-in-typescript/</guid><pubDate>Fri, 07 Feb 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Trying Playwright: Cross-Browser Testing</title><link>https://malcolmkee.com/blog/trying-playwright/</link><guid isPermaLink="true">https://malcolmkee.com/blog/trying-playwright/</guid><description>The testing tools that are easiest to setup are still Jest and Cypress. Playwright has slight advantage over puppeteer as it supports more browsers, but the tooling around it is still lacking at the moment.</description><pubDate>Tue, 28 Jan 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Empathize with Backend Developer</title><link>https://malcolmkee.com/blog/empathize-with-backend/</link><guid isPermaLink="true">https://malcolmkee.com/blog/empathize-with-backend/</guid><pubDate>Fri, 17 Jan 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Make Input as Flex Item</title><link>https://malcolmkee.com/today-i-learnt/input-as-flex-item/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/input-as-flex-item/</guid><pubDate>Wed, 15 Jan 2020 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Assert console.error call times when mocking it</title><link>https://malcolmkee.com/today-i-learnt/testing-console-error/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/testing-console-error/</guid><pubDate>Tue, 17 Dec 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>迷信</title><link>https://malcolmkee.com/blog/superstition/</link><guid isPermaLink="true">https://malcolmkee.com/blog/superstition/</guid><pubDate>Sun, 24 Nov 2019 00:00:00 GMT</pubDate><language>zh-Hans</language></item><item><title>Self Doubt</title><link>https://malcolmkee.com/blog/self-doubt/</link><guid isPermaLink="true">https://malcolmkee.com/blog/self-doubt/</guid><pubDate>Mon, 21 Oct 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Function constructor can be used as safe alternative to eval</title><link>https://malcolmkee.com/today-i-learnt/eval-safely/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/eval-safely/</guid><pubDate>Tue, 15 Oct 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Script versus Module in TypeScript</title><link>https://malcolmkee.com/today-i-learnt/script-vs-module/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/script-vs-module/</guid><pubDate>Thu, 10 Oct 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Extending Global or Third Party Library Typing</title><link>https://malcolmkee.com/today-i-learnt/extending-global-or-third-party-type/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/extending-global-or-third-party-type/</guid><pubDate>Wed, 09 Oct 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Ambient means No Implementation In TypeScript</title><link>https://malcolmkee.com/today-i-learnt/ambient-means-no-implementation/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/ambient-means-no-implementation/</guid><pubDate>Tue, 08 Oct 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Use Overload to Type Dynamic Function Signature</title><link>https://malcolmkee.com/today-i-learnt/use-overload-to-type-dynamic-function-signature/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/use-overload-to-type-dynamic-function-signature/</guid><pubDate>Tue, 08 Oct 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>There is no way to type &quot;as&quot; props properly in TypeScript currently</title><link>https://malcolmkee.com/today-i-learnt/no-way-to-type-as-props-properly-in-ts-today/</link><guid isPermaLink="true">https://malcolmkee.com/today-i-learnt/no-way-to-type-as-props-properly-in-ts-today/</guid><pubDate>Sun, 06 Oct 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>How to Become a Racist</title><link>https://malcolmkee.com/blog/how-to-become-a-racist/</link><guid isPermaLink="true">https://malcolmkee.com/blog/how-to-become-a-racist/</guid><description>Every time you try to use race to making a us-versus-them comparison, you are introducing the risk of becoming a racist.</description><pubDate>Sun, 29 Sep 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Reduce redux-connect Typescript boilerplate</title><link>https://malcolmkee.com/blog/reduce-redux-connect-typescript-boilerplate/</link><guid isPermaLink="true">https://malcolmkee.com/blog/reduce-redux-connect-typescript-boilerplate/</guid><description>Use Typescript ReturnType to reduce your Redux connect boilerplate</description><pubDate>Sat, 21 Sep 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>@content: SASS equivalent of React children</title><link>https://malcolmkee.com/blog/sass-equivalent-for-react-children/</link><guid isPermaLink="true">https://malcolmkee.com/blog/sass-equivalent-for-react-children/</guid><description>Use @content to inject arbitrary content into your SASS @mixin</description><pubDate>Thu, 19 Sep 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Container-Presenter Pattern Revisited</title><link>https://malcolmkee.com/blog/react-container-presenter-pattern-revisited/</link><guid isPermaLink="true">https://malcolmkee.com/blog/react-container-presenter-pattern-revisited/</guid><description>Instead of separating container-presenter components based on arbitrary rules, separate components into business components and UI components.</description><pubDate>Sun, 15 Sep 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Comfort Zone</title><link>https://malcolmkee.com/blog/comfort-zone/</link><guid isPermaLink="true">https://malcolmkee.com/blog/comfort-zone/</guid><pubDate>Thu, 12 Sep 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Custom Hooks: useTransientState</title><link>https://malcolmkee.com/blog/use-transient-state/</link><guid isPermaLink="true">https://malcolmkee.com/blog/use-transient-state/</guid><description>A custom hooks to declare state that will restore to its steady-state value after some delay. This will be useful when you want to show some UI element temporarily and then hide it after some delay.</description><pubDate>Thu, 05 Sep 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>On Giving</title><link>https://malcolmkee.com/blog/on-giving/</link><guid isPermaLink="true">https://malcolmkee.com/blog/on-giving/</guid><pubDate>Wed, 28 Aug 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Provide Fallback UI with useLayoutEffect in Gatsby</title><link>https://malcolmkee.com/blog/gatsby-non-js-fallback/</link><guid isPermaLink="true">https://malcolmkee.com/blog/gatsby-non-js-fallback/</guid><description>Embracing graceful degradation in Gatsby site by providing fallback UI without JS with useLayoutEffect hooks</description><pubDate>Sun, 14 Jul 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>爱书-介绍书-垃圾书-电子书</title><link>https://malcolmkee.com/blog/notes-on-readings/</link><guid isPermaLink="true">https://malcolmkee.com/blog/notes-on-readings/</guid><pubDate>Sun, 30 Jun 2019 00:00:00 GMT</pubDate><language>zh-Hans</language></item><item><title>Choose What Allows You to Proceed Now, Optimize Later</title><link>https://malcolmkee.com/blog/optimize-later/</link><guid isPermaLink="true">https://malcolmkee.com/blog/optimize-later/</guid><description>Premature optimization is not just bad for programming, it&apos;s bad for life decision too.</description><pubDate>Fri, 21 Jun 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Joining a Hackathon</title><link>https://malcolmkee.com/blog/hackathon/</link><guid isPermaLink="true">https://malcolmkee.com/blog/hackathon/</guid><description>Personal notes on my recent experience of joining Can You Hack It hackathon.</description><pubDate>Sun, 05 May 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Thoughts on Testing</title><link>https://malcolmkee.com/blog/thoughts-on-testing/</link><guid isPermaLink="true">https://malcolmkee.com/blog/thoughts-on-testing/</guid><description>A list of unorganized random thoughts on automated testing</description><pubDate>Mon, 15 Apr 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Creating a Simple Event Bus</title><link>https://malcolmkee.com/blog/simple-event-bus/</link><guid isPermaLink="true">https://malcolmkee.com/blog/simple-event-bus/</guid><description>How to create an event bus to coordinate multiple section of your Javascript app.</description><pubDate>Tue, 09 Apr 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Adding Types for npm Packages</title><link>https://malcolmkee.com/blog/adding-types-for-npm-packages/</link><guid isPermaLink="true">https://malcolmkee.com/blog/adding-types-for-npm-packages/</guid><description>How to add custom types for npm packages that doesn&apos;t have declaration nor DefinitelyTyped support.</description><pubDate>Mon, 01 Apr 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>红豆</title><link>https://malcolmkee.com/blog/redbean/</link><guid isPermaLink="true">https://malcolmkee.com/blog/redbean/</guid><description>小学时期种红豆的故事</description><pubDate>Sat, 30 Mar 2019 00:00:00 GMT</pubDate><language>zh-Hans</language></item><item><title>Be Human While You Code</title><link>https://malcolmkee.com/blog/be-human-while-you-code/</link><guid isPermaLink="true">https://malcolmkee.com/blog/be-human-while-you-code/</guid><description>Even when your colleague or boss doesn&apos;t care, write accessible code. Because you can. Because you should. Because you&apos;re human, and you care about other human too.</description><pubDate>Tue, 19 Mar 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Using Web Component With React</title><link>https://malcolmkee.com/blog/using-webcomponent-with-react/</link><guid isPermaLink="true">https://malcolmkee.com/blog/using-webcomponent-with-react/</guid><description>Using web component in React requires some boilerplates to make it work, trying to abstract that boilerplate has a limitation. With React hooks, it&apos;s much less boiletplate and the abstraction is no longer needed.</description><pubDate>Sun, 17 Mar 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Type-Safe callAll</title><link>https://malcolmkee.com/blog/typesafe-call-all/</link><guid isPermaLink="true">https://malcolmkee.com/blog/typesafe-call-all/</guid><description>You can have typesafe callAll utility in Typescript 3</description><pubDate>Sun, 24 Feb 2019 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Using TypeScript Type Guard to Narrow Down Type</title><link>https://malcolmkee.com/blog/typescript-type-guard/</link><guid isPermaLink="true">https://malcolmkee.com/blog/typescript-type-guard/</guid><description>Using custom type guard allow us to create reusable checking that narrow down the type of a variable</description><pubDate>Mon, 26 Nov 2018 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Monitoring Government Website for Content Change</title><link>https://malcolmkee.com/blog/msia-ssm-change-monitor/</link><guid isPermaLink="true">https://malcolmkee.com/blog/msia-ssm-change-monitor/</guid><description>My experience on developing a web-scraping application that will notify subscribers for any changes of a government website</description><pubDate>Wed, 24 Oct 2018 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>Accessible HTML File Input</title><link>https://malcolmkee.com/blog/accessible-file-input/</link><guid isPermaLink="true">https://malcolmkee.com/blog/accessible-file-input/</guid><description>By being more thoughtful, we can have a file input that is beautiful but still accessible.</description><pubDate>Wed, 26 Sep 2018 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>My First Tech Talk: Render Props &amp; Higher Order Components</title><link>https://malcolmkee.com/blog/my-first-tech-talk/</link><guid isPermaLink="true">https://malcolmkee.com/blog/my-first-tech-talk/</guid><description>A note on my first technical talk on React. I find the act of preparing and delivering the talk satisfying.</description><pubDate>Mon, 20 Aug 2018 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>How to bargain in marketplace like a tactful auntie</title><link>https://malcolmkee.com/blog/how-to-bargain/</link><guid isPermaLink="true">https://malcolmkee.com/blog/how-to-bargain/</guid><description>To bargain successfully in marketplace, make abrupt concession and threaten to flip-table effectively.</description><pubDate>Sun, 24 Jun 2018 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>How to say no to friends and family that want to borrow money</title><link>https://malcolmkee.com/blog/how-to-not-lend-money/</link><guid isPermaLink="true">https://malcolmkee.com/blog/how-to-not-lend-money/</guid><description>When friends/family want to borrow money from you, instead of asking how much they want to borrow first, ask why they want to borrow, and respond accordingly.</description><pubDate>Sat, 23 Jun 2018 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>React Patterns: Container-Presenter</title><link>https://malcolmkee.com/blog/react-container-presenter-pattern/</link><guid isPermaLink="true">https://malcolmkee.com/blog/react-container-presenter-pattern/</guid><description>There are a few design patterns of React component, and the easiest one is the Component-Presenter pattern, which is actually to separate mapping/states/transformation from the rendered content</description><pubDate>Sun, 17 Jun 2018 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>如何拥有一份喜爱的工作</title><link>https://malcolmkee.com/blog/how-to-get-a-job-you-love/</link><guid isPermaLink="true">https://malcolmkee.com/blog/how-to-get-a-job-you-love/</guid><description>拥有一份喜爱的工作的关键并不在于找到自己的热情在哪里，而是专注于提升自己的能力，掌握好自己的专业后获得一份好工作，热情才会随之而来。</description><pubDate>Sat, 16 Jun 2018 00:00:00 GMT</pubDate><language>zh-Hans</language></item><item><title>对能力的心态</title><link>https://malcolmkee.com/blog/attitude-to-competency/</link><guid isPermaLink="true">https://malcolmkee.com/blog/attitude-to-competency/</guid><description>理解对能力的两种心态，以及它们如何影响我们对学习和努力的态度。透过提醒自己要秉持成长心态，可以让我们对挫折和努力秉持更健康的心态。</description><pubDate>Sun, 27 May 2018 00:00:00 GMT</pubDate><language>zh-Hans</language></item><item><title>Introduction to React with Typescript</title><link>https://malcolmkee.com/blog/react-typescript-introduction/</link><guid isPermaLink="true">https://malcolmkee.com/blog/react-typescript-introduction/</guid><description>Using typescript allow static typechecking and intellisense in your React application, and it is easy to get started.</description><pubDate>Thu, 10 May 2018 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>The best way is to Improve Yourself</title><link>https://malcolmkee.com/blog/improve-yourself/</link><guid isPermaLink="true">https://malcolmkee.com/blog/improve-yourself/</guid><description>Note to remind myself of my working philosophy</description><pubDate>Mon, 07 May 2018 00:00:00 GMT</pubDate><language>en-US</language></item><item><title>My first Meetup</title><link>https://malcolmkee.com/blog/my-first-meetup/</link><guid isPermaLink="true">https://malcolmkee.com/blog/my-first-meetup/</guid><description>A journal on my first Meetup experience</description><pubDate>Tue, 01 May 2018 00:00:00 GMT</pubDate><language>en-US</language></item></channel></rss>