Blog Posts

Evolution of Code Style

When I started programming I developed a particular code style. This style was defined by how I structure my code, how I name things etc and was heavily influenced by the senior developers I worked with. Over the years I developed my own personal style which was evolved with every project I did and every […]

Code Corner: Missing Number

Problem Source: Codility Given an array A of length n filled with integers find the smallest missing positive number. Example: [4,8,1,3,2] => 5 [1,2] =>3 Restrictions n ranges from 1 .. 100,000 Values of A range from -1,000,000 to 1,000,000 My Solution As usual, I decided to first take a brute force approach. As a […]

macbook pro iphone cup desk

Code Corner: Long Factorials

Long Factorials Calculating the factorials is one of the most basic algorithms out there. It’s so basic it’s actually used to teach a harder concept, recursion. I’m explaining this so that I can get away with using the 2-minute explanation of both concepts. Let me know if you’d be interested in a deeper dive. Recursion […]

Code Corner: Permutation Check

The problem: We are doing a permutation check. Given a list A with n elements and the task is to determine if A is a permutation of natural numbers from 1 to n. For example [4,2,3,1] is a permutation since all element of the list are in the list [1..n] where n=4. [4,1,2] is not […]

Hacking My Password Manager

I keep all of my passwords in a password manager. My password manager of choice is Keepass. I used because it’s open-source, free and doesn’t require me to be locked into a cloud-based server. If I require syncing across devices then I can use Google Drive or iCloud services I’m already using. This means the […]

Remote Work is here

Remote work is here. Developers have known for ages that all you need to work is a laptop and internet, now thanks to COVID everyone else does too. I’ve worked remotely for the better part of three years now, starting back in 2017 when I was doing consulting in the UAE. I went there physically […]

Hacking the Blockchain

I was having a chat with a friend of mine when the issue of how secure blockchain really was came up. Basically the question was: Is it possible to hack blockchain? Short answer: Yes.Long answer: Yes, but it’s complicated. While the concept itself is pretty resilient to hacking, blockchain, like all other software suffers from […]

Jenkins update

So a few weeks ago I started a project to install Jenkins and set up CI/CD on my projects. Well just after I started that project I had a series of big life changes that put that on hold for a few weeks. I left my old job and have been reorganising my life, getting […]

Setting up Jenkins

This is part 1 of my CI/CD experiment. In this post, I’ll be focusing on getting Jenkins up and running. This build was supposed to take me 15 to 30 minutes but I kept running into issues that needed fixing that ballooned that time to a few hours. I haven’t mentioned them here but I’ve […]

Setting up my own CI/CD

So I’m a fan of automation because I don’t like repeating stuff and I’m lazy. One of the things I learned at my job is to automate CI/CD. I had a little time during the weekend and I decided to actually implement my own CI/CD setup and decided that since I’m going to do it […]