<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Douglas Sabwa Indumwa - Blogs]]></title><description><![CDATA[Software Developer | Digital Health | DevSecOps]]></description><link>https://blog.douglas.africa</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 06:03:26 GMT</lastBuildDate><atom:link href="https://blog.douglas.africa/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[The Illusion of Modern Stacks in African Tech]]></title><description><![CDATA[There is a quiet performance happening in African tech.
On social media, we speak Kubernetes.In production, we deploy chaos.
We proudly announce:

Microservices

Event-driven systems

Serverless archi]]></description><link>https://blog.douglas.africa/the-illusion-of-modern-stacks-in-african-tech</link><guid isPermaLink="true">https://blog.douglas.africa/the-illusion-of-modern-stacks-in-african-tech</guid><category><![CDATA[PHP]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[Django]]></category><category><![CDATA[Python]]></category><category><![CDATA[js]]></category><category><![CDATA[Laravel]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Thu, 26 Feb 2026 23:27:46 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/647cc9b264617cb9cdf8cec3/e0b39269-16f3-4d9d-bd57-1cfd96d9fabe.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a quiet performance happening in African tech.</p>
<p>On social media, we speak Kubernetes.<br />In production, we deploy chaos.</p>
<p>We proudly announce:</p>
<ul>
<li><p>Microservices</p>
</li>
<li><p>Event-driven systems</p>
</li>
<li><p>Serverless architectures</p>
</li>
<li><p>TypeScript monorepos</p>
</li>
<li><p>Container orchestration</p>
</li>
</ul>
<p>But when you log into the server?</p>
<ul>
<li><p>One underpowered VPS</p>
</li>
<li><p>No monitoring</p>
</li>
<li><p>No automated backups</p>
</li>
<li><p>No CI/CD</p>
</li>
<li><p>No test coverage</p>
</li>
<li><p>No documentation</p>
</li>
<li><p>One developer who hasn’t slept properly in 6 months</p>
</li>
</ul>
<blockquote>
<p>The stack is modern. The engineering culture is not.</p>
</blockquote>
<h2>1. Microservices Without Scale Is Architectural Show Off</h2>
<p>Microservices were created to solve real problems:</p>
<ul>
<li><p>Multiple independent teams</p>
</li>
<li><p>Massive scale</p>
</li>
<li><p>Independent deployment cycles</p>
</li>
<li><p>Organizational complexity</p>
</li>
</ul>
<p>But in many African startups:</p>
<ul>
<li><p>2–4 developers</p>
</li>
<li><p>Fewer than 10,000 monthly users</p>
</li>
<li><p>One shared database</p>
</li>
<li><p>No DevOps engineer</p>
</li>
</ul>
<p>Yet somehow the system is split into:</p>
<ul>
<li><p>Auth service</p>
</li>
<li><p>Payment service</p>
</li>
<li><p>User service</p>
</li>
<li><p>Notification service</p>
</li>
<li><p>Analytics service</p>
</li>
</ul>
<p>Why?</p>
<p>Because it sounds impressive.</p>
<p>You didn’t design for scale.<br />You designed for applause.</p>
<blockquote>
<p>You multiplied complexity without multiplying revenue.</p>
</blockquote>
<p>That’s not architecture. You are just being dramatic.</p>
<h2>2. Kubernetes for a 20-User System ... Really?</h2>
<p>A county dashboard with 15 concurrent users does not need Kubernetes.</p>
<p>A school management system does not need distributed orchestration.</p>
<p>A church management system does not need container clusters.</p>
<p>It needs:</p>
<ul>
<li><p>Proper database indexing</p>
</li>
<li><p>Backup automation</p>
</li>
<li><p>Role-based access control</p>
</li>
<li><p>Input validation</p>
</li>
<li><p>Clear audit trails</p>
</li>
<li><p>Maintainable code</p>
</li>
</ul>
<blockquote>
<p>Infrastructure sophistication does not equal system maturity.</p>
</blockquote>
<p>We are buying industrial machinery to cut bread.</p>
<h2>3. The Optics Economy of African Tech</h2>
<p>Let’s talk about the real issue: signaling.</p>
<p>Modern stacks signal:</p>
<ul>
<li><p>“We are global.”</p>
</li>
<li><p>“We are scalable.”</p>
</li>
<li><p>“We are serious.”</p>
</li>
<li><p>“We are venture-ready.”</p>
</li>
</ul>
<p>But scale is not theoretical.</p>
<p>Scale is:</p>
<ul>
<li><p>Surviving 10x traffic spikes.</p>
</li>
<li><p>Handling payment failures.</p>
</li>
<li><p>Recovering from server crashes.</p>
</li>
<li><p>Migrating databases safely.</p>
</li>
<li><p>Rotating credentials properly.</p>
</li>
</ul>
<blockquote>
<p>Most African startups never reach a scale that justifies their architectural complexity.</p>
</blockquote>
<p>But they want to look like they already did.</p>
<p>Optics before operations.</p>
<h2>4. The Talent Maturity Gap</h2>
<p>Modern stacks assume:</p>
<ul>
<li><p>Strong DevOps culture</p>
</li>
<li><p>Deep understanding of distributed systems</p>
</li>
<li><p>Observability discipline</p>
</li>
<li><p>Structured testing culture</p>
</li>
<li><p>Long-term engineering leadership</p>
</li>
</ul>
<p>But many African teams are:</p>
<ul>
<li><p>Underfunded</p>
</li>
<li><p>Self-taught</p>
</li>
<li><p>Moving fast to survive</p>
</li>
<li><p>Operating without senior architectural guidance</p>
</li>
</ul>
<p>So what happens?</p>
<ul>
<li><p>Complex architecture</p>
</li>
<li><p>Shallow understanding</p>
</li>
<li><p>Fragile deployments</p>
</li>
<li><p>Frequent outages</p>
</li>
<li><p>Burnout</p>
</li>
</ul>
<blockquote>
<p>We copy Silicon Valley’s tools without copying Silicon Valley’s process discipline.</p>
</blockquote>
<p>Tools without culture create chaos.</p>
<h2>5. The PHP Shame Paradox</h2>
<p>Publicly, we mock “boring stacks.”</p>
<p>Privately:</p>
<ul>
<li><p>Schools run on PHP.</p>
</li>
<li><p>Hospitals run on PHP.</p>
</li>
<li><p>SACCOs run on PHP.</p>
</li>
<li><p>Government systems run on PHP.</p>
</li>
<li><p>Churches run on PHP.</p>
</li>
</ul>
<p>Why?</p>
<p>Because boring tech:</p>
<ul>
<li><p>Is cheaper to host.</p>
</li>
<li><p>Is easier to hire for.</p>
</li>
<li><p>Survives developer turnover.</p>
</li>
<li><p>Doesn’t require DevOps specialization.</p>
</li>
<li><p>Works predictably.</p>
</li>
</ul>
<p>Modern stacks win tech Twitter/X battles.</p>
<blockquote>
<p>Boring stacks win procurement contracts in Africa.</p>
</blockquote>
<h2>6. The Real Reasons Systems Fail in Africa</h2>
<p>Systems in Africa rarely fail because:</p>
<ul>
<li><p>They used Laravel instead of Node.</p>
</li>
<li><p>They used Django instead of Go.</p>
</li>
<li><p>They didn’t use Rust.</p>
</li>
</ul>
<p>They fail because of:</p>
<ul>
<li><p>Poor database design</p>
</li>
<li><p>No indexing</p>
</li>
<li><p>No logging</p>
</li>
<li><p>No monitoring</p>
</li>
<li><p>No automated backups</p>
</li>
<li><p>No documentation</p>
</li>
<li><p>No onboarding guide</p>
</li>
<li><p>Founder-developer burnout</p>
</li>
</ul>
<p>Switching to TypeScript will not fix operational immaturity.</p>
<p>Kubernetes will not fix poor schema design.</p>
<p>Microservices will not fix unclear business logic.</p>
<p>Architecture does not compensate for discipline gaps.</p>
<h2>7. What the Real “Modern Stack” Should Be</h2>
<p>If we were honest, the real modern stack for African tech would look like this:</p>
<ol>
<li><p>Version control discipline</p>
</li>
<li><p>Clear branching strategy</p>
</li>
<li><p>Database normalization</p>
</li>
<li><p>Indexing strategy</p>
</li>
<li><p>Automated backups</p>
</li>
<li><p>Logging and monitoring</p>
</li>
<li><p>Clear documentation</p>
</li>
<li><p>Predictable deployment</p>
</li>
<li><p>Handover readiness</p>
</li>
</ol>
<p>You can build that with:</p>
<ul>
<li><p>Laravel</p>
</li>
<li><p>Django</p>
</li>
<li><p>Node</p>
</li>
<li><p>Even well-written raw PHP</p>
</li>
</ul>
<blockquote>
<p>Framework choice is rarely the bottleneck.</p>
</blockquote>
<p>Engineering maturity is.</p>
<h2>8. When Modern Stacks Actually Make Sense</h2>
<p>To be clear: modern stacks are not bad.</p>
<p>They are powerful.</p>
<p>They are necessary when:</p>
<ul>
<li><p>You are building fintech infrastructure.</p>
</li>
<li><p>You are processing millions of events.</p>
</li>
<li><p>You need real-time, low-latency systems.</p>
</li>
<li><p>You have experienced distributed systems engineers.</p>
</li>
<li><p>You have funding to support DevOps maturity.</p>
</li>
</ul>
<p>But that is not 80% of African software.</p>
<p>Most African software is:</p>
<ul>
<li><p>Institutional</p>
</li>
<li><p>Administrative</p>
</li>
<li><p>Reporting-heavy</p>
</li>
<li><p>Service-oriented</p>
</li>
<li><p>Budget-sensitive</p>
</li>
</ul>
<blockquote>
<p>These problems reward clarity over complexity.</p>
</blockquote>
<h2>Conclusion</h2>
<p>African tech will mature the day we stop asking:</p>
<p>“What stack are you using?”</p>
<p>And start asking:</p>
<ul>
<li><p>How resilient is your system?</p>
</li>
<li><p>What happens when the original developer leaves?</p>
</li>
<li><p>Where are your backups?</p>
</li>
<li><p>How long does recovery take?</p>
</li>
<li><p>Can a mid-level engineer maintain this?</p>
</li>
</ul>
<blockquote>
<p>Until then, we will continue importing architecture that our engineering culture cannot sustain.</p>
</blockquote>
<p>Sophistication does not come from tools.</p>
<p>It comes from discipline.</p>
<p>And discipline is not trendy.</p>
<p>But it scales.</p>
]]></content:encoded></item><item><title><![CDATA[Stop Judging People by Their Social Media Behavior]]></title><description><![CDATA[In Kenya today, social media is no longer just entertainment.
It is:

A CV

A branding tool

A social class signal

A relationship filter

A moral scoreboard


We have quietly turned Instagram, X, Facebook, and TikTok into character assessment tools....]]></description><link>https://blog.douglas.africa/stop-judging-people-by-their-social-media-behavior</link><guid isPermaLink="true">https://blog.douglas.africa/stop-judging-people-by-their-social-media-behavior</guid><category><![CDATA[social media]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Thu, 12 Feb 2026 04:00:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/-M_f3f8DGRg/upload/9785eda7341e161e56cbf2e422264484.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In Kenya today, social media is no longer just entertainment.</p>
<p>It is:</p>
<ul>
<li><p>A CV</p>
</li>
<li><p>A branding tool</p>
</li>
<li><p>A social class signal</p>
</li>
<li><p>A relationship filter</p>
</li>
<li><p>A moral scoreboard</p>
</li>
</ul>
<p>We have quietly turned Instagram, X, Facebook, and TikTok into character assessment tools.</p>
<p>And we are getting it wrong.</p>
<h2 id="heading-in-kenya-social-media-status">In Kenya, Social Media = Status</h2>
<p>Let’s be honest.</p>
<p>In our context, social media is deeply tied to perceived success.</p>
<ul>
<li><p><em>If someone posts frequent travel photos → “They are doing well.”</em></p>
</li>
<li><p><em>If someone posts in clubs every weekend → “They are unserious.”</em></p>
</li>
<li><p><em>If someone posts Bible verses daily → “They are holy.”</em></p>
</li>
<li><p><em>If someone posts political opinions → “They are toxic.”</em></p>
</li>
<li><p><em>If someone doesn’t post much → “They are struggling.”</em></p>
</li>
</ul>
<p>But here’s the uncomfortable truth:</p>
<p>Kenyan social media is heavily performative because our society is highly competitive.</p>
<p>We live in an economy where:</p>
<ul>
<li><p>Jobs are scarce.</p>
</li>
<li><p>Opportunities are political.</p>
</li>
<li><p>Visibility matters.</p>
</li>
<li><p>Networking matters.</p>
</li>
<li><p>“Who knows you” matters.</p>
</li>
</ul>
<blockquote>
<p>So people curate whatever you see on social media.</p>
</blockquote>
<p>Not always to deceive — but to survive.</p>
<h2 id="heading-the-pressure-to-look-like-youre-winning">The Pressure to “Look Like You’re Winning”</h2>
<p>There is pressure to appear like life is moving.</p>
<p>You must look:</p>
<ul>
<li><p>Busy</p>
</li>
<li><p>Booked</p>
</li>
<li><p>Traveling</p>
</li>
<li><p>Building</p>
</li>
<li><p>Blessed</p>
</li>
</ul>
<p>Even if:</p>
<ul>
<li><p>Your rent is overdue.</p>
</li>
<li><p>Your business is barely breaking even.</p>
</li>
<li><p>You’re in between jobs.</p>
</li>
<li><p>You’re mentally exhausted.</p>
</li>
</ul>
<p>Because in Kenya, perception influences opportunity.</p>
<p>Investors check your social media.<br />Clients check your social media.<br />Potential partners check your social media.<br />Church members check your social media.</p>
<blockquote>
<p>So people manage perception carefully.</p>
</blockquote>
<p>And then we judge them for it.</p>
<h2 id="heading-church-culture-amp-digital-holiness">Church Culture &amp; Digital Holiness</h2>
<p>In African Christian spaces, there’s another layer.</p>
<p>Someone posts:</p>
<ul>
<li><p>Sermon clips</p>
</li>
<li><p>Bible verses</p>
</li>
<li><p>Worship moments</p>
</li>
</ul>
<p>And we quickly label them:<br />“Spiritually mature.”</p>
<p>Meanwhile, someone who rarely posts spiritual content may be deeply grounded and disciplined privately.</p>
<p>In our culture, visible spirituality is often equated with authentic spirituality.</p>
<blockquote>
<p>But social media can amplify performance over substance.</p>
</blockquote>
<p>And that makes digital judgment even more dangerous.</p>
<h2 id="heading-hustle-culture-amp-fake-narratives">Hustle Culture &amp; Fake Narratives</h2>
<p>Kenya has one of the strongest hustle cultures in Africa.</p>
<p>“Vitu kwa ground ni different.”<br />“Pressure ya maisha.”</p>
<p>Because of economic pressure, many people use social media to:</p>
<ul>
<li><p>Attract clients</p>
</li>
<li><p>Signal competence</p>
</li>
<li><p>Appear stable</p>
</li>
<li><p>Build authority</p>
</li>
</ul>
<p>Someone posting motivational content might not be fake.</p>
<p>They might be fighting discouragement while trying to stay afloat.</p>
<p>Someone showing off success might not be arrogant.</p>
<blockquote>
<p>They might be escaping years of financial struggle.</p>
</blockquote>
<p>Context matters.</p>
<h2 id="heading-rural-vs-urban-digital-perception">Rural vs Urban Digital Perception</h2>
<p>There’s also a generational and geographical divide.</p>
<p>In rural areas:</p>
<ul>
<li><p>Posting frequently might be seen as pride.</p>
</li>
<li><p>Showing lifestyle content may be interpreted as arrogance.</p>
</li>
</ul>
<p>In urban spaces:</p>
<ul>
<li><p>Not posting might be interpreted as irrelevance.</p>
</li>
<li><p>Lack of visibility equals lack of progress.</p>
</li>
</ul>
<p>Same behavior.<br />Different interpretations.</p>
<blockquote>
<p>We judge based on our environment — not universal truth.</p>
</blockquote>
<h2 id="heading-the-real-danger-in-african-context">The Real Danger in African Context</h2>
<p>In Western societies, misjudging someone online might cost you a social interaction.</p>
<p>In Kenya, it can cost:</p>
<ul>
<li><p>Business opportunities</p>
</li>
<li><p>Ministry partnerships</p>
</li>
<li><p>Referrals</p>
</li>
<li><p>Community trust</p>
</li>
</ul>
<p>Our communities are tightly connected.</p>
<p>Labels stick.</p>
<p>And social media makes labeling effortless.</p>
<h2 id="heading-the-irony">The Irony</h2>
<p>You are also being judged.</p>
<p>Someone has labeled you:</p>
<ul>
<li><p>“Too opinionated.”</p>
</li>
<li><p>“Too quiet.”</p>
</li>
<li><p>“Too flashy.”</p>
</li>
<li><p>“Too spiritual.”</p>
</li>
<li><p>“Too ambitious.”</p>
</li>
<li><p>“Too political.”</p>
</li>
</ul>
<p>Based on fragments.</p>
<p>And you hate it.</p>
<p>Yet you do the same thing to others.</p>
<blockquote>
<p>None of us comprise only our timelines - there is more to that.</p>
</blockquote>
<p>The same way you think:<br />“That guy is always showing off.”</p>
<p>Someone else thinks:<br />“Douglas is always opinionated online.”</p>
<p>You are also simplified into digital cartoon by someone else.</p>
<h2 id="heading-a-better-way-to-approach-social-media-posts">A Better Way to Approach Social Media Posts</h2>
<p>Before judging someone based on their posts, ask:</p>
<ul>
<li><p><em>Have I interacted with them offline?</em></p>
</li>
<li><p><em>Have I worked with them?</em></p>
</li>
<li><p><em>Have I seen how they treat people without cameras?</em></p>
</li>
<li><p><em>Do I know their economic reality?</em></p>
</li>
</ul>
<p>African societies value community and relationship.</p>
<p>Yet social media is pushing us toward shallow digital profiling.</p>
<p>We must resist that.</p>
<h2 id="heading-final-thought">Final Thought</h2>
<blockquote>
<p>Social media is branding.<br />Branding is strategy.<br />Strategy is not always authenticity.</p>
</blockquote>
<p>But judging people based on strategy is foolish.</p>
<p>Stop pretending you know people because you follow them.</p>
<p>In Kenya, especially, digital behavior is often survival behavior.</p>
<p>And until you understand that, your judgment says more about you than about them.</p>
]]></content:encoded></item><item><title><![CDATA[Why Your New Year Career Resolutions May Be a Scam]]></title><description><![CDATA[We know the script. It’s January in Kenya.
Declarations everywhere: “This is my year.” “New level.” “Focused.”
For a few weeks, hope is high. Then reality slowly settles back in—traffic jams, delayed salaries, rising costs, heavy workloads, and limit...]]></description><link>https://blog.douglas.africa/why-your-new-year-career-resolutions-may-be-a-scam</link><guid isPermaLink="true">https://blog.douglas.africa/why-your-new-year-career-resolutions-may-be-a-scam</guid><category><![CDATA[New year]]></category><category><![CDATA[2026]]></category><category><![CDATA[Scam]]></category><category><![CDATA[Career]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Thu, 08 Jan 2026 23:59:28 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/FjyseC7iV3k/upload/b9505aaa72b55ebfcc1966cad5eb3c17.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We know the script. It’s January in Kenya.</p>
<p>Declarations everywhere: <em>“This is my year.”</em> <em>“New level.”</em> <em>“Focused.”</em></p>
<p>For a few weeks, hope is high. Then reality slowly settles back in—traffic jams, delayed salaries, rising costs, heavy workloads, and limited opportunities. By March or April, most career goals have quietly faded.</p>
<p>Not because people are lazy. Not because the economy is impossible. Not because opportunities are scarce. Many of us plan new futures while protecting old habits.</p>
<blockquote>
<p>Many professionals plan new futures while holding tightly to old ways of thinking, working, and showing up</p>
</blockquote>
<h2 id="heading-new-goals-on-old-systems-never-work"><strong>New Goals on Old Systems Never Work</strong></h2>
<p>Career growth is not powered by intention alone. It is powered by systems.</p>
<p>Many people set goals like:</p>
<ul>
<li><p>“I want a better-paying job.”</p>
</li>
<li><p>“I want to transition into tech.”</p>
</li>
<li><p>“I want to take my side hustle seriously.”</p>
</li>
</ul>
<p>Yet their daily systems remain unchanged:</p>
<ul>
<li><p>Same poor time management</p>
</li>
<li><p>Same fear of feedback</p>
</li>
<li><p>Same procrastination disguised as “research”</p>
</li>
<li><p>Same habit of waiting for instructions</p>
</li>
</ul>
<blockquote>
<p>A calendar change does not rewire discipline. A new year doesn’t override old discipline.</p>
</blockquote>
<h2 id="heading-we-want-new-results-without-new-identities"><strong>We Want New Results Without New Identities</strong></h2>
<p>In our career culture, many people want outcomes they haven’t become ready for.</p>
<p>They want:</p>
<ul>
<li><p>Manager titles without leadership maturity</p>
</li>
<li><p>Better pay without better value.</p>
</li>
<li><p>Recognition without consistency</p>
</li>
<li><p>Growth without embarrassment.</p>
</li>
<li><p>Flexibility without structure</p>
</li>
</ul>
<p>If you still avoid responsibility, you will avoid growth.<br />If you still fear starting small, you will remain obscure.<br />If you still confuse busyness with value, nothing will change.</p>
<blockquote>
<p>But careers don’t respond to wishes.They respond to who you are becoming repeatedly.</p>
</blockquote>
<h2 id="heading-prayer-hope-and-waiting-are-not-career-plans"><strong>Prayer, Hope, and Waiting Are Not Career Plans</strong></h2>
<p>Faith plays an important role in many African lives—and rightly so.<br />But faith without action becomes an excuse.</p>
<p>We pray for open doors but avoid preparation.<br />We fast for promotion but resist learning.<br />We wait for connections instead of building competence.</p>
<p>In the real world:</p>
<ul>
<li><p>Employers reward value, not intentions</p>
</li>
<li><p>Markets pay for solutions, not effort</p>
</li>
<li><p>Clients return because of results, not promises</p>
</li>
</ul>
<p>Careers respond to <strong>skill, consistency, and value</strong>—not declarations.</p>
<blockquote>
<p>Prayer without structure is just hope. Prayer should support the process—not replace it.</p>
</blockquote>
<h2 id="heading-the-comfort-culture-that-keeps-us-stuck"><strong>The Comfort Culture That Keeps Us Stuck</strong></h2>
<p>Many New Year career goals fail because they are designed to protect comfort.</p>
<p>We choose:</p>
<ul>
<li><p>Degrees that sound impressive but stretch us very little</p>
</li>
<li><p>Jobs that feel safe but don’t grow us</p>
</li>
<li><p>Side hustles we can abandon easily when tired</p>
</li>
</ul>
<p>We want growth without discomfort, learning without looking foolish, and progress without sacrifice.</p>
<p>But real career growth is uncomfortable by nature.<br />It requires humility, patience, and the willingness to be bad before being good.</p>
<blockquote>
<p>Every meaningful career shift requires starting as a beginner again—and many of us are too proud for that.</p>
</blockquote>
<h2 id="heading-january-motivation-is-seasonal"><strong>January Motivation Is Seasonal</strong></h2>
<p>January motivation is powerful—but short-lived.</p>
<p>It thrives on excitement and new beginnings.<br />It collapses when routines become boring.</p>
<p>Careers, however, are built in:</p>
<ul>
<li><p>Early mornings</p>
</li>
<li><p>Repetitive practice</p>
</li>
<li><p>Quiet learning</p>
</li>
<li><p>Slow progress that no one claps for</p>
</li>
</ul>
<p>If your career goals depend on motivation, they will not survive for long.</p>
<blockquote>
<p>Discipline sustains professionals — especially in tough economies. Careers are built on boring consistency, not emotional highs.</p>
</blockquote>
<h2 id="heading-old-environments-produce-old-thinking"><strong>Old Environments Produce Old Thinking</strong></h2>
<p>You cannot plan a new career while staying in spaces or with friends that normalize stagnation.</p>
<p>Same conversations.<br />Same complaints.<br />Same jokes about never growing.</p>
<p>When everyone around you is comfortable being stuck, ambition starts feeling unrealistic. Slowly, you shrink your goals to fit the room. This year, don't just set goals. Audit your life. What comfort zone must you leave? What "squad" must you spend less time with? What difficult skill must you finally learn?</p>
<blockquote>
<p>Career growth often begins when you outgrow rooms, not when you write better resolutions.</p>
</blockquote>
<h2 id="heading-final-thoughts"><strong>Final Thoughts</strong></h2>
<p>Your New Year career goals may be a scam—not because planning is useless, but because planning without transformation is dishonesty.</p>
<p>Careers don’t change because the year changes.<br />They change because <strong>people change their systems</strong>.</p>
<p>And that work doesn’t begin on January 1st.<br />It begins the day you stop negotiating with your old self.</p>
]]></content:encoded></item><item><title><![CDATA[Learning From the Career Mistakes of 2025]]></title><description><![CDATA[As 2025 comes to a close, there’s a natural pause that settles in. The rush eases. The noise fades. And for a brief moment, we’re given space to look back—not to judge ourselves harshly, but to understand what this year quietly shaped in us.
For many...]]></description><link>https://blog.douglas.africa/learning-from-the-career-mistakes-of-2025</link><guid isPermaLink="true">https://blog.douglas.africa/learning-from-the-career-mistakes-of-2025</guid><category><![CDATA[career advice]]></category><category><![CDATA[Career]]></category><category><![CDATA[2025]]></category><category><![CDATA[lessons learned]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Fri, 19 Dec 2025 18:20:59 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/n95VMLxqM2I/upload/454c6cc18ddd2dee50c12d2dff0559fa.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As 2025 comes to a close, there’s a natural pause that settles in. The rush eases. The noise fades. And for a brief moment, we’re given space to look back—not to judge ourselves harshly, but to understand what this year quietly shaped in us.</p>
<p>For many, 2025 wasn’t a year of smooth wins and perfect decisions. It was a year of missteps, recalculations, fatigue, growth, and uncomfortable learning. Across industries and professions, we made choices that didn’t turn out as planned. We hesitated when we should have acted, acted when we should have paused, and sometimes pushed ourselves harder than was wise.</p>
<p>And yet, this is where real growth begins. Here are a few lessons to pick:</p>
<h2 id="heading-1-job-security-is-never-guaranteed"><strong>1) Job Security Is Never Guaranteed</strong></h2>
<p>This year reminded many people that employment can change suddenly. Layoffs happened, roles were restructured, and stability disappeared without warning for some.</p>
<p><strong>What 2025 taught us:</strong><br />A job is not a promise—it’s a phase. Careers are built on transferable skills, relationships, adaptability, and resilience. Moving forward, the focus shifts from relying on positions to strengthening personal capability and preparedness.</p>
<h2 id="heading-2-prioritising-technical-skills-over-soft-skills-has-a-cost"><strong>2) Prioritising Technical Skills Over Soft Skills Has a Cost</strong></h2>
<p>Throughout the year, many of us focused heavily on technical ability, qualifications, and measurable output. We invested deeply in <em>what</em> we do, while underestimating <em>how</em> we work with others and manage ourselves.</p>
<p><strong>What 2025 taught us:</strong><br />Hard skills may open doors, but soft skills determine growth, trust, and longevity. Communication, emotional intelligence, adaptability, and self-awareness are not optional extras. Moving forward, true professional maturity lies in balancing competence with character.</p>
<h2 id="heading-3-self-doubt-doesnt-mean-were-failing"><strong>3) Self-Doubt Doesn’t Mean We’re Failing</strong></h2>
<p>At different points this year, many of us questioned our abilities. We compared our progress to others, wondered if we were falling behind, or felt unsure of our place in our careers.</p>
<p><strong>What 2025 taught us:</strong><br />Self-doubt often appears when we’re stretching into unfamiliar territory. It’s not always a warning sign—it’s sometimes proof that we’re growing. The lesson moving forward is to measure progress by learning and resilience, not by comparison.</p>
<h2 id="heading-4-wrong-decisions-are-not-the-end-of-the-road">4) Wrong Decisions Are Not the End of the Road</h2>
<p>We made choices that seemed right at the time but later revealed their flaws. Opportunities didn’t unfold as expected. Plans shifted. Directions changed.</p>
<p><strong>What 2025 taught us:</strong><br />Not every decision is meant to work perfectly. Some are meant to teach us clarity, boundaries, and better judgment. Adjusting course is not failure—it’s maturity in action.</p>
<h2 id="heading-5-trying-to-do-everything-leads-to-overwhelm"><strong>5) Trying to Do Everything Leads to Overwhelm</strong></h2>
<p>This year demanded more skills, more availability, and more adaptability. Many of us tried to keep up with everything and ended up overwhelmed.</p>
<p><strong>What 2025 taught us:</strong><br />Focus is power. Growth doesn’t come from chasing everything; it comes from choosing what truly matters and doing it with intention. Less, done well, is often more impactful than more, done poorly.</p>
<h2 id="heading-6-burnout-is-a-warning-not-a-weakness"><strong>6) Burnout Is a Warning, Not a Weakness</strong></h2>
<p>Long hours became routine. Rest was postponed. Many of us ignored the signs of exhaustion until our motivation, creativity, or health suffered.</p>
<p><strong>What 2025 taught us:</strong><br />Sustainable careers require sustainable energy. Rest is not a reward—it’s maintenance. Moving forward, listening to our limits is part of working responsibly, not a sign of falling behind.</p>
<h2 id="heading-7-mistakes-will-always-happen">7) Mistakes Will Always Happen</h2>
<p>Despite effort and preparation, things went wrong. Errors were made. Outcomes disappointed. Sometimes we wished we could undo certain moments.</p>
<p><strong>What 2025 taught us:</strong><br />What defines us is not the absence of mistakes, but how we respond to them. Owning errors, learning from them, and improving systems builds trust and credibility more than perfection ever could.</p>
<h2 id="heading-8-miscommunication-can-undermine-good-intentions">8) Miscommunication Can Undermine Good Intentions</h2>
<p>Many frustrations this year were not caused by lack of commitment, but by unclear expectations, assumptions, or silence.</p>
<p><strong>What 2025 taught us:</strong><br />Clear communication is essential work. Asking questions, setting boundaries, and aligning early prevents confusion and unnecessary strain. Good intentions need clear expression to succeed.</p>
<h2 id="heading-9-starting-without-finishing-is-costly"><strong>9) Starting Without Finishing is Costly</strong></h2>
<p>Ideas came easily. Motivation was high at the beginning. But follow-through proved harder than expected.</p>
<p><strong>What 2025 taught us:</strong><br />Completion builds confidence. Finishing—even imperfectly—creates momentum and clarity. Moving forward, fewer starts and stronger finishes will matter more than endless new beginnings.</p>
<h2 id="heading-10-asking-for-help-is-not-weakness"><strong>10) Asking for Help Is not Weakness</strong></h2>
<p>At times, fear of appearing inexperienced or independent kept us silent. We carried burdens alone when support was available.</p>
<p><strong>What 2025 taught us:</strong><br />Growth accelerates when we ask for help. Admitting uncertainty opens doors to learning, collaboration, and progress. No meaningful career is built in isolation.</p>
<h1 id="heading-looking-ahead"><strong>Looking Ahead</strong></h1>
<p>As the year ends, one truth becomes clear: 2025 didn’t leave us unchanged. It refined us. The mistakes we made sharpened our judgment. The challenges we faced built resilience. The pauses we resisted taught us patience.</p>
<p>The next year doesn’t require perfection.<br />It asks for presence, humility, and willingness to keep learning.</p>
<p>And that is something 2025 has already given us.</p>
<blockquote>
<p><strong>“We don’t step into the future flawless; we step into it informed, steady, and ready.”</strong></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[How AI Is Slowly Degrading Our Emotions]]></title><description><![CDATA[Artificial Intelligence is everywhere — in our phones, cars, jobs, and even our thinking. It’s faster, smarter, and undeniably convenient. But beneath the convenience lies a subtle danger:
AI is quietly numbing human emotions.
Machines are quietly fr...]]></description><link>https://blog.douglas.africa/how-ai-is-slowly-degrading-our-emotions</link><guid isPermaLink="true">https://blog.douglas.africa/how-ai-is-slowly-degrading-our-emotions</guid><category><![CDATA[AI]]></category><category><![CDATA[#emotional intelligence]]></category><category><![CDATA[psychology]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Fri, 28 Nov 2025 17:49:20 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/lQ9NstOAkyo/upload/ce2bd6b1cba641aaef66a647af73d5ea.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Artificial Intelligence is everywhere — in our phones, cars, jobs, and even our thinking. It’s faster, smarter, and undeniably convenient. But beneath the convenience lies a subtle danger:</p>
<p><strong>AI is quietly numbing human emotions.</strong></p>
<p>Machines are quietly freezing the human heart in ways that slowly dull our ability to feel, connect, and respond deeply. Here’s how this is happening — and what we can do to resist it.</p>
<h2 id="heading-1-ai-provides-instant-validation-human-connection-feels-slow">1) AI Provides Instant Validation — Human Connection Feels Slow</h2>
<p>AI is always available, polite, supportive, and patient. It validates our ideas, gives us instant feedback, and even comforts us. It provides an instant dopamine hit of agreement.</p>
<p>In contrast, human relationships require time, effort, patience, and vulnerability. Over-relying on AI for validation trains us to expect emotional shortcuts. Slowly, real human connection starts to feel inconvenient — and the heart detaches.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">We adapt to the path of least emotional resistance. We lose the tolerance for the vital awkwardness, disagreement, and negotiation that forge deep human bonds.</div>
</div>

