<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Stephen Musoke Senkomago</title>
	<atom:link href="https://ssmusoke.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://ssmusoke.com</link>
	<description>Ramblings of a father, husband, tech lover, amateur poet, book lover, who believes family makes him &#38; culture holds all</description>
	<lastBuildDate>Mon, 30 Jun 2025 12:25:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.1</generator>

<image>
	<url>https://ssmusoke.com/wp-content/uploads/2018/10/cropped-wp-1539115429482-32x32.jpg</url>
	<title>Stephen Musoke Senkomago</title>
	<link>https://ssmusoke.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>In praise of Expert Generalists and Normal Engineers</title>
		<link>https://ssmusoke.com/2025/06/24/in-praise-of-expert-generalists-and-normal-engineers/</link>
					<comments>https://ssmusoke.com/2025/06/24/in-praise-of-expert-generalists-and-normal-engineers/#respond</comments>
		
		<dc:creator><![CDATA[ssmusoke]]></dc:creator>
		<pubDate>Tue, 24 Jun 2025 10:36:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://ssmusoke.com/?p=1671</guid>

					<description><![CDATA[On June 19, 2025 two separate articles were published which truly touched me The reasons I am highlighting them is that they are bringing to the fore two key challenges that I am facing in my career growth and progression What are your thoughts on these paradigms]]></description>
										<content:encoded><![CDATA[
<p>On June 19, 2025 two separate articles were published which truly touched me </p>



<ol class="wp-block-list">
<li>Charity Majors &#8211; In praise of Normal Engineers <a href="https://charity.wtf/2025/06/19/in-praise-of-normal-engineers/">https://charity.wtf/2025/06/19/in-praise-of-normal-engineers/</a></li>



<li>Martin Fowler &#8211; Expert Generalists <a href="https://martinfowler.com/articles/expert-generalist.html">https://martinfowler.com/articles/expert-generalist.html</a></li>
</ol>



<p>The reasons I am highlighting them is that they are bringing to the fore two key challenges that I am facing in my career growth and progression</p>



<ol class="wp-block-list">
<li>As a technologist who is very interested in technology service provision at the front lines &#8211; working with developers and teams in the trenches, I am a generalist with experience across multiple sectors and facets of the software delivery lifecycle. 
<ul class="wp-block-list">
<li>I work well with specialists in teams to bring out the best in them to deliver software based tools and solutions. </li>



<li>I act as a bridge between business stakeholders and technology teams &#8211; translating between the two </li>



<li>I have experience at the executive level understanding their pain points, challenges and points of view </li>



<li>I have experience as a software engineer, working and leading engineering teams &#8211; this is what I love best </li>



<li>Thus I end up having a challenge articulating my value proposition to potential employers &#8211; since they are only used to working with specialists </li>



<li>The comb metaphor an evolution of I, T-shaped and PI shaped skillsets <a href="https://www.linkedin.com/posts/ssmusoke_whats-your-breadth-and-depth-of-knowledge-activity-7059588477100654592-KW74?utm_source=social_share_send&amp;utm_medium=member_desktop_web&amp;rcm=ACoAAAG3aCMBNJv-ckREKm41ZsSnfe-BPet83UE">https://www.linkedin.com/posts/ssmusoke_whats-your-breadth-and-depth-of-knowledge-activity-7059588477100654592-KW74?utm_source=social_share_send&amp;utm_medium=member_desktop_web&amp;rcm=ACoAAAG3aCMBNJv-ckREKm41ZsSnfe-BPet83UE</a></li>
</ul>
</li>



<li>The goal is not 10x engineers but 10x engineering teams 
<ul class="wp-block-list">
<li>Nothing great was ever built by a single person </li>



<li>Teams deliver multiples more value than a single developer, although at times only a single developer is needed </li>



<li>Onboarding newbies, growing and mentoring engineers is a goal of any senior, my first mentor Charles Mukasa, told me always work yourself out of a job, find a train your replacement for any role you have </li>



<li>The 10x engineering hackers are the 1%, the rest of the world is made up of normal engineers who can deliver extra-ordinary value and solutions </li>
</ul>
</li>



<li>The keys to success are: 
<ul class="wp-block-list">
<li>Learn the fundamentals</li>



<li>Focus on solving customer problems</li>



<li>Collaborate with others &#8211; to go fast go alone, to go far go together </li>
</ul>
</li>



<li>Found an interesting aligned concept on Polymer Professionals <a href="https://www.nathanbroslawsky.com/p/identity-careers-are-over-polymer-professions-are-in/">https://www.nathanbroslawsky.com/p/identity-careers-are-over-polymer-professions-are-in/</a></li>
</ol>



<p>What are your thoughts on these paradigms </p>
]]></content:encoded>
					
					<wfw:commentRss>https://ssmusoke.com/2025/06/24/in-praise-of-expert-generalists-and-normal-engineers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Acquired FM Coverage of Microsoft</title>
		<link>https://ssmusoke.com/2025/06/22/acquired-fm-coverage-of-microsoft/</link>
					<comments>https://ssmusoke.com/2025/06/22/acquired-fm-coverage-of-microsoft/#respond</comments>
		
		<dc:creator><![CDATA[ssmusoke]]></dc:creator>
		<pubDate>Sun, 22 Jun 2025 16:32:05 +0000</pubDate>
				<category><![CDATA[opensource]]></category>
		<guid isPermaLink="false">https://ssmusoke.com/?p=1666</guid>

					<description><![CDATA[The AcquiredFM podcasts on Microsoft were excellent, I listened to them in this order In 2012 I wrote a quick rebuttal on my thoughts as to why Microsoft is still a major player, I think I was only off by the mobile play here https://ssmusoke.com/2012/05/12/opinion-microsoft-demise-being-overrated-but-they-are-still-a-major-player/ However the areas that I think the podcast may have [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>The <a href="https://www.acquired.fm/about" target="_blank" rel="noreferrer noopener">AcquiredFM</a> podcasts on Microsoft were excellent, I listened to them in this order </p>



<ul class="wp-block-list">
<li>Steve Ballmer Interview &#8211; <a href="https://pca.st/episode/420e8980-1ca5-41b7-a534-cb558656d680" target="_blank" rel="noreferrer noopener">https://pca.st/episode/420e8980-1ca5-41b7-a534-cb558656d680</a></li>



<li>Microsoft Volume I &#8211; <a href="https://pca.st/episode/47924924-840f-453e-bfb0-a57191075f83" target="_blank" rel="noreferrer noopener">https://pca.st/episode/47924924-840f-453e-bfb0-a57191075f83</a></li>



<li>Microsoft Volume II &#8211; <a href="https://pca.st/episode/0e34570a-8e11-4d51-8668-59e768b4efa6" target="_blank" rel="noreferrer noopener">https://pca.st/episode/0e34570a-8e11-4d51-8668-59e768b4efa6</a></li>
</ul>



<p>In 2012 I wrote a quick rebuttal on my thoughts as to why <a href="https://x.com/Microsoft">Microsoft</a> is still a major player, I think I was only off by the mobile play here <a href="https://ssmusoke.com/2012/05/12/opinion-microsoft-demise-being-overrated-but-they-are-still-a-major-player/">https://ssmusoke.com/2012/05/12/opinion-microsoft-demise-being-overrated-but-they-are-still-a-major-player/</a> </p>



<p>However the areas that I think the podcast may have missed on the tech side:</p>



<ol class="wp-block-list">
<li>While Microsoft battled open source (Linux et al), they were still the largest contributor and supporter by far &#8211; their DNA is open source and developer tools </li>



<li>Developer tools were just touched upon, but they have been a great lever for Microsoft, Visual Basic 6, Crystal Reports, C and C++ tooling, Source safe for version control, ties in with the open source contributions </li>



<li>Windows 2000 &#8211; while the hype is on XP, this was the foundational OS in the move from NT, was loved by professionals and enterprises due to no frills, stability, and ease of use. It is very underrated </li>



<li>Hotmail, Live, and MSN while not talked about a lot were also truly foundational in the managed services DNA as the battles for email, messenger and news with Yahoo, AOL, and search engines drove leaps in that space before Google dominated all of them</li>



<li>The hardware space is only looked as Xbox and Surface, but Microsoft made great mice, keyboards which were hot for a while</li>
</ol>



<p>The Steve Ballmer era was the adulting/maturing age of Microsoft, being boring, nothing to show, tell plus not be seen as the future. However it truly set the stage for the current trajectory of excellence and mindshare today.</p>



<p>A special thank you to <a href="https://www.linkedin.com/in/benjamingilbert/" target="_blank" rel="noreferrer noopener">Ben Gilbert</a> and <a href="https://www.linkedin.com/in/davidjamesrosenthal/" target="_blank" rel="noreferrer noopener">David Rosenthal</a> for the excellent podcast episodes, they are so well done an illustration of the love and care taken in the research and preparation</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ssmusoke.com/2025/06/22/acquired-fm-coverage-of-microsoft/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Low-Hanging Fruit</title>
		<link>https://ssmusoke.com/2025/06/17/low-hanging-fruit/</link>
					<comments>https://ssmusoke.com/2025/06/17/low-hanging-fruit/#comments</comments>
		
		<dc:creator><![CDATA[ssmusoke]]></dc:creator>
		<pubDate>Tue, 17 Jun 2025 10:11:19 +0000</pubDate>
				<category><![CDATA[life musing]]></category>
		<category><![CDATA[life philosophy]]></category>
		<category><![CDATA[social commentary]]></category>
		<guid isPermaLink="false">https://ssmusoke.com/?p=1658</guid>

					<description><![CDATA[This post was inspired by an avocado tree in my compound at home over the last couple of days. How did we get here, and what are the implications? I spent a year aggressively pruning the top of the tree bringing it down to about 4m high, so the tree spread its branches low and [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="768" data-id="1675" src="https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.56.52-1024x768.jpg" alt="" class="wp-image-1675" srcset="https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.56.52-1024x768.jpg 1024w, https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.56.52-300x225.jpg 300w, https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.56.52-768x576.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="768" data-id="1677" src="https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.57.02-1024x768.jpg" alt="" class="wp-image-1677" srcset="https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.57.02-1024x768.jpg 1024w, https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.57.02-300x225.jpg 300w, https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.57.02-768x576.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="768" data-id="1678" src="https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.57.14-1024x768.jpg" alt="" class="wp-image-1678" srcset="https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.57.14-1024x768.jpg 1024w, https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.57.14-300x225.jpg 300w, https://ssmusoke.com/wp-content/uploads/2025/06/2025-06-17-12.57.14-768x576.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p>This post was inspired by an avocado tree in my compound at home over the last couple of days. How did we get here, and what are the implications?  </p>



<p>I spent a year aggressively pruning the top of the tree bringing it down to about 4m high, so the tree spread its branches low and wide. The fruits can now be picked by anyone at anytime without a lot of effort. </p>



<p>This gave me an idea that I need to focus on growing lower and stronger, strengthening few but critical aspects of life, family and career to make it easy for the future harvest. I grow lower, closer to the ground, closer to what is happening at the moment, closer to today and the things that matter &#8211; the bare necessities of life. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://ssmusoke.com/2025/06/17/low-hanging-fruit/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>OpenData Sandbox &#8211; an experiment on possibilities</title>
		<link>https://ssmusoke.com/2025/04/12/opendata-sandbox-an-experiment-on-possibilities/</link>
					<comments>https://ssmusoke.com/2025/04/12/opendata-sandbox-an-experiment-on-possibilities/#respond</comments>
		
		<dc:creator><![CDATA[ssmusoke]]></dc:creator>
		<pubDate>Sat, 12 Apr 2025 12:25:04 +0000</pubDate>
				<category><![CDATA[APIs]]></category>
		<category><![CDATA[opendata]]></category>
		<guid isPermaLink="false">https://ssmusoke.com/?p=1644</guid>

					<description><![CDATA[I have had an itch for quite a while to make available useful APIs in a practical and user-friendly manner (the best I can do with general design skills) for data that is available in PDFs, yes our government folks love this for sharing data &#8230; An opportunity came when a colleague shared a file [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>I have had an itch for quite a while to make available useful APIs in a practical and user-friendly manner (the best I can do with general design skills) for data that is available in PDFs, yes our government folks love this for sharing data &#8230; </p>



<p>An opportunity came when a colleague shared a file of administrative locations in Uganda, there was not a lot of detail, but hey we have got to start somewhere </p>



<p>My idea is a place where users can browse the data, download it in multiple formats, and also get access to API end-points to use it &#8211; with quick evolution based on needs from the field </p>



<p>Hence the site <a href="https://opendata.ssmusoke.dev ">https://opendata.ssmusoke.dev </a> </p>



<p>The tech stack is very simple: </p>



<ol class="wp-block-list">
<li>Laravel 12 running on PHP 8.4 with a MySQL backend deployed using <a href="https://forge.laravel.com/" target="_blank" rel="noreferrer noopener">Laravel Forge </a></li>



<li><a href="https://spatie.be/docs/laravel-query-builder/v5/introduction" target="_blank" rel="noreferrer noopener">Spatie Query Builder</a> package &#8211; provides the searching and filtering feature for the backend APIs</li>



<li><a href="https://filamentphp.com/" target="_blank" rel="noreferrer noopener">Filament PHP</a> for the backend admin dashboard and the frontend displays too &#8211; loving the multiple panel feature which allows me to build a resource once and then use in different ways </li>



<li>My IDE of choice is PHPStorm, with the Laravel Idea plugin and I am using Jetbrains AI as my coding partner &#8211; a match made in heaven</li>
</ol>



<p>The focus on the first version was shipping, so there are quite a bit of gaps in the data which I will be resolving as I get feedback (already received comments from a couple of users) who have seen it </p>



<p>What data would you like to see next on the site, the simpler, the better to get more data here. My plan is to eventually open-source it to provide a starting point for others to build their own<br><br><strong>UPDATES:</strong></p>



<p><em>12 April 2025 </em><br>This exchange with Wes Kambale (<a href="https://x.com/weskambale/status/1911037609221972426">https://x.com/weskambale/status/1911037609221972426</a>) led to a quick addition of NCHE licensed institutions <a href="https://opendata.ssmusoke.dev/public/higher-education-institutions">https://opendata.ssmusoke.dev/public/higher-education-institutions</a></p>



<p>13 April 2025<br>Added a Postman collection to ease testing out the API end-points at <a href="https://bit.ly/opendata-sandbox-ug">https://bit.ly/opendata-sandbox-ug</a> and below is a QR code </p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="793" height="1024" src="https://ssmusoke.com/wp-content/uploads/2025/04/bit.ly_opendata-sandbox-ug-1-793x1024.jpeg" alt="" class="wp-image-1682" style="width:840px;height:auto" srcset="https://ssmusoke.com/wp-content/uploads/2025/04/bit.ly_opendata-sandbox-ug-1-793x1024.jpeg 793w, https://ssmusoke.com/wp-content/uploads/2025/04/bit.ly_opendata-sandbox-ug-1-232x300.jpeg 232w, https://ssmusoke.com/wp-content/uploads/2025/04/bit.ly_opendata-sandbox-ug-1-768x992.jpeg 768w, https://ssmusoke.com/wp-content/uploads/2025/04/bit.ly_opendata-sandbox-ug-1-1189x1536.jpeg 1189w, https://ssmusoke.com/wp-content/uploads/2025/04/bit.ly_opendata-sandbox-ug-1-1586x2048.jpeg 1586w, https://ssmusoke.com/wp-content/uploads/2025/04/bit.ly_opendata-sandbox-ug-1-scaled.jpeg 1982w" sizes="auto, (max-width: 793px) 100vw, 793px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://ssmusoke.com/2025/04/12/opendata-sandbox-an-experiment-on-possibilities/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How Developers can survive and thrive in the turbulent times ahead in 2025</title>
		<link>https://ssmusoke.com/2025/03/28/how-developers-can-survive-and-thrive-in-the-turbulent-times-ahead-in-2025/</link>
					<comments>https://ssmusoke.com/2025/03/28/how-developers-can-survive-and-thrive-in-the-turbulent-times-ahead-in-2025/#respond</comments>
		
		<dc:creator><![CDATA[ssmusoke]]></dc:creator>
		<pubDate>Fri, 28 Mar 2025 09:12:14 +0000</pubDate>
				<category><![CDATA[engineering]]></category>
		<category><![CDATA[frugal innovation]]></category>
		<category><![CDATA[healthy living]]></category>
		<category><![CDATA[musings]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[social commentary]]></category>
		<category><![CDATA[software delivery]]></category>
		<guid isPermaLink="false">https://ssmusoke.com/?p=1636</guid>

					<description><![CDATA[The excellent technology community team at Africa Is Talking (https://africastalking.com/) asked me to give a talk on my insights into the rapidly changing technology space leading into 2025 beyond I had a great time sharing and below are the recording and presentation from the evening]]></description>
										<content:encoded><![CDATA[
<p>The excellent technology community team at Africa Is Talking (<a href="https://africastalking.com/">https://africastalking.com/</a>) asked me to give a talk on my insights into the rapidly changing technology space leading into 2025 beyond </p>



<p>I had a great time sharing and below are the recording and presentation from the evening </p>



<figure class="wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="AT Meetup | Navigating Tech&#039;s Choppy Waters | Survival Guide for Developers with Stephen Musoke" width="640" height="360" src="https://www.youtube.com/embed/Hqy0MlttF74?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://ssmusoke.com/wp-content/uploads/2025/03/SurvivingAndThrivinginTechin2025-v1.1.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of SurvivingAndThrivinginTechin2025-v1.1."></object><a id="wp-block-file--media-c5e0aec4-74e0-4ed6-90e6-72d7599c89ed" href="https://ssmusoke.com/wp-content/uploads/2025/03/SurvivingAndThrivinginTechin2025-v1.1.pdf">SurvivingAndThrivinginTechin2025-v1.1</a><a href="https://ssmusoke.com/wp-content/uploads/2025/03/SurvivingAndThrivinginTechin2025-v1.1.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-c5e0aec4-74e0-4ed6-90e6-72d7599c89ed">Download</a></div>
]]></content:encoded>
					
					<wfw:commentRss>https://ssmusoke.com/2025/03/28/how-developers-can-survive-and-thrive-in-the-turbulent-times-ahead-in-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Redis Cache &#8211; Potential Chernobyl in your Architecture</title>
		<link>https://ssmusoke.com/2024/12/11/redis-cache-potential-chernobyl-in-your-architecture/</link>
					<comments>https://ssmusoke.com/2024/12/11/redis-cache-potential-chernobyl-in-your-architecture/#respond</comments>
		
		<dc:creator><![CDATA[ssmusoke]]></dc:creator>
		<pubDate>Wed, 11 Dec 2024 11:10:10 +0000</pubDate>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[software delivery]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[cache servers]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://ssmusoke.com/?p=1612</guid>

					<description><![CDATA[Redis cache, so fast, so easy to setup but a potential Chernobyl, lying within your system. The problem comes when the Redis cache is used as a permanent store of values within your system, so applications and services get to use it as stable source of truth. This is an easy trap to fall into [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Redis cache, so fast, so easy to setup but a potential Chernobyl, lying within your system. </p>



<p>The problem comes when the Redis cache is used as a permanent store of values within your system, so applications and services get to use it as stable source of truth. This is an easy trap to fall into since Redis is fairly stable, fast and easy to add values to</p>



<p>When there is any issue with this cache systems can be brought to their knees, as there is no easy fall back to recreate the cache, leading to expensive downtime </p>



<p>What are ways to mitigate this:</p>



<ol class="wp-block-list">
<li>Regularly expire your cache keys and values &#8211; this forces applications to regularly fill the cache and be able to work without it. We are commonly using 24 hours for this so that it is regular and occurs during the week days </li>



<li>Cycle your cache servers &#8211; a slow modified version of the Netflix chaos monkey, create new cache servers every 6 months or so, a little painful when you have multiple services whose cache service urls need to be updated </li>



<li>Use a permanent database based cache for computed values that do not change, which is close to the source &#8211; maybe Redis is not the place to store this complex data </li>
</ol>



<p>What are your thoughts and approaches that you have used? </p>
]]></content:encoded>
					
					<wfw:commentRss>https://ssmusoke.com/2024/12/11/redis-cache-potential-chernobyl-in-your-architecture/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Additional Advice for Avoiding Costly Mistakes During Home Construction</title>
		<link>https://ssmusoke.com/2024/10/12/additional-advice-for-avoiding-costly-mistakes-during-home-construction/</link>
					<comments>https://ssmusoke.com/2024/10/12/additional-advice-for-avoiding-costly-mistakes-during-home-construction/#comments</comments>
		
		<dc:creator><![CDATA[ssmusoke]]></dc:creator>
		<pubDate>Sat, 12 Oct 2024 08:19:59 +0000</pubDate>
				<category><![CDATA[engineering]]></category>
		<category><![CDATA[musings]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[social commentary]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[building]]></category>
		<category><![CDATA[construction]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[home-improvement]]></category>
		<guid isPermaLink="false">https://ssmusoke.com/?p=1536</guid>

					<description><![CDATA[Kakande Alex has an interesting post today on his substack channel Tips for Avoiding Costly Mistakes During Construction which I felt was very high level and not providing real strategies and tactics for getting through the construction process. The first aspect of construction for a home to understand is that it is a process of [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Kakande Alex has an interesting post today on his substack channel <a href="https://kakandealex.substack.com/p/tips-for-avoiding-costly-mistakes">Tips for Avoiding Costly Mistakes During Construction</a> which I felt was very high level and not providing real strategies and tactics for getting through the construction process. </p>



<p>The first aspect of construction for a home to understand is that it is a process of creation, therefore changes should be expected, as the project advances, due to more information becoming available, and more experience/understanding in construction dynamics by the project owners. </p>



<p>This advice and lessons are based on 3 separate projects over a decade and is specifically for home construction, some may apply to commercial property </p>



<ol class="wp-block-list">
<li>Design &#8211; this is when the vision is brought from the owner(s) heads onto paper into architectural drawings which are then taken to local authorities for approval 
<ul class="wp-block-list">
<li>The design is for the owners, not the architect, thus they need to put their foot down to ensure they get a liveable and usable space. Many architects re-use existing plans or create grandiose plans, based on the owner&#8217;s vision &#8211; without asking the hard questions and giving practical advice</li>



<li>Owners need to undertake verification of dimensions by actually taking measurements of existing homes/buildings and available spaces to get a sense of what the spatial dimensions are like </li>



<li>Owners tend to have grandiose visions, with design elements that are expensive to bring to life &#8211; arches, spirals, wide rooms (roofing), etc, and it is the fiduciary duty of the architect to advise accordingly </li>



<li>Owners need to have functional walkthroughs of the spaces and how they will be used &#8211; e.g., how regular users go through the house vs guests, how can they be secured, lighting, etc to lead to practical designs </li>



<li>Design alternatives &#8211; complex roofing, and space designs have to take into account local workmanship and capabilities including the availability of materials </li>



<li>Location, location, location &#8211; slopes, wetlands, water flows (aka mukoka), sunlight direction vis-a-vis windows, other land usages in the area to guide decision making &#8211; no building is an island </li>
</ul>
</li>



<li>Financial Plan &#8211; in this case, I would advise getting an estimate of the costs of construction, the final figure will be anywhere from 50% to 200% higher </li>



<li>Actual construction &#8211; many will advise construction firms but these too will require close supervision during these stages as decisions, choices and mistakes will come back to bite one later 
<ul class="wp-block-list">
<li>Materials &#8211; these should be the sole responsibility of the project owner so that the construction company/lead focuses on labor costs. This reduces shortcuts on lower-grade materials and mixes to meet budgets that are set </li>



<li>Project phases &#8211; the construction has to be broken into multiple phases, and ensure that each phase has a clear deliverable, with a minimum of 4 week break between each phase for the workers to rest and evaluation of progress/collection of advice for the next phase.The following are some phase options: 
<ul class="wp-block-list">
<li>Clearing </li>



<li>Foundation construction </li>



<li>Walls to ring-beam </li>



<li>Ring-beam (may be combined with walls) for single-story and floor slab for multi-story building </li>



<li>2nd-floor walls (for multi-story building), repeat with slab for each additional floor as needed </li>



<li>Roofing</li>



<li>Windows and door fixing (this provides security so internal electrical and plumbing fittings can be fitted) </li>



<li>Plumbing and electricals </li>



<li>Plastering walls and ceiling (if needed) </li>



<li>External plumbing and sewage provisions </li>



<li>Floor if not covered as part of foundation construction</li>



<li>Floor completion &#8211; tiles, screed &#8211; cement floors or terrazzo</li>



<li>Window/door glass fittings </li>



<li>Painting </li>
</ul>
</li>



<li>At the beginning of each phase, the majority of the materials need to be purchased and brought on-site in bulk to manage costs </li>



<li>Work with a hardware supplier within the locality to reduce the amount of materials on site to reduce pilferage and theft </li>



<li>Track all the materials and costs for the project, this gives a sense over time of how the funds are being spent </li>



<li>When making payments for labor costs, make a payment at the beginning of the project phase (for mobilization) then make payments every week or every 2 weeks, to keep worker morale high. </li>



<li>Actual usage and amounts will be higher than any estimates (that is what they are like right)</li>



<li>The project owners need to visit the site regularly to review progress and make decisions on design changes/deviations &#8211; it is also okay to pause the project to carry out consultations. </li>



<li>Owners need to be accompanied for project visits by &#8220;trusted&#8221; professionals at each stage when needed and ensure that the &#8220;professional fees&#8221; are catered for so that the advice can be leaned on and leveraged </li>



<li>Project owners need to become knowledgeable and prepare for each stage, getting second and third opinions, but needing to decide a path forward since more advice is not necessarily better </li>
</ul>
</li>



<li>Construction is a labor of love, you cannot delegate this to others, you need to get involved and take the time/energy to bring it to life. It is akin to parenting </li>
</ol>



<p>Overall construction is a journey, with multiple twists and turns, what is your experience? </p>
]]></content:encoded>
					
					<wfw:commentRss>https://ssmusoke.com/2024/10/12/additional-advice-for-avoiding-costly-mistakes-during-home-construction/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Automating the Deployment and Scheduled Execution of an R script on a VPS using Laravel Forge</title>
		<link>https://ssmusoke.com/2024/01/05/automating-the-deployment-and-scheduled-execution-of-an-r-script-on-a-vps-using-laravel-forge/</link>
					<comments>https://ssmusoke.com/2024/01/05/automating-the-deployment-and-scheduled-execution-of-an-r-script-on-a-vps-using-laravel-forge/#respond</comments>
		
		<dc:creator><![CDATA[ssmusoke]]></dc:creator>
		<pubDate>Fri, 05 Jan 2024 10:30:15 +0000</pubDate>
				<category><![CDATA[ci/cd]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[deployment]]></category>
		<guid isPermaLink="false">https://ssmusoke.com/?p=1515</guid>

					<description><![CDATA[I love data, its in my blood, I love analysing, cleaning it and preparing it for others to use, still have to get to the last mile to displaying and visualizing it but that is a story for another day 2024 for me is the year of &#8220;automation&#8221;, for everything that I do. I have [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>I love data, its in my blood, I love analysing, cleaning it and preparing it for others to use, still have to get to the last mile to displaying and visualizing it but that is a story for another day</p>



<p>2024 for me is the year of &#8220;automation&#8221;, for everything that I do. I have been polishing up my R skills over the holidays, as a way for moving into Python based data wrangling, however the challenges that I have faced is to do with getting my R scripts to run regularly &#8211; this has to be on a server connected to the internet since my laptop is not always on</p>



<p>I tried ShinyApps in the past, but this needed me to learn more things which I did not have bandwidth for. </p>



<p>So when Contabo my host wiped my dev VPS during the holidays, I had to re-build my sites, one of which was a documentation site built using PHP and markdown, which I wrote about <a href="https://ssmusoke.com/2023/04/15/deploying-a-tighten-jigsaw-static-site-to-a-vps-using-laravel-forge/" target="_blank" rel="noreferrer noopener">Deploying a Tighten Jigsaw static site to a VPS using Laravel Forge</a> I was deploying generated HTML to the VPS, then it hit me can&#8217;t I do the same with an R script </p>



<h2 class="wp-block-heading">Setup and Configuration </h2>



<ol class="wp-block-list">
<li>Install R on your server, here are steps to install R v4.x (I was able to get 4.3.2) <a href="https://medium.com/@hpgomide/how-to-update-your-r-3-x-to-the-r-4-x-in-your-linux-ubuntu-46e2209409c3">https://medium.com/@hpgomide/how-to-update-your-r-3-x-to-the-r-4-x-in-your-linux-ubuntu-46e2209409c3</a> </li>



<li>Create a static site via Laravel Forge from the screenshot below 
<ul class="wp-block-list">
<li>The domain does not really matter, use any custom sub-domain, even if it does not exist since we shall not be accessing this site anyway </li>



<li>Select Static HTML/Next.js/Nuxt.js </li>



<li>Select &#8220;website Isolation&#8221; where you specify a user name for the site, I tend to do this alot allowing me to do custom commands without using the global forge user </li>



<li><img loading="lazy" decoding="async" width="1021" height="614" class="wp-image-1521" style="width: 150px" src="https://ssmusoke.styxtechgroup.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-12.39.39.png" alt="Create a new static site with Laravel Forge" srcset="https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-12.39.39.png 1021w, https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-12.39.39-300x180.png 300w, https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-12.39.39-768x462.png 768w" sizes="auto, (max-width: 1021px) 100vw, 1021px" /><br /></li>
</ul>
</li>



<li>Install your site code repository, GitHub/Gitlab are natively supported, and uncheck the &#8220;Install Composer dependencies&#8221;, we do not need this for R 
<ul class="wp-block-list">
<li><img loading="lazy" decoding="async" width="1036" height="581" class="wp-image-1522" style="width: 150px" src="https://ssmusoke.styxtechgroup.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-12.46.15.png" alt="Install Repository " srcset="https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-12.46.15.png 1036w, https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-12.46.15-300x168.png 300w, https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-12.46.15-1024x574.png 1024w, https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-12.46.15-768x431.png 768w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /></li>
</ul>
</li>



<li>The magic happens in the Deployments tab which is enabled once you have connected the code repository
<ul class="wp-block-list">
<li>Firstly &#8220;Enable Quick Deploy&#8221; so that whenever you push code to the selected branch in Step #2 above the code is deployed</li>



<li>Customize your R script to be executed, in my case it was a simple as in the image below. I would also recommend keeping it as simple as you can to reduce deployment headaches </li>



<li><img loading="lazy" decoding="async" width="1265" height="988" class="wp-image-1526" style="width: 150px" src="https://ssmusoke.styxtechgroup.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-13.24.45.png" alt="R execution script " srcset="https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-13.24.45.png 1265w, https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-13.24.45-300x234.png 300w, https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-13.24.45-1024x800.png 1024w, https://ssmusoke.com/wp-content/uploads/2024/01/screenshot-2024-01-05-at-13.24.45-768x600.png 768w" sizes="auto, (max-width: 1265px) 100vw, 1265px" /></li>
</ul>
</li>



<li>You can also test a deployment by clicking the &#8220;Deploy Now&#8221; button at the top of the page which will re-run the last deployment </li>
</ol>



<p><a href="https://forge.laravel.com/">Laravel Forge</a> is $12 per month for a single VPS, then costs $19 per month for unlimited servers </p>
]]></content:encoded>
					
					<wfw:commentRss>https://ssmusoke.com/2024/01/05/automating-the-deployment-and-scheduled-execution-of-an-r-script-on-a-vps-using-laravel-forge/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Starting A Family Through Marriage in Buganda</title>
		<link>https://ssmusoke.com/2023/12/07/starting-a-family-through-marriage-in-buganda/</link>
					<comments>https://ssmusoke.com/2023/12/07/starting-a-family-through-marriage-in-buganda/#respond</comments>
		
		<dc:creator><![CDATA[ssmusoke]]></dc:creator>
		<pubDate>Thu, 07 Dec 2023 11:57:00 +0000</pubDate>
				<category><![CDATA[Buganda Culture]]></category>
		<guid isPermaLink="false">https://ssmusoke.com/?p=1492</guid>

					<description><![CDATA[This article was initially published on Facebook Notes in 2010, but seems to have been deleted fortunately I found a backup version so publishing it here for the world The centerpiece of Ganda culture, in-line with other ancient civilizations, Greece, Egypt and Rome, is family; it provides the core support for growth and development of [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>This article was initially published on Facebook Notes in 2010, but seems to have been deleted fortunately I found a backup version so publishing it here for the world </p>



<p>The centerpiece of Ganda culture, in-line with other ancient civilizations, Greece, Egypt and Rome, is family; it provides the core support for growth and development of children. Like other African cultures, the Ganda family unit is not nuclear (father, mother and children), but an extended one that includes the relatives of both parents. The Ganda culture, in particular, has also evolved to include ceremonial checks and balances.</p>



<p>To start a family in Kiganda culture, a couple must go through three ceremonies. During which, the girl is represented by her <strong>ssenga</strong>, usually a sister or cousin to her father and of the same clan, and the boy is also represented by an elder in his family.</p>



<p>The first ceremony is called <strong>kukyala</strong>, visit, which is arranged by the <strong>ssenga</strong>, where the bride-to-be shows her <strong>kitanyi</strong> or future husband, to the ssenga and a few other relatives. The purpose of the ceremony is to enable the young man to officially show his wish to marry the girl and to establish a personal relationship with the ssenga and other family members. Although the <strong>kukyala</strong> ceremony may take place in the girl’s current home, her parents do not have to be directly involved. Although it is not required, the groom-to-be&nbsp; may bring gifts for the <strong>ssenga</strong> and the girl’s family.</p>



<p>The next phase is <strong>okwanjula</strong>, introduction, where the <strong>ssenga </strong>officially introduces the boy to the girl’s family and close friends, as the future husband. Baganda do not require that a bride price be paid for the bride. However, it is customary for the groom’s party to bring more gifts to the introduction, and some of the most symbolic include:</p>



<ul class="wp-block-list">
<li><s></s><strong>enkoko y’omuko</strong> &#8211; a chicken for the official brother-in-law.</li>



<li><strong>omutwalo</strong> – a &nbsp;symbolic bride price gift. It could take several forms depending on the groom’s financial resources. One of the more common ones is a goat (<strong>embuzi y’omutwaalo</strong>) where the goat metaphorically fills the girl’s bed—giving her no reason to return to her parents’ home.</li>



<li>&nbsp;</li>



<li>The groom’s parents never attend the <strong>kwanjula</strong> and the bride’s parents never speak during the ceremony, leaving the job to a representative. &nbsp;At the end of the ceremony, the parents announce the good news to the community, <strong>okubambaga</strong>, since the ceremonies, so far, have been close family affairs. The wedding ceremony, <strong>embaga</strong>, is where the entire community celebrates the union and the addition of a mature couple.</li>
</ul>



<p>Prior to the wedding, the groom and his party come to the bride’s parent’s home to pick her up and take her to her new home, while preparing for the wedding ceremony. They bring along the <strong>kasuze katya</strong> token gifts and eat a small breakfast before leaving with the bride.</p>



<p>At the wedding, the groom’s parents set-up a thatched shed or tent for the couple to march around their guests, <strong>okudaala daala</strong>, hence the ceremonial shade is called <strong>ekidaala</strong>. The wedding ceremony provides the parents and other members of both families a chance to get to know one another, <strong>okumanyagana</strong>.</p>



<p>After the wedding, the bride, <strong>omugole</strong>, spends six days <strong>mu kisenge</strong>, indoors, in her new home&#8211;equivalent to honeymoon. When the husband is outside during these six days, the bride is pampered and counseled about her new family, <strong>oluggya, </strong>by the female relatives of her husband. On the sixth day, she may return to her parent’s home to brief them about her new life. She goes with her sisters or aunties-in-law, along with gifts of <strong>matooke </strong>(plantain), a mat, and chickens. In turn, she is usually given a papyrus basket, <strong>ekibo,</strong> by her family to take back home.</p>



<p>After the bride returns to her new home, the mother-in-law, <strong>nyazaala</strong>, gives her <strong>ekibo</strong> containing a number of items that are covered with banana leaves and a cluster of <strong>matooke</strong> on top, to help her run her new household.&nbsp; The items include, among other things:</p>



<ul class="wp-block-list">
<li>Knife – to enable her to peel food</li>



<li>A piece of cloth (<strong>akade</strong>) – the bride has to now dress decently since her husband has grown-up and can now fit the shoes of his grandfather, father or&nbsp; elder brother.</li>



<li>Banana leaves and a cluster of <strong>matooke</strong>, <strong>ekiwagukira</strong> – must always has enough food for her husband when he returns from work, even if the rest of the household has already eaten.</li>



<li>Different types of food – Ensuring that the food always has sauce and vegetables.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://ssmusoke.com/2023/12/07/starting-a-family-through-marriage-in-buganda/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How Uganda Revenue Authority (URA) can Engage, Develop and Support the Development of LocalTechnology Community from 2013</title>
		<link>https://ssmusoke.com/2023/12/05/how-uganda-revenue-authority-ura-can-engage-develop-and-support-the-development-of-localtechnology-community-from-2013/</link>
					<comments>https://ssmusoke.com/2023/12/05/how-uganda-revenue-authority-ura-can-engage-develop-and-support-the-development-of-localtechnology-community-from-2013/#respond</comments>
		
		<dc:creator><![CDATA[ssmusoke]]></dc:creator>
		<pubDate>Tue, 05 Dec 2023 13:19:29 +0000</pubDate>
				<category><![CDATA[future-look]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[technology]]></category>
		<guid isPermaLink="false">https://ssmusoke.com/?p=1487</guid>

					<description><![CDATA[This resurfaced as a discussion on challenges with the URA Portal performance, so I dug back into my archives and found the concept note for this almost a decade ago &#8211; bringing it back into the open]]></description>
										<content:encoded><![CDATA[
<p>This resurfaced as a discussion on challenges with the URA Portal performance, so I dug back into my archives and found the concept note for this almost a decade ago &#8211; bringing it back into the open </p>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://ssmusoke.com/wp-content/uploads/2023/12/uraengagement-v1.0.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of Concept Note for URA Engagement with the Local Tech Industry."></object><a id="wp-block-file--media-34e517f7-fb7e-4289-ae6e-ff27549bed1f" href="https://ssmusoke.com/wp-content/uploads/2023/12/uraengagement-v1.0.pdf">Concept Note for URA Engagement with the Local Tech Industry</a><a href="https://ssmusoke.com/wp-content/uploads/2023/12/uraengagement-v1.0.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-34e517f7-fb7e-4289-ae6e-ff27549bed1f">Download</a></div>
]]></content:encoded>
					
					<wfw:commentRss>https://ssmusoke.com/2023/12/05/how-uganda-revenue-authority-ura-can-engage-develop-and-support-the-development-of-localtechnology-community-from-2013/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
