<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Zhenghao's blog</title>
        <link>https://zhenghao.io</link>
        <description>You can find me talking about topics related to JavaScript, TypeScript, React, Web development and technical/coding interviews</description>
        <lastBuildDate>Sat, 03 Aug 2024 19:20:35 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>All rights reserved 2024, Zhenghao He</copyright>
        <item>
            <title><![CDATA[Three common interview practices I wish to see less of]]></title>
            <link>https://zhenghao.io/posts/bad-interview-practices</link>
            <guid>https://zhenghao.io/posts/bad-interview-practices</guid>
            <pubDate>Sun, 19 Feb 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[practices that I think interviewers should avoid when conducting coding interview]]></description>
            <content:encoded><![CDATA[practices that I think interviewers should avoid when conducting coding interview]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>technical interviews</category>
            <category>musing</category>
        </item>
        <item>
            <title><![CDATA[The frontend interview guide you've been missing]]></title>
            <link>https://zhenghao.io/posts/frontend-interview-type</link>
            <guid>https://zhenghao.io/posts/frontend-interview-type</guid>
            <pubDate>Fri, 30 Dec 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[I distilled my interview experience from over 20 frontend interviews that I took in the past two years.]]></description>
            <content:encoded><![CDATA[I distilled my interview experience from over 20 frontend interviews that I took in the past two years.]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>technical interviews</category>
        </item>
        <item>
            <title><![CDATA[Why async/await is more than just syntactic sugar]]></title>
            <link>https://zhenghao.io/posts/await-vs-promise</link>
            <guid>https://zhenghao.io/posts/await-vs-promise</guid>
            <pubDate>Mon, 08 Aug 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[My takes on async/await vs Promise]]></description>
            <content:encoded><![CDATA[My takes on async/await vs Promise]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[Working with dates using Regex Named Capture Groups]]></title>
            <link>https://zhenghao.io/posts/dates-regex</link>
            <guid>https://zhenghao.io/posts/dates-regex</guid>
            <pubDate>Thu, 04 Aug 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A feature added in ES2018 makes working with dates in different formats a bit easier]]></description>
            <content:encoded><![CDATA[A feature added in ES2018 makes working with dates in different formats a bit easier]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[Detect JavaScript Memory Leaks with queryObjects]]></title>
            <link>https://zhenghao.io/posts/queryObjects</link>
            <guid>https://zhenghao.io/posts/queryObjects</guid>
            <pubDate>Sun, 17 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[An API shipped with Chrome Dev console turns out to be a surprisingly easy way to observe how garbage collection works in JavaScript]]></description>
            <content:encoded><![CDATA[An API shipped with Chrome Dev console turns out to be a surprisingly easy way to observe how garbage collection works in JavaScript]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[When You Should Prefer Map Over Object In JavaScript]]></title>
            <link>https://zhenghao.io/posts/object-vs-map</link>
            <guid>https://zhenghao.io/posts/object-vs-map</guid>
            <pubDate>Sat, 18 Jun 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[the missing guide to choosing between Object and Map in JavaScript]]></description>
            <content:encoded><![CDATA[the missing guide to choosing between Object and Map in JavaScript]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[Verify if a url links to an image (without relying on regex)]]></title>
            <link>https://zhenghao.io/posts/verify-image-url</link>
            <guid>https://zhenghao.io/posts/verify-image-url</guid>
            <pubDate>Tue, 14 Jun 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[one of the rare cases that I need to work with MIME types in frontend web development]]></description>
            <content:encoded><![CDATA[one of the rare cases that I need to work with MIME types in frontend web development]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[A complete guide to check data types in JavaScript]]></title>
            <link>https://zhenghao.io/posts/js-data-type</link>
            <guid>https://zhenghao.io/posts/js-data-type</guid>
            <pubDate>Fri, 20 May 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[JavaScript is such an imperfect language that you can't even rely on it for simple things like checking data types.]]></description>
            <content:encoded><![CDATA[JavaScript is such an imperfect language that you can't even rely on it for simple things like checking data types.]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[JSON and the stringification oddities in JavaScript]]></title>
            <link>https://zhenghao.io/posts/json-oddities</link>
            <guid>https://zhenghao.io/posts/json-oddities</guid>
            <pubDate>Thu, 19 May 2022 00:00:00 GMT</pubDate>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[Why you should include debugging in the interview process]]></title>
            <link>https://zhenghao.io/posts/debugging-interview</link>
            <guid>https://zhenghao.io/posts/debugging-interview</guid>
            <pubDate>Thu, 21 Apr 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Technical interviews should stop over-indexing on coding ability along]]></description>
            <content:encoded><![CDATA[Technical interviews should stop over-indexing on coding ability along]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>technical interviews</category>
            <category>musing</category>
        </item>
        <item>
            <title><![CDATA[Preemptive memoization in React is probably not Evil (yet)]]></title>
            <link>https://zhenghao.io/posts/memo-or-not</link>
            <guid>https://zhenghao.io/posts/memo-or-not</guid>
            <pubDate>Sun, 20 Mar 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Why you might still end up using useMemo/useCallback everywhere even though you want to avoid premature optimization]]></description>
            <content:encoded><![CDATA[Why you might still end up using useMemo/useCallback everywhere even though you want to avoid premature optimization]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>react</category>
        </item>
        <item>
            <title><![CDATA[When does React render your component?]]></title>
            <link>https://zhenghao.io/posts/react-rerender</link>
            <guid>https://zhenghao.io/posts/react-rerender</guid>
            <pubDate>Fri, 18 Mar 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[When and why does React render my component exactly?]]></description>
            <content:encoded><![CDATA[When and why does React render my component exactly?]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>react</category>
        </item>
        <item>
            <title><![CDATA[A complete guide to TypeScript's never type]]></title>
            <link>https://zhenghao.io/posts/ts-never</link>
            <guid>https://zhenghao.io/posts/ts-never</guid>
            <pubDate>Fri, 04 Mar 2022 00:00:00 GMT</pubDate>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>typescript</category>
        </item>
        <item>
            <title><![CDATA[Type polymorphic functions in TypeScript]]></title>
            <link>https://zhenghao.io/posts/type-functions</link>
            <guid>https://zhenghao.io/posts/type-functions</guid>
            <pubDate>Sat, 19 Feb 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[you might or might not need to use function overload]]></description>
            <content:encoded><![CDATA[you might or might not need to use function overload]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>typescript</category>
        </item>
        <item>
            <title><![CDATA[An introduction to type programming in TypeScript]]></title>
            <link>https://zhenghao.io/posts/type-programming</link>
            <guid>https://zhenghao.io/posts/type-programming</guid>
            <pubDate>Mon, 31 Jan 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Learn to write types using the type language and leverage your existing javascript knowledge to master TypeScript quicker]]></description>
            <content:encoded><![CDATA[Learn to write types using the type language and leverage your existing javascript knowledge to master TypeScript quicker]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>typescript</category>
        </item>
        <item>
            <title><![CDATA[the double-assignment pattern in jQuery's source code]]></title>
            <link>https://zhenghao.io/posts/double-assignment</link>
            <guid>https://zhenghao.io/posts/double-assignment</guid>
            <pubDate>Wed, 26 Jan 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A pattern I discovered in jQuery's source code]]></description>
            <content:encoded><![CDATA[A pattern I discovered in jQuery's source code]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>javascript</category>
        </item>
        <item>
            <title><![CDATA[Type Algebra]]></title>
            <link>https://zhenghao.io/posts/type-algebra</link>
            <guid>https://zhenghao.io/posts/type-algebra</guid>
            <pubDate>Mon, 03 Jan 2022 00:00:00 GMT</pubDate>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>typescript</category>
        </item>
        <item>
            <title><![CDATA[The type hierarchy tree]]></title>
            <link>https://zhenghao.io/posts/type-hierarchy-tree</link>
            <guid>https://zhenghao.io/posts/type-hierarchy-tree</guid>
            <pubDate>Tue, 28 Dec 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[A reflection on my mental model of TypeScript’s type system]]></description>
            <content:encoded><![CDATA[A reflection on my mental model of TypeScript’s type system]]></content:encoded>
            <author>zhenghaohe17@gmail.com (Zhenghao He)</author>
            <category>typescript</category>
        </item>
    </channel>
</rss>