Category Archives: Personal

Happy New Year!

Gosh, last year went by at a lick.

So much happened in such a short space of time that I’m afraid I’ve neglected this blog. I’m going to be making a concerted effort to publish more content in 2016 and turn at least some of the hat full of drafts and half written pieces on a variety of topics into proper posts.

Have a great 2016!

Starting Afresh

Well it’s been a whirlwind couple of months. After 3 years working at Betfair in London I have decided to move on and seek a new challenge.

This new challenge was never just going to involve only some small change since it was always going to involve moving my family from UK to Australia. I’ve lived in London all my life and the opportunity to live in Sydney and see friends and relatives I haven’t seen for years was too good. Upping sticks was never going to be easy but even with the amazing friends I have left behind I think I would have regretted staying and not taking on this adventure.

My entry into Australia has been eased by doing some consultancy for the Australian arm of Betfair which has lessened some of the traditional concerns of the newly arrived – like paying the bills! While it’s awesome it’s also only (and deliberately) a time limited arrangement since I feel it’s time to look for something new and it would be too easy to stay with what I know.

So here I am on the North Shore of the Harbour City, rocking out in the gorgeous weather and wondering what’s around that next corner. Whatever it is, it’s gonna be great!

My GDC Questionnaire

I’ve been asked to be a mentor to the excellent Graduate Developer Community and before I’m allowed to go an warp the minds of future grads, I was asked to answer a quick questionnaire to give a bit of background on myself and ask how I got into programming. It was an interesting exercise so I thought I would put the results up here too.

Martin Anderson has worked in IT for the last 13 years across industries as diverse as online advertising and news to investment banking and gambling. He came to the industry from a slightly unusual direction since his first degree was a BSc in Physiology. After a brief stint for a pharmaceutical company he went back into academia and it was during his PhD, which involved the computerised analysis of EEG’s, that his interest in computing really took off.

Title – What is your job title?
Software Architect

What is your role about?

The best description I have ever read of what an Architect should be can be found here. The main responsibility of my job is that I am expected to cross the divide between technology and business while being expected to be able to answer all the technical questions. Principally I am a developer but my responsibility to be aware of so many different projects makes it difficult to directly contribute code very often.

What are the best/most positive parts of the job/industry?

That it combines the best of the worlds of startups and big industry. The problems we have to solve are generally the really interesting ones: how do you offer the best service to your customer while balancing the demands of performance, scale, security, regulators but we get to solve them in a way that is not normally seen in a major company.

Your Saturday afternoon becomes very different when you realise that you have up to 4 million customers betting many millions of pounds on your applications and to do this they are hammering them to pieces. For example, we see up to 88,000 requests per second across the entire betfair.com estate at peak times so your application can’t just work, it has to be fast, reliable and deal with load at internet scale.

What are the negative parts to the job/industry?

How changeable things can be. The industry is at the whim of regulators so some of our solutions have to make compromises that you would never design in if you had complete freedom to do it your way.

There is also the fact that some people see the gambling industry with a slightly negative cast. It’s not for everyone but what is?

Career Path

What is the standard career path/qualifications?

The standard technology career path at Betfair is: Intern – Associate Developer – Developer – Senior Developer – Technical Lead/Principal Developer/Software Architect

As far as qualifications go, we do have a graduate scheme and like most large companies we prefer graduates and respect the amount of effort it takes to get degree but given that some of our best employees did not go to university (or in some cases not even finish secondary school!) we also look for other signs that we think signifies quality.

What are the prospects?

From a company perspective they are as good as you want them to be! Betfair is one of the UK’s  dot.com sucess stories since it is just over 10 years old and still expanding: we currently serve 140 territories in 17 languages and this will only increase. We deal with cutting edge technologies at a scale that most companies can only dream of and this experience makes you very employable.

From the more general perspective of an Architect, they are also very good. To get to the role normally requires several years exposure to how things actually work. Not just the code or development knowledge but also the knowledge about your hardware and your network can be just as important. The business knowledge is critical too since you have to be able to understand the hot button topics of your company. Luckily the types of issues tend to be similar across all companies: performance, scale, ease of use, cost of development v maintenance, reliability and disaster recovery, compliance, audit and regulatory to name a few of them. This makes architects very valuable for many businesses.

In your experience are you aware of any differences your role has between industries/sectors?

