<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Firman on Medium]]></title>
        <description><![CDATA[Stories by Firman on Medium]]></description>
        <link>https://medium.com/@firmanabdulhakim?source=rss-20cf72648b56------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*RzlwLcxT73-FRTilSV9KiA.jpeg</url>
            <title>Stories by Firman on Medium</title>
            <link>https://medium.com/@firmanabdulhakim?source=rss-20cf72648b56------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Wed, 24 Jun 2026 21:09:21 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@firmanabdulhakim/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Node Cache: A solution to avoid static data repetition]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/node-cache-a-solution-to-avoid-static-data-repetition-be254acdfcfc?source=rss-20cf72648b56------2"><img src="https://cdn-images-1.medium.com/max/1408/1*GRe09g1xmCrj7SfD_4Ky0w.png" width="1408"></a></p><p class="medium-feed-snippet">Introduction</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/node-cache-a-solution-to-avoid-static-data-repetition-be254acdfcfc?source=rss-20cf72648b56------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/node-cache-a-solution-to-avoid-static-data-repetition-be254acdfcfc?source=rss-20cf72648b56------2</link>
            <guid isPermaLink="false">https://medium.com/p/be254acdfcfc</guid>
            <category><![CDATA[javascript-tips]]></category>
            <category><![CDATA[node-js-tutorial]]></category>
            <category><![CDATA[cache]]></category>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[expressjs]]></category>
            <dc:creator><![CDATA[Firman]]></dc:creator>
            <pubDate>Thu, 04 Jun 2026 11:23:25 GMT</pubDate>
            <atom:updated>2026-06-04T11:23:25.746Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Memory limit exceeded in mongodb using mongoose]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://firmanabdulhakim.medium.com/memory-limit-exceeded-in-mongodb-using-mongoose-2a639bb85bd9?source=rss-20cf72648b56------2"><img src="https://cdn-images-1.medium.com/max/1536/1*nStdITmqRwoWXoixJ7VlqA.png" width="1536"></a></p><p class="medium-feed-snippet">Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting, aborting operation</p><p class="medium-feed-link"><a href="https://firmanabdulhakim.medium.com/memory-limit-exceeded-in-mongodb-using-mongoose-2a639bb85bd9?source=rss-20cf72648b56------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://firmanabdulhakim.medium.com/memory-limit-exceeded-in-mongodb-using-mongoose-2a639bb85bd9?source=rss-20cf72648b56------2</link>
            <guid isPermaLink="false">https://medium.com/p/2a639bb85bd9</guid>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[tips]]></category>
            <category><![CDATA[node-js-tutorial]]></category>
            <category><![CDATA[mongodb]]></category>
            <category><![CDATA[mongoosejs]]></category>
            <dc:creator><![CDATA[Firman]]></dc:creator>
            <pubDate>Sun, 10 May 2026 03:26:24 GMT</pubDate>
            <atom:updated>2026-05-10T03:26:24.929Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Setting Up Husky, ESLint, and Prettier in a Node.js Application For Your Team]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/setting-up-husky-eslint-and-prettier-in-a-node-js-application-for-your-team-64eecfacd895?source=rss-20cf72648b56------2"><img src="https://cdn-images-1.medium.com/max/978/1*lkjBxRq8-3LxWG7EL5jeDw.png" width="978"></a></p><p class="medium-feed-snippet">Make code standards more uniform across your team</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/setting-up-husky-eslint-and-prettier-in-a-node-js-application-for-your-team-64eecfacd895?source=rss-20cf72648b56------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/setting-up-husky-eslint-and-prettier-in-a-node-js-application-for-your-team-64eecfacd895?source=rss-20cf72648b56------2</link>
            <guid isPermaLink="false">https://medium.com/p/64eecfacd895</guid>
            <category><![CDATA[tips]]></category>
            <category><![CDATA[prettier]]></category>
            <category><![CDATA[husky]]></category>
            <category><![CDATA[pre-commit]]></category>
            <category><![CDATA[nodejs]]></category>
            <dc:creator><![CDATA[Firman]]></dc:creator>
            <pubDate>Mon, 26 May 2025 00:21:18 GMT</pubDate>
            <atom:updated>2026-04-22T10:09:53.325Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Creating Multiple Language API Responses]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/creating-multiple-language-api-responses-7ca2dc8d33c7?source=rss-20cf72648b56------2"><img src="https://cdn-images-1.medium.com/max/1024/1*NQja7xqEmZQ7e0SH00vt-Q.png" width="1024"></a></p><p class="medium-feed-snippet">When creating an API, sometimes there is a need for the message to be in multiple languages, so that it can be easily understood by the&#x2026;</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/creating-multiple-language-api-responses-7ca2dc8d33c7?source=rss-20cf72648b56------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/creating-multiple-language-api-responses-7ca2dc8d33c7?source=rss-20cf72648b56------2</link>
            <guid isPermaLink="false">https://medium.com/p/7ca2dc8d33c7</guid>
            <category><![CDATA[language]]></category>
            <category><![CDATA[node-js-tutorial]]></category>
            <category><![CDATA[expressjs]]></category>
            <category><![CDATA[tips]]></category>
            <category><![CDATA[nodejs]]></category>
            <dc:creator><![CDATA[Firman]]></dc:creator>
            <pubDate>Mon, 21 Apr 2025 09:10:12 GMT</pubDate>
            <atom:updated>2025-08-16T08:37:49.197Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Limit Requests To Server For Api Security In Nodejs]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/limit-requests-to-server-for-api-security-in-nodejs-5a61b1f5c979?source=rss-20cf72648b56------2"><img src="https://cdn-images-1.medium.com/max/1000/1*un9ETUJ0_zLbO7zVBpVLYw.png" width="1000"></a></p><p class="medium-feed-snippet">When creating a website-based application and the nature of the website is public, preventing excessive requests needs to be done so that&#x2026;</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/limit-requests-to-server-for-api-security-in-nodejs-5a61b1f5c979?source=rss-20cf72648b56------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/limit-requests-to-server-for-api-security-in-nodejs-5a61b1f5c979?source=rss-20cf72648b56------2</link>
            <guid isPermaLink="false">https://medium.com/p/5a61b1f5c979</guid>
            <category><![CDATA[expressjs]]></category>
            <category><![CDATA[tips-and-tricks]]></category>
            <category><![CDATA[rate-limiter]]></category>
            <category><![CDATA[throttling]]></category>
            <category><![CDATA[nodejs]]></category>
            <dc:creator><![CDATA[Firman]]></dc:creator>
            <pubDate>Mon, 17 Mar 2025 00:58:16 GMT</pubDate>
            <atom:updated>2025-03-17T00:58:16.498Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Node.js Tips: Create JSON and CSV Without any Library]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/node-js-tips-create-json-and-csv-without-any-library-1cf156050bfe?source=rss-20cf72648b56------2"><img src="https://cdn-images-1.medium.com/max/1000/1*un9ETUJ0_zLbO7zVBpVLYw.png" width="1000"></a></p><p class="medium-feed-snippet">When creating an application, there is definitely a need for us to export data in JSON or CSV format.</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/node-js-tips-create-json-and-csv-without-any-library-1cf156050bfe?source=rss-20cf72648b56------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/node-js-tips-create-json-and-csv-without-any-library-1cf156050bfe?source=rss-20cf72648b56------2</link>
            <guid isPermaLink="false">https://medium.com/p/1cf156050bfe</guid>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[node-js-tutorial]]></category>
            <category><![CDATA[javascript-tips]]></category>
            <category><![CDATA[tips-and-tricks]]></category>
            <dc:creator><![CDATA[Firman]]></dc:creator>
            <pubDate>Mon, 17 Feb 2025 01:42:50 GMT</pubDate>
            <atom:updated>2025-02-17T01:42:50.665Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Recommended Packages for Exporting to PDF in Nodejs]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/recommended-packages-for-exporting-to-pdf-in-nodejs-002068c3531d?source=rss-20cf72648b56------2"><img src="https://cdn-images-1.medium.com/max/1280/1*nMfOBpyGOkw41koT6hfhnw.jpeg" width="1280"></a></p><p class="medium-feed-snippet">In creating applications, the need for data processing exported to PDF output will always be there. Example of an invoice in an e-commerce&#x2026;</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/recommended-packages-for-exporting-to-pdf-in-nodejs-002068c3531d?source=rss-20cf72648b56------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/recommended-packages-for-exporting-to-pdf-in-nodejs-002068c3531d?source=rss-20cf72648b56------2</link>
            <guid isPermaLink="false">https://medium.com/p/002068c3531d</guid>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[typescript]]></category>
            <category><![CDATA[tips-and-tricks]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[pdf]]></category>
            <dc:creator><![CDATA[Firman]]></dc:creator>
            <pubDate>Mon, 10 Feb 2025 04:14:09 GMT</pubDate>
            <atom:updated>2025-02-10T04:14:09.536Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Read Metada File in Nodejs]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/read-metada-file-in-nodejs-26d77772e2bc?source=rss-20cf72648b56------2"><img src="https://cdn-images-1.medium.com/max/1200/1*rdh0pCmriQ48MTS08iT9iA.png" width="1200"></a></p><p class="medium-feed-snippet">This time I will try to share tips or tricks for a short tutorial on how to read metadata using nodejs.</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/read-metada-file-in-nodejs-26d77772e2bc?source=rss-20cf72648b56------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/read-metada-file-in-nodejs-26d77772e2bc?source=rss-20cf72648b56------2</link>
            <guid isPermaLink="false">https://medium.com/p/26d77772e2bc</guid>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[filé]]></category>
            <category><![CDATA[tips-and-tricks]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[metadata]]></category>
            <dc:creator><![CDATA[Firman]]></dc:creator>
            <pubDate>Mon, 03 Feb 2025 01:25:18 GMT</pubDate>
            <atom:updated>2025-02-03T01:25:18.199Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Build Simple Website Inventory With ExpressJs, PostgreSQL Prisma And Template Engine EJS …]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/build-simple-website-inventory-with-expressjs-postgresql-prisma-and-template-engine-ejs-366c163fa735?source=rss-20cf72648b56------2"><img src="https://cdn-images-1.medium.com/max/1280/1*OxHjmVc2YYtzvtKxRC5c2A.jpeg" width="1280"></a></p><p class="medium-feed-snippet">This time I will try to make a simple article about an inventory website application with more or less the following features&#xA0;:</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/build-simple-website-inventory-with-expressjs-postgresql-prisma-and-template-engine-ejs-366c163fa735?source=rss-20cf72648b56------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/build-simple-website-inventory-with-expressjs-postgresql-prisma-and-template-engine-ejs-366c163fa735?source=rss-20cf72648b56------2</link>
            <guid isPermaLink="false">https://medium.com/p/366c163fa735</guid>
            <category><![CDATA[postgresql]]></category>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[prisma]]></category>
            <category><![CDATA[ejs]]></category>
            <category><![CDATA[expressjs]]></category>
            <dc:creator><![CDATA[Firman]]></dc:creator>
            <pubDate>Tue, 21 Jan 2025 05:54:54 GMT</pubDate>
            <atom:updated>2025-01-27T12:05:13.716Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Sending Email From Local Using Nodemailer and Mailtrap : Sending Attachment]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://javascript.plainenglish.io/sending-email-from-local-using-nodemailer-and-mailtrap-sending-attachment-c5c8c513a7a3?source=rss-20cf72648b56------2"><img src="https://cdn-images-1.medium.com/max/1280/1*vqsvu0k2bbv5s9BSAweHhw.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Intro&#x200A;&#x2014;&#x200A;This article is a continuation of the previous article about nodemailer, you can read it here, Now let&#x2019;s try sending an attachment&#x2026;</p><p class="medium-feed-link"><a href="https://javascript.plainenglish.io/sending-email-from-local-using-nodemailer-and-mailtrap-sending-attachment-c5c8c513a7a3?source=rss-20cf72648b56------2">Continue reading on JavaScript in Plain English »</a></p></div>]]></description>
            <link>https://javascript.plainenglish.io/sending-email-from-local-using-nodemailer-and-mailtrap-sending-attachment-c5c8c513a7a3?source=rss-20cf72648b56------2</link>
            <guid isPermaLink="false">https://medium.com/p/c5c8c513a7a3</guid>
            <category><![CDATA[mailtrap]]></category>
            <category><![CDATA[tips-and-tricks]]></category>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[nodemailer]]></category>
            <category><![CDATA[node-js-tutorial]]></category>
            <dc:creator><![CDATA[Firman]]></dc:creator>
            <pubDate>Mon, 20 Jan 2025 05:50:54 GMT</pubDate>
            <atom:updated>2025-01-20T05:50:54.010Z</atom:updated>
        </item>
    </channel>
</rss>