CompareDial

Find and compare the cheapest phone and SIM contracts

Visit Website
January 1, 2021 Launched!

👋 Hello! I'm Adrian and I'm excited to show you CompareDial. I learnt how to code after coming up with the idea for a website that allows you to compare from thousands of mobile phone and SIM contract deals, narrowing down to your specific needs to find you the perfect deal.

I'd like to talk a bit more about my background and my journey on how I learnt to code and eventually launch CompareDial.

When I was younger, I used to build simple websites with Geocities and Microsoft Frontpage. I was more focused with the design aspect of websites rather than actual programming - not because I had no interest in programming, but rather because I found it intimidating. I was scared to even start. I eventually started to design websites in Photoshop and slice them with some basic HTML and CSS knowledge, but would progress no further. I simply enjoyed designing and would do it for fun.

I had an idea for a phone and SIM contract comparison website, where users could search from thousands of deals and filter down to their specific needs. There were already a few out there, but I found a lot of them lacking in features, generally low in quality and would promote specific deals that would earn them more commission rather than showing you cheapest possible deals. How hard could it be to build something better, right? Boy was I wrong.

My idea was to design the website and hire someone to make it. I made notes, drew sketches and obsessed over how the site would work. I have a tendency to over design and obsess over minor details, to a point where it holds me back. Everything had to work, behave and be constructed in a very specific way. If I hired someone to make my product and it wasn’t up to my exact standards, I wouldn’t progress with it.

I quickly realised that I wouldn’t be able to get my product made up to my standard unless I was willing to spend A LOT of money. Even then, I still probably wouldn’t be satisfied. The only other logical solution was to learn how to code and make it myself, which is exactly what I did.

I did some research and landed on JavaScript as the ideal language for me to learn and build my product, as I could use my skills on the front end and back end. I followed every basic JavaScript tutorial and eventually landed on 'You Don’t Know Js' by Kyle Simpson - an absolute must read, even for experienced JS developers. I tried to pick up on my basic HTML and CSS skills from years ago, but I found myself starting from scratch. ‘Flexbox? Grids? What the hell is any of this?!?” - I used to use tables back in my day! I also followed some online tutorials for basic SQL, realising I would need a database of some sort to store all the deals.

I started to feel a bit more confident, even though I hadn’t even begun to build. Eventually, after hours of pulling my hair out, I somehow glued together a simple prototype that just about worked. It was rubbish, but I thought it was the best thing ever at the time. I couldn’t even imagine I would be able to progress past simple JS a few months prior, but here I was, with something I could be proud of.

As a perfectionist, in the coming months I must have started over from scratch hundreds of times. I wasn’t happy. Eventually, I convinced myself to plan on launching. I started to add more retailers and feeds to CompareDial, but I hit a bottleneck - the website became mind bogglingly slow. I was building my product around one or two retailers with no more than 1,000 deals. But now, I had over 200,000 deals, and everything grinded to a halt. A simple request would take up to 10 seconds. How could I be so stupid? I tried optimising my SQL, learning about database indexes, but with little avail. I was tempted to throw in the towel, but somehow persisted, eventually learning about caching and indexing. I ended up adding Redis and Meilisearch to the stack. It was a blessing in disguise as I learnt so much about how to architect such a product for performance - something that I wouldn’t have learnt if I did not run into this bottleneck.

And that's my story! I really would love to help others who are in a similar situation to how I once was. Learning to code can be very intimidating, but with time, effort and discipline, I really believe anyone can do it. Please do reach out to me and ask as many questions as you'd like. I'd love to hear from you!

Comment

About

I wasn't satisfied with existing comparison websites. I found a lot of them generally low in quality and would promote specific deals that would earn them more commission rather than showing you cheapest possible deals