Quick primer on Designing an Enterprise Messaging Platform

Introduction: Messaging as a Strategic Function Effective communication is the cornerstone of the modern digital relationship between an enterprise and its users. Messaging, defined here as any asynchronous, non-interactive transmission of information to a user regarding their account, activity, or engagement, transcends mere delivery. It represents a critical, multi-dimensional system requiring strategic planning across channel selection, content design, compliance, and systems observability. Treating messaging as a core architectural concern—rather than an ancillary feature—is essential for maintaining trust, security, and a positive user experience. ...

October 13, 2025 · 8 min · Soma Mbadiwe

COVID-19: CS Lewis Has Some Words For Us

All over the world, the Wuhan Virus (COVID-19) has upended life as we know it. The The “social distancing” being recommended by experts seems to be having unintended consequences. Schools are closing, churches are cancelling services, major sporting, musing and entertainment events are being cancelled or postponed. Across grocery shops, shelves are literally empty due to panic buying. Even worse, a growing number of countries have closed their borders. This situation is somewhat similar to the situation in the late ’40s, when the world was recovering from the devastating effects of the nuclear bombs dropped in Japan in 1945. There was a real fear of the so-called nuclear apocalypse, especially given the number of countries that had nuclear weapons. It was in such a time that C.S. Lewis wrote the following, to addres the situation and encourage his audience. Those words are especially relevant today. Here they are: ...

March 15, 2020 · 3 min · Soma Mbadiwe

Cannot call action method on controller because the action method is a generic method

I have been living my life writing web apps with MVC5 until I ran into this weird problem. It happened because I put a generic method in my controller (I had a base controller, but that’s by the way). I implemented some functionalities using Command Pattern and thought I could retrieve my command handler within a controller using the simple call: 1 2 var handler = CommandHandler<TCommand>(); handler.Handle(command); Well, I got the error: Cannot call action method on controller because the action method is a generic method. So I ended up writing a solution where I now call ...

January 2, 2019 · 3 min · Soma Mbadiwe

C# - How To Get Logged In User's Username and Track Activities from Windows Service

If you’ve ever looked at Windows Event Logs, you must have noticed that it logs too many information, most of which are not useful when you’re actually trying to do some kind of forensics. To reduce this noise, I went to build a proof-of-concept Windows Service whose only task is to log users’ session activities (Lock, Unlock, Logout, Login, etc) in a different place, thus giving me a much smaller log file to dig through. ...

January 2, 2019 · 3 min · Soma Mbadiwe

How to Migrate Your Data From Shared Hosting Server To Your System

Sometime ago, I built an ASP.NET site for a client and hosted it on GoDaddy public shared server. Soon enough, the need arose to back up all data generated periodically. Even though GoDaddy offers database backup, we did not have extra cash for that, so I had to innovate, creating a solution that connects to the server and brings down my data from some or all my tables whenever I want them, at no cost. The rest of the post is a summary of what I did. Use it as a guide if you are in a situation similar to the one I described above. ...

January 2, 2019 · 9 min · Soma Mbadiwe

VS 2017 Error: The specified task executable "sgen.exe" could not be run. The filename or extension is too long.

OK, I admit this error tripped me off. If it were a file I created, I would have simply moved things around to reduce the filename length. But the error was coming from Visual Studio, specifically, from C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets. And, sgen: what’s that? It turns out sgen is just an XML serializer generator - something I clearly don’t use or need. The .targets file above contained a task referencing Sgen. So, what now: comment it out? ...

January 2, 2019 · 1 min · Soma Mbadiwe

Most Important Biology Knowledge for Bioinformatics

Bioinformatics is the design, construction and use of software tools to generate, store, annotate and analyse data and information relating to Molecular Biology. Many people, like me, come into this field of study without a background in biological sciences, thus require at least some knowledge of biology to better make sense of the literature. The good news is you don’t need a degree program worth of knowledge to get started. You can get started with just a few key pieces of information and learn more as you grow and go deeper. In fact, many of the pioneers of molecular biology (e.g. Max Delbrück and Erwin Schrödinger) had no background in biology too, so you’re not alone. ...

December 31, 2018 · 4 min · Soma Mbadiwe