<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://engineering.cmevietnam.org.vn/feed.xml" rel="self" type="application/atom+xml" /><link href="https://engineering.cmevietnam.org.vn/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-09-19T13:10:46+07:00</updated><id>https://engineering.cmevietnam.org.vn/feed.xml</id><title type="html">CME Vietnam Engineering</title><subtitle>How the CME Vietnam team designs, builds and runs its continuing medical education platform.</subtitle><entry><title type="html">Welcome to CME Vietnam Engineering</title><link href="https://engineering.cmevietnam.org.vn/2026/09/welcome-to-cme-vietnam-engineering/" rel="alternate" type="text/html" title="Welcome to CME Vietnam Engineering" /><published>2026-09-19T00:00:00+07:00</published><updated>2026-09-19T00:00:00+07:00</updated><id>https://engineering.cmevietnam.org.vn/2026/09/welcome-to-cme-vietnam-engineering</id><content type="html" xml:base="https://engineering.cmevietnam.org.vn/2026/09/welcome-to-cme-vietnam-engineering/"><![CDATA[<p>This is the engineering blog of <a href="https://www.cmevietnam.org.vn/">CME Vietnam</a>. The
team behind the platform will use it to share how we design, build and run it —
the decisions that worked, the ones that did not, and what we learned along the way.</p>

<h2 id="what-we-plan-to-write-about">What We Plan to Write About</h2>

<ul>
  <li><strong>Architecture.</strong> Why a system is shaped the way it is, and the trade-offs we
accepted to get there.</li>
  <li><strong>Operations.</strong> Deployments, databases, monitoring, and honest write-ups of
incidents.</li>
  <li><strong>Tooling.</strong> The scripts, checks and workflows that keep the team moving.</li>
</ul>

<h2 id="how-this-blog-works">How This Blog Works</h2>

<p>Every post is a Markdown file in a Git repository. <a href="https://jekyllrb.com/">Jekyll</a>
turns the files into a static site, GitHub Actions builds it and checks every
internal link, and <a href="https://pages.github.com/">GitHub Pages</a> serves the result.</p>

<p>Writing a post means adding one file to <code class="language-plaintext highlighter-rouge">_posts/</code>, named after its publish date
and slug, for example <code class="language-plaintext highlighter-rouge">2026-10-01-how-we-run-database-migrations.md</code>:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">title</span><span class="pi">:</span> <span class="s">How We Run Database Migrations</span>
<span class="na">description</span><span class="pi">:</span> <span class="s">One sentence shown on the home page and in link previews.</span>
<span class="na">author</span><span class="pi">:</span> <span class="s">hieuvo</span>
<span class="na">tags</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">postgresql</span><span class="pi">,</span> <span class="nv">operations</span><span class="pi">]</span>
<span class="nn">---</span>
<span class="s">The post itself, in Markdown.</span>
</code></pre></div></div>

<p>Opening a pull request builds the site and runs the link check. Merging it
publishes the post as soon as the deploy finishes.</p>

<p>If there is something you would like us to write about, let us know on
<a href="https://github.com/cmevietnam">GitHub</a>.</p>]]></content><author><name>Hieu Vo</name></author><category term="announcements" /><category term="jekyll" /><summary type="html"><![CDATA[Why we are starting an engineering blog, what we plan to write about, and how the blog itself is built.]]></summary></entry></feed>