<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Engineering - Category - Simi Studio</title>
        <link>/en/categories/engineering/</link>
        <description>Engineering - Category - Simi Studio</description>
        <generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>simi@simi.studio (Simi)</managingEditor>
            <webMaster>simi@simi.studio (Simi)</webMaster><lastBuildDate>Mon, 30 Mar 2026 10:00:00 &#43;0800</lastBuildDate><atom:link href="/en/categories/engineering/" rel="self" type="application/rss+xml" /><item>
    <title>Hono Best Practices</title>
    <link>/en/posts/hono-best-practices/</link>
    <pubDate>Mon, 30 Mar 2026 10:00:00 &#43;0800</pubDate>
    <author>simi@simi.studio (Simi)</author>
    <guid>/en/posts/hono-best-practices/</guid>
    <description><![CDATA[<p><a href="https://hono.dev/docs/" target="_blank" rel="noopener noreffer ">Hono</a> is a small, simple, and ultrafast web framework built on Web Standards. It works on any JavaScript runtime.</p>]]></description>
</item>
<item>
    <title>Docker Best Practices</title>
    <link>/en/posts/docker-best-practices/</link>
    <pubDate>Sat, 28 Mar 2026 10:00:00 &#43;0800</pubDate>
    <author>simi@simi.studio (Simi)</author>
    <guid>/en/posts/docker-best-practices/</guid>
    <description><![CDATA[<p>Current version is <a href="https://docs.docker.com/engine/release-notes/29/" target="_blank" rel="noopener noreffer ">Docker 29.4</a>. Docker Desktop is the recommended approach for macOS.</p>]]></description>
</item>
<item>
    <title>Docker Compose Best Practices</title>
    <link>/en/posts/docker-compose-best-practices-v2/</link>
    <pubDate>Sat, 28 Mar 2026 10:00:00 &#43;0800</pubDate>
    <author>simi@simi.studio (Simi)</author>
    <guid>/en/posts/docker-compose-best-practices-v2/</guid>
    <description><![CDATA[<p><a href="https://docs.docker.com/compose/" target="_blank" rel="noopener noreffer ">Docker Compose</a> does one thing well: it describes a multi-container environment and lets a laptop, a CI runner, and another machine start the same stack.</p>]]></description>
</item>
<item>
    <title>Redis Best Practices</title>
    <link>/en/posts/redis-best-practices/</link>
    <pubDate>Sat, 28 Mar 2026 10:00:00 &#43;0800</pubDate>
    <author>simi@simi.studio (Simi)</author>
    <guid>/en/posts/redis-best-practices/</guid>
    <description><![CDATA[<p>Current version is <a href="https://redis.io/docs/" target="_blank" rel="noopener noreffer ">Redis</a> 8.6.2.</p>]]></description>
</item>
<item>
    <title>PostgreSQL Best Practices</title>
    <link>/en/posts/postgresql-best-practices/</link>
    <pubDate>Thu, 05 Mar 2026 10:00:00 &#43;0800</pubDate>
    <author>simi@simi.studio (Simi)</author>
    <guid>/en/posts/postgresql-best-practices/</guid>
    <description><![CDATA[<p>Current version is <a href="https://www.postgresql.org/docs/" target="_blank" rel="noopener noreffer ">PostgreSQL</a> 18.3. Queries, indexes, partitions, and JSONB belong in the official docs. Install commands are just the door.</p>]]></description>
