One For The Ladies

I’m glad I wasn’t born a woman. Life seems hard enough as it is being a man. Wiser people said it before. John Lennon comes to mind. I don’t want to cover the pay gap, the differences in working conditions, or even the relative absence of women in IT despite their clear added value. These are all known issues.

I want to focus on a small bit that may interest you, especially if you are a woman. I want to talk about the pink tax. The pink tax is the tendency of companies to up the price on feminine products. What does that have to do with optimising my life, you ask. Well, I’m glad you asked.

It turns out that the pink tax often applies to gender-neutral products, too. Take the shaving razor, for example. 8 blades for men cost £12.00. 8 blades for women cost £15.49. How about this set of DIY tools in pink (£26.99) vs the same set in black and red (£25.99, also available in blue with an extra tool for the same price)?

These products are virtually identical. You won’t get better results with the feminine blades or hammer. So why pay the pink tax?

The next time you are about to buy a product, ask yourself a few questions:

  • Is this product targeting girls or women?
  • Is there a male-targeting equivalent?
  • Does the alternative satisfy your requirement?

If your answer to all of the above is “yes” – don’t throw your money away. Buy the cheaper product. Then let others know, and maybe the pink tax will eventually go away.

Seek and Destroy

One of my favourite ways of keeping my computer secure is passive protection. It keeps my CPU and memory free to focus on the work at hand. I never did like the idea of paying top dollar for a top-of-the-line CPU and fast memory only to spend a large portion of them on anti-virus software running in the background.

One great way of achieving passive protection is updating your hosts file. Another is the free Spybot – Search & Destroy tool’s immunisation feature. They don’t seem to update their list as often as they used to, but running it once should provide you with significant passive protection. It configures your web-browsers and computer to block requests to known malicious websites. It also blocks tracking cooking and dangerous browser plugins.

Spybot is, unfortunately, a Windows only application. If you know of an MacOS equivalent, let me know and I’ll update this post.

Now sit back, relax, and watch the bad guys hit your passive wall of protection.

I Guess This is Obvious

A lot of the decisions I make rely on assumptions. It’s so much easier to work with assumptions than to validate every bit of information that is factored into a decision. It can also prove to be a terrible mistake.

Assumptions are risky shortcuts. What if your assumption was correct at some point in time, but things changed? What if it was never correct to begin with?

Imagine I go out to the store assuming it’s open. It was open the last time I checked, and it was about the same time. Only since then, it may have changed its opening times, or closed altogether.

What if I assumed if I left my cup by the coffee machine, someone would assume I wanted coffee. I’d likely not be getting my coffee anytime soon!

This is true at work, too. When I review someone’s code, and I’m not certain as to what that code should do, I’m much better off asking the question than assuming. I can’t begin to count the number of times this saved us from introducing a bug.

My point is simple: always challenge your assumptions. Always ask questions. In many cases, it would save you a lot of time you’d have wasted going down the wrong path. But I assume that’s obvious.

Hmm… Let’s Get Those Crisps

One of the most time consuming menial tasks I have is grocery shopping. It is also one that can easily become a money drain. This is why I spent a lot of time trying to optimise it. Here are my takes to date:

1. Don’t shop when hungry

The first thing I did was not go to the supermarket hungry. It is amazing how short your shopping list gets when you’re not hungry. Snacks don’t have as much appeal, and it’s much easier to rationalise your choices.

2. Shop online

Next, I cut on my commute and browsing time by shopping online. This also helped me save a lot by having easier access to sales on products I consume frequently and can stock up on. Most vendors have decent interfaces nowadays for finding sales.

3. Learn your routine

Then, my wife and I learned our routine. This helps us cut on waste. We know exactly how much we need of everything, and buy accordingly. We never throw away expired goods anymore. Nothing has to wait that long to be consumed.

4. Book time slots in advance

Lastly, if we learned something during the pandemic it’s that it is hard to book delivery slots last minute. So we book slots a week in advance, and edit the order right before delivery.