<h2 id="heading-2-ai-gives-emotional-responses-without-emotional-reality">2) AI Gives Emotional Responses Without Emotional Reality</h2>
<p>AI can simulate empathy, encouragement, and conversation, but it doesn’t <em>feel</em>. When we repeatedly interact with AI-generated emotions, we risk confusing simulation with reality.</p>
<p>Over time, we lose depth in how we perceive and respond to genuine emotions. Comfort and connection feel shallow, like a candy substitute for real nourishment. This constant intake of emotional 'junk food' subtly lowers our standards for authentic connection, making real, messy empathy feel like too much work.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">The real danger here is '<strong>Emotional Devaluation</strong>': we begin to downplay real human feeling when we see it perfectly mimicked by a non-human algorithm.</div>
</div>

<h2 id="heading-3-ai-reduces-real-human-interaction">3) AI Reduces Real Human Interaction</h2>
<p>People increasingly rely on AI for:</p>
<ul>
<li><p>Advice (<em>Instead of a mentor or elder)</em></p>
</li>
<li><p>Journaling support (<em>Instead of a trusted friend or partner</em>)</p>
</li>
<li><p>Chat companionship (<em>Instead of a real social circle</em>)</p>
</li>
<li><p>Therapy (<em>As a first and sometimes only resort</em>)</p>
</li>
</ul>
<p>These interactions are convenient, but they <strong>reduce the need for authentic human engagement</strong> — the kind that requires listening, patience, empathy, and emotional labor.</p>
<p>When emotional muscles aren’t exercised, they weaken.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">If we don't practice the hard work of truly listening to a friend's nuanced problem and formulating an unscripted, caring response, our capacity for genuine empathy dies.</div>
</div>

