I was asked to speak about building Serverless systems at the first Build IT Right Conference in Newcastle back in April. It was daunting, but definitely a worthwhile challenge. I met some fantastic people and saw some great sessions during the day.
If you get the chance to attend next year, I’d definitely recommend it!
Luckily I had the good sense to make a few notes. For what it’s worth, here they are verbatim, cribbed from the github gist I made on the day:
Chris Price
tensorflow.js
ImageNet - image categorization
MobileNet is this but optimised for low-power devices.
Maybe toxicity is a useful feature set to use as an automod?
Are speech commands useful to us? ‘Okay your-product
…’
Why JS for ML?
ML with privacy baked in - keep user data on their device.
Uses WebGL to speed up all the computation
Robert Rees
“Security favours the large over the small”
Buy or build:
“How much team is this?”
Cost your team:
Benchmark
“Reduce all the infrastructure you maintain down to what is necessary to do what is unique to your domain”
Focus on your core value add!
Services
When is the last time your backup was tested?
Headless browser automation testing
AWS X-Ray and stuff like Mixpanel can be combined effectively to do the same thing.
Model -> View -> Update
(The Elm Architecture)
Inspiration for Redux
So basically monoidal in nature (is that a word?)
Reactive, event driven framework at core of language (so opinionated development practice)
“The single biggest problem in communication is the illusion that it has taken place”
George Bernard Shaw
“When an agile transformation starts with a revolution, it tends to end with one”
How do you build the right thing?
What do you think is the most important thing for your team in the next year?
Next ‘big’/important thing in software?
How do you separate hype from promising new ideas?
“It’s daunting how much tech is out there…”
Timandra Harkness
“What we thought of as a public space is in fact a private space.”
(The internet)
Stephen Mounsey
Productive disagreement
Don’t value winning an argument over finding a solution.
For good ideas and true innovation, you need human interaction, conflict, argument, debate.
Margaret Heffernan
Fear of conflict leads to artificial harmony.
Psychological safety was what Google found on their most successful teams.
How do we manage conflict so that it’s not mutually exclusive with psychological safety?
“Agile means conflict”
“Fist of five”
Retros:
Simon Brown
“Big Design up front is dumb. Doing no design up front is even dumber.”
Dave Thomas
Answer two basic questions about what you draw up when you do up-front design:
Includes…
Identify and mitigate your highest priority risks.
This front-loads the riskier decisions you make to the start of your project lifecycle.
Identify risk collaboratively and visually.
“Risk storming”
Concrete experiment
Provides starting point and direction.
“Thinking about software architecture lets you stack the odds of success in your favour.”
“Every team needs technical leadership”
(Every ‘software system’ needs technical leadership)
Architecture also includes:
“It’s much easier to lead a team if you are a part of that team.”
“Good software architects are typically good software developers. Software architects should be master builders.”
“The people designing software must understand technology… all decisions involve trade-offs.”
“Teams need a ubiquitous language to communicate effectively.”
The primary use for diagrams and documentation is communication and learning.