Image for Running an A/B test on our paywall

Running an A/B test on our paywall

Mar 28, 2023

How we ran and measured an A/B test as part of our paywall increasing our subscription rates by 10%
Image for 7 Dos and Don'ts for coding challenge interviews

7 Dos and Don'ts for coding challenge interviews

Feb 20, 2023

A coding challenge is an important part of hiring in engineering, Here's 7 do’s and dont’s for designing coding challenges
Image for Enums and structs in Swift #2: bounded contexts

Enums and structs in Swift #2: bounded contexts

Apr 30, 2022

Enums and structs are some of Swift's most powerful APIs, and they can greatly improve code comprehension. But how do you decide which one to use?
Image for Choosing between backend-for-frontend and frontend

Choosing between backend-for-frontend and frontend

Apr 13, 2022

Knowing where to put business logic is in my opinion one of the most important pieces of software development. When I have the choice of placing it in the backend or frontend, here are the decision…
Image for Building fast SwiftUI (and UIKit!) previews

Building fast SwiftUI (and UIKit!) previews

Jan 27, 2022

Here's a few easy tricks to making your SwiftUI and UIKit previews even faster
Image for How I learn new frameworks

How I learn new frameworks

Jan 1, 2022

Over my career, I've had to learn a few frameworks, languages, and technologies. I've been asked a few times how I did it, and whilst there's no silver bullet, there's a set of rules I follow when…
Image for Enums and structs in Swift #1: data vs state

Enums and structs in Swift #1: data vs state

Dec 30, 2021

Enums and structs are some of Swift's most powerful APIs, and they can greatly improve code comprehension. But how do you decide which one to use?
Image for Announcing What's on

Announcing What's on

Sep 26, 2021

As of today, What's on is available in beta providing a glanceable look at your calendar.
Image for Migrating from Dagger to Hilt

Migrating from Dagger to Hilt

Jun 16, 2021

How we used migrated from Dagger to Hilt for our Android app to make dependency injection simpler
Image for Introducing Freetrade for iPad

Introducing Freetrade for iPad

Mar 2, 2021

How we developed the app with a brand new UI.
Image for Using lint rules to prevent bugs

Using lint rules to prevent bugs

Jan 22, 2021

How we've started to build our own custom lint rules to enforce code style and easy-to-miss subtle gotchas.
Image for Exploring Mac Catalyst

Exploring Mac Catalyst

Jan 4, 2021

Trying to migrate an iOS app to Mac Catalyst and the issues and benefits along with it.
Image for How we profile Android bugs at Freetrade

How we profile Android bugs at Freetrade

Jan 8, 2020

A few weeks ago, a Freetrade customer reported that the Android app was being slow. This follows our deep-dive into finding and solving the issue.
Image for Playing with Foldables in Android Q

Playing with Foldables in Android Q

Apr 16, 2019

Foldable devices look to be the next big thing in mobile development. How as a developer do you support them; and as a CTO, should you?
Image for Perfecting custom assertions in Swift

Perfecting custom assertions in Swift

Jan 30, 2018

Unit testing is great, isn’t it? Not only can it help you improve your code, but it can ensure that you don’t mess anything up the next time you come to change it. The downside with testing is that it…
Image for Clean code: The curse of a boolean parameter

Clean code: The curse of a boolean parameter

Jul 22, 2017

Whilst looking innocuous, booleans are often a source of code complexity and can frequently be a code smell. Why is this, and what can you do about it?
Image for Managing my stress levels

Managing my stress levels

Jul 12, 2017

I've struggled a lot with stress levels over the last few years. I am aware that I am a naturally uptight person, and highly competitive, so that I believe is as much a product of who I am as the…
Image for Avoiding primitive obsession in Swift

Avoiding primitive obsession in Swift

Mar 27, 2017

It’s all too easy to pass information around in your code as strings or ints, but this can soon catch up with you. Swift has a powerful set of protocols to avoid this situation, which can ensure your…
Image for Improving completion blocks in Swift

Improving completion blocks in Swift

Feb 7, 2017

Swift as a programming language focuses on making APIs descriptive and determinate. Completion blocks are less than perfect — but what is wrong with them, and how can we improve their usage? The…
Image for Book reviews: Functional Swift & Protocol-Oriented Programming with Swift

Book reviews: Functional Swift & Protocol-Oriented Programming with Swift

Mar 28, 2016

In what is probably shocking to anyone who knows me, I’ve recently finished two whole technical books. I’m starting to dig a bit deeper into Swift and iOS at Novoda, and, as at part of one of my…
Image for Time is always part of your domain

Time is always part of your domain

Oct 10, 2015

Pretty much every project you’ll touch will have the concept of time in it. It is a concept that scares developers; makes even the most seasoned engineer doubt themselves; and makes most of us end up…
Image for My Christmas coding challenge conclusion

My Christmas coding challenge conclusion

Jan 2, 2015

The Christmas coding conclusion part 1: the web app I set myself a target to write an Android, iOS, and web app over the Christmas period. Here are my learnings from the first one I produced, which…
Image for My Christmas coding challenge

My Christmas coding challenge

Dec 21, 2014

Want to read the conclusion? Go here! This Christmas, I’ve decided to set myself a coding challenge — develop a simple app across Android, iOS, and the responsive web. I’m going to be developing a…
ALEX CURRAN © 2024