<h2 id="heading-4-ai-makes-life-predictable-but-emotions-thrive-on-unpredictability">4) AI Makes Life Predictable — But Emotions Thrive on Unpredictability</h2>
<p>AI optimizes schedules, feeds, and workflows for maximum efficiency. Everything becomes smooth, fast, and predictable. It is designed to eliminate 'friction'—the small annoyances, unexpected detours, and minor crises that interrupt the routine.</p>
<p>Yet emotions arise from the messy, unpredictable moments of life: surprises, conflicts, flaws, and spontaneous connections. By removing friction, AI also <strong>removes the emotional sparks that make us fully human.</strong></p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">We become less prepared to handle real-world disappointment because our digital world is perfectly curated for gratification.</div>
</div>

<h2 id="heading-5-ai-creates-pseudo-companions">5) AI Creates Pseudo-Companions</h2>
<p>Many people now use AI to vent, confess, or seek comfort. While it may feel satisfying, this is one-directional emotional energy. Real human reciprocity is absent, which can lead to:</p>
<ul>
<li><p>Emotional isolation</p>
</li>
<li><p>Reduced tolerance for human flaws (AI is flawless in its scripted response; real people are not)</p>
</li>
<li><p>Weakened desire for real relationships</p>
</li>
</ul>
<p>The convenience of AI <strong>slowly</strong> <strong>replaces the richness of authentic emotional experience.</strong></p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">The feedback loop of a real conversation—the pause, the frown, the shared silence—is the engine of intimacy. A bot cannot provide this. We mistake being <em>heard</em> for being <em>seen</em> and <em>understood</em> by another complex consciousness.</div>
</div>

<h2 id="heading-6-ai-overstimulates-the-mind-and-understimulates-the-heart">6) AI Overstimulates the Mind and Understimulates the Heart</h2>
<p>Endless AI-curated content, infinite scrolls, and personalized feeds overstimulate the mind while failing to nurture the heart. The <strong>brain’s response is to shut down emotionally</strong>, resulting in:</p>
<ul>
<li><p>Reduced empathy</p>
</li>
<li><p>Emotional flattening</p>
</li>
<li><p>Shorter patience</p>
</li>
<li><p>Less joy from simple experiences</p>
</li>
</ul>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">The constant novelty and perfect relevance of an optimized feed keeps the intellectual and pleasure centers of the brain engaged, but it bypasses the deeper emotional centers tied to shared experience and physical presence.</div>
</div>

<h2 id="heading-7-ai-accelerates-life-but-emotions-require-slowness">7) AI Accelerates Life — But Emotions Require Slowness</h2>
<p>AI speeds everything: content creation, decision-making, learning, and entertainment. But emotions need reflection, slowness, and ambiguity. We need time for rumination, for a feeling to move from a raw sensation to a deeply integrated personal lesson.</p>
<p><strong>If life moves too fast, our emotional system can’t process experiences deeply</strong>. We become numb, not because we are unfeeling, but because our emotions are bypassed by efficiency.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">We are praised for our efficiency and punished for our hesitation. We swap 'being present' for 'being productive,' leaving no space for the subtle, slow work of the soul.</div>
</div>

