The SIM card shuffle

The SIM card shuffle

on 1 April 2016

I arrived in Miami last night, and first port of call this morning was Walmart to get myself a US Sim Card. It’s very frustrating that I still have to dance through hoops to pay a reasonable price for mobile data while abroad for even just a few days.

This makes me appreciative of the European Union, who have repeatedly and successfully spanked mobile operators into finally offering sane roaming prices throughout Europe. Outside of Europe the regulators are toothless so EE, my operator (who I already pay $50 a month), want to fleece me out of $1.60 a minute to make a phone call, and $4.50 for 20mb of data (expiring after 24 hours).

Today I paid $38 for a T-Mobile SIM with 5GB of data, and a super helpful woman at Walmart got it activated for me in five minutes. Apple don’t help things by changing the size of their SIM cards on an almost yearly basis - last time I was in San Francisco there was an epic quest to track down a micro SIM.

I know there are loads of businesses servicing this roaming market, but really the mobile industry just needs to sort its shit out and charge me 3x my home rate which would be nicely profitable but not daylight robbery. Apart from businesses, almost everyone I know defaults to turning off roaming completely rather than come back to a phone bill that costs more than their flight.

Facebook is the new Excel

Facebook is the new Excel

on 17 March 2016

If you’re building a SaaS startup, then your biggest competitor isn’t a competitor. It’s Microsoft Excel. That was the mantra a few years ago. Add in Google Docs and it still holds true. Contact lists, mailing lists, accounts, invoicing, market research, budgets, checklists, schedules, timetables: Excel is the hammer of choice for anything that looks like data in a business, large or small.

Today, if you’re building a service for communities or individuals then Facebook is almost certainly your biggest competitor. B2B: Excel, B2C: Facebook.

People are increasingly using Pages, Groups and Albums for all kinds of things that would previously have justified a whole startup.

Job hunting? There’ll be dozens of job groups in your city. Working on a car restoration? There’s a group for that. Looking to buy or sell something? Local groups. Add in the fact that every Facebook group and page basically comes with a free mobile app (albeit embedded in Facebook’s app).

There’s an increasing threshold of utility for people to move away from Facebook: the place where everyone already has accounts, receives notifications and visits on a daily basis.

By threshold of utility I mean the features that make your service better than a Facebook group or page. Pitching Squarespace against Facebook Pages, for example, Squarespace provide better search engine discovery, and more scope to express branding and convey detailed information. For some businesses that’s important, but for many others it’s of zero benefit. They get everything they need from a Facebook page - opening hours, a map, and some photos.

Similarly with groups: A Facebook group listing apartments to rent will lack any form of domain-specific search fields. You can’t search by rooms or area. But it’s very accessible and you can search by keyword easily enough. You can also see other people’s comments on places, which might be an advantage over a standalone property search site.

One piece of good news though, is that contacting people through these groups and pages is actually easier than ever now. So if you’re not frantically spamming everyone, then you’ve a great opportunity for engaging with customers.

Any startup should include Facebook in its competitive analysis. How are people using it? Does it work? What’s missing? And be open to the idea that a Facebook group that does even 80% of what people want might easily be your toughest competitor. You can guarantee that Facebook has already signed up 99% of your potential userbase.

I’m starting to write a little more frequently - follow me on twitter @alexmuir if you like the way I waffle!

Mondo raises £1m in 96 seconds

on 3 March 2016

I just got this email from Mondo:

Thank you so much for expressing your interest in our crowdfunding round today! The full £1m target was accounted for within 1 minute, 36 seconds making this the fastest crowdfunding raise in history as far as we know.

So Mondo just raised (or, more accurately, got commitments on) the £1million it was seeking to raise through Crowdcube earlier this week (before Crowdcube’s servers exploded). This was at a post-money valuation of £30m, which seems very reasonable to me given they have already moved into beta. Alongside the Crowdfunding, Passion Capital invested a further £5m, giving a total raise of £6m. [Sadly the Crowdcube prospectus is currently not available.]