</item>
<item>
    <title>Flask Best Practices</title>
    <link>/en/posts/flask-best-practices/</link>
    <pubDate>Wed, 25 Feb 2026 10:00:00 &#43;0800</pubDate>
    <author>simi@simi.studio (Simi)</author>
    <guid>/en/posts/flask-best-practices/</guid>
    <description><![CDATA[<p><a href="https://flask.palletsprojects.com/" target="_blank" rel="noopener noreffer ">Flask</a> 3.1.x remains one of the best choices for teams that want Python’s ergonomics without surrendering architectural control. Its minimal core is a strength, not a shortcut: the boundaries, dependencies, and operational model are chosen instead of inheriting a large framework’s opinions.</p>
<p>That flexibility also means poor habits scale badly. A Flask codebase can stay small, readable, and fast for years—or gradually turn into a pile of global state, implicit coupling, and fragile request handlers.</p>
<p>This note focuses on <strong>production-grade Flask 3.1.x practices</strong> for teams building maintainable services and web applications.</p>]]></description>
</item>
<item>
    <title>Redis 7 New Features</title>
    <link>/en/posts/redis-7-new-features/</link>
    <pubDate>Mon, 22 Dec 2025 09:38:00 &#43;0800</pubDate>
    <author>simi@simi.studio (Simi)</author>
    <guid>/en/posts/redis-7-new-features/</guid>
    <description><![CDATA[<blockquote>
<p><strong>Note</strong>: <a href="https://redis.io/blog/redis-8-0-ga/" target="_blank" rel="noopener noreffer ">Redis 8.0</a> reached GA in 2025, adding native vector search and more. Redis 7 features only; Redis 8 upgrade is a separate topic.</p>
</blockquote>
<p><a href="https://redis.io/docs/" target="_blank" rel="noopener noreffer ">Redis</a> 7 is more than a version bump—it unifies search, JSON support, and graph databases into one coherent platform. Key changes and when to use what follow.</p>]]></description>
</item>
<item>
    <title>PostgreSQL Performance Optimization</title>
    <link>/en/posts/postgresql-performance-optimization/</link>
    <pubDate>Sat, 20 Dec 2025 21:13:00 &#43;0800</pubDate>
    <author>simi@simi.studio (Simi)</author>
    <guid>/en/posts/postgresql-performance-optimization/</guid>
    <description><![CDATA[<p>Slow SQL shows up in the plan first, not in <code>postgresql.conf</code>. Follow <a href="https://www.postgresql.org/docs/current/using-explain.html" target="_blank" rel="noopener noreffer ">PostgreSQL</a>: run <code>EXPLAIN (ANALYZE, BUFFERS)</code>, see Seq Scan versus Index Scan, then choose an index, a rewrite, or a knob.</p>
<p>Missing indexes, a function wrapped around a column, stale statistics, autovacuum falling behind, cost constants left on the spinning-disk default — any of those send the same query through a full table. Read the plan before editing config.</p>]]></description>
</item>
<item>
    <title>Prometheus &#43; Grafana Monitoring: Making LLM Services Visible</title>
    <link>/en/posts/prometheus-grafana-monitoring/</link>
    <pubDate>Fri, 19 Dec 2025 20:21:00 &#43;0800</pubDate>
    <author>simi@simi.studio (Simi)</author>
    <guid>/en/posts/prometheus-grafana-monitoring/</guid>
    <description><![CDATA[<p>An LLM process that &ldquo;looks fine&rdquo; on CPU is often already serving a worse model, a slower first token, or a truncated completion. <a href="https://prometheus.io/docs/" target="_blank" rel="noopener noreffer ">Prometheus</a> + <a href="https://grafana.com/docs/" target="_blank" rel="noopener noreffer ">Grafana</a> will show requests; a default node dashboard will not show tokens, TTFT, or a <code>model</code> label exploding cardinality.</p>
<p>The path is scrape → query → rules → panels. Every <code>llm_*</code> name below is an <strong>example metric name</strong>, not a standard export from Prometheus or from any particular gateway. Match <code>/metrics</code> before copying queries.</p>]]></description>
</item>
<item>
    <title>Python Best Practices</title>
    <link>/en/posts/python-best-practices/</link>
    <pubDate>Wed, 15 Oct 2025 10:00:00 &#43;0800</pubDate>
    <author>simi@simi.studio (Simi)</author>
    <guid>/en/posts/python-best-practices/</guid>
    <description><![CDATA[<p>Production <a href="https://docs.python.org/3/" target="_blank" rel="noopener noreffer ">Python</a> locks the interpreter and <code>pyproject.toml</code> before talking about asyncio or speed. Types, tests, and a lockfile are the default, not extras. No “faster” or “production-grade” without a measured comparison.</p>]]></description>
</item>
</channel>
</rss>