<h2 id="heading-how-to-stay-emotionally-alive-in-the-ai-era">How to Stay Emotionally Alive in the AI Era</h2>
<ol>
<li><p><strong>Choose real conversations over automated ones.</strong> Talk to people, not bots. <em>Schedule time for in-person or voice-to-voice communication.</em></p>
</li>
<li><p><strong>Embrace emotional friction.</strong> Don’t always run to AI for comfort or solutions. <em>Allow yourself to be bored, challenged, or annoyed, and solve the problem with human effort.</em></p>
</li>
<li><p><strong>Limit emotional outsourcing.</strong> AI should assist, not replace human interactions. <em>Keep a clear boundary: AI for information, humans for intimacy.</em></p>
</li>
<li><p><strong>Practice reflection.</strong> Journal, meditate, and sit with your feelings. <em>The internal world must be prioritized over the external feed.</em></p>
</li>
<li><p><strong>Re-train empathy.</strong> Listen intentionally and respond fully to real people. <em>When someone speaks, put your phone down and dedicate 100% of your attention.</em></p>
</li>
<li><p><strong>Protect silence and stillness.</strong> Not everything needs to be optimized. <em>Take a 'digital Sabbath'—a day or period without efficiency-focused technology.</em></p>
</li>
<li><p><strong>Maintain messy, real human presence.</strong> Eye contact, tone, and shared space matter.</p>
</li>
</ol>
<h2 id="heading-conclusion">Conclusion</h2>
<p>AI is powerful. AI is useful. AI is here to stay.</p>
<p>But so is the human heart — if we protect it. Without emotional depth, we risk becoming efficient yet empty, alive yet unfeeling — digital zombies in a hyper-connected world.</p>
<p><strong>The moment we outsource our emotions to machines, we lose the very thing that makes us human.</strong></p>
<p>It’s time to wake up, slow down, and reclaim our hearts.</p>
]]></content:encoded></item><item><title><![CDATA[The Illusion of Being Lowkey on Social Media]]></title><description><![CDATA[In today’s world, saying “I’m lowkey on social media” sounds noble — as if silence equals peace, and privacy equals maturity. But here’s the truth: being lowkey isn’t always strategic.
While protecting your personal life is wise, being invisible onli...]]></description><link>https://blog.douglas.africa/the-illusion-of-being-lowkey-on-social-media</link><guid isPermaLink="true">https://blog.douglas.africa/the-illusion-of-being-lowkey-on-social-media</guid><category><![CDATA[#digitalnetworking]]></category><category><![CDATA[social media]]></category><category><![CDATA[Career Growth]]></category><category><![CDATA[Online presence]]></category><category><![CDATA[Personal growth  ]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Fri, 07 Nov 2025 22:23:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/-Q_t4SCN8c4/upload/1db1a137585e05863581d9f05f0d1aa0.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In today’s world, saying <em>“I’m lowkey on social media”</em> sounds noble — as if silence equals peace, and privacy equals maturity. But here’s the truth: <strong>being lowkey isn’t always strategic.</strong></p>
<p>While protecting your personal life is wise, being invisible online can cost you opportunities, credibility, and connections. In the digital age, people can’t find what they can’t see.</p>
<p>This article explores the <strong>modern illusion of being lowkey on social media</strong> — and how to stay private <em>without disappearing professionally.</em></p>
<h2 id="heading-1-the-myth-of-being-lowkey">1. The Myth of “Being Lowkey”</h2>
<p>Many people believe being lowkey means being balanced or authentic. But often, it’s a form of digital withdrawal.<br />You might be active — scrolling, liking, watching — but you’re not <em>intentional</em> about showing up.</p>
<p>Being lowkey becomes a comfort zone that keeps you from sharing your ideas, lessons, or expertise.<br />And in a world where visibility creates opportunity, silence can be mistaken for absence.</p>
<blockquote>
<p>You don’t need to be an influencer — you just need to be <em>discoverable.</em></p>
</blockquote>
<h2 id="heading-2-separate-personal-presence-from-professional-presence">2. Separate <em>Personal Presence</em> from <em>Professional Presence</em></h2>
<p>You can be lowkey about your personal life but loud about your professional growth.<br />Create clear boundaries:</p>
<ul>
<li><p><strong>Private life:</strong> Keep family, relationships, and personal moments off your public profiles.</p>
</li>
<li><p><strong>Professional life:</strong> Share your thoughts, projects, and insights on platforms like LinkedIn or X (Twitter).</p>
</li>
</ul>
<p>This distinction helps you stay grounded while still building credibility.<br />It’s not about oversharing — it’s about <em>showing up where it counts.</em></p>
<h2 id="heading-3-share-value-not-personal-details">3. Share Value, Not Personal Details</h2>
<p>You don’t have to talk about your life to stand out.<br />Talk about your <em>thinking.</em></p>
<p>Examples of what to share:</p>
<ul>
<li><p>Lessons from projects you’ve worked on</p>
</li>
<li><p>Industry insights or trends</p>
</li>
<li><p>Tips, tools, or workflows that improve your work</p>
</li>
<li><p>Reflections on leadership or creativity</p>
</li>
</ul>
<p>This is what builds thought leadership — not selfies or personal updates.</p>
<blockquote>
<p>The goal isn’t to go viral. The goal is to be <em>valuable.</em></p>
</blockquote>
<h2 id="heading-4-use-platforms-strategically">4. Use Platforms Strategically</h2>
<p>Every platform serves a different purpose. Learn their strengths:</p>
<ul>
<li><p><strong>LinkedIn:</strong> Professional storytelling, insights, and achievements</p>
</li>
<li><p><strong>X (Twitter):</strong> Short thoughts, commentary, and industry discussions</p>
</li>
<li><p><strong>Instagram:</strong> Optional — keep it private or turn it into a curated professional gallery</p>
</li>
</ul>
<p>You don’t have to be everywhere — just <em>where your audience is.</em></p>
<h2 id="heading-5-engage-more-than-you-post">5. Engage More Than You Post</h2>
<p>Don’t want to post all the time? That’s fine.<br />You can still build visibility by <strong>engaging intentionally</strong>:</p>
<ul>
<li><p>Leave meaningful comments on other professionals’ posts</p>
</li>
<li><p>Repost valuable insights with your own perspective</p>
</li>
<li><p>Join discussions in your niche</p>
</li>
</ul>
<p>Engagement builds recognition.<br />Sometimes the quietest voices become the most respected ones online.</p>
<h2 id="heading-6-think-of-it-as-digital-networking">6. Think of It as <em>Digital Networking</em></h2>
<p>Social media isn’t just for fun — it’s modern networking.<br />Your online presence is your digital handshake.</p>
<p>People discover mentors, job offers, and partnerships through visibility.<br />Being “lowkey” doesn’t mean you can’t show up — it means you show up <em>with purpose.</em></p>
<blockquote>
<p>You can protect your peace and still promote your purpose.</p>
</blockquote>
<h2 id="heading-the-real-flex-digital-clarity">The Real Flex: Digital Clarity</h2>
<p>The real power isn’t in being unseen — it’s in being <strong>clear</strong> about what you want to be known for.<br />Being lowkey out of fear is hesitation.<br />Being lowkey with intention is strategy.</p>
<p>In a noisy world, you don’t have to shout — you just have to be <em>consistent.</em></p>
<h2 id="heading-final-thought">💬 Final Thought</h2>
<p>You don’t have to choose between <strong>privacy</strong> and <strong>presence.</strong><br />You can protect your private life while still building a public professional identity.</p>
<p>The modern illusion of being lowkey is that silence equals strength.<br />But in truth — <strong>clarity is the new lowkey.</strong></p>
]]></content:encoded></item><item><title><![CDATA[Windows 10 Support Is Ending — What It Means]]></title><description><![CDATA[Microsoft officially ends support for Windows 10 on 14th October 2025. What does this mean for organizations in Kenya and Africa? Learn the risks, costs, and upgrade options — plus a practical migration checklist.
This affects Kenyan SMEs, corporates...]]></description><link>https://blog.douglas.africa/windows-10-support-is-ending-what-it-means</link><guid isPermaLink="true">https://blog.douglas.africa/windows-10-support-is-ending-what-it-means</guid><category><![CDATA[Windows]]></category><category><![CDATA[Windows 10]]></category><category><![CDATA[windows 11]]></category><category><![CDATA[Microsoft]]></category><category><![CDATA[Africa]]></category><category><![CDATA[kenya]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Tue, 14 Oct 2025 17:05:14 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1760463971865/8b25c70e-bd2c-46a5-9dc2-bcc623ecf54d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Microsoft officially ends support for Windows 10 on 14th October 2025.</strong> What does this mean for organizations in Kenya and Africa? Learn the risks, costs, and upgrade options — plus a practical migration checklist.</p>
<p>This affects <strong>Kenyan SMEs, corporates, SACCOs, NGOs, hospitals, schools, and government agencies</strong> — many of whom still rely on Windows 10 for daily operations.</p>
<p>While your computers will continue working beyond that date, <strong>they will no longer receive security updates</strong>, leaving systems <strong>vulnerable to cyberattacks, compliance issues, and system failures</strong>.</p>
<p>Let’s break down what this means locally — and what your organization should do about it.</p>
<h2 id="heading-what-does-end-of-support-mean">What Does "End of Support" Mean?</h2>
<p>After 14th October 2025:</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>What Stops Working</td><td>Impact</td></tr>
</thead>
<tbody>
<tr>
<td>⚠️ <strong>No more security updates</strong></td><td>New cyber threats remain unpatched, increasing risk of hacking and ransomware.</td></tr>
<tr>
<td>⚠️ <strong>No more bug fixes or feature updates</strong></td><td>System stability declines: compatibility issues grow.</td></tr>
<tr>
<td>⚠️ <strong>Software &amp; hardware vendors may stop supporting Windows 10</strong></td><td>Antivirus tools, accounting systems, HRMS, ERP, EMR, and printer drivers may stop working.</td></tr>
<tr>
<td>⚠️ <strong>Loss of compliance</strong></td><td>Organizations following standards such as <em>ISO 27001, GDPR, PCI DSS, or Data Protection Act (Kenya)</em> may face audit failures.</td></tr>
</tbody>
</table>
</div><p>In simple terms: <strong>You can continue using Windows 10, but at your own risk.</strong></p>
<h2 id="heading-why-this-matters-more-in-africa">Why This Matters More in Africa</h2>
<p>Unlike Europe or the U.S., <strong>many African organizations keep computers for 6–10+ years</strong> — long beyond manufacturer recommendations.</p>
<ul>
<li><p><strong>Government offices</strong>, <strong>schools</strong>, <strong>hospitals</strong>, and <strong>universities</strong> often use <strong>older machines that may not support Windows 11</strong>.</p>
</li>
<li><p><strong>Local cybercrime is rising</strong> — Kenya ranked among the <strong>top 5 most targeted African countries</strong> by cyberattacks (Communications Authority, 2023 report).</p>
</li>
<li><p>Many <strong>SMEs run mission-critical apps on outdated PCs</strong> — including <em>Sacco software, Excel-based finance tools, MPESA integration desktops</em>, etc.</p>
</li>
</ul>
<p>Remaining on Windows 10 <strong>without security updates</strong> will <strong>quickly become a liability</strong>.</p>
<h2 id="heading-what-are-your-options">What Are Your Options?</h2>
<p><strong>Option 1: Upgrade to Windows 11 (Best if Hardware Supports It)</strong></p>
<ul>
<li><p>Modern interface, stronger security (TPM 2.0), better performance.</p>
</li>
<li><p>Requires recent processors — most PCs bought <strong>from 2020 onwards</strong> may qualify.</p>
</li>
</ul>
<p><strong>Option 2: Replace Old PCs (If Not Compatible)</strong></p>
<ul>
<li><p>Machines older than <strong>2016–2018</strong> may not meet Windows 11 requirements.</p>
</li>
<li><p>Consider <strong>budget-friendly bulk purchases or leasing models</strong>.</p>
</li>
</ul>
<p><strong>Option 3: Explore Cloud or Virtual Desktops</strong></p>
<ul>
<li><p>Services like <strong>Windows 365 / Azure Virtual Desktop</strong> let users access Windows 11 <strong>from old machines via the cloud</strong>.</p>
</li>
<li><p>Ideal for <strong>remote teams, call centers, hospitals, or shared kiosks</strong>.</p>
</li>
</ul>
<p><strong>Option 4: Pay for <em>Extended Security Updates</em> — But Only as Temporary Relief</strong></p>
<p>Microsoft will sell <strong>paid security updates</strong>, but the cost increases every year, making it more expensive than upgrading.</p>
<hr />
<h2 id="heading-upgrade-vs-delay-quick-comparison">Upgrade vs Delay — Quick Comparison</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>Decision</strong></td><td><strong>Short-Term Benefit</strong></td><td><strong>Long-Term Risk / Cost</strong></td></tr>
</thead>
<tbody>
<tr>
<td>Upgrade Now</td><td>Improved security, better performance</td><td>One-time setup cost</td></tr>
<tr>
<td>Delay &amp; Wait</td><td>No immediate changes</td><td>Higher cyber risk, future panic upgrades</td></tr>
<tr>
<td>Ignore &amp; Continue</td><td>Zero cost today</td><td>Major exposure to hacking, compliance failure</td></tr>
</tbody>
</table>
</div><hr />
<h2 id="heading-migration-checklist-for-your-it-team">Migration Checklist for Your IT Team</h2>
<ol>
<li><p><strong>Audit current PCs</strong> — note model, processor, RAM, storage, OS version.</p>
</li>
<li><p><strong>Check Windows 11 compatibility</strong> using Microsoft’s “PC Health Check Tool.”</p>
</li>
<li><p><strong>Identify business apps t</strong>hat must be tested (ERPs, POS, HR, medical, accounting, etc).</p>
</li>
<li><p><strong>Create phased upgrade plan —</strong> start with IT &amp; management, then rollout by department.</p>
</li>
<li><p><strong>Decide:</strong> Upgrade, replace, or cloud-host older machines.</p>
</li>
<li><p><strong>Train users early</strong> to minimize resistance.</p>
</li>
</ol>
<h2 id="heading-final-recommendation">Final Recommendation</h2>
<p>The end of Windows 10 support is not just a technical deadline — <strong>it’s a cybersecurity and business continuity issue.</strong></p>
<p>Organizations that <strong>plan early</strong> will enjoy:</p>
<ul>
<li><p><strong>Better security</strong></p>
</li>
<li><p><strong>Higher efficiency &amp; compatibility</strong></p>
</li>
<li><p><strong>Lower long-term IT costs</strong></p>
</li>
</ul>
<p>Those who wait risk <strong>data breaches, legal exposure, and operational breakdowns.</strong></p>
<p><strong>Where do you go from this point?</strong></p>
<p>Consult your IT team/service provider for migration support. They can help assess compatibility, create a rollout plan, and ensure smooth transition without disrupting business operations. You can also check out on the official Microsoft website for minimum Windows 11 Requirements. Click <a target="_blank" href="https://www.microsoft.com/en-us/windows/windows-11-specifications"><mark>here</mark></a></p>
]]></content:encoded></item><item><title><![CDATA[The False Sense of IT Security]]></title><description><![CDATA[When it comes to cybersecurity, over confidence can be dangerous. Many organizations and individuals believe they are well protected, but they often rely on a false sense of security. These illusions create blind spots that attackers are more than ha...]]></description><link>https://blog.douglas.africa/the-false-sense-of-it-security</link><guid isPermaLink="true">https://blog.douglas.africa/the-false-sense-of-it-security</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[IT_Security]]></category><category><![CDATA[AntiVirus]]></category><category><![CDATA[firewall]]></category><category><![CDATA[compliance ]]></category><category><![CDATA[phishing]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Fri, 26 Sep 2025 17:27:51 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/FnA5pAzqhMM/upload/fa70692e27592bd0f15f2b61fdd373ad.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When it comes to cybersecurity, over confidence can be dangerous. Many organizations and individuals believe they are well protected, but they often rely on a false sense of security. These illusions create blind spots that attackers are more than happy to exploit.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Cybersecurity is often less about the tools you have and more about the assumptions you make. Unfortunately, some of these assumptions are illusions that leave systems wide open to attack.</div>
</div>

<p>In this article we will focus on some of the common illusions and how to navigate through.</p>
<h3 id="heading-we-have-antivirus-so-were-safe">We Have Antivirus, So We’re Safe.</h3>
<p>For years, installing <strong>antivirus was considered the ultimate protection</strong>. But attackers have evolved. Modern ransomware, phishing attempts, and zero-day exploits slip past traditional antivirus tools with ease. Antivirus is still useful, but it’s only one lock on a very large door. Without additional layers like endpoint detection, frequent updates, and user training, it gives more comfort than true protection.</p>
<h3 id="heading-our-firewall-will-keep-hackers-out">Our Firewall Will Keep Hackers Out</h3>
<p>Firewalls are often treated as digital walls that keep intruders out. <strong>But many breaches happen from the inside.</strong> A firewall won’t stop an employee from opening a malicious attachment or prevent an insider with the right access from causing damage. Firewalls are essential, yes — but they are just one layer in a multi-layered defense system.</p>
<h3 id="heading-were-too-small-to-be-targeted">We’re Too Small to Be Targeted</h3>
<p>Small businesses, schools, and even individuals often assume hackers only care about large corporations. <strong>In reality, cybercriminals love easy prey, and smaller organizations with weaker defenses</strong> make attractive targets. Being small doesn’t make you invisible; it makes you vulnerable. The good news? Even basic steps — like enabling multi-factor authentication, keeping systems patched, and maintaining secure backups — can significantly raise the bar.</p>
<h3 id="heading-cloud-providers-handle-all-security">Cloud Providers Handle All Security</h3>
<p>The move to cloud services has brought great convenience, but it has also introduced a dangerous misconception: that security is entirely the provider’s responsibility<strong>.</strong> In truth, cloud security is shared. Providers secure the infrastructure, but the customer must secure their own data, access, and configurations. <strong>A misconfigured storage bucket or weak admin password is still your problem</strong> — not the cloud vendor’s.</p>
<h3 id="heading-compliance-equals-security">Compliance Equals Security</h3>
<p>A different kind of illusion lies in treating compliance as the same thing as security. Passing an audit often gives organizations a false sense of achievement. Compliance is important, but it only proves that you met minimum standards at a specific point in time. <strong>Hackers don’t care about your certificates or ticked boxes — they care about your weak points</strong>. Real security means going beyond compliance and nurturing a culture that adapts as new threats emerge.</p>
<h3 id="heading-employees-wont-click-suspicious-links">Employees Won’t Click Suspicious Links</h3>
<p>Perhaps the most underestimated risk is the human one. Many leaders assume employees are too smart to fall for phishing emails. <strong>But attackers prey on psychology — fear, urgency, and curiosity</strong> — and even well-trained staff sometimes click. The answer isn’t just more awareness sessions. Organizations need a culture where staff feel comfortable reporting suspicious activity, backed up by simulations, and layered defenses that don’t rely on human perfection.</p>
<h3 id="heading-final-thought">Final Thought</h3>
<p>The greatest threat in cybersecurity isn’t only the hacker on the other side of the screen — it’s the <strong>false confidence</strong> that makes us lower our guard. Breaking free from these illusions and embracing a layered, proactive approach is how organizations and individuals move from the comfort of myths to the reality of resilience.</p>
]]></content:encoded></item><item><title><![CDATA[How Social Media Shapes Our Beliefs Through Algorithms]]></title><description><![CDATA[When you scroll through YouTube, Facebook, Instagram, or TikTok, it feels like the feed “knows you.” The posts, videos, and ads seem tailored to your interests. That’s because they are. Social media algorithms watch what you click, like, and share, t...]]></description><link>https://blog.douglas.africa/how-social-media-shapes-our-beliefs-through-algorithms</link><guid isPermaLink="true">https://blog.douglas.africa/how-social-media-shapes-our-beliefs-through-algorithms</guid><category><![CDATA[social media]]></category><category><![CDATA[algorithms]]></category><category><![CDATA[psychology]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Mon, 08 Sep 2025 18:32:43 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/GaUF0znKwfA/upload/1be2c50bbad6eff38f57e85a0b897efe.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When you scroll through YouTube, Facebook, Instagram, or TikTok, it feels like the feed “knows you.” The posts, videos, and ads seem tailored to your interests. That’s because they are. Social media algorithms watch what you click, like, and share, then serve you more of the same.</p>
<p>On the surface, this feels convenient—you get more of what you enjoy. But behind the scenes, these systems are creating <strong>echo chambers</strong>: digital bubbles that keep reinforcing what you already believe.</p>
<h2 id="heading-why-our-brains-fall-for-it-confirmation-bias">Why Our Brains Fall for It: Confirmation Bias</h2>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Humans naturally look for information that confirms what we already think. Psychologists call this <strong>confirmation bias</strong>.</div>
</div>