Crowdfunders were able to commit to between £10 and £1,000, but I think this was a (sensible) choice of Mondo rather than a legal requirement.

That said, the speed with which this funding happened makes me wonder what valuation would have deterred these, essentially retail, investors. And my gut feeling is that they would have easily raised the same £1m at a £300m valuation, or even higher. This is worrying to me. I suspect many of the people queuing to invest will struggle to understand much of the underlying economics on this investment.

Of course Mondo, gained a great amount of valuable press coverage from this raise, That’s not going to appear on the cap table, but for everyone who successfully invested, there are surely at least 10 people on a waiting list to sign up for this bank, and another 100 people talking about it.

Maybe this investment was so hyped because it was recognised as a reasonable gamble, which it is in my opinion. I think a lot of people raising funds are going to be heading straight to crowdfunding and the floodgates are really going to open.

I suspect we’ll be headed for a bubble here over the next two years.

To be clear I think this is a good team with a great product, and a strong investment at its valuation. And I congratulate them on an ethical and super successful raise.

I’m just concerned about the hundreds of tailgaters coming from the timeshare, wine investment and landbanking sectors.

It's 2016 and you want to become a developer

on 13 February 2016

I’m sometimes asked how someone should learn to code. This is my attempt at an answer.

So you want to build a site and can’t afford to contract it out? Maybe you’re looking for a career change. Perhaps you’re just interested, and curious about how things like Facebook are built. Learning to program is fun and rewarding (both intellectually and financially).

The environment

The development industry (and we wouldn’t really call it that) is incredibly open, mostly welcoming, but also fast-moving and that can be scary. People like shiny new things, and we often talk mostly about the new things while we actually do most of our work with the old tools.

For a beginner it can be difficult to know what to start with. Is it apps? Is it websites? Is it learning your way around the command line? There are literally hundreds of options out there. Accept that as a reality - you’re not going to understand or even know them all.

This continues to be a problem all the way up the skill-chain. First you’ll worry about which program to write code with. Then you’ll face choosing a programming language to write your software. As you get more skilled you’ll look at libraries of complex code that other people have written and have to decide which one to use in your project. Then you’ll have the choice of writing your own complex code or using someone elses. And finally you’ll decide that your problem is so unique that you need to write your own programming language…

You’ll never know where to start. Ever. So just get used to diving in. If it turns out you’ve dived into a tank of liquid shit, and not a five-star heated pool, then just climb out and take another dive.


The terms programmer and developer mean the same thing. If there is a difference, it’s probably that a developer looks at a bigger picture than a programmer. A developer probably has more involvement in architecture, ideas, design, user interface and even the business side. A programmer is likely more focused on writing code. But as I say, people just choose the terms they personally like to use.

And us programmers all use different terms for what we build, but at its core we are creating software : websites, apps, games, programs that make lights flash on a Raspberry Pi - it’s all software. So when I talk about software don’t think it’s irrelevant for someone who wants to design websites. It’s not. It’s all the same stuff.

Designers vs Developers

There is definitely a difference between designers and developers. Designers are concerned with how things work, how users interact with them, and how they look. Some designers write code. Some just create pictures or animations of how things should look. Many people wear both hats - but they’ll definitely lean more to one side than the other. It’s very rare to find a developer with excellent design skills.

One area of confusion is the difference (or lack of it) between web design and web development. For me, a web designer probably works mainly with sites that don’t have much depth. They’ll build a great looking site for your local bar, or design a theme for a blog. A web developer probably builds more complex sites - an online shop, or Facebook. These aren’t rigid rules. I’d call myself a developer.

The people

I taught myself programming as I went along - mainly because I had ideas for sites but no money to pay anyone else to make them. I thought being self-taught was unusual - and I was always conscious that my solutions were often quite scrappy (some might say precarious).

