Featured, Ninja News

Ninja Software at DDD

We went to the [Perth Developers Developers Developers conference] (https://dddperth.com/). DDD is the only inclusive non-profit conference for the Perth Software Development Community. It also allows members to give talks, in a process leading up to the event.

Some of the Ninja Software team went to the Perth DDD conference on Saturday. DDD is Perth’s only inclusive non-profit conference for the Perth software community. Allowing members of Perth’s software developer community to give talks, chosen in a democratic process leading up to the event.

Here’s my take on the day.

Aaron Powell – Securing Single Page Applications

This talk covered the fundamentals of securing a session with a client using a Single Page Application. From cookies to local storage to session storage to JWTs, it was a breadth-first look into the various options needed to secure SPAs. As a lot of web apps today slowly move towards this kind of architecture (ours included), knowing this information is important.

The talk ended with a quick demo of writing a keylogger in CSS. To make it harder for the audience to sleep at night.

At the end I felt that the talk lacked a little focus. I went in expecting a talk on how to secure my SPAs, but I went away with knowledge about browser persistence, keyloggers and webapps that check your website’s security for you.

Chris Filipowski – Thinking in Streams – Gentle Introduction to Reactive Programming via RxJS

Reactive programming is touched upon through neat marble diagrams and actual code examples. The RxJS library was something that has always been on my peripheral vision, but I’ve never run into Angular often enough to actually need to look at it. A lot of the concepts are similar to how ReactJS handles its read-only state aka props coming from its parent.

The MC stated this was Chris’ first tech talk at a conference. Great job! Chris’ nervousness wasn’t too apparent, and it was clear that he was passionate about the topic. He prepared a lot of animated diagrams and code examples too. I personally wouldn’t use the tech myself but I think the talk was pretty solid.

William Sia – Serverless Cloud Native Progressive Web Apps in Production: Lesson from the Trenches

Extremely fast paced lightning talk by an employee at Mechanical Rock, William Sia. There was a LOT of material covered during these 20 minutes, with great delivery and jokes jammed in there too!

Lots of fancy AWS services being plumbed together in this talk, so it was a good example for people who are thinking of going full AWS.

On a personal level, I feel that the AWS stack abstracts away too much of what devops needs to know, as well as introduces too much vendor lock-in. Kubernetes as an open orchestration platform alleviates this somewhat. But when I see Lambda with API Gateway with SQS/EC2/EB/RDS/whatever to power what is essentially a tablet API, I feel that its overkill for the purposes of overengineering, enterprise overselling and resume driven development. Acronym Soup as a Service!

Stay tuned for my follow up blog post on my feelings on vendor lockin!

Dylan Pindur – Delightful Frontend Development: An Intro to Elm

I’ve been playing with Elm on and off for the past few years so it was really cool to see someone else bring it up.

The talk started off with the bad parts of JavaScript, a great start for people who have suffered the programming hell that JavaScript can be. The second half of the talk covered how Elm attempts to fix this. The live demo was great too!

It was good seeing Elm in the community. I do feel that JavaScript bashing is old fashioned and beating a dead horse somewhat. Especially with the advances that ES6 has made. Half the talk time was wasted on this. Covering {}+{}, []+{}, {}+[] and friends, it’s funny at first but they’re contrived examples that no-one would ever do.

My main concerns with Elm is the unnecessary boilerplate, extremely high bus factor and the dictatorship that is Evan controlling the direction of Elm. These were not covered in the talk unfortunately but not to the fault of the speaker as that was obviously never the intention of this talk.

Ben Lowry – You’re Doing TypeScript Wrong

This talk by a Readify employee covers common mistakes in TypeScript. Implicit anys, duplicating interfaces, and other similar things.

We’re starting to toy with TypeScript here at Ninja Software (a lot of our work is in Flow) and so this talk came at a good time for us.

The talk itself covered quite basic topics. The clickbait title brought me in, but the content of the talk itself covered common mistakes that most decent developers wouldn’t make. I would like to see more uncommon gotchas that are not just things like “make sure your code is type-safe”. Regardless, its good to see some solid TypeScript talks. Typed front-end languages are making large web apps much more manageable, and I like how things are going on that front.

Ashley Aitken – Understand Functional Programming in 40 Minutes (or your Money Back*)

Have you noticed a trend? Functional programming is what the cool kids are doing! Quickly gaining traction and acceptance in the community. The talk started pretty simple but quickly moved monads and functors (even my spellcheck doesn’t know what those are). I think I understood about 75% of it which is about 75% more than I was expecting.

Unfortunately the relentless pursuit of purity in my programs is something I am still not convinced will help me in my day to day coding. The value of reducing side-effects, however, isn’t lost on me and is something that definitely makes sense.

I do admit the talk was interesting enough to get me to go home, install Haskell and have a play with it (for the nth time). I hit a brick wall pretty quickly as usual and filed it away once again as an oddity that will likely never break into the mainstream software industry.


All in all it was a great day! Its good to see large scale software development events like this, especially in Perth which does not have a reputation of being such a technology hub compared to the rest of Australia.

Looking forward to next year.

Written by:

John Nguyen

Chief Technology Officer and Co-Founder

John is the Chief Technology Officer of Ninja Software. Managing the day to day operations of the technical team as well as handling long term strategies allows him to apply his broad skillset to both present and future.

He graduated with a Bachelor’s in Mechatronic Engineering at the University of Western Australia in 2008. Starting out in mechanical engineering, he moved to industrial networks and process controls engineering, finally settling on software engineering.

He brings with him solid knowledge and experience with the full software development lifecycle. He also is one of Perth’s leading experts on Blockchain-style solutions. In his spare time he also experiments with distributed systems, countless personal projects and new programming languages and frameworks.