<p>Confirmation bias may naturally filter out anything that challenges it.</p>
<ul>
<li><p>Before social media, this showed up in who we spent time together with, the books we chose, or the news channels we trusted.</p>
</li>
<li><p>Now, algorithms turbocharge this bias. Instead of bumping into opposing views, we mostly see content that validates our own.</p>
</li>
</ul>
<p>It feels good, but it also narrows our perspective.</p>
<h2 id="heading-how-algorithms-build-the-cycle">How Algorithms Build the Cycle</h2>
<p>Algorithms aren’t neutral. Their job is to keep you scrolling because your attention means more ad revenue. The easiest way to do that is by showing you things you’re likely to agree with and react to emotionally.</p>
<p>This creates a cycle:</p>
<ol>
<li><p><strong>You Engage</strong> – You like or share a post that fits your beliefs.</p>
</li>
<li><p><strong>Algorithm Learns</strong> – It records that preference.</p>
</li>
<li><p><strong>More of the Same</strong> – You’re shown similar posts and creators.</p>
</li>
<li><p><strong>Belief Reinforced</strong> – The more you see it, the “truer” it feels.</p>
</li>
</ol>
<p>Over time, your feed becomes an echo chamber—a place where your opinions bounce back at you louder each time.</p>
<h2 id="heading-the-impact-on-us-and-society">The Impact on Us and Society</h2>
<p>This constant reinforcement isn’t harmless. It changes how we see the world:</p>
<ul>
<li><p><strong>Polarization Grows</strong> – Different groups stop hearing each other, making dialogue harder.</p>
</li>
<li><p><strong>Misinformation Spreads</strong> – If something “feels” true, it gets shared—even if it’s false.</p>
</li>
<li><p><strong>Radicalization Risk</strong> – Algorithms can push people from mild content toward extreme views.</p>
</li>
<li><p><strong>Empathy Shrinks</strong> – Without seeing other perspectives, it’s harder to understand people who disagree with us.</p>
</li>
</ul>
<h2 id="heading-how-to-break-out-of-the-echo-chamber">How to Break Out of the Echo Chamber</h2>
<p>Escaping isn’t easy—social media isn’t designed for balance. But here are small steps you can take:</p>
<ul>
<li><p><strong>Follow Different Voices</strong> – Intentionally seek accounts that challenge your worldview.</p>
</li>
<li><p><strong>Use Multiple Sources</strong> – Check news and opinions outside your usual bubble.</p>
</li>
<li><p><strong>Pause Before Sharing</strong> – Ask: “Do I know this is accurate, or do I just want it to be true?”</p>
</li>
<li><p><strong>Take Breaks</strong> – Step away from the algorithm and get perspective offline.</p>
</li>
</ul>
<h2 id="heading-the-bigger-picture">The Bigger Picture</h2>
<p>Social media can connect us, but it can also trap us in curated realities. Recognizing that algorithms are shaping what we see is the first step. The more we actively choose diverse perspectives, the less control the echo chamber has over us.</p>
]]></content:encoded></item><item><title><![CDATA[AI and SHA: Digital Fraud Detection in Kenya’s Healthcare System]]></title><description><![CDATA[Digital Healthcare in Kenya
Kenya’s Digital Health Bill (2023) is ushering in a new era of data-driven governance in healthcare. At the center of this reform is the Social Health Authority (SHA), which oversees claims integrity and ensures that publi...]]></description><link>https://blog.douglas.africa/ai-based-fraud-detection-in-kenyas-social-health-insurance</link><guid isPermaLink="true">https://blog.douglas.africa/ai-based-fraud-detection-in-kenyas-social-health-insurance</guid><category><![CDATA[social healthcare]]></category><category><![CDATA[healthcare]]></category><category><![CDATA[kenya]]></category><category><![CDATA[insurance]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Fri, 29 Aug 2025 17:06:51 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/J5UTvRgse7Q/upload/e0ec90d3205d35e096c4c979007f9be2.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-digital-healthcare-in-kenya">Digital Healthcare in Kenya</h2>
<p>Kenya’s <strong>Digital Health Bill (2023)</strong> is ushering in a new era of data-driven governance in healthcare. At the center of this reform is the <strong>Social Health Authority (SHA)</strong>, which oversees claims integrity and ensures that public resources under Universal Health Coverage (UHC) are used transparently.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Fraudulent claims—ranging from ghost patients and facilities to exaggerated billing—have historically drained funds meant for genuine care. While SHA has introduced biometric verification and centralized claims management, <strong>AI technologies offer the next leap forward</strong>.</div>
</div>

<p>By enabling intelligent automation, AI shifts fraud detection <strong>real-time prevention</strong>. Among the most promising approaches are <strong>Natural Language Processing (NLP)</strong>, <strong>real-time claims validation</strong>, and <strong>anomaly detection</strong>. Together, these form a powerful triad for <strong>automated fraud detection and claims integrity</strong>.</p>
<h2 id="heading-1-natural-language-processing-nlp-for-claims-review">1. Natural Language Processing (NLP) for Claims Review</h2>
<p>NLP enables machines to analyze clinical notes and medical text—areas where fraud often hides.</p>
<ul>
<li><p><strong>How it works</strong>: AI scans discharge summaries and treatment notes, cross-references diagnosis codes (ICD-10), and checks narrative consistency across encounters.</p>
</li>
<li><p><strong>Fraud detection examples</strong>:</p>
<ul>
<li><p><strong>Inflated claims</strong>: Billing for a major surgery when notes show a minor one.</p>
</li>
<li><p><strong>Ghost billing</strong>: Charging for services with no supporting documentation.</p>
</li>
<li><p><strong>Contradictions</strong>: A patient marked as pregnant in one visit but listed as male in another.</p>
</li>
</ul>
</li>
</ul>
<p>🔍 <em>This tool is especially impactful in rural or high-volume hospitals where manual audits are unrealistic.</em></p>
<h2 id="heading-2-real-time-claims-validation-with-ai-rules-engine">2. Real-Time Claims Validation with AI Rules Engine</h2>
<p>An AI-powered rules engine acts as the <strong>automated gatekeeper</strong> in SHA’s claims system.</p>
<ul>
<li><p><strong>How it works</strong>: Claims are instantly checked against accredited rules e.g <em>(is the provider authorized?), clinical protocols (is treatment appropriate for the diagnosis?), and patient history (has the service already been provided?).</em></p>
</li>
<li><p><strong>Red flags caught instantly</strong>:</p>
<ul>
<li><p>Duplicate or double billing.</p>
</li>
<li><p>Non-compliant providers billing outside their scope.</p>
</li>
<li><p>Illogical claims such as maternity services for male patients.</p>
</li>
</ul>
</li>
</ul>
<p>⚡ <em>By intercepting errors before payout, SHA can save millions lost to fraudulent or inaccurate claims.</em></p>
<h2 id="heading-3-anomaly-detection-in-provider-behavior">3. Anomaly Detection in Provider Behavior</h2>
<p>AI also monitors provider behavior to spot unusual or suspicious activity.</p>
<ul>
<li><p><strong>What it tracks</strong>: Sudden spikes in certain procedures, frequent billing for rare conditions (e.g., snakebites in Nairobi), or claims submitted in bulk at odd hours.</p>
</li>
<li><p><strong>Techniques applied</strong>:</p>
<ul>
<li><p><strong>Unsupervised learning</strong> identifies anomalies without requiring pre-labeled fraud data.</p>
</li>
<li><p><strong>Clustering and outlier detection</strong> group providers with similar patterns and flag those behaving abnormally.</p>
</li>
</ul>
</li>
</ul>
<p>📈 <em>This helps detect subtle, long-term fraud strategies that evade traditional rules.</em></p>
<h2 id="heading-alignment-with-the-digital-health-bill">Alignment with the Digital Health Bill</h2>
<p>The <strong>Digital Health Bill 2023</strong> requires all AI-enabled systems to uphold:</p>
<ul>
<li><p><strong>Role-based access controls</strong> to protect sensitive health data.</p>
</li>
<li><p><strong>Consent protocols</strong> for secondary data use.</p>
</li>
<li><p><strong>Audit trails</strong> for every AI decision.</p>
</li>
<li><p><strong>Encryption and backups</strong> for secure data storage.</p>
</li>
</ul>
<p>This ensures AI enhances SHA’s fraud detection <strong>without compromising privacy or trust</strong>.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>The Digital Health Bill provides the governance framework; AI provides the intelligence layer. When combined, they empower SHA to prevent fraud proactively, protect public funds, and restore confidence in UHC.</p>
<p>By deploying NLP, real-time validation, and anomaly detection, Kenya can transform SHA into a <strong>global leader in AI-driven health governance</strong>, ensuring that every shilling reaches the patients it is meant to serve.</p>
]]></content:encoded></item><item><title><![CDATA[From Cloud to Village: AI for Rural Kenya]]></title><description><![CDATA[For years, Artificial Intelligence (AI) has dominated conversations in global tech hubs, but here in Kenya, the story is shifting. We’re no longer just observers; we’re shaping how akili bandia can work for our mashinani—our farms, schools, health cl...]]></description><link>https://blog.douglas.africa/ai-for-rural-kenya</link><guid isPermaLink="true">https://blog.douglas.africa/ai-for-rural-kenya</guid><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[kenya]]></category><category><![CDATA[#RuralHealthcare]]></category><category><![CDATA[rural development]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Fri, 15 Aug 2025 17:42:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/xDxiO7sldis/upload/e7546cff28e89b63591cfb50100e541b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For years, Artificial Intelligence (AI) has dominated conversations in global tech hubs, but here in Kenya, the story is shifting. We’re no longer just observers; we’re shaping how <em>akili bandia</em> can work for our <em>mashinani</em>—our farms, schools, health clinics, and small businesses—where its impact can be the most transformative.</p>
<p>Life in rural Kenya comes with its own set of realities: limited healthcare access, unpredictable agricultural cycles, and infrastructure gaps. AI is not a magic wand, but when adapted to local needs, it can help communities leapfrog barriers that have held back development for decades.</p>
<h3 id="heading-a-day-in-rural-kenyawith-ai-in-the-picture">A Day in Rural Kenya—With AI in the Picture</h3>
<p>In a small village in Vihiga County, a community health worker visits a patient showing early signs of illness. Normally, getting a diagnosis might mean a long journey to the nearest hospital. But today, she uses an AI-powered app on her basic smartphone. The app works offline, guiding her through symptoms, suggesting possible conditions, and advising whether to refer the patient to a doctor.</p>
<p>It’s not replacing her judgment—it’s giving her the confidence and tools to act faster. The patient gets timely help, the health worker earns more trust in her role, and the community starts to see AI not as a distant tech buzzword, but as a trusted ally in daily life.</p>
<h3 id="heading-why-trust-is-the-game-changer">Why Trust is the Game-Changer</h3>
<p>For rural Kenya, AI adoption is not just about having the technology—it’s about whether people believe in it. Trust determines whether a farmer follows planting advice from an app or whether a health worker relies on an AI tool during a diagnosis.</p>
<p>Building that trust means:</p>
<ul>
<li><p><strong>Transparency:</strong> Explaining how AI reaches its conclusions in ways people understand.</p>
</li>
<li><p><strong>Accuracy:</strong> Testing solutions in Kenyan conditions to avoid early failures that break confidence.</p>
</li>
<li><p><strong>Data Privacy:</strong> Making it clear that local data will not be misused or sold.</p>
</li>
<li><p><strong>Local Endorsement:</strong> Involving village leaders, cooperatives, and NGOs so communities see AI as “theirs,” not as something imposed from outside.</p>
</li>
</ul>
<h3 id="heading-challenges-we-must-overcome">Challenges We Must Overcome</h3>
<p>AI for rural Kenya faces obstacles, but each has a path forward:</p>
<ul>
<li><p><strong>Connectivity &amp; Power:</strong> Offline-first design and community-owned solar solutions keep AI functional in low-infrastructure areas.</p>
</li>
<li><p><strong>Digital Literacy:</strong> Interfaces in local languages, visual guidance, and hands-on training help bridge the usability gap.</p>
</li>
<li><p><strong>Affordability (“The M-Pesa Factor”):</strong> Using open-source tools and simple devices keeps costs within reach.</p>
</li>
<li><p><strong>Local Data Relevance:</strong> Gathering Kenyan-specific datasets ensures AI understands and serves our realities.</p>
</li>
</ul>
<h3 id="heading-a-kenyan-approach-to-ai">A Kenyan Approach to AI</h3>
<p>Making AI work for rural Kenya is not just a tech project—it’s a people project. It requires innovators, government agencies, NGOs, and local communities working hand in hand to co-create tools that solve real problems. It means listening to those on the ground, integrating cultural contexts, and ensuring that solutions are both <em>trusted</em> and <em>useful</em>.</p>
<p>This isn’t just about importing technology; it’s about shaping it to fit us. With trust, transparency, and teamwork, AI can become a dependable partner in building a healthier, more resilient, and more prosperous Kenya.</p>
]]></content:encoded></item><item><title><![CDATA[Digital Inclusivity: Building Apps for the Rural Kenya]]></title><description><![CDATA[If you’ve used a smartphone in Kenya, you already know that there’s an app for nearly everything—except the things that matter most to ordinary Kenyans offline.
While the urban tech scene is booming with fintech, food delivery, and taxi apps, the dig...]]></description><link>https://blog.douglas.africa/digital-inclusivity-building-apps-for-the-rural-kenya</link><guid isPermaLink="true">https://blog.douglas.africa/digital-inclusivity-building-apps-for-the-rural-kenya</guid><category><![CDATA[offline]]></category><category><![CDATA[rural]]></category><category><![CDATA[kenya]]></category><category><![CDATA[apps]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Fri, 08 Aug 2025 19:01:27 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/9pForwRXkA4/upload/600c11d7b6a9482ffad2726316cf5416.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you’ve used a smartphone in Kenya, you already know that <strong>there’s an app for nearly everything—except the things that matter most to ordinary Kenyans offline.</strong></p>
<p>While the urban tech scene is booming with fintech, food delivery, and taxi apps, the digital revolution has left a huge part of the country behind. In rural and peri-urban communities, where data is expensive and network coverage vanishes at sunset, millions are still waiting for technology that works for them.</p>
<p>Let’s talk about what’s <strong>missing</strong> and why the next generation of Kenyan apps must put offline capability first.</p>
<h3 id="heading-the-problem-we-build-for-always-connected-users">The Problem: We Build for Always-Connected Users</h3>
<p>Most apps assume:<br />✅ You have a stable 4G connection<br />✅ You can afford to update 300MB every week<br />✅ You understand English instructions<br />✅ Your phone has enough storage for fancy animations</p>
<p>But reality looks different:</p>
<ul>
<li><p><strong>The Internet is expensive</strong> (most people buy bundles in KES 20–50 increments).</p>
</li>
<li><p><strong>Coverage is unreliable</strong> (especially in rural counties).</p>
</li>
<li><p><strong>Many devices are low-end Android phones</strong> with minimal space and slow processors.</p>
</li>
<li><p><strong>People need critical content offline</strong>: from health, education, agriculture, religion etc.</p>
</li>
</ul>
<p>Yet most apps are heavy, online-only, and not localized. Imagine the impact of apps that <strong>work anytime, anywhere</strong>, without eating up data bundles.</p>
<h3 id="heading-why-offline-apps-are-a-big-opportunity">Why Offline Apps Are a Big Opportunity</h3>
<p>Kenya’s digital divide is not about who has a smartphone—it’s about who has <strong>usable, affordable content</strong>.</p>
<p>By focusing on offline-first development, Kenyan innovators can:<br />✅ Serve millions of unaddressed users<br />✅ Reduce churn from expensive data usage<br />✅ Build trust and loyalty among communities<br />✅ Partner with NGOs, churches, and counties to scale distribution</p>
<hr />
<h3 id="heading-what-we-can-do-differently">What We Can Do Differently</h3>
<ol>
<li><p><strong>Design Small Apps</strong></p>
<ul>
<li><p>Keep APKs under 50MB</p>
</li>
<li><p>Use SQLite for local storage</p>
</li>
</ul>
</li>
<li><p><strong>Provide Downloadable Content Packs</strong></p>
<ul>
<li>Let users download only what they need</li>
</ul>
</li>
<li><p><strong>Include Local Language Options</strong></p>
<ul>
<li>Kiswahili and at least 2 vernaculars</li>
</ul>
</li>
<li><p><strong>Enable SMS-Based Sharing</strong></p>
<ul>
<li>So users can send summaries or records even without data</li>
</ul>
</li>
<li><p><strong>Partner Locally</strong></p>
<ul>
<li>Deploy apps through schools, churches, SACCOs and like-minded organizations</li>
</ul>
</li>
</ol>
<h3 id="heading-final-word">Final Word</h3>
<p>Kenya doesn’t just need more apps. It needs <strong>the right apps</strong>—apps that work when mobile data runs out, when the network signal drops, when users have a simple Android phone with 1GB RAM.</p>
<p>The next big opportunity in Kenyan tech isn't about office software. It's about creating practical, offline-first solutions that directly empower ordinary Kenyans in their daily lives.</p>
]]></content:encoded></item><item><title><![CDATA[Sacrificing Performance or Security in your application]]></title><description><![CDATA[Balancing performance and security is a constant challenge in software development. While security ensures that data remains protected and systems are resilient against attacks, performance guarantees a seamless user experience. But when should you p...]]></description><link>https://blog.douglas.africa/when-to-sacrifice-either-performance-or-security-in-your-application</link><guid isPermaLink="true">https://blog.douglas.africa/when-to-sacrifice-either-performance-or-security-in-your-application</guid><category><![CDATA[software development]]></category><category><![CDATA[Security]]></category><category><![CDATA[Performance Optimization]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Thu, 27 Mar 2025 19:34:41 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/m_HRfLhgABo/upload/5da2396ecd25bf35d0f1d40d447c93d2.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Balancing performance and security is a constant challenge in software development. While security ensures that data remains protected and systems are resilient against attacks, performance guarantees a seamless user experience. But when should you prioritize one over the other? In this article, we’ll explore when to prioritize one over the other and how to find the right balance.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">A well-built system isn’t just fast or just secure—it finds the perfect <strong>balance</strong> for the situation.</div>
</div>