But developers are actually quite unusual among the professions. My feeling is that about half of us are largely self-taught, and the other half have studied computer science.

In my experience someone’s educational background makes no difference to their perceived skill level or value. Passion, curiosity, and intelligence - if you had it when you were a toddler then you’ve got it now.

So if you’re coming late to the party - Don’t worry! You definitely don’t need to go back to college and study computer science to get started. Dive in and start learning to write code! Sometimes I think I’ll go back and fill in the gaps in my computer science knowledge - but if I do it will be because I want to, and not because I need to.

How to start

Get a Mac

Now this is controversial but I don’t care. If you can afford it, I absolutely recommend that you buy a Mac and leave windows behind (at least while you get started). Here’s why:

  • Most programming tools are built around an operating system called Linux (based on an older one called Unix). Macs are also based around Linux. Windows is completely different. When you read the documentation for the tools you’re using, you’ll find that the authors will generally assume you’re on a Linux-like system. Sometimes there will be instructions for windows, but often there won’t - or they’ll be out of date.

  • As a beginner you’re going to get stuck, and error messages are going to rain down on you. You’re going to Google these errors and you’ll find more matches for Mac-type errors. And more importantly, the solutions to these problems will be better and more up-to-date.

  • If you’re interesting in making iPhone or iPad apps then you can only do this on a Mac.

  • If you’re building websites then your Mac is very similar to what you’ll use on a web server when you come to publish your site.

If you’re stuck on a Windows PC then install a different operating system called Ubuntu. You can use both at the same time. Ubuntu is a flavor of linux and you’ll have almost the same experience as Mac developers (in fact learning Ubuntu is very helpful anyway). Don’t even try to learn to program in Windows.

Your initial _stack_

A stack is what we call the collection of programming languages, tools and frameworks that we use. The term stack makes sense because these tools tend to be built on top of one another.

You’re lucky. In 2016 it looks like learning one stack is going to enable you to build pretty much anything for the next few years. That stack is:

  • HTML
  • CSS
  • Javascript

These three technologies are primarily for websites but increasingly you can use them to write all other types of software (apps, programs, games).


HTML is the language used for web pages. If you ‘View source’ on this page you’ll find I wrote it in HTML. It’s a fundamental building block, but it’s also very, very easy. Writing HTML is a great introduction to writing code. It’s not very interactive but that’s fine because the Javascript part of your stack will take of that perfectly. Learn HTML. It’ll take you a couple of days at most.


When you’ve done HTML, you’ll notice it looks very bland. CSS is the language that describes how HTML should look. What color things should be, what size etc. Just get familiar with the basics of CSS - you’ll get the rest as you go along.


This is a proper programming language. It’s easy enough to get started, yet powerful enough to build the biggest websites on the internet. Instagram and Facebook are both heavily driven by Javascript.

Javascript initially was designed for use on webpages to add little bits of interactivity (a popup, or some little animation). But in the past few years it’s had something of a renaissance and is popular and likely to remain so. You can learn Javascript to build almost anything you can think of. Games included.

(Don’t confuse Javascript with Java. They are completely different languages with no overlap. Like horses and seahorses.)

How to learn

Use a text editor

Do not use an IDE. Uninstall Dreamweaver right fucking now. Code is text, learn to write text. Do you think JK Rowling writes Harry Potter using predictive text? Fuck no. So don’t even think about using an IDE.

Get a text editor - Atom, Sublime text, Notepad++, Textmate. Take your pick.

A note on editor wars: You’ll find people talk about two text editors for programming: VIM and emacs. These are old-skool editors that are very powerful. Users love them and there’s an almost religious fanaticism for one or the other. But these editors are way too complex for beginners - don’t waste your time. By all means come to them later and see if they work for you.

Read, type, repeat

The best way to learn is to type out example code. I learned programming by typing out line after line of BASIC code from printed magazines into a BBC Microcomputer in 1995. Copy and paste literally wasn’t an option then.

