Confessions of a Podcaster

I confess to being a mad podcast fan. I am always listening to my favourite podcasts and always on the look out for new ones. I devour podcasts in the same way some people ‘do internet’ or read books. I literally fall asleep each night with my headphones in – incidentally podcast apps usually have a timed stop feature, so you can switch off at the end of an episode or after a specified duration.  

I am such a fan of podcasts that Rob Leane, Logan Han and myself created a podcast just to find out what that would be like to create a podcast. It was really really fun, and if you go to http://podcast.rea.tech you will be able to listen to the podcast we created for our Inventorship event (the event formerly known as Hackday at REA).  Continue reading

Singletons Suck (aka Flux to Redux)

As previously mentioned (see ReactJS – Real World Examples of Higher-Order Components), we are currently re-building the core realestate.com.au property experience with ReactJS. While ReactJS may be the shiniest of a long line of JavaScript frameworks (see Derek Zoolander meme), we have been careful about pulling in new “hot right now” libraries until we felt the pain and really needed them. Cue Flux.

Flux-Capacitor

Continue reading

Remote pairing, how do I even?

I’m fortunate to be one of this year’s REA Grads (http://careers.realestate.com.au/graduate-programme/). A great part of the REA Graduate Programme is the opportunity we get to rotate through six different teams within the business over an eighteen month period. My first grad rotation was in a distributed team, which posed a challenge as half the team and the majority of developers were in China. I often needed to connect and share my screen to collaborate with the developers in China when working on a task (remote pairing). During the rotation, I picked up a few tips that helped reduce some of the challenges that surround remote pairing, which improved the overall experience.

Continue reading

The worst thing in our Scala code: Futures

Author’s note: this isn’t an argument against Futures, there’s nothing wrong with them as such!  This article is about good abstraction and proper separation of concerns when using them.

The aims of functional programming are much the same as any other discipline of software engineering: modularity, abstraction, low coupling, high cohesion, and so on. While the techniques and terminology are often new to developers, the goals and benefits are expressible in very familiar language because it’s all software, and we’re trying to achieve the same thing! (Read SICP for more background on software engineering fundamentals expressed with functional ideas).

Continue reading

How We (Mostly) Survived The Stormy Apocalypse!

It’s not news to anyone any more, so I’m sure everyone knows Amazon Web Services (our major cloud infrastructure provider) suffered an outage within one of their availability zones on Sunday June 5th. AWS is split up into various geographic regions, and within each region, a number of availability zones. I’m going to assume most readers know about this, but if you don’t, check out Amazon on how they describe these things. On Sunday one of these availability zones suffered a “power event”, owing to Sydney’s wild weather on the weekend, bringing it to its knees. Lots of Australian based websites had major problems.

Continue reading