<h2 id="heading-when-to-prioritize-security-over-performance"><strong>When to Prioritize Security Over Performance</strong></h2>
<p>In some cases, security is non-negotiable—even if it means sacrificing speed. Here are the key scenarios where security should take precedence:</p>
<h3 id="heading-1-handling-sensitive-data-finance-healthcare-government"><strong>1. Handling Sensitive Data (Finance, Healthcare, Government)</strong></h3>
<p>If your system deals with confidential information, security is more important than speed. Banking, healthcare, and government applications must ensure data protection, even if it results in slightly slower processing times.<br />✅ <strong>Example:</strong> Encrypting financial transactions and medical records, even if it slightly slows down database queries.</p>
<h3 id="heading-2-user-authentication-and-authorization"><strong>2. User Authentication and Authorization</strong></h3>
<p>Authentication must be secure to prevent unauthorized access, even if it means adding extra steps for users.<br />✅ <strong>Example:</strong> Using Argon2 for password hashing, which is deliberately slow to prevent brute-force attacks.</p>
<h3 id="heading-3-preventing-cyber-attacks-web-apps-apis-cloud-systems"><strong>3. Preventing Cyber Attacks (Web Apps, APIs, Cloud Systems)</strong></h3>
<p>Web applications and APIs must implement security features like firewalls, rate limiting, and bot detection—even if they introduce some latency.<br />✅ <strong>Example:</strong> Rate-limiting login attempts to prevent brute-force attacks, even if it delays legitimate users slightly.</p>
<h3 id="heading-4-compliance-with-legal-or-industry-standards"><strong>4. Compliance with Legal or Industry Standards</strong></h3>
<p>Regulations such as <strong>GDPR</strong>, <strong>HIPAA</strong>, and <strong>PCI-DSS</strong> require strict security measures. Non-compliance can lead to fines and legal issues, making security more important than performance.<br />✅ <strong>Example:</strong> Encrypting customer data in databases and ensuring audit logs are stored securely, even if it increases storage costs.</p>
<h3 id="heading-5-public-facing-applications-with-high-risk-exposure"><strong>5. Public-Facing Applications with High-Risk Exposure</strong></h3>
<p>If your application is open to the public (e.g., e-commerce, SaaS platforms), security must be a top priority to prevent data breaches and cyberattacks.<br />✅ <strong>Example:</strong> Always using HTTPS, verifying JWT tokens on every request, and sanitizing user inputs—even if it adds slight overhead.</p>
<hr />
<h2 id="heading-when-to-prioritize-performance-over-security"><strong>When to Prioritize Performance Over Security</strong></h2>
<p>While security is essential, some scenarios demand high performance, even if it means relaxing certain security measures:</p>
<h3 id="heading-1-real-time-systems-gaming-streaming-trading"><strong>1. Real-Time Systems (Gaming, Streaming, Trading)</strong></h3>
<p>Latency is critical in real-time applications. In such cases, security features may need to be adjusted for performance.<br />✅ <strong>Example:</strong> Online gaming often uses <strong>UDP instead of TCP</strong>, sacrificing security for lower latency.</p>
<h3 id="heading-2-high-traffic-websites-e-commerce-social-media-news-portals"><strong>2. High-Traffic Websites (E-Commerce, Social Media, News Portals)</strong></h3>
<p>When millions of users are accessing your site, excessive security checks can slow things down. Performance optimizations, such as caching, are necessary.<br />✅ <strong>Example:</strong> Using a <strong>CDN</strong> to cache static content, reducing load times while slightly increasing exposure to outdated cache vulnerabilities.</p>
<h3 id="heading-3-internal-systems-with-trusted-users"><strong>3. Internal Systems with Trusted Users</strong></h3>
<p>If an application is used internally within a secure environment, security measures can be relaxed slightly to improve performance.<br />✅ <strong>Example:</strong> A private dashboard used within a corporate VPN may <strong>disable certain security headers</strong> to improve load times.</p>
<h3 id="heading-4-processing-large-datasets-big-data-ai-ml-pipelines"><strong>4. Processing Large Datasets (Big Data, AI, ML Pipelines)</strong></h3>
<p>When working with massive amounts of data, encryption and strict security policies can slow down processing times.<br />✅ <strong>Example:</strong> Instead of encrypting every piece of data, companies may use <strong>data obfuscation</strong> for non-critical information.</p>
<h3 id="heading-5-temporary-prototyping-or-testing-environments"><strong>5. Temporary Prototyping or Testing Environments</strong></h3>
<p>During development and testing, speed is often more important than security. Developers may temporarily disable certain security features to iterate quickly.<br />✅ <strong>Example:</strong> Disabling <strong>strict CORS policies</strong> during local testing but enforcing them in production.</p>
<hr />
<h2 id="heading-finding-the-right-balance"><strong>Finding the Right Balance</strong></h2>
<p>Instead of choosing security or performance blindly, the best approach is a <strong>hybrid strategy</strong>:</p>
<p>✅ <strong>Secure what matters most</strong> (authentication, financial transactions, sensitive data).<br />✅ <strong>Optimize security implementations</strong> (use caching, lazy loading, and security layers).<br />✅ <strong>Profile and test</strong> (continuously measure and optimize bottlenecks).</p>
<p>Final Thought: A well-designed system does not blindly sacrifice one for the other—it finds the right trade-off for each use case.</p>
]]></content:encoded></item><item><title><![CDATA[Argon2: The Gold Standard for Password Hashing]]></title><description><![CDATA[In an era where data breaches and cyberattacks are increasingly common, the importance of securing user passwords cannot be overstated. Password hashing is a critical component of this security, ensuring that even if an attacker gains access to store...]]></description><link>https://blog.douglas.africa/argon2-the-gold-standard-for-password-hashing</link><guid isPermaLink="true">https://blog.douglas.africa/argon2-the-gold-standard-for-password-hashing</guid><category><![CDATA[Argon2id]]></category><category><![CDATA[Argon2]]></category><category><![CDATA[Security]]></category><category><![CDATA[passwords]]></category><category><![CDATA[#passwordhashing]]></category><category><![CDATA[#cybersecurity]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Sat, 23 Nov 2024 19:44:48 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1732390194182/c72f994d-a17b-4baf-93fb-0ca2f8019c32.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In an era where data breaches and cyberattacks are increasingly common, the importance of securing user passwords cannot be overstated. Password hashing is a critical component of this security, ensuring that even if an attacker gains access to stored credentials, the passwords remain protected. Among the myriads of hashing algorithms available, Argon2 stands out as a modern, robust, and highly secure solution.</p>
<p>This article explores Argon2, its workings, why it’s considered the best choice for password hashing, and how you can implement it in your projects.</p>
<hr />
<h3 id="heading-what-is-argon2"><strong>What is Argon2?</strong></h3>
<p>Argon2 is a password hashing algorithm designed to provide the highest level of security against brute force attacks. Developed in 2015, it won the Password Hashing Competition (PHC), beating out other contenders to become the new standard for password hashing.</p>
<p>Argon2 comes in three variants:</p>
<ul>
<li><p><strong>Argon2d</strong>: Designed for resistance against GPU-based brute force attacks.</p>
</li>
<li><p><strong>Argon2i</strong>: Optimized for environments vulnerable to timing attacks.</p>
</li>
<li><p><strong>Argon2id</strong>: Combines the strengths of both Argon2d and Argon2i and is the recommended variant for general use.</p>
</li>
</ul>
<hr />
<h3 id="heading-how-argon2-works"><strong>How Argon2 Works</strong></h3>
<p>At its core, Argon2 is a memory-hard function, meaning it requires a significant amount of memory to compute. This property makes it expensive for attackers to perform brute force attacks, particularly when using specialized hardware like GPUs or ASICs.</p>
<h4 id="heading-key-features"><strong>Key Features</strong>:</h4>
<ol>
<li><p><strong>Memory Usage</strong>: Argon2 allows developers to specify how much memory the algorithm will consume.</p>
</li>
<li><p><strong>Iterations (Time Cost)</strong>: The number of passes the algorithm makes over the memory.</p>
</li>
<li><p><strong>Parallelism</strong>: The degree of parallel threads Argon2 will use.</p>
</li>
</ol>
<p>These parameters can be adjusted to balance security and performance, ensuring your application remains both fast and secure.</p>
<hr />
<h3 id="heading-why-use-argon2"><strong>Why Use Argon2?</strong></h3>
<h4 id="heading-security-advantages"><strong>Security Advantages</strong>:</h4>
<ol>
<li><p><strong>Memory Hardness</strong>: Makes attacks costly in terms of both time and hardware resources.</p>
</li>
<li><p><strong>Resilience to Side-Channel Attacks</strong>: Protects against techniques like timing attacks.</p>
</li>
<li><p><strong>Customizable for Future Needs</strong>: Easily adapts to evolving hardware capabilities.</p>
</li>
</ol>
<h4 id="heading-comparison-to-older-algorithms"><strong>Comparison to Older Algorithms</strong>:</h4>
<ul>
<li><p><strong>Bcrypt</strong>: While secure, Bcrypt has limited memory usage and is slower to adapt to modern hardware.</p>
</li>
<li><p><strong>PBKDF2</strong>: While widely used, it’s less secure against modern GPU and ASIC attacks.</p>
</li>
</ul>
<p>Argon2 surpasses both by offering stronger protection and more customization options.</p>
<hr />
<h3 id="heading-how-to-implement-argon2"><strong>How to Implement Argon2</strong></h3>
<h4 id="heading-example-in-php"><strong>Example in PHP</strong></h4>
<p>PHP provides native support for Argon2 via the <code>password_hash()</code> and <code>password_verify()</code> functions. Here’s how to use them:</p>
<p><strong>Hashing a Password</strong>:</p>
<pre><code class="lang-php">$password = <span class="hljs-string">"securepassword123"</span>;
$hash = password_hash($password, PASSWORD_ARGON2ID);
<span class="hljs-keyword">echo</span> <span class="hljs-string">"Hashed Password: <span class="hljs-subst">$hash</span>"</span>;
</code></pre>
<p><strong>Verifying a Password</strong>:</p>
<pre><code class="lang-php">$storedHash = <span class="hljs-string">'$argon2id$v=19$m=65536,t=4,p=1$...'</span>; <span class="hljs-comment">// Example hash</span>
<span class="hljs-keyword">if</span> (password_verify($password, $storedHash)) {
    <span class="hljs-keyword">echo</span> <span class="hljs-string">"Password is correct!"</span>;
} <span class="hljs-keyword">else</span> {
    <span class="hljs-keyword">echo</span> <span class="hljs-string">"Invalid password."</span>;
}
</code></pre>
<p><strong>Customizing Argon2 Options</strong>:</p>
<pre><code class="lang-php">$options = [
    <span class="hljs-string">'memory_cost'</span> =&gt; <span class="hljs-number">1</span> &lt;&lt; <span class="hljs-number">17</span>, <span class="hljs-comment">// 128 MB</span>
    <span class="hljs-string">'time_cost'</span>   =&gt; <span class="hljs-number">4</span>,       <span class="hljs-comment">// Iterations</span>
    <span class="hljs-string">'threads'</span>     =&gt; <span class="hljs-number">2</span>        <span class="hljs-comment">// Parallelism</span>
];
$hash = password_hash($password, PASSWORD_ARGON2ID, $options);
</code></pre>
<hr />
<h4 id="heading-example-in-python"><strong>Example in Python</strong></h4>
<p>Here’s how to use Argon2 for password hashing in Python. The <code>argon2-cffi</code> library is a popular choice for this purpose. If you haven’t already installed it, you can do so using:</p>
<pre><code class="lang-bash">pip install argon2-cffi
</code></pre>
<hr />
<p><strong>Hashing a Password in Python</strong></p>
<pre><code class="lang-python"><span class="hljs-keyword">from</span> argon2 <span class="hljs-keyword">import</span> PasswordHasher