Do you have any advice on optimising your grocery shopping? Please do share!

Also check out The Apple Scourer™

Heavy Weight

Keeping my pc software up-to-date should have been easy. I mean, look how easy it is on your smart phone. You go to the app store, it lists all relevant updates, and with a push of a button you have the latest and greatest.

There is no such central place for PCs. This means it’s up to the individual vendors to inform you of updates. Many don’t. What a mess.

Luckily, from time to time someone comes up with a solution. Currently, this comes in the form of Sumo. Sumo scans your computer for installed software and lets you know what updates are available.

Unfortunately, the free version does just that. It doesn’t help you find the download link. That’s on you. But really, for the most part, that’s the easy bit.

Sumo also has a sister app, Dumo. Dumo does the same thing, but with your hardware drivers.

Between Sumo and Dumo, you can once again stay up to date. Shiny!

  • Note: I’ve linked to older versions of both apps intentionally. These seem to be the last versions that are still fully free.

Someone Will Do It

There is always a chore waiting for me. For every chore I complete, a couple of new ones line up.

Some of these chores are team chores. By team chores I mean anyone can pick them up. At home, that could be doing the dishes or the laundry. At work, it could be creating tickets for upcoming tasks.

It turns out that these chores often get left undone. Other chores always come first – because someone else could always pick up the team chore, right? That’s why we’re a team.

Only this doesn’t work very well. It seems everyone on the team thinks the same way. And so, team chores are de-prioritised by everyone. Nobody really pulls their weight. This is a phenomenon known as social loafing.

There’s a simple solution to this problem. Do not have team chores. Every chore must be assigned to an individual. Take turns, if you want. When I know I am responsible for a chore, I know I will get it done. After all, if I don’t, who will?

One way of assigning could be sharing the load. If one person does the dishes, another does the laundry. If you’re lucky, you may even find some people prefer certain chores.

Another way is to take turns. For example, have one person on the team create the tickets for the sprint. The next sprint, pass that responsibility to the next person.

Work gets done when there is accountability and clear responsibility. Don’t just say “someone will do it”. Assign an individual to the task. Now I know it’s on me… I guess I have to get it done!

Who Said That?

My computer makes funny noises sometimes. They sound like notifications, but I can’t figure out what they’re meant to say.

Well, until recently. And then I figured it out.

If you’re a mobile developer, you may have had a similar experience. Unlike normal notifications, which are usually accompanied by a visual clue, these seem to come from nowhere.

It turns out they don’t come from nowhere. They come from the emulator. If you’re working on any apps that support notifications, those might be the cause of the random sounds.

They can also be a result of your automated tests going through the motions.

In short, the emulator can get quite chatty. If you don’t need to explicitly hear the sounds it makes, just mute it.

Ever since I muted my emulator, I no longer get random notification sounds in the middle of the night. My paranoia is at rest.

Oh, but do remember to unmute if you’re explicitly testing the audio functionality of your app, or you might get quite frustrated!

  • Pro tip: you can run your emulator with no audio but calling it like so:
    emulator @Nexus_5X_API_23 -noaudio
    (On Windows it’s a bit more complicated, see here)

If It Isn’t Broken…

How many times were you told “if it isn’t broken, don’t fix it”?

Working isn’t necessarily optimal. You may find something to be working in a sub-optimal way. When this happens, fixing it should be a valid option.

Very often, “if it isn’t broken” is said when “we’ve always done it this way” is intended. This mentality is the enemy of progress. It prevents growth and leads to stagnation.

The next saying on this list is “it may not be right, but at least it’s consistent”. These sayings should be a red flag. If consistency is our guide, we can never improve.

This applies to so many fields. Take the tech world as an example:

Your app loading time may be twice as long as it should be. Your user journey may be converting half as well as it could be. These are working examples. Does that mean we should leave them alone?

