<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>API Testing | Joseph Wathika — Backend Engineer</title>
    <link>https://wathika.is-a.dev/tags/api-testing/</link>
      <atom:link href="https://wathika.is-a.dev/tags/api-testing/index.xml" rel="self" type="application/rss+xml" />
    <description>API Testing</description>
    <generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sun, 07 Jun 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://wathika.is-a.dev/media/icon_hu_982c5d63a71b2961.png</url>
      <title>API Testing</title>
      <link>https://wathika.is-a.dev/tags/api-testing/</link>
    </image>
    
    <item>
      <title>Health Information System</title>
      <link>https://wathika.is-a.dev/projects/health-information-system/</link>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://wathika.is-a.dev/projects/health-information-system/</guid>
      <description>&lt;h2 id=&#34;the-problem&#34;&gt;The problem&lt;/h2&gt;
&lt;p&gt;Health operations involve connected workflows for patient enrollment, programs, clinical users, reporting, and protected access. The backend needs to keep those concerns understandable as the system grows.&lt;/p&gt;
&lt;h2 id=&#34;what-i-built&#34;&gt;What I built&lt;/h2&gt;
&lt;p&gt;I built a Go backend backed by PostgreSQL and paired it with a Vue 3 and TypeScript frontend. The repository separates handlers, services, repositories, middleware, models, and routes so business rules and infrastructure concerns remain reviewable.&lt;/p&gt;
&lt;p&gt;The public code includes JWT middleware, patient and program routes, database migrations and seed data, Swagger/OpenAPI specifications, Postman test evidence, repository and route tests, Docker support, a Makefile, and CI configuration.&lt;/p&gt;
&lt;h2 id=&#34;engineering-decisions&#34;&gt;Engineering decisions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Layered backend boundaries&lt;/strong&gt; keep HTTP handling, business logic, and database access from collapsing into one place.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL modelling and migrations&lt;/strong&gt; make the data structure explicit and repeatable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JWT authentication and validation&lt;/strong&gt; protect workflows at the API boundary.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tests and API specifications&lt;/strong&gt; give other developers ways to verify behavior without reading every implementation detail.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker and CI tooling&lt;/strong&gt; make the project easier to run and evaluate consistently.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;what-this-demonstrates&#34;&gt;What this demonstrates&lt;/h2&gt;
&lt;p&gt;Go service design, relational data modelling, API documentation, authentication, testable architecture, frontend integration, and deployment-minded delivery.&lt;/p&gt;



  
  &lt;blockquote class=&#34;border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6&#34;&gt;
    &lt;p&gt;Scope note: This is a portfolio system, not a claim of clinical production certification. The live frontend and public repository are provided for technical evaluation.&lt;/p&gt;
  &lt;/blockquote&gt;

</description>
    </item>
    
  </channel>
</rss>