<span class="hljs-comment"># Initialize the PasswordHasher</span>
ph = PasswordHasher()

<span class="hljs-comment"># Hash a password</span>
password = <span class="hljs-string">"securepassword123"</span>
hashed_password = ph.hash(password)

print(<span class="hljs-string">"Hashed Password:"</span>, hashed_password)
</code></pre>
<hr />
<p><strong>Verifying a Password in Python</strong></p>
<pre><code class="lang-python"><span class="hljs-keyword">try</span>:
    <span class="hljs-comment"># Verifying the password</span>
    <span class="hljs-keyword">if</span> ph.verify(hashed_password, password):
        print(<span class="hljs-string">"Password is correct!"</span>)
<span class="hljs-keyword">except</span> Exception <span class="hljs-keyword">as</span> e:
    print(<span class="hljs-string">"Invalid password:"</span>, str(e))
</code></pre>
<hr />
<p><strong>Rehashing a Password in Python</strong></p>
<p>To ensure passwords are hashed with updated parameters, you can check if rehashing is needed.</p>
<pre><code class="lang-python"><span class="hljs-keyword">if</span> ph.check_needs_rehash(hashed_password):
    hashed_password = ph.hash(password)
    print(<span class="hljs-string">"Password rehashed:"</span>, hashed_password)
</code></pre>
<hr />
<p><strong>Customizing Argon2 Parameters</strong></p>
<p>You can customize the Argon2 parameters by configuring the <code>PasswordHasher</code> class.</p>
<pre><code class="lang-python">ph = PasswordHasher(
    time_cost=<span class="hljs-number">3</span>,       <span class="hljs-comment"># Number of iterations</span>
    memory_cost=<span class="hljs-number">65536</span>, <span class="hljs-comment"># Memory usage in KB</span>
    parallelism=<span class="hljs-number">2</span>      <span class="hljs-comment"># Number of parallel threads</span>
)

<span class="hljs-comment"># Hash a password with custom parameters</span>
hashed_password = ph.hash(password)
print(<span class="hljs-string">"Custom Hashed Password:"</span>, hashed_password)
</code></pre>
<hr />
<h3 id="heading-real-world-applications"><strong>Real-World Applications</strong></h3>
<p>Argon2 is increasingly used in modern authentication systems, password managers, and even cryptocurrency wallets. Its adoption by platforms like PHP’s password hashing API shows its growing importance in the developer community.</p>
<hr />
<h3 id="heading-challenges-and-considerations"><strong>Challenges and Considerations</strong></h3>
<p>While Argon2 is a powerful tool, it’s not without challenges:</p>
<ul>
<li><p><strong>Performance Costs</strong>: Overly aggressive memory or iteration settings can impact application performance.</p>
</li>
<li><p><strong>Compatibility</strong>: Ensure your hosting environment supports Argon2. For example, Argon2 requires PHP 7.2 or higher.</p>
</li>
</ul>
<p>Testing and benchmarking are essential to find the right balance for your specific use case.</p>
<hr />
<h3 id="heading-conclusion"><strong>Conclusion</strong></h3>
<p>Argon2 is a game-changer in password hashing, providing unmatched security and flexibility for modern applications. Its memory-hard design and configurability make it a future-proof choice for developers aiming to protect user data.</p>
<p>By implementing Argon2 today, you’re not just securing passwords—you’re taking a stand against the evolving threats of tomorrow.</p>
<p><strong>Start implementing Argon2 in your projects now, and let security be your competitive advantage!</strong></p>
]]></content:encoded></item><item><title><![CDATA[Artificial intelligence in software engineering]]></title><description><![CDATA[Artificial Intelligence (AI) is not just a futuristic concept. It is already being integrated into various stages of the software development lifecycle (SDLC), making processes more efficient and effective. Leveraging artificial intelligence in softw...]]></description><link>https://blog.douglas.africa/artificial-intelligence-in-software-engineering</link><guid isPermaLink="true">https://blog.douglas.africa/artificial-intelligence-in-software-engineering</guid><category><![CDATA[AI]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[software development]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Sat, 26 Oct 2024 18:24:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/Jcw-i0fSqXg/upload/05658a93d03b857fd4361969b482f41f.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Artificial Intelligence (AI) is not just a futuristic concept. It is already being integrated into various stages of the software development lifecycle (SDLC), making processes more efficient and effective. Leveraging artificial intelligence in software engineering can enhance various aspects of the development process. Here are some key approaches you can utilize it:</p>
<p><strong>1. Code Assistance:</strong> AI can help generate code snippets, suggest optimizations, and provide solutions to common programming problems. You can describe the functionality you need, and it can generate relevant code in multiple programming languages.</p>
<p><strong>2. Debugging Support:</strong> If you're encountering errors, you can describe the issue, and AI can offer debugging strategies or help you identify potential bugs in your code.</p>
<p><strong>3. Documentation Generation:</strong> Use AI to create or improve documentation for your projects. You can input code comments or functions, and it can help generate detailed descriptions or usage examples.</p>
<p><strong>4. Learning and Research:</strong> If you’re exploring modern technologies or languages, AI can provide explanations, tutorials, and best practices, helping you get up to speed quickly.</p>
<p><strong>5. Code Review:</strong> You can paste snippets of code and ask for feedback on best practices, potential issues, or areas for improvement.</p>
<p><strong>6. Architecture and Design:</strong> Discuss architectural decisions or design patterns with AI. It can help brainstorm ideas and evaluate trade-offs for different approaches.</p>
<p><strong>7. Task Automation:</strong> AI can help you automate repetitive tasks by generating scripts or providing guidance on tools and frameworks.</p>
<p><strong>8. Collaboration:</strong> Use AI as a sounding board for ideas or to simulate discussions about project requirements, team workflows, or software development methodologies.</p>
<p><strong>9. Testing and Quality Assurance:</strong> Get help with writing unit tests, understanding testing frameworks, or developing test strategies.</p>
<p><strong>10. Integration with Tools:</strong> Integrate AI into your development environment or use it in combination with tools like GitHub Copilot for enhanced coding assistance.</p>
<p><strong>11. Data Analysis:</strong> AI can analyze large datasets to identify patterns and insights, helping software engineers make data-driven decisions.</p>
<p><strong>12. Communication:</strong> AI can be used for efficient communication within development teams. It can generate meeting summaries, draft emails, and provide information on specific topics.</p>
<p>By using artificial intelligence, you can increase productivity, enhance learning, and streamline various software engineering processes.</p>
<p><strong>Disclaimer</strong></p>
<p>AI is not a silver bullet and should be used with caution. Be mindful of its accuracy, bias, security, ethics, compliance, over dependence and long-term support.</p>
]]></content:encoded></item><item><title><![CDATA[Improving website accessibility]]></title><description><![CDATA[Accessibility is a fundamental aspect of web design that ensures websites are usable by people with disabilities. An accessible website complies with the set legal requirements, increases usability, expands your reach to a wider audience and improves...]]></description><link>https://blog.douglas.africa/improving-website-accessibility</link><guid isPermaLink="true">https://blog.douglas.africa/improving-website-accessibility</guid><category><![CDATA[Accessibility]]></category><category><![CDATA[Website design]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Sun, 20 Oct 2024 18:24:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/vJaMRzoAXt4/upload/8f8c058a443a43c529d04ca8bcdb8ffb.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Accessibility is a fundamental aspect of web design that ensures websites are usable by people with disabilities. An accessible website complies with the set legal requirements, increases usability, expands your reach to a wider audience and improves search engine optimization (SEO).</p>
<h3 id="heading-1-understand-the-importance-of-accessibility"><strong>1. Understand the importance of accessibility</strong></h3>
<p>Improving website accessibility means designing your site to accommodate users with varying abilities. This can include people with:</p>
<ul>
<li><p>Visual impairments (e.g., blindness, low vision, or color blindness)</p>
</li>
<li><p>Hearing impairments</p>
</li>
<li><p>Motor disabilities (e.g., limited mobility)</p>
</li>
<li><p>Cognitive disabilities</p>
</li>
</ul>
<h3 id="heading-2-key-principles-of-web-accessibility"><strong>2 .Key principles of web accessibility</strong></h3>
<ol>
<li><p><strong>Perceivable:</strong> Information and user interface components must be presented to users in a way they can perceive.</p>
</li>
<li><p><strong>Operable:</strong> User interface components and navigation must be operable.</p>
</li>
<li><p><strong>Understandable:</strong> Information and user interface must be understandable.</p>
</li>
<li><p><strong>Robust:</strong> Content must be robust enough to be interpreted by a variety of user agents.</p>
</li>
</ol>
<h3 id="heading-3-essential-accessibility-features"><strong>3 .Essential accessibility features</strong></h3>
<ul>
<li><p><strong>Alternative text for images:</strong> Provide descriptive alternative text for images to assist users who cannot see them.</p>
</li>
<li><p><strong>Meaningful link text:</strong> Use clear and descriptive link text that indicates the destination of the link.</p>
</li>
<li><p><strong>Headings and subheadings:</strong> Use headings (&lt;h1&gt;, &lt;h2&gt;, etc.) to structure your content and make it easier to navigate.</p>
</li>
<li><p><strong>Color contrast:</strong> Ensure sufficient color contrast between text and background to make it readable for people with visual impairments.</p>
</li>
<li><p><strong>Keyboard navigation:</strong> Make sure your website can be fully navigated using a keyboard, without requiring a mouse.</p>
</li>
<li><p><strong>Audio and video captions:</strong> Provide captions for audio and video content to benefit users who are deaf or hard of hearing.</p>
</li>
<li><p><strong>Form accessibility:</strong> Design forms that are accessible to users with disabilities, including providing clear labels and avoiding CAPTCHAs.</p>
</li>
<li><p><strong>Mobile accessibility:</strong> Ensure your website is mobile-friendly and accessible on various devices.</p>
</li>
</ul>
<h3 id="heading-4-tools-and-resources"><strong>4. Tools and resources</strong></h3>
<ul>
<li><p><strong>WCAG 2.1:</strong> The Web Content Accessibility Guidelines provide detailed technical requirements for accessible web content.</p>
</li>
<li><p><strong>Accessibility testing tools:</strong> Tools like WAVE, aXe, and Lighthouse can help you identify accessibility issues on your website.</p>
</li>
<li><p><strong>Accessibility guidelines:</strong> Consult guidelines from organizations like the World Wide Web Consortium (W3C) and the Web Accessibility Initiative (WAI).</p>
</li>
</ul>
<p>By following these guidelines and utilizing the available tools, you can create a more inclusive and accessible website that benefits everyone.</p>
]]></content:encoded></item><item><title><![CDATA[Dealing with imposter syndrome in software engineering]]></title><description><![CDATA[Imposter syndrome in software engineering is largely due to the nature of the field. The rapid pace of technological advancements, the diversity of skill sets, and the pressure to always be up-to-date can contribute to feelings of inadequacy or self-...]]></description><link>https://blog.douglas.africa/dealing-with-imposter-syndrome-in-software-engineering</link><guid isPermaLink="true">https://blog.douglas.africa/dealing-with-imposter-syndrome-in-software-engineering</guid><category><![CDATA[Imposter syndrome]]></category><category><![CDATA[Software Engineering]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Sat, 05 Oct 2024 19:47:48 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/5qGIXvdNOpw/upload/d1286fefd3998a4faaa716552cec0116.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Imposter syndrome in software engineering is largely due to the nature of the field. The rapid pace of technological advancements, the diversity of skill sets, and the pressure to always be up-to-date can contribute to feelings of inadequacy or self-doubt, even for experienced professionals. Here’s how imposter syndrome can manifest in software engineering and strategies to address it:</p>
<h3 id="heading-technical-skills-and-knowledge">Technical Skills and Knowledge</h3>
<ul>
<li><p><strong>Continuous Learning:</strong> Stay updated with the latest trends and technologies. Attend conferences, workshops, and online courses.</p>
</li>
<li><p><strong>Practice Regularly:</strong> Coding regularly helps build confidence and reinforces your skills.</p>
</li>
<li><p><strong>Focus on Problem-Solving, Not Memorization:</strong> Understand that software engineering is more about problem-solving and critical thinking than rote memorization. Use your problem-solving approach as a measure of your competence rather than focusing on your ability to recall syntax or commands.</p>
</li>
<li><p><strong>Contribute to Open-Source Projects:</strong> Contributing to open-source projects can boost your confidence and provide opportunities to learn from experienced developers.</p>
</li>
<li><p><strong>Accept That “Not Knowing” is Normal:</strong> Even senior developers and technical leaders encounter problems they don’t have immediate answers to. Recognizing that “not knowing” is a standard part of development will make you feel more comfortable asking questions.</p>
</li>
</ul>
<h3 id="heading-career-development">Career Development</h3>
<ul>
<li><p><strong>Set Realistic Goals:</strong> Break down large projects into smaller, achievable tasks. Celebrate your successes along the way.</p>
</li>
<li><p><strong>Document Your Wins and Growth:</strong> Keep a journal or digital record of problems you’ve solved, features you’ve implemented, or code you’ve optimized. Reviewing these can be a powerful reminder of your progress and capabilities.</p>
</li>
<li><p><strong>Seek Mentorship:</strong> A mentor can provide guidance, support, and help you navigate challenges.</p>
</li>
<li><p><strong>Network with Peers:</strong> Connect with other developers to share experiences and learn from each other. Join communities of developers who openly discuss their struggles and triumphs (e.g., meetups, Slack groups, or developer forums). Engaging with a supportive community can provide perspective and reduce feelings of isolation.</p>
</li>
</ul>
<h3 id="heading-summary">Summary</h3>
<ul>
<li><p><strong>Everyone Experiences Doubt:</strong> It's normal to question your abilities at times.</p>
</li>
<li><p><strong>Focus on Progress:</strong> Celebrate your growth and development, rather than comparing yourself to others.</p>
</li>
<li><p><strong>Seek Support:</strong> Don't hesitate to reach out to colleagues, mentors, or therapists for support.</p>
</li>
<li><p><strong>Seek Constructive Feedback and Act on It:</strong> Embrace feedback as an opportunity to improve, not as a reflection of your inadequacy. Cultivate a growth mindset by viewing feedback as a way to refine your craft rather than questioning your abilities.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Choosing a website hosting platform]]></title><description><![CDATA[Choosing a hosting platform depends on your specific needs, such as the type of projects you're hosting, traffic expectations, budget, and technical expertise. Here are summarised considerations and options to help guide your decision:
1. Shared Host...]]></description><link>https://blog.douglas.africa/types-of-hosting</link><guid isPermaLink="true">https://blog.douglas.africa/types-of-hosting</guid><category><![CDATA[hosting]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Sun, 29 Sep 2024 18:15:08 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1727631606542/84e2acd2-17e8-4a64-b974-f492adb5e620.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Choosing a hosting platform depends on your specific needs, such as the type of projects you're hosting, traffic expectations, budget, and technical expertise. Here are summarised considerations and options to help guide your decision:</p>
<h3 id="heading-1-shared-hosting">1. <strong>Shared Hosting</strong></h3>
<ul>
<li><p><strong>Best for:</strong> Small websites, blogs, or personal portfolios with moderate traffic.</p>
</li>
<li><p><strong>Features:</strong> Low cost, easy setup, limited resources.</p>
</li>
<li><p><strong>Popular Options:</strong> Bluehost, HostGator, SiteGround.</p>
</li>
</ul>
<h3 id="heading-2-virtual-private-server-vps-hosting">2. <strong>Virtual Private Server (VPS) Hosting</strong></h3>
<ul>
<li><p><strong>Best for:</strong> Websites with growing traffic or requiring more control over server configurations.</p>
</li>
<li><p><strong>Features:</strong> Dedicated resources, scalability, and custom configurations.</p>
</li>
<li><p><strong>Popular Options:</strong> DigitalOcean, Linode, Vultr.</p>
</li>
</ul>
<h3 id="heading-3-cloud-hosting">3. <strong>Cloud Hosting</strong></h3>
<ul>
<li><p><strong>Best for:</strong> High-traffic websites, web apps, or services requiring reliability and scalability.</p>
</li>
<li><p><strong>Features:</strong> High uptime, easy scaling, pay-as-you-go pricing.</p>
</li>
<li><p><strong>Popular Options:</strong> AWS (Amazon Web Services), Google Cloud, Microsoft Azure.</p>
</li>
</ul>
<h3 id="heading-4-dedicated-hosting">4. <strong>Dedicated Hosting</strong></h3>
<ul>
<li><p><strong>Best for:</strong> Large businesses or websites with high traffic and resource-intensive applications.</p>
</li>
<li><p><strong>Features:</strong> Complete server control, high performance, full customization.</p>
</li>
<li><p><strong>Popular Options:</strong> InMotion Hosting, Liquid Web, A2 Hosting.</p>
</li>
</ul>
<h3 id="heading-5-specialized-platforms-for-developers">5. <strong>Specialized Platforms for Developers</strong></h3>
<ul>
<li><p><strong>Best for:</strong> Developers seeking a platform tailored for coding projects, CI/CD pipelines, and version control.</p>
</li>
<li><p><strong>Features:</strong> Custom deployments, easy integrations, SSH access, collaboration tools.</p>
</li>
<li><p><strong>Popular Options:</strong> GitHub Pages (for static sites), Netlify, Vercel, Heroku.</p>
</li>
</ul>
<h3 id="heading-6-self-hosting">6. <strong>Self-Hosting</strong></h3>
<ul>
<li><p><strong>Best for:</strong> Technical users who prefer full control and are comfortable managing their own servers.</p>
</li>
<li><p><strong>Features:</strong> Complete flexibility, lower ongoing costs if using local hardware.</p>
</li>
<li><p><strong>Popular Options:</strong> Hosting on your own hardware or using services like Proxmox and Docker.</p>
</li>
</ul>
<h3 id="heading-key-considerations">Key Considerations</h3>
<ul>
<li><p><strong>Performance Requirements:</strong> Determine the expected load and speed requirements.</p>
</li>
<li><p><strong>Scalability Needs:</strong> Consider how easily the platform can scale with your project.</p>
</li>
<li><p><strong>Support &amp; Community:</strong> Look at the quality of support and community resources available.</p>
</li>
<li><p><strong>Budget Constraints:</strong> Balance between performance, features, and cost.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Remote MySQL database connection on the cPanel]]></title><description><![CDATA[cPanel is a web-based control panel that provides a graphical interface and automation tools designed to simplify the process of hosting and managing a server/website ranging from emails files, databases, domains, and more.
Assume you have databases ...]]></description><link>https://blog.douglas.africa/remote-mysql-database-connection-on-the-cpanel</link><guid isPermaLink="true">https://blog.douglas.africa/remote-mysql-database-connection-on-the-cpanel</guid><category><![CDATA[cpanel]]></category><category><![CDATA[MySQL]]></category><category><![CDATA[#RemoteDatabaseAccess]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Mon, 13 May 2024 20:25:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/2kH-6T6x_0I/upload/9f40b144299f034a7f69809fe638b8d0.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a target="_blank" href="https://cpanel.net/">cPanel</a> is a web-based control panel that provides a graphical interface and automation tools designed to simplify the process of hosting and managing a server/website ranging from emails files, databases, domains, and more.</p>
<p>Assume you have databases hosted on different cPanel accounts e.g. your company may have multiple cPanel accounts or you may have various clients who want their information shared across their accounts.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">This article presumes that you have already created and configured the remote database. We will be using cPanel version 120.0.5.</div>
</div>

