<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Liyona Johny | Blog</title><description>Practical guides on API design, security, performance, testing, and client work, from a full-stack engineer.</description><link>https://liyonajohny.com</link><language>en-us</language><item><title>The PyTest fixtures worth writing on day one</title><link>https://liyonajohny.com/blog/pytest-fixtures-worth-writing</link><guid isPermaLink="true">https://liyonajohny.com/blog/pytest-fixtures-worth-writing</guid><description>Four fixtures that make an API test suite fast, isolated, and pleasant to add to, with the database rollback pattern in full.</description><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate><category>Testing</category><category>PyTest</category><category>FastAPI</category><category>Python</category><author>Liyona Johny</author></item><item><title>Single sign-on between a custom app and a WordPress LMS</title><link>https://liyonajohny.com/blog/single-sign-on-into-wordpress-lms</link><guid isPermaLink="true">https://liyonajohny.com/blog/single-sign-on-into-wordpress-lms</guid><description>How to let one login carry a user into LearnDash without making WordPress the source of truth, and the mistakes to avoid on the way.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><category>Single sign-on</category><category>WordPress</category><category>Security</category><category>FastAPI</category><author>Liyona Johny</author></item><item><title>Designing a REST API other people can actually use</title><link>https://liyonajohny.com/blog/rest-api-people-can-use</link><guid isPermaLink="true">https://liyonajohny.com/blog/rest-api-people-can-use</guid><description>Naming, status codes, errors, pagination, and versioning decisions that save your consumers from guessing.</description><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate><category>API design</category><category>FastAPI</category><category>OpenAPI</category><author>Liyona Johny</author></item><item><title>Turning a vague client conversation into a data model</title><link>https://liyonajohny.com/blog/vague-conversation-to-data-model</link><guid isPermaLink="true">https://liyonajohny.com/blog/vague-conversation-to-data-model</guid><description>The questions I ask before writing any code, and why the schema is the decision that costs the most to get wrong.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate><category>Practice</category><category>Data modelling</category><category>Client work</category><author>Liyona Johny</author></item><item><title>How to speed up a slow SQL query, in order</title><link>https://liyonajohny.com/blog/speeding-up-a-slow-sql-query</link><guid isPermaLink="true">https://liyonajohny.com/blog/speeding-up-a-slow-sql-query</guid><description>A repeatable checklist for query tuning that starts with measurement and ends with the changes most people try first.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><category>SQL</category><category>PostgreSQL</category><category>Performance</category><category>Databases</category><author>Liyona Johny</author></item><item><title>How I review AI-written code before it goes near main</title><link>https://liyonajohny.com/blog/reviewing-ai-written-code</link><guid isPermaLink="true">https://liyonajohny.com/blog/reviewing-ai-written-code</guid><description>A working checklist for using AI coding tools without lowering your standards, from someone who uses them every day.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><category>AI tooling</category><category>Code review</category><category>Practice</category><author>Liyona Johny</author></item><item><title>A Core Web Vitals checklist that actually moves the numbers</title><link>https://liyonajohny.com/blog/core-web-vitals-checklist</link><guid isPermaLink="true">https://liyonajohny.com/blog/core-web-vitals-checklist</guid><description>The handful of changes that produce most of the improvement on a content site, in the order worth doing them.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate><category>Performance</category><category>Core Web Vitals</category><category>SEO</category><category>Astro</category><author>Liyona Johny</author></item><item><title>JWT and role-based access in FastAPI and React</title><link>https://liyonajohny.com/blog/jwt-and-rbac-across-api-and-ui</link><guid isPermaLink="true">https://liyonajohny.com/blog/jwt-and-rbac-across-api-and-ui</guid><description>Where to enforce permissions, what the UI is actually for, and the token-handling decisions that are easy to get wrong.</description><pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate><category>Security</category><category>FastAPI</category><category>React.js</category><category>JWT</category><author>Liyona Johny</author></item><item><title>Validate API input before it reaches your database</title><link>https://liyonajohny.com/blog/validate-api-input-with-pydantic</link><guid isPermaLink="true">https://liyonajohny.com/blog/validate-api-input-with-pydantic</guid><description>A practical pattern for Pydantic models at the API boundary, and why coercing bad data is worse than rejecting it.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate><category>FastAPI</category><category>Python</category><category>Pydantic</category><category>API design</category><author>Liyona Johny</author></item></channel></rss>