Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Perils Of Software Engineering
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Andrew Godwin
June 19, 2015
Programming
160
0
Share
The Perils Of Software Engineering
My keynote from PyCon SG 2015.
Andrew Godwin
June 19, 2015
More Decks by Andrew Godwin
See All by Andrew Godwin
Reconciling Everything
andrewgodwin
1
380
Django Through The Years
andrewgodwin
0
300
Writing Maintainable Software At Scale
andrewgodwin
0
510
A Newcomer's Guide To Airflow's Architecture
andrewgodwin
0
400
Async, Python, and the Future
andrewgodwin
2
720
How To Break Django: With Async
andrewgodwin
1
790
Taking Django's ORM Async
andrewgodwin
0
790
The Long Road To Asynchrony
andrewgodwin
0
750
The Scientist & The Engineer
andrewgodwin
1
820
Other Decks in Programming
See All in Programming
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
840
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
530
Feature Toggle は捨てやすく使おう
gennei
0
420
Rethinking API Platform Filters
vinceamstoutz
0
8.7k
事業会社でのセキュリティ長期インターンについて
masachikaura
0
230
感情を設計する
ichimichi
5
1k
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
170
AI駆動開発がもたらすパラダイムシフト
ryosuke0911
0
120
Coding as Prompting Since 2025
ragingwind
0
720
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
170
Smarter Angular mit Transformers.js & Prompt API
christianliebel
PRO
1
120
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
500
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
170
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
86
A Tale of Four Properties
chriscoyier
163
24k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
340
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
KATA
mclloyd
PRO
35
15k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
91
Transcript
Andrew Godwin @andrewgodwin PERILS OF THE SOFTWARE ENGINEERING
Andrew Godwin Hi, I'm Django Core Developer Senior Engineer at
Far too many hobbies
"Perils"
Computer Science ≠ Software Engineering
Engineering Mechanical Civil Software Chemical Materials
Mechanical Engineering https://www.flickr.com/photos/mariaeklind/
Nondeterministic
Cost of Entry
Civil Engineering
Timescales
Cost of Failure
Aerospace Software Engineering
Cost of Failure
Failure: When, not if
Margaret Hamilton, 1969
Apollo 11 LM, "Eagle"
Web/App Software Engineering
Quick to build and test
Minimal equipment costs
Well-paid
Well-paid
Explicit is better than Implicit
Code Indirection
class MyView(View): def get(self, request): return self.render(request, "template.html")
class MyView(FormView, AuditMixin, OtherMixin): def get(self, request): return self.render(request, "template.html")
class AuditMixin(BaseAuditor, AdditionalStuff): ... class OtherMixin(MyObject, SomethingElse): ...
Async Uncertainty
def async_handler(): with open("my_file.txt", "r") as fh: write_socket(1, fh.read()) redis.incr("key1",
2)
Schemas
{ "id": 342, "name": "David", "weight": 74, } { "id":
342, "name": "Ellie", "weight": "85kg", } { "id": 342, "nom": "Frankie", "weight": 77, } { "id": 342, "name": "Frankie", "weight": -67, }
Clever code is bad Maintainable code is good
xs = [number for inner in nested if len(inner) >
2 for number in inner]
for inner in nested: if len(inner) > 2: for number
in inner: xs.append(number)
Explore and Discard
There is no perfect solution
Throwing everything away rarely works
Backwards compatability is your friend
Nobody is a genius; we're all mediocre
Argue over code, not over ideas
Well-paid
10 years? 100 years? 1000 years?
Who will access it?
What format will it be?
Is it even important?
Over thousands of years, the machine memories have been filled
with programs that can help “ “ A Deepness In The Sky Vernor Vinge
Engineering is collaborative
Build well.
Thanks. Andrew Godwin @andrewgodwin