The role of Architect can vary hugely and not just from industry to industry but also within different sized companies within the same industry. In the worse case scenario, you have the ‘Astronaut Architect’ who make technical pronouncements from upon high without actually working closely with the developers who have to turn the abstract into application. In the best case you have Architects who are directly invested in the success of a project, from concept to cash, and who work side-by-side with their developers. The role of an Architect is that of an influencer but in a technology company that means he/she can become very powerful.

Reflection and The Future

What was it like coming into the industry?

I was several years out of University before I started working in IT  so I had no illusions about what I was getting myself into. For me the worry was that as a self-taught programmer I would be missing chunks of knowledge about development. I found that the enormous knowledge area of development meant that everyone is far more collaborative than competitive and this meant that I could contribute immediate while being made aware of what I didn’t know and what I would have to learn. I love what I do with a passion and wouldn’t want to do anything else – except possibly be the next David Attenborough!

Do you have any thoughts on the future of your role/industry?

Cloud is taking centre stage more and more but this is more a reflection of the combination of two things – performance/scale and flexibility. As the industry becomes more mature we now have to delivery faster and to a wider audience that ever before. Cloud allows us to do this in that it allows simple prototypes to be rolled out to a platform that is inherently scalable should the application be a success.

Dealing with teams in multiple locations and in multiple timezones is another topic that is important and becoming more so. The world is a smaller place than it used to be and getting smaller. We are also in competition with a larger population of developers than ever before and in a knowledge based industry like ours, the smartest and hardest working will win.

What advice would you give someone entering your industry?

Follow excellence. It doesn’t matter what you are doing if you are doing it the best it should be done. This more than anything else will define your career.

You should never feel that you become stereotyped as a certain type of developer – it’s up to you to take control of your career and you do that by learning. You should have a hunger for new knowledge and everyone should have a list of things that they want to try or learn.

Have you come across anything or anyone that has helped you move forward in the industry?

Having a great mentor is a must. I’ve been lucky in that I’ve met several people that have taught me so much. Also, you should never underestimate a constant drive to improve.

On a practical note – nothing beats getting involved. Get a github account, fork someone else’s code and get stuck in. Start contributing to open source even if it is documentation but get in the game. Not only is your CV improved for it but you as a developer are much improved for it.

2012 Technical Goals

I hate making resolutions but I like making goals. That might seem slightly contradictory but consistency is the bugbear of small minds and all that. Here’s a list of my current technical goals:

  • Write an iPhone application – I even have a half decent idea of what this should do thanks to Abe’s angry ranting at lunchtime. Thanks Abe!
  • Write a Node.js application – I’m not a fan of event loops since they are implicitly single threaded and so single cored. While this is a good fit for simple scatter gather web applications, as soon as you have any sort of processing you are a bit fucked. That said, one of my mottos is “don’t knock it til you’ve tried it” and while I’ve knocked up the obligatory chat server, I need to have a better understanding of
  • Write a Scala/Play!/Akka application and host it on Heroku – this should be an easy one and I’m looking forward to it. Scala, Play! and Akka could be the new JVM stack of choice and Heroku certainly looks the polyglot cloud platform of choice.
  • Write a Clojure application and host it on Heroku – not so easy since I don’t grok LISP but the constant chatter about the REPL and the power of immutability has a certain attraction.
  • Write a book – since my previous post was about this it should not be a surprise.
  • Present at more conferences – I popped my speaking cherry in 2011 and really enjoyed it. Now to really get out there.
  • Get more involved in the London Java Community – the LJC is an awesome group and the more you put in the more you get out.
  • Put more stuff on Github and open source it.
  • Convince my current client that they should open source their code – my current client have some really sweet code and they are happy to open source it but they’ve never done it. I have to push for this to happen.
  • Be technically excellent – I have some really challenging work coming up. It’s going to be tough and demanding and I’m going to have to be at my best.

What ever your goals are, I hope you have an awesome 2012.

Writing Well

I’m sure it’s a common delusion shared by anyone who writes in any sort of media; the sensation that there is a book inside us somewhere. This has urge has risen even more since two mates have joined forces to write a proper technical book published by a proper publisher. I’ve worked alongside authors before and the one thing about them that has stood out is not so much that they have the confidence to put their thoughts to paper but that they have had the determination to carry though their book.

I’ve made a start at numerous literally projects and never got passed chapter 2. It looks like 2012 is going to have to be the year I sit down and really crack on. Hell, if I can survive the attrition of a a PhD a book should be a cakewalk, right….right?

Now I only need a title and a topic. I mean, how hard can it be…gulp!