Bernard Duggan


For the last seven years, Bernie has been a senior developer on ShoreTel’s core VoIP softswitch, learning the black arts involved in making thousands of devices run off a single machine and maintaining a large, complex system with a small team of geographically dispersed developers. After encountering Erlang at in Sydney, he and his colleagues decided it was the way of the future (at least for our telephony software) and they have been gradually pushing more and more functionality out using it. In past lives he has worked on Single Sign-On software, embedded software for bio-medical instruments and a few Playstation games of which he prays you’ve never heard. Away from work, he likes to to hang out at his local hacker-space and mix carpentry, electronics and software into bizarre creations that should never see the light of day.

YOW! Lambda Jam 2013 Brisbane

Erlang: What They Didn’t Tell You in the Brochure


Erlang is a language designed for building highly concurrent, highly available systems. And, based on our experience using it to build a large-scale VoIP soft-switch, it does a great job of this.

However…every language has a collection of “gotchas” which developers often don’t discover until they’re neck-deep in building a big system. If they’re really lucky, they’ll discover them before the users do.

I love Erlang as a language, but in this respect it’s no different from any others. This talk aims to briefly cover the things it would have been nice to have known before we ran head-long into them such as:

  • How to crash your VM (and how not to)
  • Message queues: they’re not magic
  • Why you can’t just run Erlang as a Unix-style service (and how you can)
  • Hot Code Loading: not as easy as you might hope
  • The OTP: Forget everything they taught you in the first Erlang lesson
  • System monitoring is even more important than you think

Achieving High Uptime with Erlang’s OTP


This workshop covers how to take “normal” Erlang code and add the power of Erlang’s Open Telephony Platform (which has almost nothing to do with telephony). The OTP framework is aimed at delivering on Erlang’s promise of robust, fault tolerant, hot-upgradable software. We’ll start by writing a simple chat server and then convert it to use the OTP. We’ll then be able to demonstrate its fault tolerant properties by crashing various pieces, as well as showing off hot code loading. Some basic familiarity with Erlang will be assumed. Anyone who’d like to follow along should have a relatively recent version of Erlang installed.