I started reading Joshua Bloch’s Effective Java last week. I’ll have to admit that I haven’t read it before, but only because I’ve been told by several people, “you already do most of what’s in there anyway.” Seeing as we tell all the new recruits to read it, I thought I should actually flip through it myself so I know what’s in there.
Books of best practices are always written in relation to domains that have many possibilities for bad practices (choosing otherwise would make for a very short book). Reading the first chapter of Effective Java, I was amused as I realised that, if you’re coding in Scala instead of Java, many of the book’s recommendations are either unnecessary, because Scala doesn’t permit the corollary bad practice, or built into the language of Scala, or made easier to implement than they are in Java. This isn’t a criticism of the book, but an observation that the state of the art is moving on, and Java is being left behind.
From the first 25 items in the book, here are my notes on practices that either become easier to follow or unnecessary if you are using Scala: Continue reading →
This is a question I’ve been asking myself for a while. It’s not a fully-thought out argument (that’s why it’s still a question), but it’s a train of thought that I think warrants some investigation. I’d love to get some opinions from people with good or bad experiences of using DVCS with Agile as to how this plays out practically.
So, here’s my train of thought…
Easy branching and merging is the killer feature of Git and Mercurial.
They improve on other centralised systems (Subversion, CVS) in many other ways, but branching and merging is the reason that’s always used to sell the switch. The question I want to raise is whether branching and merging are good tools for an agile development team, or a nuisance. Continue reading →
That got me wondering: Who else is investing in Australian startups? This would be useful information for some people to know, especially if they’re planning on raising venture capital funding but would prefer to keep the company local. If only there was a database of startup investments that could be queried programmatically…
These people have escaped persecution to find themselves in a country that officially does not want them.
A retired friend of mine has recently become involved in efforts to help newly-released asylum seekers in Sydney. He wrote the email below to myself and a few others. It is a damning assessment, from people on the ground, of how the Australian government is treating people in need. I’m publishing it here because I think it is important for people to know what this government (as well as the main party trying to replace them) is doing in our name. Continue reading →
You know Murphy’s Law, right? Or at least you know the way most people remember it: “Anything that can go wrong will go wrong.” It’s a fairly depressing way of summarising life, but we all recognise a large portion of truth within it. Things go wrong. All the time.
There’s actually contention over whether this is the original form of the law, which is named after aerospace engineer Capt. Edward A. Murphy, and there are several differing accounts of how the saying came about. My preferred account is that relayed by Australia’s Dr Karl Kruszelnicki, whose record of Captain Murphy’s original exclamation is:
If there are two or more ways to do something, and one of those results in a catastrophe, then someone will do it that way.
I like this version because it’s easier to see the qualified optimism that Murphy juxtaposed with his frustration. As Dr Karl explains, there is a hope embedded in this form of the law because it starts with a proposition: “IF there are two or more ways to do something…” Continue reading →
A queue of software developers, not unlike the one that has inundated my inbox for the last year.
We’ve almost doubled our Engineering team at Tyro Payments over the last financial year and we’ll be adding that many again this year.
Most people who’ve worked in or with software teams would imagine that within this surge of hiring we’ve been filling all kinds of different roles – Graduate Developers, Junior Developers, Seniors, a couple of Tech Leads, maybe an Architect. But the truth is we’ve only been hiring for one role: Software Engineer. In fact, it’s the only development role on our team, and it’s the title we give to everyone on the tools, whether they have 20 years’ experience or none. This isn’t just some convenience we came up with to save ourselves HR work. It’s an incredibly important part of the culture at Tyro. Why? Continue reading →
It was an interesting meeting as the speakers were all from the Westpac Group, one of the biggest, oldest companies in Australia, which hardly seems appropriate to the Startup scene. However, the guys had a lot to say about how they see the current banking markets and what the bank’s take on innovation and interaction with small companies looks like. From my point of view (as an employee of a financial startup that’s recently hit profitability and is now entering a scaling stage) it was interesting to listen to the challenges that these big companies face and to think about how we might try to avoid the same traps as we grow. Continue reading →
I employed this advice with this survey, asking first: “What do I hope we learn from this”, and using that to inform the content. Here are the questions for which I wanted the survey to provide some insight: Continue reading →
Yesterday I wrote a blog entitled ‘A New Java Library For Amazing Productivity‘, which was – in all honesty – a trap: a well-intentioned honey trap with the purpose of trying to convince developers that they should be looking at Scala and evaluating it on the merits of its potential to deliver productivity gains, just as they would with a library or framework, rather than discounting it because it’s a “language”.