Dr FunctionalLove
or: How EROAD learned to
stop worrying and love F#
Jim Bennett
Senior Cloud Developer Advocate - Microsoft
@jimbobbennett
Once upon a time there
was a company in New
Zealand called EROAD…
@jimbobbennett
EROAD built hardware for
trucks, and a SaaS
platform that used data
from that hardware
@jimbobbennett
EROAD had a 2-person
mobile team
@jimbobbennett
They were the odd ones
out - the rest of the
company built services
and web sites in Java,
HTML and JavaScript
@jimbobbennett
But they built Android
apps in C# using Xamarin
@jimbobbennett
And they loved F#!
@jimbobbennett
One day, they needed to
build a new app on iOS
and Android
@jimbobbennett
They wanted to use
Xamarin.Forms with a C#
UI layer and an F# model
layer
@jimbobbennett
So they went to see
THE ARCHITECT
@jimbobbennett
And guess what he said…
@jimbobbennett
Our two trusty developers
knew his reasons were
not correct…
@jimbobbennett
So they hatched a plan…
@jimbobbennett
Phase #1
@jimbobbennett
The old app used
PowerShell for build
scripts
@jimbobbennett
They needed build scripts
for their new app, so they
used FAKE
@jimbobbennett
They then justified it to the
architect
@jimbobbennett
That meant F# was in
production…
@jimbobbennett
Phase #2
@jimbobbennett
EROAD Hackathon!
24 hours to build
something, no rules on
tech…
@jimbobbennett
They used
Xamarin.Forms with a C#
UI layer and an F# model
layer
@jimbobbennett
It was an almost
production ready app in
24 hours
@jimbobbennett
If they released it - F#
would be in a production
app!
@jimbobbennett
Bonus Phase…
@jimbobbennett
The architect left!
@jimbobbennett
Phase #3
@jimbobbennett
They ported their F#
model code to their
production app
@jimbobbennett
They justified it to their
boss…
@jimbobbennett
They justified it to their
boss…
@jimbobbennett
They justified it to their
boss…
@jimbobbennett
Who said…
@jimbobbennett
Yes!
@jimbobbennett
They had F# inside an
app on the iOS App Store
and Google Play Store
@jimbobbennett
This inspired
conversations
@jimbobbennett
They learnt things…
@jimbobbennett
There are different ways
to use F#
@jimbobbennett
Once it is in production it’s
easier to justify using it
again
@jimbobbennett
Use it for small pieces first
- easy to replace if it goes
wrong
@jimbobbennett
Work for a company that
values their developers
@jimbobbennett
Wait for the naysayers to
leave!
@jimbobbennett
If all else fails – do it
anyway then ask for
forgiveness!
@jimbobbennett
No architects were harmed in the making of these slides. The old head of architecture at EROAD is NOT evil, is a really nice chap and was totally
justified in his hesitation to adopt an unknown technology. We love you Jordan!
Jim Bennett
Senior Cloud Developer Advocate -
Microsoft
@jimbobbennett
jimbobbennett.io
Sam Williams
Development team lead - EROAD
@willsam100
codingwithsam.com

Learning to love f#

Editor's Notes

  • #12 Reasons - only 2 people know it Hard to recruit people to do it
  • #13 Reasons - only 2 people know it Hard to recruit people to do it