Automate Yourself
out of
A Job
by
Adam Eivy \[._.]/
@antic
Talk Time: 40 minutes
Updated: 2020.05.21
View on the web: bit.ly/automate_yourselfcinema gif thanks to : gideon de villiers
And, who are you?
- Principal Software Engineer
- 20 Years in the Industry
- DevSecOps
- Machine Learning
- Prototype to Production
- etc Β―\_(γ)_/Β―
- "Own it or it will own you"
wait...
Automate Myself...
out of a job?!
Jobs are transitioning...
- Pandemic: 36.5 Million Claims (as of May 14th, 2020)
- ~23% (of 157M) unemployment
Guess who is still working?
Software Engineers making Robots and Automation!
why help
The Hidden Agenda of The Davos Elite
public: We are automating cautiously...
backroom: We need to automate faster than our competitors!
π± But Our Agriculture Jobs...
- 1901: > 60%
- 2019: < 5%
The Story of VisiCalc
1980: electronic spreadsheet
-
400,000 bookkeeping and accounting clerk jobs gone
-
and...
-
600,000 accounting jobs created
insane powers
Engineers are Privileged
Always be automating away tedium
You will be equiped for the next job
Keep in Mind
- Companies don't love you
- Keep building your skills (stretch into the adjacent possible)
- Always be ready to change role/company
Extremely Common
- Will users think it's creepy?
- Does collecting that data add liability?
- Can we just use AWS Lambda?
Beware False Problems
Trolley Problem: Should a self-driving car kill the baby or the grandma?Do not engineer bad options
Real Engineering Problems
- Why didn't the breaks work?
- Why was the car driving too fast?
- Why did it not see the problem earlier?
The Hardest Problem
in autonomous driving
Finding a Legal Parking Space
Engineering solutions
to problems that donβt yet exist
leads to hazards
that never existed before.
Machine Learning Class
github.com/atomantic/ml_classπ "...will automation destroy human jobs humans?"
And Some Scary Things
(βοΌΏβ')
Most AI (Machine Learning)
is just
Stupid Math
< .5 bad> .5 goodin coding
Laziness is a Virtue
\[._.]/
Keep Code DRY
don't repeat yourself
π€ Code Libraries are Automation!
I need an element
<div id="foo">foo...</div>
<div id="bar">bar...</div>
var foo = document.getElementById('foo');
var bar = document.getElementById('bar');
DRY
var $ = document.getElementById;
var foo = $('foo');
var bar = $('bar');
Early jQuery (super-DRY)
var $ = function(selector){
var query = {
id: document.getElementById,
cls: document.getElementByClassName,
tag: document.getElementByTagName
}
var type = 'tag'
if(selector[0]==='#') type = 'id';
if(selector[0]==='.') type = 'cls';
return query[type](selector);
}
var $foo = $('#foo')
π€© now: document.querySelectorAll() - no more jQuery
Automate the Right Thingsβ’
and it will become
Standard
Automate Backup and Recovery
with dotfiles
Not Just for Code
tedious tasks are everywhere
Drawing Boxes
github.com/atomantic/rectanglar_rotationsIt's Not Just About
Saving Time
grading assignments is tedius...
- Check github repo
- Check README.md
- Clone repo
- Install deps
- Run app
- Make sure it works
- Check for things in code
- ...
so tedious...
sounds automatable...
Any language can automate
Learn Shell Scripting
Get comfortable with the command-line
Let's Automate!
#!/usr/bin/env bash
git clone git@github.com:$1/$2.git
cd $2
if [ -f "README.md" ]; then
echo "β
contains README.md"
else
echo "π¨ no README.md!"
fi
npm i >/dev/null 2>&1
npm test
if [ $? -eq 0 ]; then
echo "β
tests pass"
else
echo "π tests failed"
fi
$ ./test.sh atomantic presentation_automate_yourself
β
contains README.md
β
tests pass
Automation Can't Be Trusted
The Simplest Solution Wins
If it can cheat, it will
- Task: Evolve a creature optimized for speed
- Result: Absurdly tall creature, which can generate high velocities by falling over
Immediate Results
π§π» Humans: AI, cure cancer
π€ AI: OK, I will Kill all humans
π No more cancer
π‘
The Brightest People in the Room
are still pretty dim
(Twitter Bot): Hitler Praising Racist < 12 hours
Final Take-Aways
- π€ Don't Fear Automation
- β¨οΈ Get comfortable with the command line
- π Avoid tedium
- π€Use emoji
- π Iterate on the seamless experience
- π¨βπ»οΈ Don't trust automation (monitor it)