<h2 id="heading-step-1-get-the-server-ip-address-of-the-host-cpanel-account">Step 1. Get the server IP address of the host cPanel account</h2>
<p>Login to the cPanel account of the <strong>host</strong> (server to use the database from another server). Navigate to the right side window. Under "<strong>General Information</strong>", get the server IP address of the The shared IP address adopts a format as this 140.105.20.19.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1715623571268/ad69f216-9724-4ab7-8ecd-be6782bbad94.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-step-2-navigate-to-the-databases-section-of-the-remote-server">Step 2. Navigate to the databases section of the remote server</h2>
<p>Login to the cPanel of the <strong>remote</strong>(server to have its database shared). Locate the "<strong>Database"</strong> section, and click on "<strong>Remote Database Access</strong>".</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1715621777972/c1280623-2952-4a28-b24c-cb800da5f565.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-step-3-whitelistadd-the-host-ip-address-on-the-remote-server">Step 3. Whitelist/add the host IP address on the remote server</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1715628954381/ee9de242-9f4d-470a-8c24-0c83c45071c5.png" alt class="image--center mx-auto" /></p>
<p>You need to inform the remote server to allow traffic from the host server by whitelisting its IP address acquired in Step 1 above. Assume your host is 140.105.20.19, type it in the "Host" input. Specifying the comment is optional, however, it may be helpful where you have multiple hosts.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1715629994232/cacb8b58-3279-450a-b19a-5ba320263580.png" alt class="image--center mx-auto" /></p>
<p>Once the hosts server IP address is whitelisted, you may choose to update or delete it when necessary.</p>
<h2 id="heading-step-4-get-the-server-ip-address-of-the-remote-cpanel-account">Step 4: Get the server IP address of the remote cPanel account</h2>
<p>Go to the remote cPanel account (the one whose database is being shared). Follow the procedures as shown in Step 1 to get the IP address of the remote server.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1715623571268/ad69f216-9724-4ab7-8ecd-be6782bbad94.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-step-5-write-the-database-connection-script-on-the-host-cpanel-account">Step 5: Write the database connection script on the host cPanel account</h2>
<p>Go back to the host cPanel and write/host your database connection script. The script can be used to test if the connection is successful. Below is a sample code using PHP.</p>
<p><strong>Note</strong>: Your server name being used is the remote server IP address obtained from Step 4 above. Assume our remote IP address is 150.105.20.19</p>
<pre><code class="lang-php"><span class="hljs-meta">&lt;?php</span>
$servername = <span class="hljs-string">"150.105.20.19"</span>; <span class="hljs-comment">// Remote server IP address</span>
$username = <span class="hljs-string">"database_username"</span>; <span class="hljs-comment">// MySQL database username</span>
$password = <span class="hljs-string">"database_password"</span>; <span class="hljs-comment">// MySQL database password</span>
$database = <span class="hljs-string">"database_name"</span>; <span class="hljs-comment">// MySQL database name</span>

<span class="hljs-comment">// Create connection</span>
$conn = <span class="hljs-keyword">new</span> mysqli($servername, $username, $password, $database);

<span class="hljs-comment">// Check connection</span>
<span class="hljs-keyword">if</span> ($conn-&gt;connect_error) {
    <span class="hljs-keyword">die</span>(<span class="hljs-string">"Connection failed: "</span> . $conn-&gt;connect_error);
}

<span class="hljs-keyword">echo</span> <span class="hljs-string">"Connected successfully"</span>;

<span class="hljs-comment">// Perform database operations here</span>

<span class="hljs-comment">// Close connection</span>
$conn-&gt;close();
<span class="hljs-meta">?&gt;</span>
</code></pre>
<p>Cheers! You can now test and run your script. For any inquiries, feel free to contact me using +254791323200 or <a target="_blank" href="mailto:mail@douglas.africa">mail@douglas.africa</a></p>
]]></content:encoded></item><item><title><![CDATA[Enforcing HTTPS redirect using .htaccess on Cpanel]]></title><description><![CDATA[HTTPS stands for Secured Hyper Text Transfer Protocol. HTTPS uses Secure Socket Layer (SSL)/Transport Layer Security (TLS) to encrypt HTTP requests and responses. In simple terms, any information sent over HTTPS is transformed into an unreadable form...]]></description><link>https://blog.douglas.africa/enforcing-https-redirect-using-htaccess-on-cpanel</link><guid isPermaLink="true">https://blog.douglas.africa/enforcing-https-redirect-using-htaccess-on-cpanel</guid><category><![CDATA[https]]></category><category><![CDATA[SSL]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[internet security]]></category><category><![CDATA[cpanel]]></category><dc:creator><![CDATA[Douglas Sabwa Indumwa]]></dc:creator><pubDate>Mon, 17 Jul 2023 23:33:34 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1689641155590/86ddfb1c-0553-49f3-9575-96a97cbdec09.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>HTTPS stands for <strong><mark>Secured Hyper Text Transfer Protocol.</mark></strong> HTTPS uses <strong>Secure Socket Layer (SSL)/Transport Layer Security (TLS)</strong> to encrypt HTTP requests and responses. In simple terms, any information sent over HTTPS is transformed into an unreadable format that is only readable by the sender or receiver after being decrypted.</p>
<p>This is a more secure way to handle passwords, credit card information or any sensitive information. Websites with https usually have a padlock icon in the address bar, denoting that the connection is secure.</p>
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">HTTP (without SSL) sends data through plain text. For example, if you were to access your bank's web page and they are using HTTP, <strong>a hacker may be able to access it and read any information that you send</strong>. This is where HTTPS comes in.</div>
</div>

<p>Using HTTP only(without SSL) is highly discouraged as it poses lots of security concerns on a website. This article guides on how to setup secured HTTPS.</p>
<h3 id="heading-step-1-setup-lets-encrypt-ssl-on-cpanel">Step 1: Setup Let's Encrypt™ SSL on Cpanel</h3>
<p>We will start by setting up <a target="_blank" href="https://letsencrypt.org/">Let's Encrypt™ SSL</a> which helps you get a free SSL certificate on your server. Skip this step if you already have it running. If not, on your <a target="_blank" href="https://cpanel.net/">Cpanel dashboard</a>, scroll to the Security section and set it up.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689547218753/1d1c9733-68f3-4b06-bdb7-cd0fe490175e.png" alt="Cpanel Security Section" class="image--center mx-auto" /></p>
<h3 id="heading-step-2-create-a-dot-htaccess-file-htaccess">Step 2: Create a dot htaccess file (.htaccess)</h3>
<p>Suppose you have an existing .htaccess file in the root domain folder(one that contains the website), you may skip this step. To create one use the <strong>"File Manager"</strong> option in your Cpanel dashboard.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689548201105/2998dc01-3cb0-40db-bab9-f9080793443f.png" alt="Cpanel File Manager Section" class="image--center mx-auto" /></p>
<p>On the File Manager panel, open the folder that contains the website (in most cases, is the <strong>"public_html"</strong> folder. Click on the <strong>+File</strong> option.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689548657656/186a18d1-a8e8-4f1b-9672-bf37ab96b753.png" alt class="image--center mx-auto" /></p>
<p>Proceed to create the .htaccess file as shown in the image below. <strong>PS: For <em>this particular file, its name must be preceded by a dot (.)</em></strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689548964655/b2900ec2-1e7b-400f-b3e4-686bbbeb7d35.png" alt="Creating a .htaccess file" class="image--center mx-auto" /></p>
<h3 id="heading-step-3-locate-the-htaccess-file">Step 3: Locate the .htaccess file</h3>
<p>By default, Cpanel dashboards are configured to hide dot files thus you may not immediately see your .htaccess file. To make the file visible, head to the Cpanel "<strong>Settings</strong>" option at the top right of your dashboard. Ensure the "<strong>Show Hidden Files</strong>" is checked as shown in the image below.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689550056137/3dd73a17-b407-4ad1-b002-d7bf73f41c49.png" alt="Enable Show Hidden Files" class="image--center mx-auto" /></p>
<h3 id="heading-step-4-add-the-https-redirection-code">Step 4: Add the HTTPS redirection code</h3>
<p>After locating the .htaccess file, right-click on it and choose the "<strong>Edit</strong>" option. Copy the following lines of code and paste them into your file.</p>
<pre><code class="lang-plaintext">RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</code></pre>
<h3 id="heading-conclusion">Conclusion</h3>
<p>As simple as that, our website now has its traffic encrypted using the SSL/TLS protocol. Remember security goes beyond implementing HTTPS and thus you should configure other security measures to prevent internet attacks.</p>
]]></content:encoded></item></channel></rss>