<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ndifreke Ekott</title>
    <link>https://ndifreke-ekott.com/</link>
    <description>Recent content on Ndifreke Ekott</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 12 May 2026 10:03:00 +0100</lastBuildDate>
    <atom:link href="https://ndifreke-ekott.com/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>After the Build</title>
      <link>https://ndifreke-ekott.com/posts/2026-05-12_after-the-build/</link>
      <pubDate>Tue, 12 May 2026 10:03:00 +0100</pubDate>
      <guid>https://ndifreke-ekott.com/posts/2026-05-12_after-the-build/</guid>
      <description>&lt;p&gt;Your timeline is probably filled with posts about Agentic development — adopting new workflows, getting agents to build software in as few prompts as possible, one-shot dreams and all that. There are even experiments looking to completely replace company workforces with fully autonomous, self-sufficient agentic systems that can go from product idea to marketing and everything in between. But for most of us, that&amp;rsquo;s not where we are. So this one&amp;rsquo;s for the normies.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cairn: An Idea, an Agent, and a Working App in Days</title>
      <link>https://ndifreke-ekott.com/posts/2026-03-29_cairn-an-idea-an-agent-and-a-working-app-in-days/</link>
      <pubDate>Sun, 29 Mar 2026 16:41:00 +0100</pubDate>
      <guid>https://ndifreke-ekott.com/posts/2026-03-29_cairn-an-idea-an-agent-and-a-working-app-in-days/</guid>
      <description>&lt;h2 id=&#34;my-2015-macbook-finally-gave-up&#34;&gt;My 2015 MacBook Finally Gave Up&lt;/h2&gt;&#xA;&lt;p&gt;I got a lot of mileage out of my 2015 MacBook Pro. For years it just worked — until it didn&amp;rsquo;t. Apple stopped shipping updates for it. The hardware, which was already at its ceiling running a heavy JetBrains IDE alongside a handful of Docker containers, started to buckle. It wasn&amp;rsquo;t a sudden death; it was a slow decline that I kept patching around until I couldn&amp;rsquo;t anymore.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The most desired and praised men are mostly those devoid of responsibilities</title>
      <link>https://ndifreke-ekott.com/posts/2026-03-07_the-most-desired-and-praised-men-are-mostly-those-devoid-of-responsibilities/</link>
      <pubDate>Sat, 07 Mar 2026 12:18:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/2026-03-07_the-most-desired-and-praised-men-are-mostly-those-devoid-of-responsibilities/</guid>
      <description>&lt;h1 id=&#34;the-most-desired-and-praised-men-are-mostly-those-devoid-of-responsibilities&#34;&gt;The most desired and praised men are mostly those devoid of responsibilities&lt;/h1&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/image/upload/v1772886563/Copilot_20260307_122835_anvw9o.png&#34; alt=&#34;Samurai&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Today being a Saturday, the 7th of March 2026 — the Year of the Fire Horse — has been a week of roller coasters. Emotions, experiences, the lot. After serving the kids breakfast, I stepped out for a walk around the estate, classic music in my ears, no plan in mind. Just movement. And as I walked, one thought kept circling back: &lt;em&gt;the most desired and praised men are those devoid of responsibilities.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Youtube Video Bookmarks </title>
      <link>https://ndifreke-ekott.com/bookmarks/youtube-video-bookmarks/</link>
      <pubDate>Fri, 06 Mar 2026 02:38:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/bookmarks/youtube-video-bookmarks/</guid>
      <description>&lt;h1 id=&#34;tech--programming&#34;&gt;Tech / Programming&lt;/h1&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;NetworkChuck&lt;/strong&gt;: &lt;a href=&#34;https://www.youtube.com/watch?v=nTqu6w2wc68&#34;&gt;You need to learn tmux RIGHT NOW!!&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;JcodeMunch - MC Server &lt;a href=&#34;https://youtu.be/vzCy44o3JwA?si=31nQVYYFeVPHrljF&#34;&gt;https://youtu.be/vzCy44o3JwA?si=31nQVYYFeVPHrljF&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Why Vibe Code a Clone When You Can Just Pay $10?</title>
      <link>https://ndifreke-ekott.com/posts/2026-02-17_why-vibe-code-a-clone-when-you-can-just-pay-10/</link>
      <pubDate>Tue, 17 Feb 2026 20:40:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/2026-02-17_why-vibe-code-a-clone-when-you-can-just-pay-10/</guid>
      <description>&lt;h1 id=&#34;i-can-build-that-with-ai-trap&#34;&gt;I Can Build That With AI Trap&lt;/h1&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;With Great Power Comes Great Responsibility.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The first time I saw that quote was the first time I opened a terminal on Linux. As a kid, I&amp;rsquo;d always admired Hollywood&amp;rsquo;s depiction of hackers — the rapid-fire typing, the dramatic countdown, the triumphant shout when they finally brought down the evil corporation. That first encounter with a terminal gave me a sense of purpose. I had an opportunity to learn, to grow, and to take my place among the programmers I admired. Since then, my interest in technology has taken me through different programming languages, databases, servers, and industries.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reflection - Whenever purpose is unknown, there is bound to be abuse</title>
      <link>https://ndifreke-ekott.com/posts/2026-02-16_reflection-whenever-purpose-is-unknown-there-is-bound-to-be-abuse/</link>
      <pubDate>Mon, 16 Feb 2026 13:53:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/2026-02-16_reflection-whenever-purpose-is-unknown-there-is-bound-to-be-abuse/</guid>
      <description>&lt;p&gt;Whenever purpose is unknown, there is bound to be abuse. Not always out of malice—often simply out of misdirection. When we don’t understand why something exists, we improvise uses that feel convenient in the moment, even if they slowly erode its value. The same is true of our time, our gifts, our relationships, and even our challenges.&lt;br&gt;&#xA;&lt;br&gt;&#xA;Purpose acts like a compass: quiet, steady, and often inconvenient, but it keeps us from drifting into places we never intended to go. Without it, we fill the void with noise, urgency, or other people’s expectations. With it, we move with clarity, restraint, and intention.&lt;br&gt;&#xA;&lt;br&gt;&#xA;So the real work is not in doing more, but in understanding why.Once purpose becomes clear, alignment follows, and what once felt heavy or confusing begins to make sense. Purpose doesn’t remove difficulty, but it gives difficulty meaning—and meaning changes everything.&lt;/p&gt;</description>
    </item>
    <item>
      <title>From AI-Assisted Coding to Agent-Driven Development - This Is The Way</title>
      <link>https://ndifreke-ekott.com/posts/2026-02-11_my-journey-beyond-ai-assisted-coding-towards-agentic-software-development-this-is-the-way/</link>
      <pubDate>Wed, 11 Feb 2026 11:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/2026-02-11_my-journey-beyond-ai-assisted-coding-towards-agentic-software-development-this-is-the-way/</guid>
      <description>&lt;p&gt;If you are like me, you are tired of seeing &amp;ldquo;AI&amp;rdquo; and &amp;ldquo;Agent&amp;rdquo; plastered across every corner of the internet. My LinkedIn and YouTube feeds are drowning in it. Yet here I am, writing about how I went from skeptic to convert after adopting an agent-driven software development workflow.&lt;/p&gt;&#xA;&lt;p&gt;I am not one to jump on hype trains. I tend to stand back when everyone rushes towards the next shiny thing. That means I sometimes miss the initial gold rush, but I look for lasting value before committing. So while the crowd kept shouting &amp;ldquo;Agents! Agents!&amp;rdquo;, I was asking a different question: &lt;strong&gt;What tangible thing have you actually built with agents?&lt;/strong&gt; And while I watched from the sidelines, I noticed something - the people doing genuinely impressive work with agents weren&amp;rsquo;t the ones shouting about it on social media.&lt;/p&gt;</description>
    </item>
    <item>
      <title>From SQLite to PostgreSQL: Lessons From a Greenfield Project</title>
      <link>https://ndifreke-ekott.com/posts/2025-11-16_think-more-about-your-data-store/</link>
      <pubDate>Wed, 04 Feb 2026 10:59:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/2025-11-16_think-more-about-your-data-store/</guid>
      <description>&lt;p&gt;When starting a new greenfield project, choosing the right technology stack is one of the most consequential decisions you make. Cost, operational overhead, performance, and long‑term maintainability all play a role.&lt;/p&gt;&#xA;&lt;p&gt;For my latest project, I initially embraced the idea of using &lt;strong&gt;SQLite as the primary database&lt;/strong&gt;. The appeal was obvious: zero‑cost hosting, portability, simplicity, and the growing “local‑first” movement that champions SQLite in production.&lt;/p&gt;&#xA;&lt;p&gt;But as the project matured, I ran into practical limitations that ultimately pushed me toward &lt;strong&gt;PostgreSQL&lt;/strong&gt;—while still keeping SQLite in the stack for caching.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Managing compute, not machines — the Kubernetes mindset.</title>
      <link>https://ndifreke-ekott.com/posts/i_finally_get_the_idea_of_kubernetes/</link>
      <pubDate>Fri, 21 Nov 2025 22:21:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/i_finally_get_the_idea_of_kubernetes/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/image/upload/v1763764714/Copilot_20251121_223727_m6xvn0.png&#34; alt=&#34;Managing compute, not machines — the Kubernetes mindset.&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;One of the best aspects of Software Engineering is that something new is always emerging. It’s never a dull space. Depending on your perspective, this can be exciting or overwhelming. Every few years, you may be forced to re‑evaluate your career trajectory.&lt;/p&gt;&#xA;&lt;p&gt;Back in my early years, deploying software to a server felt like the pinnacle of achievement. We daydreamed about different servers and processors. I remember reading &lt;em&gt;Oracle Magazine&lt;/em&gt; and learning about Sun’s servers and the Solaris operating system.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Incremental Engineer: My Workflow for Building With AI</title>
      <link>https://ndifreke-ekott.com/posts/the-incremental-engineer-my-workflow-for-building-with-ai/</link>
      <pubDate>Wed, 09 Jul 2025 11:01:25 +0100</pubDate>
      <guid>https://ndifreke-ekott.com/posts/the-incremental-engineer-my-workflow-for-building-with-ai/</guid>
      <description>&lt;h1 id=&#34;the-incremental-engineer-my-workflow-for-building-with-ai&#34;&gt;The Incremental Engineer: My Workflow for Building with AI&lt;/h1&gt;&#xA;&lt;p&gt;You have probably read enough posts on AI, and I am putting yet another one before you. I promise I don&amp;rsquo;t intend to sell you a product or a course or tell you how I went from $0 to $80 million in six months. This is a post sharing my insights as I spend more time building with AI.&lt;/p&gt;&#xA;&lt;p&gt;My first AI &lt;a href=&#34;https://ndifreke-ekott.com/posts/lovable-plus-jetbrains-junie-a-love-story/&#34;&gt;post&lt;/a&gt; talked about my experience building a web application with the help of AI and why I find the experience fascinating. This post in a continuation somewhat but more of sharing new insights and thoughts as I keep building.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Hidden Price of Success</title>
      <link>https://ndifreke-ekott.com/posts/the-hidden-price-of-success/</link>
      <pubDate>Sun, 08 Jun 2025 14:45:31 +0100</pubDate>
      <guid>https://ndifreke-ekott.com/posts/the-hidden-price-of-success/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/image/upload/v1749390863/Copilot_20250608_145225_askdlm.png&#34; alt=&#34;man climbling stairs to success&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It is easy to celebrate the rewards and accolades that come with success. Difficult to get cheers for the toil that led to success. It is difficult to make friends during the toiling phase of success. Friends appear when the toil is over.&lt;/p&gt;&#xA;&lt;p&gt;I was listening to a podcast interviewing a Software Engineer who has worked on a remarkable project and he told his origin story. The pivot point was when he realized to achieve a certain goal, he had to wake up earlier than anyone in his home just to carve out time to focus his mind and energy before the rest of the house awoke.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lovable Plus Jetbrains Junie - A Love Story</title>
      <link>https://ndifreke-ekott.com/posts/lovable-plus-jetbrains-junie-a-love-story/</link>
      <pubDate>Mon, 02 Jun 2025 12:28:41 +0100</pubDate>
      <guid>https://ndifreke-ekott.com/posts/lovable-plus-jetbrains-junie-a-love-story/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/image/upload/v1748864285/Copilot_20250602_123749_qbmajm.png&#34; alt=&#34;Banner&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It is nearly impossible to look around anywhere on the internet without seeing a mention of AI. I must admit, when the craze for Large Language Model reached   its peak last year, I was skeptical, then I am mostly skeptical of anything that makes the rounds on social media platforms. We know in our tech space, there is a tendency to always jump onto the next hype.&lt;/p&gt;&#xA;&lt;p&gt;When you know people who wouldn’t spend a minute keying in data into an Excel spreadsheet or can barely type “Facebook.com” into the address bar but have to Google search Facebook in order to visit Facebook, suddently start talking about effortlessly building software applications. It seems to good to be true.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enforcing JSON Schema in Django JSONField</title>
      <link>https://ndifreke-ekott.com/posts/enforcing-json-schema-in-django-jsonfields/</link>
      <pubDate>Tue, 18 Mar 2025 09:06:57 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/enforcing-json-schema-in-django-jsonfields/</guid>
      <description>&lt;p&gt;I think one of the best innovations in the Relational database space is the introduction of the JSON datatype. Before the introduction of JSON columns, we had to turn to NoSQL solutions like MongoDB to store document structured data. So you end up with managing two databases. And since we build a lot of Rest APIs and our response data is standardised around JSON, it is highly beneficial to have a single database that supports multiple data representations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Whatever Your Hands Finds to Do ...</title>
      <link>https://ndifreke-ekott.com/posts/whatever-your-hands-finds-to-do/</link>
      <pubDate>Mon, 17 Feb 2025 10:06:01 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/whatever-your-hands-finds-to-do/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/image/upload/w_1000,ar_16:9,c_fill,g_auto,e_sharpen/v1739786579/farmers_s9wgp4.jpg&#34; alt=&#34;farmers.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Growing up in Nigeria, a place where you are responsible for your own success as there are very few government assistance offered to you. As a kid, the phrase or saying was repeated as many times as possible both at home and at church. The saying “Whatever your hands finds to do, do it well.” is only a portion of a biblical passage from the book of &lt;strong&gt;Ecclesiastes 9: 10.&lt;/strong&gt; The exact passage states:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How I finally Came Around To Adopting And Pair Programming With Generative AI</title>
      <link>https://ndifreke-ekott.com/posts/how-i-came-around-to-adopting-and-pairing-with-genai/</link>
      <pubDate>Wed, 05 Feb 2025 01:08:10 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/how-i-came-around-to-adopting-and-pairing-with-genai/</guid>
      <description>&lt;p&gt;It is very difficult to turn on the news or read anything on the news or internet today without seeing the phrases “ChatGPT”, “Generative AI”, “Open AI” crop up. We have businesses so hyped up about adopting AI and hoping for ways AI could replace Software Engineers and take over the coding tasks.&lt;/p&gt;&#xA;&lt;p&gt;I am generally slow to jump on any hype or bandwagon. I tend to take my time, observe and see what interesting thing people are doing before venturing out myself. In the last two to three months, I have been using Generative AI as a coding companion, but I use it somewhat differently. Before I talk about how I use Generative AI as a coding companion, I will first highlight the different ways people use Generative AI or I have seen people use Generative AI.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to de-couple your business logic by writing a simple EventBus module</title>
      <link>https://ndifreke-ekott.com/posts/how-to-decouple-your-business-logic-using-eventbus/</link>
      <pubDate>Wed, 29 Jan 2025 18:35:27 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/how-to-decouple-your-business-logic-using-eventbus/</guid>
      <description>&lt;p&gt;One of the exciting moments in the life of a software application is evolution, the moment you have to add yet another feature. Adding a new business capability is a sign of more usage being expected from running software. However, depending on how long the software has been running, adding new capabilities can be challenging. In a code base that isn’t well thought out, the result is a lot of procedural calls or couple if then else statements.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding and Working With Sql/Json Language With Postgresql</title>
      <link>https://ndifreke-ekott.com/posts/understanding-and-working-with-sql-json-language-with-postgresql/</link>
      <pubDate>Thu, 22 Aug 2024 15:24:27 +0100</pubDate>
      <guid>https://ndifreke-ekott.com/posts/understanding-and-working-with-sql-json-language-with-postgresql/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/image/upload/v1724335728/_1d962af0-ec4a-44b1-9e39-fb8b620fd595_laf8pm.jpg&#34; alt=&#34;https://res.cloudinary.com/ndy40/image/upload/v1724335728/_1d962af0-ec4a-44b1-9e39-fb8b620fd595_laf8pm.jpg&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I must say, I have enjoyed my journey of understanding PostgreSQL offerings for JSON data type. I am also realising how much ORMs do for you; there can be pros to using one and cons simultaneously depending on your personality. There is however a sense of satisfaction in understanding how the database we depend on for business works.&lt;/p&gt;&#xA;&lt;p&gt;This may be the last part of my JSON datatype journey and to recap, here are the previous articles I wrote covering other aspects of JSON types:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding Operations on Json Data Types With Postgresql</title>
      <link>https://ndifreke-ekott.com/posts/understanding-operations-on-json-data-types-with-postgresql/</link>
      <pubDate>Wed, 07 Aug 2024 22:15:25 +0100</pubDate>
      <guid>https://ndifreke-ekott.com/posts/understanding-operations-on-json-data-types-with-postgresql/</guid>
      <description>&lt;p&gt;This is a follow-up article to an earlier published one titled &lt;a href=&#34;https://ndifreke-ekott.com/posts/understanding-and-working-with-json-data-types-with-postgresql/&#34;&gt;“**Understanding and Working with JSON Data Types with PostgreSQL”&lt;/a&gt;.**&lt;/p&gt;&#xA;&lt;p&gt;PostgreSQL provides some operators for working with &lt;code&gt;json&lt;/code&gt; and &lt;code&gt;jsonb&lt;/code&gt; data. The best way to review these operators is by memorising their use. There aren’t names but symbols so hold on tight, while I write down a couple I think you are more likely to use them right away.&lt;/p&gt;&#xA;&lt;h2 id=&#34;json-data-type-operations&#34;&gt;JSON Data Type Operations&lt;/h2&gt;&#xA;&lt;p&gt;A few of the operators apply to both &lt;code&gt;json&lt;/code&gt; and &lt;code&gt;json&lt;/code&gt; data types. I will place both syntaxes to indicate that an operator applies to both.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding and working with JSON data types with PostgreSQL</title>
      <link>https://ndifreke-ekott.com/posts/understanding-and-working-with-json-data-types-with-postgresql/</link>
      <pubDate>Sat, 03 Aug 2024 14:14:37 +0100</pubDate>
      <guid>https://ndifreke-ekott.com/posts/understanding-and-working-with-json-data-types-with-postgresql/</guid>
      <description>&lt;p&gt;There was a time when if you had to work with a lot of JSON structured data, you had to turn to building NoSQL databases like MongoDB purposefully. However, the relational database world has caught on and given us the option to work with relational and non-relational data within the same database engine.&lt;/p&gt;&#xA;&lt;p&gt;In my day-to-day work as a software engineer, I work with a lot of JSON-structured data. A couple of use cases for storing JSON data include:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Useful links</title>
      <link>https://ndifreke-ekott.com/bookmarks/random-links/</link>
      <pubDate>Tue, 23 Jul 2024 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/bookmarks/random-links/</guid>
      <description>&lt;h1 id=&#34;links&#34;&gt;Links&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://free-for.dev/#/&#34;&gt;Free To Dev&lt;/a&gt;&#xA;Developers and Open Source authors now have many services offering free tiers, but finding them all takes time to make informed decisions. This is a list of software (SaaS, PaaS, IaaS, etc.) and other offerings with free developer tiers.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://mergeboard.com/blog/6-multitenancy-fastapi-sqlalchemy-postgresql/&#34;&gt;Multitenancy in FastAPI and SQLALchemy&lt;/a&gt;&#xA;When building a web application where customers (your tenants) are mostly working with their own data, it is advisable to have a strong separation in how their data is stored and handled. One solution would be to spin up an instance of your software in a VM or docker container for each of your tenants. While this would give you a very strong separation, the solution has a few draw backs. It gets complicated if you actually want to share some data across tenants, you allocate resources for tenants even if they don’t use your app and managing hundreds of VMs or containers is not trivial. In this blog post I want to show you an alternative solution, how you can implement the data separation by using only one FastAPI backend without making your code complicated.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Contact Me</title>
      <link>https://ndifreke-ekott.com/contact/</link>
      <pubDate>Sat, 01 Jun 2024 16:46:48 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/contact/</guid>
      <description>&lt;p&gt;If you ever need to reach me be it for a chat or you think I may be a good fit for a role, collaboration or learning session, I can be reached via the following:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Schedule a 30 minutes call - &lt;a href=&#34;https://calendar.app.google/7V12V8thDyj82S7m8&#34;&gt;☎️ Google Calendar&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Social Media - &lt;a href=&#34;https://linkedin.com/in/cancelerx&#34;&gt;Linkedin&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;If you are recruiting, I much rather prefer an email introduction first before cold calling. Chances are, if I am not expecting a call, I won&amp;rsquo;t pick up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unlocking Pythons Hidden Powers Deep Dive Into Special Methods Part 2</title>
      <link>https://ndifreke-ekott.com/posts/unlocking-pythons-hidden-powers-deep-dive-into-special-methods-part-2/</link>
      <pubDate>Sun, 31 Mar 2024 21:49:46 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/unlocking-pythons-hidden-powers-deep-dive-into-special-methods-part-2/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/image/upload/f_auto,q_auto/v1/media/2024/03/x3hvgrmrp0zich4nds9h&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;https://ndifreke-ekott.com/posts/unlocking-pythons-hidden-powers-deep-dive-into-special-methods/&#34;&gt;part 1&lt;/a&gt;, I started by demonstrating a use case for the &lt;code&gt;__iter__()&lt;/code&gt; iterator special (magic) methods. I gave an example of how it can be used in a &lt;code&gt;StudentCollection&lt;/code&gt; class. I also highlighted the fact that adopting &lt;strong&gt;&lt;code&gt;__iter__&lt;/code&gt;&lt;/strong&gt; leads to more Pythonic code and better utilisation of Python&amp;rsquo;s language features.&lt;/p&gt;&#xA;&lt;p&gt;In part 2, I will be writing about the &lt;code&gt;iterator.__next__()&lt;/code&gt; special method, which usually gets combined with the &lt;code&gt;iterator.__iter__()&lt;/code&gt; method. As part of my reading and preparing to write this piece, I discovered there is a thing called &lt;strong&gt;&lt;a href=&#34;https://docs.python.org/3/library/stdtypes.html#iterator-types&#34;&gt;iterator protocol&lt;/a&gt;&lt;/strong&gt; in the Python docs, and a proper description of how to write iterators. I had looked at the code in part 1 and thought it worked, because without knowing I implemented the &lt;code&gt;container.__iter__()&lt;/code&gt; approach which is called Iterables.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unlocking Python’s Hidden Powers: A Deep Dive into Special Methods</title>
      <link>https://ndifreke-ekott.com/posts/unlocking-pythons-hidden-powers-deep-dive-into-special-methods/</link>
      <pubDate>Sat, 02 Mar 2024 22:23:53 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/unlocking-pythons-hidden-powers-deep-dive-into-special-methods/</guid>
      <description>&lt;p&gt;For someone who has come over to Python programming from other languages, Python special methods also referred to as dunder methods (example &lt;code&gt;__init__(self)&lt;/code&gt;), are fascinating but don&amp;rsquo;t come readily to the forefront of our code designs when working on a Python codebase.&lt;/p&gt;&#xA;&lt;p&gt;This is very true if you have spent a long time building software in traditional OOP languages like Java, C# and PHP, everything is typically designed around the four pillars of OOP principles - Abstraction, Encapsulation, Inheritance and Polymorphism. TLDR, design using a class and inherit from a superclass et al.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why You Should Contribute to an OSS Project in 2024</title>
      <link>https://ndifreke-ekott.com/posts/why-you-should-contribute-to-an-oss-project-in-2024/</link>
      <pubDate>Wed, 10 Jan 2024 09:29:22 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/why-you-should-contribute-to-an-oss-project-in-2024/</guid>
      <description>&lt;p&gt;It is a new year 2024; at the start of the year, we typically have a long list of New Year resolutions, from losing weight to planning future vacation destinations. However, in this post, I will be focusing on life as a Software Engineer and how the year 2024 can be a year you make wider contributions to the Software community.&lt;/p&gt;&#xA;&lt;p&gt;Open source projects heavily rely on community contributors to thrive and succeed. Without contributors, these projects would struggle to maintain and improve their codebases, as well as provide support to users. Here are some reasons why open source projects need contributors:&lt;/p&gt;</description>
    </item>
    <item>
      <title>DevOps Bookmarks</title>
      <link>https://ndifreke-ekott.com/bookmarks/understanding-devops-p90-p95-p99-latency-threshold/</link>
      <pubDate>Tue, 03 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/bookmarks/understanding-devops-p90-p95-p99-latency-threshold/</guid>
      <description>&lt;ol&gt;&#xA;&lt;li&gt;Mastering latency metrics - &lt;a href=&#34;https://www.linkedin.com/pulse/day-5-mastering-latency-metrics-understanding-p90-p95-nguyen-duc/&#34;&gt;https://www.linkedin.com/pulse/day-5-mastering-latency-metrics-understanding-p90-p95-nguyen-duc/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>A recap of my first API Days London on September 13 &amp; 14, 2023</title>
      <link>https://ndifreke-ekott.com/posts/recap-api-days-london-2023/</link>
      <pubDate>Wed, 27 Sep 2023 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/recap-api-days-london-2023/</guid>
      <description>&lt;p&gt;It has been ages since I attended any tech gathering from meetups to conferences. I think the last time I attended an in-person event was the year before the world shutdown (2020). So having the opportunity to attend one was an opportunity I was so happy to embrace.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;What is Apidays?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Apidays is a series of conferences that happens around the world with a focus on APIs and innovation around APIs. From their &lt;a href=&#34;https://www.linkedin.com/company/apidays-conferences/&#34;&gt;LinkedIn&lt;/a&gt; page:&lt;/p&gt;</description>
    </item>
    <item>
      <title>AWS Solutions Architect Associate Certification - A Retrospective Look</title>
      <link>https://ndifreke-ekott.com/posts/aws-solutions-architect-associate-certification-retro-look/</link>
      <pubDate>Sun, 18 Jun 2023 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/aws-solutions-architect-associate-certification-retro-look/</guid>
      <description>&lt;p&gt;So I finally got that AWS certification I have been dreaming of for a few years. On the 8th of June 2023, I obtained the &lt;a href=&#34;https://www.credly.com/badges/a8ba6782-b6ea-4b89-bcd4-ea8c145e1453/linked_in?t=rvzfo2&#34;&gt;AWS Solutions Architect Associate&lt;/a&gt; certification and a few days after, I am still recovering from the Exam preparation adrenaline.&lt;/p&gt;&#xA;&lt;p&gt;There are different perspectives on whether certifications are of any relevance in today’s tech environment. However, whether you are for, against or indifferent about certifications, it is known that having one does open up employment conversations, to say the least.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to mount USB Drive on a linux machine</title>
      <link>https://ndifreke-ekott.com/bookmarks/how-to-mount-usb-drive-on-a-linux-machine/</link>
      <pubDate>Wed, 29 Mar 2023 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/bookmarks/how-to-mount-usb-drive-on-a-linux-machine/</guid>
      <description>&lt;p&gt;Mount a USB drive on a linux machine - &lt;a href=&#34;https://www.pragmaticlinux.com/2021/03/manually-mount-a-usb-drive-in-the-linux-terminal/?utm_content=cmp-true&#34;&gt;Manually mount a USB drive in the Linux terminal - PragmaticLinux&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Auto mount drive - &lt;a href=&#34;https://www.linuxbabe.com/desktop-linux/how-to-automount-file-systems-on-linux#:~:text=How%20To%20Automount%20File%20Systems%20on%20Linux%201,command%2C%20...%203%20Step%203%3A%20Edit%20%2Fetc%2Ffstab%20File&#34;&gt;How To Automount File Systems on Linux - LinuxBabe&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.cyberciti.biz/faq/linux-finding-using-uuids-to-update-fstab/&#34;&gt;How To Use UUID To Mount Partitions/Volumes Under Linux - nixCraft (cyberciti.biz)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Format a drive - &lt;a href=&#34;https://phoenixnap.com/kb/linux-format-disk#:~:text=1%20How%20to%20Format%20Disk%20Partitions%20in%20Linux,the%20Disk%20Partition%20in%20Linux.%20Before%20using%20&#34;&gt;How to Format Disk Partitions in Linux {ext4, NTFS and FAT32} (phoenixnap.com)&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Growing up, #Adulting, is like working at the circus</title>
      <link>https://ndifreke-ekott.com/posts/growing-up-adulting-is-like-working-at-the-circus/</link>
      <pubDate>Sun, 04 Dec 2022 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/growing-up-adulting-is-like-working-at-the-circus/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/v1670170461/media/2022/12/yuriy-yosipiv-dJoJOgZQHAo-unsplash_fal69u.jpg&#34; alt=&#34;&#34; title=&#34;Life is a circus, and you are the entertainer&#34;&gt;&lt;strong&gt;Photo by&lt;/strong&gt; &lt;a href=&#34;https://unsplash.com/@kostyanchick?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText&#34;&gt;&lt;strong&gt;Yuriy Yosipiv&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;on&lt;/strong&gt; &lt;a href=&#34;https://unsplash.com/s/photos/clown-at-circus?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText&#34;&gt;&lt;strong&gt;Unsplash&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;When you are young and still living at your parent&amp;rsquo;s house, you had dreams of when you will become a grown-up, move out, have your own place and do WHATEVER you want. The dream is real to an extent except, no one warned you of the responsibilities that come with that level of freedom. In the end, you get to do whatever you want, but the constraints are no longer placed on you by your parents but now by life itself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Brain Dump Friday - It is mostly in your head</title>
      <link>https://ndifreke-ekott.com/posts/brain-dump-friday-it-is-mostly-in-your-head/</link>
      <pubDate>Thu, 22 Sep 2022 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/brain-dump-friday-it-is-mostly-in-your-head/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/v1652471005/media/2022/05/brain-dump-brain-dump-cXixBZSsNVm-mPYiwhOaHvK.1400x1400_aojapt.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Been a while since I published a &lt;strong&gt;Brain Dump Post&lt;/strong&gt; but today is just a good day for one. I have been having a lot of random thoughts on different subjects and interpretations of different situations in life and I thought I should distil that bite-sized excerpts.&lt;/p&gt;&#xA;&lt;h1 id=&#34;reacting-out-of-anger-breeds-foolishness-and-regrettable-decisions&#34;&gt;Reacting out of anger breeds foolishness and regrettable decisions&lt;/h1&gt;&#xA;&lt;p&gt;Where I live is still an active development site. So it is normal to have builders whizzing by to make it to the site and tactfully navigate around residential dwellers within the vicinity, today just got interesting.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Good Bye PHP. Embracing New Overlords Beyond</title>
      <link>https://ndifreke-ekott.com/posts/good-bye-php.embracing-new-overlords-beyond/</link>
      <pubDate>Tue, 30 Aug 2022 08:01:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/good-bye-php.embracing-new-overlords-beyond/</guid>
      <description>&lt;p&gt;I have been meaning to write this article and have gone over it in my head several times but today, I finally got to ink to paper (you know this is digital right? 😀).&lt;/p&gt;&#xA;&lt;p&gt;For the bulk of my career at least in the last seven to eight years, PHP, the web&amp;rsquo;s programming language, has featured predominantly in my CV. It paid the bills, I devoted time to honing my skills and keeping up with frameworks and new language features as the language grew.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New to tech and computers? How I would re-learn tech if I had to.</title>
      <link>https://ndifreke-ekott.com/posts/new-to-tech-and-computers-how-i-would-re-learn-tech-if-i-had-to/</link>
      <pubDate>Sun, 14 Aug 2022 16:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/new-to-tech-and-computers-how-i-would-re-learn-tech-if-i-had-to/</guid>
      <description>&lt;p&gt;I have in the last couple of weeks been interviewing with numerous companies. The last time I interviewed was in 2020 right before the world shut down due to the covid pandemic. Going back into the field of interviewing gave me an insight into what companies are looking for, and the number of skills and know-how that is expected. It goes beyond just technical prowess but also social. It isn&amp;rsquo;t enough to just code but to communicate and reflect on one&amp;rsquo;s self and decision approaches.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Brain Dump - May 13th Friday 2022</title>
      <link>https://ndifreke-ekott.com/posts/brain-dump-may-13th-friday-2022/</link>
      <pubDate>Thu, 12 May 2022 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/brain-dump-may-13th-friday-2022/</guid>
      <description>&lt;p&gt;It&amp;rsquo;snce I sat down to do some writing on this blog. Reasons? I can blame time, impatience and wondering if people still read blogs as they rather watch Tiktok or a more engaging Youtube show.&lt;/p&gt;&#xA;&lt;p&gt;Since I am unable to write a lengthy post for every thought that springs up in my head, I thought maybe I start writing a weekly brain dump of things that have crossed my mind. So here goes nothing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up SSL Certificate for Nginx on Digital Ocean </title>
      <link>https://ndifreke-ekott.com/bookmarks/setting-up-ssl-certificate-for-nginx-on-digital-ocean/</link>
      <pubDate>Mon, 07 Feb 2022 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/bookmarks/setting-up-ssl-certificate-for-nginx-on-digital-ocean/</guid>
      <description>&lt;p&gt;Many time after setting up a Digital Ocean box, you need to remember to setup Letsencrypt.&lt;/p&gt;&#xA;&lt;p&gt;Few links to help with that:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://letsencrypt.org/docs/challenge-types/&#34; title=&#34;https://letsencrypt.org/docs/challenge-types/&#34;&gt;https://letsencrypt.org/docs/challenge-types/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04&#34; title=&#34;https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04&#34;&gt;https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.digitalocean.com/community/tutorials/how-to-acquire-a-let-s-encrypt-certificate-using-dns-validation-with-certbot-dns-digitalocean-on-ubuntu-20-04&#34; title=&#34;https://www.digitalocean.com/community/tutorials/how-to-acquire-a-let-s-encrypt-certificate-using-dns-validation-with-certbot-dns-digitalocean-on-ubuntu-20-04&#34;&gt;https://www.digitalocean.com/community/tutorials/how-to-acquire-a-let-s-encrypt-certificate-using-dns-validation-with-certbot-dns-digitalocean-on-ubuntu-20-04&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>What has changed in PHP 8.0</title>
      <link>https://ndifreke-ekott.com/bookmarks/what-has-changed-in-php-8.0/</link>
      <pubDate>Tue, 18 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/bookmarks/what-has-changed-in-php-8.0/</guid>
      <description>&lt;p&gt;What is new in PHP 8? What new thing do I need to be aware of in PHP 8 that has changed from PHP 7.&lt;/p&gt;&#xA;&lt;p&gt;I have been working a lot with Python and haven&amp;rsquo;t been working on our Symfony project at work. I do miss PHP but in the event I have to write PHP, I would be need a refresher on what has changed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.php.net/releases/8.0/en.php&#34; title=&#34;https://www.php.net/releases/8.0/en.php&#34;&gt;https://www.php.net/releases/8.0/en.php&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>CSS Flex</title>
      <link>https://ndifreke-ekott.com/bookmarks/css-flex/</link>
      <pubDate>Tue, 28 Dec 2021 15:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/bookmarks/css-flex/</guid>
      <description>&lt;p&gt;Frontend design isn&amp;rsquo;t really my strength and CSS is a big and vast system. I usually come across the use of &lt;strong&gt;Flex&lt;/strong&gt; values when I read the source code of beautiful designed pages. I though maybe I should spend a few minutes to understand flex. And Here we go, a material that does just that.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&#34; title=&#34;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&#34;&gt;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/v1640704911/media/2021/12/Screenshot_2021-12-28_at_15.21.42_ivmutw.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>OhMyZsh - Docker plugin command sheet</title>
      <link>https://ndifreke-ekott.com/bookmarks/ohmyzsh-docker-plugin-command-sheet/</link>
      <pubDate>Tue, 28 Dec 2021 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/bookmarks/ohmyzsh-docker-plugin-command-sheet/</guid>
      <description>&lt;p&gt;I needed a quick reference for using docker plugin on ohmyzsh.&lt;/p&gt;&#xA;&lt;p&gt;Repository: &lt;a href=&#34;https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/docker-compose&#34;&gt;https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/docker-compose&lt;/a&gt;&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Alias&lt;/th&gt;&#xA;          &lt;th&gt;Command&lt;/th&gt;&#xA;          &lt;th&gt;Description&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dco&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose&lt;/td&gt;&#xA;          &lt;td&gt;Docker-compose main command&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcb&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose build&lt;/td&gt;&#xA;          &lt;td&gt;Build containers&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dce&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose exec&lt;/td&gt;&#xA;          &lt;td&gt;Execute command inside a container&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcps&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose ps&lt;/td&gt;&#xA;          &lt;td&gt;List containers&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcrestart&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose restart&lt;/td&gt;&#xA;          &lt;td&gt;Restart container&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcrm&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose rm&lt;/td&gt;&#xA;          &lt;td&gt;Remove container&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcr&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose run&lt;/td&gt;&#xA;          &lt;td&gt;Run a command in container&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcstop&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose stop&lt;/td&gt;&#xA;          &lt;td&gt;Stop a container&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcup&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose up&lt;/td&gt;&#xA;          &lt;td&gt;Build, (re)create, start, and attach to containers for a service&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcupb&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose up &amp;ndash;build&lt;/td&gt;&#xA;          &lt;td&gt;Same as dcup, but build images before starting containers&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcupd&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose up -d&lt;/td&gt;&#xA;          &lt;td&gt;Same as dcup, but starts as daemon&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcdn&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose down&lt;/td&gt;&#xA;          &lt;td&gt;Stop and remove containers&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcl&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose logs&lt;/td&gt;&#xA;          &lt;td&gt;Show logs of container&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dclf&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose logs -f&lt;/td&gt;&#xA;          &lt;td&gt;Show logs and follow output&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcpull&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose pull&lt;/td&gt;&#xA;          &lt;td&gt;Pull image of a service&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dcstart&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose start&lt;/td&gt;&#xA;          &lt;td&gt;Start a container&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;dck&lt;/td&gt;&#xA;          &lt;td&gt;docker-compose kill&lt;/td&gt;&#xA;          &lt;td&gt;Kills containers&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Dynamically Pointing your Raspberry PI&#39;s IP address to AWS Route53</title>
      <link>https://ndifreke-ekott.com/bookmarks/dynamically-pointing-your-raspberry-pi-s-ip-address-to-aws-route53/</link>
      <pubDate>Sun, 28 Mar 2021 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/bookmarks/dynamically-pointing-your-raspberry-pi-s-ip-address-to-aws-route53/</guid>
      <description>&lt;p&gt;I recently decided to create a Local NAS Server ever since Google complained I was using a lot of space. Would I be willing to pay for more space? Nope.&lt;/p&gt;&#xA;&lt;p&gt;I remembered my Raspberry PI and how I have been gathering dust. I also had an old Hard Disk I have never used in over 5 years. Decided to roll up my sleeve and get to cracking. Now I have most of what I needed setup, Owncloud as the software of choice, I was able to sync files from my phone to the machine within my LAN.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tailwind CSS - From zero to hero</title>
      <link>https://ndifreke-ekott.com/bookmarks/tailwind-css-from-zero-to-hero/</link>
      <pubDate>Tue, 09 Mar 2021 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/bookmarks/tailwind-css-from-zero-to-hero/</guid>
      <description>&lt;p&gt;Tailwind CSS has been in production for ages and I have always wanted to give it ago as I have heard so much about it. However, since I am not much of a UI designer, this isn&amp;rsquo;t something I readily wanted to spend time on. But as with all side projects, you need a UI framework.&lt;/p&gt;&#xA;&lt;p&gt;I have dabbled into Boostrap and I do get the basics but still not an expert. Tailwind seems to provide a utility-based approach to designing your interfaces and I though I should get to play with it some day.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The future of the web will be statically typed</title>
      <link>https://ndifreke-ekott.com/posts/the-future-of-the-web-will-be-statically-typed/</link>
      <pubDate>Sun, 07 Mar 2021 17:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/the-future-of-the-web-will-be-statically-typed/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Opinions are mine and as a result of random walk in the pack with a cup of coffee thirty minutes later.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;When learning to program, there was a time when the debate of statically typed vs dynamically typed languages was prevalent. Usually, folks who hated Java defaulted to other more dynamically typed languages like Python, PHP, and Javascript. One of the main reasons was how quickly you could get a program written and running.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://ndifreke-ekott.com/about/</link>
      <pubDate>Sat, 30 Jan 2021 16:46:48 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/about/</guid>
      <description>&lt;p&gt;Hi there, I see the about me page piqued your interest. I will try to keep this simple, short and to the point.&lt;/p&gt;&#xA;&lt;p&gt;I am Ndifreke Ekott, and from the few posts on this site, you may or may not have picked up on the fact that I work in the Technology space.&lt;/p&gt;&#xA;&lt;p&gt;I currently work as a Software Engineer (Developer depending on where you come from). I have been in technology for fifteen years and counting and consider myself a Technology enthusiast. I am curious about what is happening in the tech scene, from listening to podcasts, reading my endless RSS feed or watching conference videos. I also do enjoy brainstorming or exploring how to use technology to solve everyday problems or opportunities.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dev Hobby - Test and verify everything, every time</title>
      <link>https://ndifreke-ekott.com/posts/dev-hobby-test-and-verify-everything-every-time/</link>
      <pubDate>Thu, 08 Oct 2020 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/dev-hobby-test-and-verify-everything-every-time/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/v1612249018/media/2021/02/Screenshot-2020-10-09-at-09.15.06_teektg.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Sometimes confidence comes from having experienced a thing many times. In the world of coding, there are times when you just needed to add a few lines of code to modify a feature or functionality. Sometimes you are using a robust framework, and you have written this logic many times over, and so it feels second nature. It is at this point bugs get introduced.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Sometimes confidence comes from having experienced a thing many times.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Is everyday living a series of learning from the past, living by approximation and making compromises?</title>
      <link>https://ndifreke-ekott.com/posts/is-everyday-living-a-series-of-learning-from-the-past-living-by-approximation-and-making-compromises/</link>
      <pubDate>Mon, 06 Jul 2020 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/is-everyday-living-a-series-of-learning-from-the-past-living-by-approximation-and-making-compromises/</guid>
      <description>&lt;p&gt;I was on my morning run, and usually, I have my headphones on and turn on my activity tracker. I have been doing this for months now ever since I started aiming to drop my weight. For someone who isn&amp;rsquo;t good at running nor enjoys it, the start was really tough. Like all good intentions, I started out by reading opinion blogs on the number of calories you needed to burn each day to lose x number of kilos within 30 days.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Managing your mental health during the Covid-19 lockdown through video games</title>
      <link>https://ndifreke-ekott.com/posts/managing-your-mental-health-during-the-covid-19-lockdown-through-video-games/</link>
      <pubDate>Fri, 01 May 2020 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/managing-your-mental-health-during-the-covid-19-lockdown-through-video-games/</guid>
      <description>&lt;p&gt;You have probably seen a lot of write up on the lockdown situation. There are many published survival guides on the topic. The lockdown apart from the inconvenience it presents does challenge your state of mind. Not being able to move when you want or go to your favourite spots in the city can get frustrating.&lt;/p&gt;&#xA;&lt;p&gt;One thing I have come to appreciate is the Journey to work. After my 9 to 5, the 30 to 40 minutes trip serves as a cool-down period. Popping into the local store for groceries and the short walk home clears my mind puts me back into Personal mind frame. The little corner in the house I use as my coding/work station is personal use and projects. With the lockdown, however, it has also become my office station. Now I am grateful I have this corner as many others don&amp;rsquo;t have such luxury.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The ME! ME! ME! Mentality</title>
      <link>https://ndifreke-ekott.com/posts/the-me-me-me-mentality/</link>
      <pubDate>Thu, 05 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/the-me-me-me-mentality/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://res.cloudinary.com/ndy40/v1612247055/media/2021/02/mememe_rkpc2a.jpg&#34; alt=&#34;https://unsplash.com/?utm_source=ghost&amp;amp;utm_medium=referral&amp;amp;utm_campaign=api-credit&#34; title=&#34;Photo by Alisa Anton&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Source:&lt;a href=&#34;https://unsplash.com/?utm_source=ghost&amp;amp;utm_medium=referral&amp;amp;utm_campaign=api-credit&#34; title=&#34;https://unsplash.com/?utm_source=ghost&amp;amp;utm_medium=referral&amp;amp;utm_campaign=api-credit&#34;&gt;https://unsplash.com/?utm_source=ghost&amp;amp;utm_medium=referral&amp;amp;utm_campaign=api-credit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In our me me me society, phrases like within me, I deserve, I want, my opinion, creates a lot of pressure on us. Let&amp;rsquo;s face it, you do disappoint yourself from time to time with the difference being you are very forgiving of your flaws. We tend to judge ourselves by our best of intentions while judging others by their worse.&lt;/p&gt;&#xA;&lt;p&gt;Why is there so much loneliness, sadness, unhappiness and mental stress in our society today? If you ask me, I can point at one reason which I call the Me! Me! Me! mentality. &lt;strong&gt;I want&lt;/strong&gt;, &lt;strong&gt;I deserve&lt;/strong&gt;, &lt;strong&gt;I should have&lt;/strong&gt;, &lt;strong&gt;the world is here to serve me&lt;/strong&gt;are but a few phrases we hear being thrown around these days. There is a lot of pain in this way of thinking.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My Reading and Learning List</title>
      <link>https://ndifreke-ekott.com/reading_list/my-reading-and-learning-list/</link>
      <pubDate>Tue, 19 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/reading_list/my-reading-and-learning-list/</guid>
      <description>&lt;p&gt;In the field of Software Engineering, there is always something to learn. A new tool, a new framework, new practice, new cloud vendor product etc. So below are a list of things I am actively learning, have in sight to learn once I can.&lt;/p&gt;&#xA;&lt;h3 id=&#34;actively-learning&#34;&gt;Actively learning&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python 3.6 - 3.7&lt;/li&gt;&#xA;&lt;li&gt;Django&lt;/li&gt;&#xA;&lt;li&gt;Flutter/Dart&lt;/li&gt;&#xA;&lt;li&gt;Docker (Finished the Docker Mastery Course from Udemy)&lt;/li&gt;&#xA;&lt;li&gt;Fabric (Python library for running SSH commands on remote machines. I use this for my CI/CD setup. Guess what? This site is deployed using CI/CD practice all thanks to Fabric).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;courses-and-books-i-am-reading&#34;&gt;Courses and Books I am reading&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://subscription.packtpub.com/video/application_development/9781789951998&#34;&gt;Learn Flutter and Dart to build iOS and Android Apps&lt;/a&gt; by &lt;strong&gt;Maximilian Schwarzmüller&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://subscription.packtpub.com/book/web_development/9781787286214&#34;&gt;Building Django 2.0 Web Applications&lt;/a&gt; by Tom Araytin&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;things-i-hope-to-pick-up-later&#34;&gt;Things I hope to pick up later&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Serverless Infrastructure (I started playing with FnProject.io but still exploring the space)&lt;/li&gt;&#xA;&lt;li&gt;Go Lang&lt;/li&gt;&#xA;&lt;li&gt;Kubernetes&lt;/li&gt;&#xA;&lt;li&gt;SketchApp&lt;/li&gt;&#xA;&lt;li&gt;UX Design Skills (With a framework like Tailwind CSS, Less, Saas. I do understand them but just want to be more conscious and better at them)&lt;/li&gt;&#xA;&lt;li&gt;Apache Kafka&lt;/li&gt;&#xA;&lt;li&gt;Apache Spark&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The above list may expand and contract. I will update the page as things change. For now, this is what I have in mind.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ignorance may not always help you out</title>
      <link>https://ndifreke-ekott.com/posts/ignorance-may-not-always-help-you-out/</link>
      <pubDate>Thu, 31 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/ignorance-may-not-always-help-you-out/</guid>
      <description>&lt;p&gt;I woke up this morning with a random phrase in my mind. Today&amp;rsquo;s random thought happens to be the phrase - Ignorance is bliss.&lt;/p&gt;&#xA;&lt;p&gt;I am looking at this from the perspective of worry. It is difficult to worry about an issue if you aren&amp;rsquo;t aware of it. It is difficult to worry about the rising cost of Uber rides if you don&amp;rsquo;t have Uber rides operating in your area. The situation I am most concerned about is being ignorant of things happening around you and you wilful distant yourself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>You should apply CI/CD practises to your personal projects too</title>
      <link>https://ndifreke-ekott.com/posts/you-should-apply-ci-cd-practises-to-your-personal-projects-too/</link>
      <pubDate>Thu, 31 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/you-should-apply-ci-cd-practises-to-your-personal-projects-too/</guid>
      <description>&lt;p&gt;Sometimes when we think of advance concepts like CI/CD, we generally look at it from the perspective of work. It is easy to think of applying such principles at work maybe because you are being paid more or it is part of your professional experience. We, however, fail to apply such processes on our personal projects.&lt;/p&gt;&#xA;&lt;p&gt;I recently did a switch on my website by intentionally trying to apply continuous integration and deployment (CI/CD) when making changes to my site. I wanted to stop using FTP to upload my site. My blog doesn’t attract a thousand people per day but I do hope to keep it running and write for years to come. One voice will say, what is the point? It isn’t big enough to warrant such sophistication. I still went ahead and did it and here are the reasons to apply CI/CD to your hobby project no matter how small and unsophisticated it may be.&lt;/p&gt;</description>
    </item>
    <item>
      <title>You have all it takes to attain your goals</title>
      <link>https://ndifreke-ekott.com/posts/you-have-all-it-takes-to-attain-your-goals/</link>
      <pubDate>Sat, 26 Oct 2019 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/you-have-all-it-takes-to-attain-your-goals/</guid>
      <description>&lt;p&gt;We all have dreams of where we could be or want to be. Dreaming isn&amp;rsquo;t the challenge as everyone hopes and longs for a better life, a promotion or an adventure. The biggest problem with dreaming is figuring out the steps you need to take to actualise those dreams. When we have those steps mapped out, other life challenges come into the picture.&lt;/p&gt;&#xA;&lt;p&gt;Sometimes the things that do hinder you walk towards your dream aren&amp;rsquo;t all bad or negative. Most times, they are valid excuses like your favourite TV series, being finished work, social media etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Going cheap isn&#39;t always the way out</title>
      <link>https://ndifreke-ekott.com/posts/going-cheap-isn-t-always-the-way-out/</link>
      <pubDate>Fri, 27 Sep 2019 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/going-cheap-isn-t-always-the-way-out/</guid>
      <description>&lt;p&gt;Today has been a hell of a day for me and has made me wonder what in the world was I thinking. I have spent a lot of time today making three trips to the Curry&amp;rsquo;s store returning items I bought. To provide a bit of context, I recently got myself a table so that I can have a comfortable corner to do some studying. As a result of this excellent purchase, I have had to buy a few peripherals for my MacBook Pro.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The millionaire thought</title>
      <link>https://ndifreke-ekott.com/posts/the-millionaire-thought/</link>
      <pubDate>Mon, 15 Jul 2019 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/the-millionaire-thought/</guid>
      <description>&lt;p&gt;I woke today with a weird thought of the term - &amp;ldquo;A Millionaire&amp;rdquo;. What qualifies a millionaire? Is it the amount of money in his bank account, or is it something else? Is it the size of his Real Estate?&lt;/p&gt;&#xA;&lt;p&gt;There are ways to rack up millions in your bank account, like saving for 20 years until your savings hit the million mark. Does that make this person a millionaire? There is also the option of investing in something that brings in money, and if you grow the pot large enough, every influx is in the millions. Which is the true definition of a millionaire?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Craving A Day Of Nothingness</title>
      <link>https://ndifreke-ekott.com/posts/craving-a-day-of-nothingness/</link>
      <pubDate>Fri, 26 Apr 2019 23:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/craving-a-day-of-nothingness/</guid>
      <description>&lt;p&gt;Every day is filled with something to achieve. And from the moment you become an adult, start working, it never stops. As a child, we had the luxury of our parents taking care of the business of worrying about the future and bills. While growing up, you asked for toys, but you were told you had to grow up, get a job and then you can buy anything you wanted. Truth is, you weren’t being told the whole story.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Being you and shinning regardless</title>
      <link>https://ndifreke-ekott.com/posts/shining-regardless/</link>
      <pubDate>Tue, 12 Feb 2019 09:29:38 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/shining-regardless/</guid>
      <description>&lt;p&gt;A tweet triggered this post. I looked at an individual&amp;rsquo;s profile and read their short bio and why they made arts and posted for free and occasionally selling some. They had a different job but did crafts as a hobby and looking at their Etsy page and Instagram profile, I was impressed, and the work looked lovely.The tweet brought out the feeling I had in the last weekend; I was doing a lot of coding which to the non-technical may not make sense. But I was enjoying what I did to the point I had to tell myself when to go to bed less I stay up all night. There was a sense of accomplishment and a feeling of even putting in more time to this venture.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Retrospective on 2018. Part 1 - The Human Experience</title>
      <link>https://ndifreke-ekott.com/posts/retrospective-on-2018-part-1-the-human-experience/</link>
      <pubDate>Wed, 02 Jan 2019 00:10:40 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/retrospective-on-2018-part-1-the-human-experience/</guid>
      <description>&lt;p&gt;I sat back to think of those who have to endure even strenuous commute on a daily basis and I couldn&amp;rsquo;t help but respect their courage. I am getting used to my commute and I have started using the opportunity to catch up on Netflix, read a book or just listen to soft music to begin my day. After all I am doing this to build a brighter future for myself, family and kids.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ode To Unsung Heroes</title>
      <link>https://ndifreke-ekott.com/posts/ode-to-the-unsung-heroes-of-our-time/</link>
      <pubDate>Thu, 20 Dec 2018 09:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/posts/ode-to-the-unsung-heroes-of-our-time/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Cheers to those who keep pushing ahead in life. Who keep aspiring for greatness despite the nagging voice that tells you to quit. To give up because it is easier than sustaining this fight. Cheers to those who chase dreams above their current station, who don&amp;rsquo;t see the future through the lens of this day. Cheers to those who rise and refuse to be put down. Cheers to those who persevere and beat the odds no matter how long it takes. Cheers to those who refuse to be put down by the negativity about us today. Cheers to those who stand tall and yet shoulder responsibilities quietly but grace each day with renewed hope of a better tomorrow. You unsung heroes, uncelebrated veteran. Rise again for another day is yet upon us, dreams to chase, the wind to sail in and hope to water. Rise warriors for glory awaits you on the other side.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://ndifreke-ekott.com/podcasts/podcasts/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ndifreke-ekott.com/podcasts/podcasts/</guid>
      <description>&lt;p&gt;A collection of podcasts resources.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
