<?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 ukyen on Medium]]></title>
        <description><![CDATA[Stories by ukyen on Medium]]></description>
        <link>https://medium.com/@wucean?source=rss-d18a27d8a5c------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*KKk8itJ4sjVwFrUiSUkkjQ.jpeg</url>
            <title>Stories by ukyen on Medium</title>
            <link>https://medium.com/@wucean?source=rss-d18a27d8a5c------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 31 May 2026 22:17:48 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@wucean/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[How PEP 440 Local Versions Can Quietly Break Your == Dependency Pins]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://python.plainenglish.io/how-pep-440-local-versions-can-quietly-break-your-dependency-pins-59da6aaeab53?source=rss-d18a27d8a5c------2"><img src="https://cdn-images-1.medium.com/max/1408/1*7G08wDJ2xSnkH1juYpKnDg.png" width="1408"></a></p><p class="medium-feed-snippet">Why your exact package versions aren&#x2019;t as safe as you think &#x2014; and how modern tools like uv change the rules.</p><p class="medium-feed-link"><a href="https://python.plainenglish.io/how-pep-440-local-versions-can-quietly-break-your-dependency-pins-59da6aaeab53?source=rss-d18a27d8a5c------2">Continue reading on Python in Plain English »</a></p></div>]]></description>
            <link>https://python.plainenglish.io/how-pep-440-local-versions-can-quietly-break-your-dependency-pins-59da6aaeab53?source=rss-d18a27d8a5c------2</link>
            <guid isPermaLink="false">https://medium.com/p/59da6aaeab53</guid>
            <category><![CDATA[local-version]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[package-management]]></category>
            <category><![CDATA[uv]]></category>
            <category><![CDATA[pip]]></category>
            <dc:creator><![CDATA[ukyen]]></dc:creator>
            <pubDate>Wed, 27 May 2026 19:13:56 GMT</pubDate>
            <atom:updated>2026-05-27T19:13:56.360Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Processing Millions of Files with Step Functions Distributed Map]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://aws.plainenglish.io/processing-millions-of-files-with-step-functions-distributed-map-723fa0989feb?source=rss-d18a27d8a5c------2"><img src="https://cdn-images-1.medium.com/max/1195/1*o7r003_V1rD94fZFWaLPEA.png" width="1195"></a></p><p class="medium-feed-snippet">Efficiently Processing Large-Scale Datasets Serverlessly</p><p class="medium-feed-link"><a href="https://aws.plainenglish.io/processing-millions-of-files-with-step-functions-distributed-map-723fa0989feb?source=rss-d18a27d8a5c------2">Continue reading on AWS in Plain English »</a></p></div>]]></description>
            <link>https://aws.plainenglish.io/processing-millions-of-files-with-step-functions-distributed-map-723fa0989feb?source=rss-d18a27d8a5c------2</link>
            <guid isPermaLink="false">https://medium.com/p/723fa0989feb</guid>
            <category><![CDATA[aws-step-functions]]></category>
            <category><![CDATA[aws-lambda]]></category>
            <category><![CDATA[distributed-systems]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[csv]]></category>
            <dc:creator><![CDATA[ukyen]]></dc:creator>
            <pubDate>Tue, 27 Jan 2026 08:01:34 GMT</pubDate>
            <atom:updated>2026-01-27T08:01:34.946Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Architecting Multi-Tenancy with AWS Cognito: The Custom Attribute Pattern]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://aws.plainenglish.io/architecting-multi-tenancy-with-aws-cognito-the-custom-attribute-pattern-7c20876a0c23?source=rss-d18a27d8a5c------2"><img src="https://cdn-images-1.medium.com/max/991/1*J3aCNSJahSKJbz_KMns9lA.png" width="991"></a></p><p class="medium-feed-snippet">Implementing tenant isolation and RBAC with FastAPI.</p><p class="medium-feed-link"><a href="https://aws.plainenglish.io/architecting-multi-tenancy-with-aws-cognito-the-custom-attribute-pattern-7c20876a0c23?source=rss-d18a27d8a5c------2">Continue reading on AWS in Plain English »</a></p></div>]]></description>
            <link>https://aws.plainenglish.io/architecting-multi-tenancy-with-aws-cognito-the-custom-attribute-pattern-7c20876a0c23?source=rss-d18a27d8a5c------2</link>
            <guid isPermaLink="false">https://medium.com/p/7c20876a0c23</guid>
            <category><![CDATA[aws-cognito]]></category>
            <category><![CDATA[fastapi]]></category>
            <category><![CDATA[pydantic]]></category>
            <category><![CDATA[rbac]]></category>
            <category><![CDATA[multitenancy]]></category>
            <dc:creator><![CDATA[ukyen]]></dc:creator>
            <pubDate>Wed, 03 Dec 2025 07:28:20 GMT</pubDate>
            <atom:updated>2025-12-03T07:28:20.454Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Process a large CSV file with AWS Step Function and Lambda]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://aws.plainenglish.io/process-a-large-csv-file-with-aws-step-function-and-lambda-743c991744d8?source=rss-d18a27d8a5c------2"><img src="https://cdn-images-1.medium.com/max/1051/1*xz_FsbgtidMup9MmvO5ICA.png" width="1051"></a></p><p class="medium-feed-snippet">No more Lambda timeout!</p><p class="medium-feed-link"><a href="https://aws.plainenglish.io/process-a-large-csv-file-with-aws-step-function-and-lambda-743c991744d8?source=rss-d18a27d8a5c------2">Continue reading on AWS in Plain English »</a></p></div>]]></description>
            <link>https://aws.plainenglish.io/process-a-large-csv-file-with-aws-step-function-and-lambda-743c991744d8?source=rss-d18a27d8a5c------2</link>
            <guid isPermaLink="false">https://medium.com/p/743c991744d8</guid>
            <category><![CDATA[python]]></category>
            <category><![CDATA[state-machine]]></category>
            <category><![CDATA[large-file-upload]]></category>
            <category><![CDATA[aws-lambda]]></category>
            <category><![CDATA[data-pipeline]]></category>
            <dc:creator><![CDATA[ukyen]]></dc:creator>
            <pubDate>Wed, 10 Sep 2025 04:55:16 GMT</pubDate>
            <atom:updated>2025-09-10T04:55:16.650Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Test AWS Powertools Idempotency with Moto]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://towardsaws.com/test-aws-powertools-idempotency-with-moto-bc7909a4e9e3?source=rss-d18a27d8a5c------2"><img src="https://cdn-images-1.medium.com/max/1792/1*rXNRqLGyD9ABMoWX35KlFw.png" width="1792"></a></p><p class="medium-feed-snippet">Mocking DynamoDB calls in your test cases</p><p class="medium-feed-link"><a href="https://towardsaws.com/test-aws-powertools-idempotency-with-moto-bc7909a4e9e3?source=rss-d18a27d8a5c------2">Continue reading on Towards AWS »</a></p></div>]]></description>
            <link>https://towardsaws.com/test-aws-powertools-idempotency-with-moto-bc7909a4e9e3?source=rss-d18a27d8a5c------2</link>
            <guid isPermaLink="false">https://medium.com/p/bc7909a4e9e3</guid>
            <category><![CDATA[motos]]></category>
            <category><![CDATA[unittest]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[aws-powertools]]></category>
            <category><![CDATA[python]]></category>
            <dc:creator><![CDATA[ukyen]]></dc:creator>
            <pubDate>Thu, 12 Sep 2024 02:37:38 GMT</pubDate>
            <atom:updated>2024-09-12T02:37:38.560Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Implement OAuth 2.0 Authorization Flow With FastAPI]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://python.plainenglish.io/implement-oauth-2-0-authorization-flow-with-fastapi-7365385862e9?source=rss-d18a27d8a5c------2"><img src="https://cdn-images-1.medium.com/max/1280/1*2LL5IYDKgKvCd1bC3KYZUA.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Get access to Google APIs for your web application</p><p class="medium-feed-link"><a href="https://python.plainenglish.io/implement-oauth-2-0-authorization-flow-with-fastapi-7365385862e9?source=rss-d18a27d8a5c------2">Continue reading on Python in Plain English »</a></p></div>]]></description>
            <link>https://python.plainenglish.io/implement-oauth-2-0-authorization-flow-with-fastapi-7365385862e9?source=rss-d18a27d8a5c------2</link>
            <guid isPermaLink="false">https://medium.com/p/7365385862e9</guid>
            <category><![CDATA[authorization]]></category>
            <category><![CDATA[fastapi]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[oauth2]]></category>
            <category><![CDATA[google-api]]></category>
            <dc:creator><![CDATA[ukyen]]></dc:creator>
            <pubDate>Tue, 27 Feb 2024 12:17:34 GMT</pubDate>
            <atom:updated>2024-02-27T12:17:34.269Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Sending a message to Amazon SQS from Cloud Pub/Sub]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://towardsaws.com/sending-a-message-to-amazon-sqs-from-cloud-pub-sub-006ef30cfb23?source=rss-d18a27d8a5c------2"><img src="https://cdn-images-1.medium.com/max/1280/1*MwprD81EzZwVPfKPcYzNwg.jpeg" width="1280"></a></p><p class="medium-feed-snippet">A Cloud Function that forwards Pub/Sub messages to SQS</p><p class="medium-feed-link"><a href="https://towardsaws.com/sending-a-message-to-amazon-sqs-from-cloud-pub-sub-006ef30cfb23?source=rss-d18a27d8a5c------2">Continue reading on Towards AWS »</a></p></div>]]></description>
            <link>https://towardsaws.com/sending-a-message-to-amazon-sqs-from-cloud-pub-sub-006ef30cfb23?source=rss-d18a27d8a5c------2</link>
            <guid isPermaLink="false">https://medium.com/p/006ef30cfb23</guid>
            <category><![CDATA[event-driven-architecture]]></category>
            <category><![CDATA[cloud-pubsub]]></category>
            <category><![CDATA[cloud-functions]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[sqs]]></category>
            <dc:creator><![CDATA[ukyen]]></dc:creator>
            <pubDate>Mon, 19 Feb 2024 08:59:37 GMT</pubDate>
            <atom:updated>2024-02-19T08:59:37.979Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Test Amazon Cognito and DynamoDB with Moto]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://aws.plainenglish.io/test-amazon-cognito-and-dynamodb-with-moto-6dee45d49d3c?source=rss-d18a27d8a5c------2"><img src="https://cdn-images-1.medium.com/max/1280/1*n9q1bTkzP126PWS60GOzLg.png" width="1280"></a></p><p class="medium-feed-snippet">Mocking your AWS infrastructures in your test cases</p><p class="medium-feed-link"><a href="https://aws.plainenglish.io/test-amazon-cognito-and-dynamodb-with-moto-6dee45d49d3c?source=rss-d18a27d8a5c------2">Continue reading on AWS in Plain English »</a></p></div>]]></description>
            <link>https://aws.plainenglish.io/test-amazon-cognito-and-dynamodb-with-moto-6dee45d49d3c?source=rss-d18a27d8a5c------2</link>
            <guid isPermaLink="false">https://medium.com/p/6dee45d49d3c</guid>
            <category><![CDATA[boto3-python]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[pytest]]></category>
            <category><![CDATA[motos]]></category>
            <category><![CDATA[aws]]></category>
            <dc:creator><![CDATA[ukyen]]></dc:creator>
            <pubDate>Tue, 02 Jan 2024 10:17:26 GMT</pubDate>
            <atom:updated>2024-01-02T10:17:26.137Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[一起跳槽吧！英國軟體工程師求職經驗分享]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/starbugs/%E4%B8%80%E8%B5%B7%E8%B7%B3%E6%A7%BD%E5%90%A7-%E8%8B%B1%E5%9C%8B%E8%BB%9F%E9%AB%94%E5%B7%A5%E7%A8%8B%E5%B8%AB%E6%B1%82%E8%81%B7%E7%B6%93%E9%A9%97%E5%88%86%E4%BA%AB-00e0ef3afe14?source=rss-d18a27d8a5c------2"><img src="https://cdn-images-1.medium.com/max/1280/1*xZiCLI3A4GUZzoYFygpQmQ.jpeg" width="1280"></a></p><p class="medium-feed-snippet">&#x82F1;&#x570B;&#x7684;&#x5DE5;&#x4F5C;&#x6A5F;&#x6703;&#x5F88;&#x591A;&#xFF0C;&#x4F46;&#x8981;&#x627E;&#x4E00;&#x500B;&#x8D0A;&#x52A9;&#x7C3D;&#x8B49;&#x7684;&#x5DE5;&#x4F5C;&#x600E;&#x9EBC;&#x90A3;&#x9EBC;&#x96E3;&#xFF5E;</p><p class="medium-feed-link"><a href="https://medium.com/starbugs/%E4%B8%80%E8%B5%B7%E8%B7%B3%E6%A7%BD%E5%90%A7-%E8%8B%B1%E5%9C%8B%E8%BB%9F%E9%AB%94%E5%B7%A5%E7%A8%8B%E5%B8%AB%E6%B1%82%E8%81%B7%E7%B6%93%E9%A9%97%E5%88%86%E4%BA%AB-00e0ef3afe14?source=rss-d18a27d8a5c------2">Continue reading on Starbugs Weekly 星巴哥技術專欄 »</a></p></div>]]></description>
            <link>https://medium.com/starbugs/%E4%B8%80%E8%B5%B7%E8%B7%B3%E6%A7%BD%E5%90%A7-%E8%8B%B1%E5%9C%8B%E8%BB%9F%E9%AB%94%E5%B7%A5%E7%A8%8B%E5%B8%AB%E6%B1%82%E8%81%B7%E7%B6%93%E9%A9%97%E5%88%86%E4%BA%AB-00e0ef3afe14?source=rss-d18a27d8a5c------2</link>
            <guid isPermaLink="false">https://medium.com/p/00e0ef3afe14</guid>
            <category><![CDATA[skilled-worker]]></category>
            <category><![CDATA[software-developer]]></category>
            <category><![CDATA[job-search]]></category>
            <category><![CDATA[interview]]></category>
            <category><![CDATA[taiwan]]></category>
            <dc:creator><![CDATA[ukyen]]></dc:creator>
            <pubDate>Wed, 06 Dec 2023 07:44:08 GMT</pubDate>
            <atom:updated>2023-12-06T07:44:08.985Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[如何變更英國駕照上的居住地址]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@wucean/%E5%A6%82%E4%BD%95%E8%AE%8A%E6%9B%B4%E8%8B%B1%E5%9C%8B%E9%A7%95%E7%85%A7%E4%B8%8A%E7%9A%84%E5%B1%85%E4%BD%8F%E5%9C%B0%E5%9D%80-e78926c7ffa4?source=rss-d18a27d8a5c------2"><img src="https://cdn-images-1.medium.com/max/1280/1*pdMhkrgNvNmzfDAb6TH_-g.png" width="1280"></a></p><p class="medium-feed-snippet">&#x5728;&#x82F1;&#x570B;&#x5DE5;&#x4F5C;&#x7684;&#x53F0;&#x7063;&#x4EBA;&#xFF0C;&#x5E38;&#x56E0;&#x70BA;&#x5DE5;&#x4F5C;&#x7684;&#x95DC;&#x4FC2;&#x9700;&#x8981;&#x642C;&#x9077;&#x81F3;&#x65B0;&#x7684;&#x57CE;&#x5E02;&#x3002;&#x5982;&#x679C;&#x624B;&#x4E0A;&#x6709;&#x82F1;&#x570B;&#x99D5;&#x7167;&#x7684;&#x4EBA;&#xFF0C;&#x8A18;&#x5F97;&#x5728;&#x642C;&#x5B8C;&#x5BB6;&#x5F8C;&#xFF0C;&#x5411;DVLA&#x7533;&#x8ACB;&#x8B8A;&#x66F4;&#x5C45;&#x4F4F;&#x5730;&#x5740;&#x3002;&#x5982;&#x679C;&#x4E0D;&#x4E3B;&#x52D5;&#x544A;&#x77E5;DVLA&#x66F4;&#x63DB;&#x5730;&#x5740;&#xFF0C;&#x6700;&#x9AD8;&#x53EF;&#x80FD;&#x6703;&#x88AB;&#x7F70;&#x6B3E;&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/@wucean/%E5%A6%82%E4%BD%95%E8%AE%8A%E6%9B%B4%E8%8B%B1%E5%9C%8B%E9%A7%95%E7%85%A7%E4%B8%8A%E7%9A%84%E5%B1%85%E4%BD%8F%E5%9C%B0%E5%9D%80-e78926c7ffa4?source=rss-d18a27d8a5c------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@wucean/%E5%A6%82%E4%BD%95%E8%AE%8A%E6%9B%B4%E8%8B%B1%E5%9C%8B%E9%A7%95%E7%85%A7%E4%B8%8A%E7%9A%84%E5%B1%85%E4%BD%8F%E5%9C%B0%E5%9D%80-e78926c7ffa4?source=rss-d18a27d8a5c------2</link>
            <guid isPermaLink="false">https://medium.com/p/e78926c7ffa4</guid>
            <category><![CDATA[driving-license]]></category>
            <category><![CDATA[dvla]]></category>
            <category><![CDATA[change-address-online]]></category>
            <category><![CDATA[d1-form]]></category>
            <dc:creator><![CDATA[ukyen]]></dc:creator>
            <pubDate>Thu, 24 Aug 2023 10:01:01 GMT</pubDate>
            <atom:updated>2023-08-24T10:01:01.668Z</atom:updated>
        </item>
    </channel>
</rss>