A working solution isn’t necessarily a great solution. We would not have modern cars or smart phones if we’d have settled for what was working at the time.

So please… The next time you find something that isn’t broken – fix it nonetheless.

The Life Of A Contractor, Part 1

A colleague suggested I’d share my experience as a contractor. Hopefully this helps you if you’re about to become one or are just starting out.

In this post I will cover the growing pains. I will then touch on managing your finances as contractor. Lastly, I will discuss ways to get more work.

How it all started…

So, back to the start. When I came to the UK in 2013, I already had quite an impressive profile. I was sure securing a contract would be a piece of cake. It wasn’t.

I spent every day iterating over my CV, polishing my LinkedIn profile and making sure anyone looking for my skills would find me. I posted on every major board, applied to every role.

In fact, because I had a broad range of skills, I had several, specialised CVs. I used each one to apply to opportunities that matched the skills it highlighted.

Despite my experience and commitment, it took me 3 months to secure my first contract. I would later learn that securing the first contract is the hardest challenge. Not many companies want to risk it with a first-time-contractor.

On my first contract, I agreed a very low rate for the first month, with the condition of it increasing after the first month of me proving myself.

This is my first point. Expect to have to work hard and not see any results for the first few months. Don’t panic. This is normal. Keep at it. Be creative. Be flexible.

What do I do with all this money?

This leads me to my second point: managing your finances. Being so long without income taught me a lesson I will never forget. Always have at least 3 months of living expenses in reserve. You never, ever touch that reserve unless you absolutely have to.

Don’t put that money into a savings account, unless it’s an instant access one. You want that money there to pay the bills if you can’t secure a contract for months. As I mentioned earlier, this can definitely happen.

Another thing on the subject of finances. Figure out your rate. Start low and go up as quickly as you are comfortable with.

Ever since that first contract, I have not reduced my rate. In most cases, I’ve increased it. This makes sense, as I am more experienced and have more to offer with every contract. Over 8 years, I have more than doubled my initial rate.

This is a choice you have to make. Are you willing to wait longer for the right contract, potentially losing money in the interim? This will let you continuously increase your rate.

You could probably have shorter gaps if you accept a lower rate. That does mean working a lot harder for the same income, though.

So… How do I get work?

Make sure to get reviews from your clients after every contract. Build your portfolio. Keep polishing it. Keep connecting with people in the industry. Start building a reputation.

Be involved in the community, if you are comfortable with it. Write a blog (or a book!). Start a podcast. Be helpful on Stackoverflow.

To sum things up:

  • Expect a rough start
  • Don’t give up easily
  • Have savings for a rainy day
  • Figure out your rate
  • Adjust your rate ovet time
  • Keep promoting yourself

It’s an exciting world with plenty of learning opportunities. But it’s not all smooth sailing.

If you have any questions, please feel free to contact me. Hopefully I will be able to help!

It’s Like Apples And Pickles

When I need to explain a complex idea, I often use an analogy. This helps convey concepts to people from different disciplines, too.

One thing I learned is how important it is to choose the right analogy.

A colleague recently used car design as an analogy to software development.

This analogy was fundamentally wrong on several levels. First off, cars are a solved problem, for the most part. This gives designers the freedom to focus on appearance. Then, there’s the fact that once produced, the manufacturer cannot make big changes to it.

There are plenty of other differences. This matters because choosing the wrong analogy could lead to the wrong conclusions.

In our case, the confusing analogy led my colleague to suggesting we should develop the UI first, and worry about the internals later, like putting the engine into a car after designing its “shell”.

In software, the UI is usually the easy problem. Without working internals, it is useless. We should focus on the hard problem first. We then give ourselves more time to do it right. It also means our solution can be UI agnostic. This will allow us to change the UI fairly significantly later on without changing the underlying logic.

There was a good lesson there for me. You have to choose your analogies well. Otherwise you’re like a cricket trying to draw water out of a plutonium well. That never ends well.