Image for post
Image for post
Monzo Plus and Open Banking (from Monzo Press)

My use-case of Monzo is a daily spending card to ring fence “fun money”. Its budgeting tools are good enough for simple uses like mine, and the design is aesthetically pleasing.

I signed up to its recent offering — Monzo Plus — because I thought I would make use of the virtual cards, the ability to view my other accounts in Monzo, and the custom categories.

That, mostly, didn’t turn out to be the case.

The virtual cards’ design and integration into the app was quite clunky, and there was no way to easily pull up the card numbers. …

A view of the famous Hollywood sign from a distance.
A view of the famous Hollywood sign from a distance.
Creativity, competition, and cold, hard cash. Photo by Nico Amatullo on Unsplash

The United States of America — like it or not — is a huge influence on the world, particularly the Anglosphere. The nation and their people inspire many modern democracies. Ideas pioneered by the American entrepreneurial spirit have led to incredible progress.

America is a complicated country with a history filled with both despicable and heroic acts — its founding constitution stated that some human beings were worth three-fifths of others. The same country is also one of the most generous; a world leader in innovation, science, culture, and media.

I believe that Americans are good people on the whole. I’ve met, worked with, and competed against them. Americans have an infectious positivity and energy and a genuine belief that they can change the world. …

Performance should be a first-class citizen of every modern application.

There are plenty of reasons to justify putting performance at the forefront of your application, and this blog post isn’t about that.

This post is meant to discuss a high-level concept that allows you to gain massive speed improvements and, depending on the platform that you’re using, relatively minimal engineering effort.

Lazy loading is a design pattern commonly used in computer programming to defer initialization of an object until the point at which it is needed.


In various areas of software engineering, lazy loading is an optimisation step that is particularly beneficial when data is expensive to render, or otherwise process, so you only load the data when the you, or the person using your software, needs it. …

A few months ago, I was introduced to a new way to write JavaScript. It’s name was Elm and its promise is to

Generate JavaScript with great performance and no runtime exceptions.

I was particularly intrigued by the latter part of the promise which prompted me to dip my toe in the water. Fast forward to today, I can safely say that Elm has fulfilled the promise it made.

Thinking back to my journey learning Elm, the most difficult part of getting comfortable with writing it was forcing myself to think the Elm way. I find that there is an Elm way of doing things, and trying to shoehorn concepts from other programming languages and frameworks into Elm will make things more difficult. …

Most users of POSIX based systems have most likely heard of or use the grep command regularly. For those who don’t know, grep is a method of searching an input file for a match of one or more patterns. It’s a very useful and powerful tool, especially when you pair it with some advanced regular expressions.

One of the things I didn’t know until yesterday, and thought would be interesting to share, is that you can also use grep on any Ruby class that includes the Enumerable module.

The output of ri Enumerable#grep is as follows:

= Enumerable#grep(from ruby core)
--------------------------------------------------------------------enum.grep(pattern) -> array
enum.grep(pattern) { |obj| block } ->…

As Software Developers, we like to have the tools we use configured just the right way. This creates an issue, however, when you have to configure your development environment again in the future for any reason.

“Uurgh, what was that git alias for nice logs again?” and “why don’t I have docker installed on my machine?! I swear I had it installed” become your source of annoyance for the next week.


Professionally, I primarily use Ruby, Elixir, and Javascript to build applications. The tools required to be productive in these languages extend further than the programming languages themselves. …

Image for post
Image for post

Last week Thursday, carwow hosted a dojo for the Elixir community to eat, drink and get down and dirty with the language. The challenge for this first dojo was to build a parser for poker hands (of the Texas Hold’em variety). The parser would be able to tell what kind of hand you have and what they’re worth.

Future dojos will build on this by comparing different hands, implementing rounds, all with the aim to build a fully working poker application in our favourite functional language.

I would like to take the opportunity to thank all the lovely members of the Elixir community who showed up and made the dojo a lot of fun. It was great meeting you all, I really enjoyed collaborating, chatting and getting to know you all. …

Like many developers in the Ruby community, and around half of the developers at carwow, I use and love Vim. There are a lot of different reasons why people use and love Vim, mine is that it synergises with my philosophy that text editors should primarily focus on increasing productivity for manipulation of text. Vim excels at this.

About two months ago, one of our resident vim-wizards told me to try out Neovim. “It fixes all the issues with Vim, while being backwards compatible with all your plugins” was the sales pitch.

Issues? What issues?

Being relatively new to Vim (~6 months of usage), I was very much in the honeymoon phase. I couldn’t really think of any issues with my newest revolutionary tool; but I’ve always kept an open mind (which is how I came to learn to use Vim in the first place) so I gave it a go. …

Being a Humble Developer

Image for post
Image for post
One of the core carwow values — Confident and Humble

Thoughts on mentoring and helping others (by another developer trying to figure things out).

“The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.”

– Edsger W. Dijkstra

As a developer — especially one at a junior level in terms of professional experience — one of the most difficult and most daunting experiences is to join a new team.


Muyiwa Olu

I love computers, design, and people.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store