You need to actually type the code out. Don’t paste it. It will improve your typing and get you used to looking at code. You’ll make typing mistakes - and that’s great! You’ll have to find these mistakes and fix them (using the error messages you get.) And guess what? You’ll make these typing mistakes for the rest of your programming life so the sooner you learn to fix them, the better.

If you’re reading tutorials, open the window next to your editor and type. If you’re watching videos then pause the video and type what the presenter types.

I can’t emphasise this enough - do not copy and paste.


When you’ve followed an example, and it’s working, then get curious. Change the colors, change the messages. Fiddle around. If you break it, try to figure out why.

Where to learn

There are a huge number of completely free resources out there for beginners. Everyone learns differently. Some people want videos, others want websites with written tutorials, others want a paper book.

Sometimes you’ll try a course, get nowhere, and then come back to it in a few months and it all clicks together.

What I suggest is just googling around and finding things that look interesting to you and trying them. If it’s not making sense then move onto something else. That said, here are a few resources that are widely recognised as good places to start:

Some useful tools

  • Codepen is a playground where you can write HTML, Javascript and CSS instantly with just a browser. It’s a great way to do simple examples.

A note on tools

As I write this in Spring 2016 there’s a lot of fragmentation among developers about which tools to use for their code. Everyone agrees on Javascript, HTML and CSS, but we’re just not sure of the most efficient way to put them together - there are many options and they all work. You don’t need to worry about this for now - it’s something that only matters when you start making complex applications. To me it seems that a tool called Webpack has the most momentum. If you’re confused then take solace in the fact that we all are too! But as I said, don’t worry about it. By the time you get to this stage you’ll have your own opinions and preferences and you can make your own choices.

And finally

If programming is for you then you’ll know it fairly quickly. You should enjoy it and get satisfaction from solving problems and a buzz when things ‘click’. It might not be for you - and that’s ok.

But if it is, and you love it, then you’re in for a treat. I don’t think there’s another career which offers the flexibility and rewards of development. You can work in a huge glass building for Google, a windowless basement for some publishing house, at home (for yourself, for random clients, for a long-term client, or for an employer). You can travel, freelance. Go to conferences and meet loads of other developers - or never meet another developer in your life. Hang out on forums. Build your business, help other people to build theirs. Make games with your kids. Program robots.

I was going to write this in a Facebook message to a friend of a friend but I thought I’d just post it here. It’s a stream of consciousness.

Twitter's opportunity

on 2 February 2016

I’m sure there’s lots of opportunity for Twitter. Real-time is its current strength. Here’s what I see:

Twitter is for connecting with people you don’t know in real life. But discovering, commenting and creating content on Twitter is far from good. It has seriously user experience problems.

Facebook lets people connect with their friends and family. Strangers aren’t welcome. It’s a personal space. Using Facebook is an outstanding experience. The interface and design encourages content consumption, interaction and creation. Liking, sharing and reading are all very high.

LinkedIn is oriented around work. Bullshit is high here, but connecting with strangers is between Facebook and Twitter on the acceptability scale. Everyone has an agenda.

LinkedIn is never going to become more personal. It’s entire userbase is focused around business.

Facebook has tried (with its mysterious ‘Follow’ option) to become less personal, but I’d argue it’s failed and will struggle to do so.

Twitter has the chance to be Facebook for people you don’t know (which is, by definition, most people). It just needs to sort out its UI so that it’s as inviting to browse and share as Facebook. It’s possible that they already see this with the change from ‘Favoriting’ to ‘Liking’ of Tweets, and the rumoured move to long-form content.

My focus at Twitter would be to move away from cliquey bullshit like Tweetstorms, .@ mentions, shortened URLs and the 140 character limit. I’d be heading towards thumbnail previews of links, inline comments, and a clear, untechnical user interface.

Newer posts Older posts