SlideShare a Scribd company logo
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
No One Likes Getting Up at
3AM to Fix Bugs
~ Or ~
How to be a Better Developer
Rob Grzywinski
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
About Me -- Rob Grzywinski
◉ Writing software professionally >20y
◉ Chief Technology Officer
◉ Advisor to Silicon Valley and other Companies
Big Data & Analytics
Artificial Intelligence
Data-Centric Apps
◉ Multiple successful startup acquisitions
Latest: Aggregate Knowledge (AdTech) for >$100M (USD)
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
No rule is Black and White …
… Including this one
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Lesson #1
The worst happens when you’re the least ready for it!
1
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Am I going to understand this:
◉ At 3AM ?
◉ With a Hangover ??
◉ After eating bad McDonald’s fries ???
(Cuz that’s when you’re going to need it!)
Mantra
(Copyright WarnerBros)
Friends don’t let friends Code Drunk!
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Code spends the majority of its lifetime
in maintenance. Write code so that it
can be maintained!
!
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
3AM is for Sleeping!
How can you write software so that you never get the
3AM call to fix it?
But if you are woken up, will you have everything you
will need to fix it?
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
◉Naming (to name it you have to understand it)
◉Formatting (pick a style and follow it)
◉Documentation (sufficient useful supporting docs)
Things to Think About
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Lesson #2
You’re not even half as smart as you think you are!
2
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
If you’re making something up ...
… you’re probably doing it wrong!
Look for standard answers to problems
◉ Easier to Debug
◉ Likely handles cases you haven’t thought of
◉ Provides on-line references, support, etc
Don’t Make It Up!
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Oh! The Horror!
WITH
interval_window AS (
SELECT reading_date
, DATETIME_DIFF(LEAD(reading_date) OVER (ORDER BY reading_date), reading_date, SECOND) AS next_interval
, DATETIME_DIFF(reading_date, LAG(reading_date) OVER (ORDER BY reading_date), SECOND) AS prev_interval
FROM latest_meter_data
)
, meter_data_with_boundaries AS (
SELECT reading_date
, CASE
WHEN (next_interval = 900) AND (prev_interval > 900 OR prev_interval IS NULL) THEN 'START'
WHEN (next_interval > 900 OR next_interval IS NULL) AND (prev_interval = 900) THEN 'END'
WHEN (next_interval IS NULL OR next_interval > 900) AND (prev_interval > 900 OR prev_interval IS NULL) THEN 'START-END'
ELSE NULL
END as boundary
FROM interval_window
)
, meter_data_boundaries AS (
SELECT reading_date, boundary
FROM meter_data_with_boundaries
WHERE boundary IS NOT NULL
)
, almost_islands AS (
SELECT reading_date
, boundary
, LEAD(reading_date) OVER(ORDER BY reading_date) AS next_date
, LEAD(boundary) OVER(ORDER BY reading_date)
FROM meter_data_boundaries
)
, islands AS (
SELECT reading_date as start_date
, CASE
WHEN boundary = 'START-END' THEN reading_date
ELSE next_date
END as end_date
FROM almost_islands
WHERE boundary LIKE 'START%'
)
(40+ lines and doesn’t work)
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Standard Answer
WITH
sequence_offsets AS (
SELECT reading_datetime
, (RANK() OVER(ORDER BY reading_datetime) *
duration) AS offset_seconds
FROM sensor_interval_data
)
, islands AS (
SELECT MIN(reading_datetime) AS start_date
, MAX(reading_datetime) AS end_date
FROM sequence_offsets
GROUP BY DATETIME_SUB(reading_date,
INTERVAL offset_seconds SECOND)
)
(10 lines and covers corner cases)
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Gotchas
◉ Dates4 (use a library!)
◉ Timezones4 (you’re going to screw it up! Trust me)
◉ Off-by-One (write it out to make sure you have it & test!)
◉ Wildcards (always have backups :) )
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Testing
“I don’t write buggy software so why should I test?!?”
3
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
“Testing cannot show the absence
of defects, it can only show that
software defects are present”
- Robert Pressman
“
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Positive Testing
isValidUser(String username):Boolean
Valid users: “Bob” and “Alice”
Test: “Bob” ➞ true
Test: “Alice” ➞ true
Works!
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Not-so-Positive Testing
isValidUser(String username):Boolean
Valid users: “Bob” and “Alice”
Test: “Joe” ➞ true
Test: “Lucy” ➞ true
Works! Maybe Not!?!
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Negative Testing
isValidUser(String username):Boolean {
return true;
}
Whoops!
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Confirmation Bias
The tendency to search for, interpret, favor, and recall
information in a way that confirms one's preexisting
beliefs or hypotheses2
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Code Coverage
◉ Does 90% code coverage by tests mean that you
miss 10% of the defects?
◉ Does 100% code coverage mean that you
miss 0% of the defects?
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
100% Code Coverage
isValidUser(String username):Boolean {
return true;
}
Test: “Bob” ➞ true
Test: “Alice” ➞ true
200% Code Coverage != 0 defects!
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Testing
Think of testing like trying to lose weight:
◉ You don't try to lose weight by weighing yourself
more often
◉ What you eat before you step onto the scale
determines how much you will weigh
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Testing
You don't improve software quality by increasing the
amount of testing
To improve your software, don't test more:
Develop Better!1
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Instead of writing tests
Assert things you know!
assert3:
● state a fact or belief confidently and forcefully
● cause others to recognize (one's authority or a right) by confident and forceful behavior
Assert not Test!
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
What Should I Focus On?
“How do I accelerate my career?”
3
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
“Practice does not make perfect.
Only perfect practice makes perfect.”
- Vince Lombardi
“
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Which Technology Should I Try?
Doesn’t matter but here are some options:
◉D3 (do something hard!)
◉SQL (really learn it -- CTEs, Window Functions, etc.)
◉RegEx (really, really learn it)
?
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
What Should I Do?
Pick anything and:
◉Take it apart
◉Learn how it works (remember 3AM?)
◉Fix a bug and submit PR
?
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Absolute Musts!
◉IDE (learn it without the mouse)
◉Debugger (print statements are for babies :) )
◉Cloud Anything (spin up, do something, tear down)
◉Async / Threading (race conditions, debugging, etc.)
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Open Source
“What should I be worried about?”
4
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
There’s a zillion libraries to do anything:
◉What is the license? (no GPL!)
◉When was the last release?
◉Do bugs get fixed? (How often? By whom?)
◉Community? (StackOverflow, etc)
Which Library?!??
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Anything Else?
Always explicitly manage your dependencies
(Know when the world moves underneath you)
?
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Any questions ?
You can find me at:
◉ rob@limalimacharlie.com
Thanks!
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Appendixn
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
1. http://cc2e.com/ (Code Complete by Steve McConnell)
2. https://en.wikipedia.org/wiki/Confirmation_bias
3. https://www.google.com/search?q=define%3A+assert
4. http://revelry.co/time-zone-bugs/
References
Copyright © 2017, Lima Lima Charlie, LLC. All rights
reserved.
Attribution
1.http://www.slidescarnival.com/

More Related Content

PDF
Moving Forward with AI - as presented at the Prosessipäivät 2018
PDF
Innovations and The Cloud
PPTX
Generative Adversarial Networks (GANs) using Apache MXNet
PPTX
Conversion Models: A Systematic Method of Building Learning to Rank Training ...
PPTX
Your Six Second Personal Brand Story in 5 Exercises
PDF
Fuzzy Matching on Apache Spark with Jennifer Shin
PPTX
CityWallet - From Mount Augustus to Los Roques Archipelago
PPTX
Ai Services on AWS
Moving Forward with AI - as presented at the Prosessipäivät 2018
Innovations and The Cloud
Generative Adversarial Networks (GANs) using Apache MXNet
Conversion Models: A Systematic Method of Building Learning to Rank Training ...
Your Six Second Personal Brand Story in 5 Exercises
Fuzzy Matching on Apache Spark with Jennifer Shin
CityWallet - From Mount Augustus to Los Roques Archipelago
Ai Services on AWS

Similar to No one likes getting up at 3 am to fix bugs OR how to be a better developer (15)

PDF
Kristina McMillan, VP of Research of TOPO at The Sales Development Conference...
PDF
Breaking Voice and Language Barriers with AI - Chatbot Summit Tel Aviv
PDF
Serverless Text Analytics with Amazon Comprehend
PPTX
What IT Transformation Really Means for the Enterprise
PDF
Ai Services on AWS - AWS IL Meetup
PDF
Introduction to AI/ML with AWS
PDF
The Future of AI - AllCloud Best of reInvent
PDF
Smart Data Webinar: Advances in Natural Language Processing I - Understanding
PDF
Latam virtual event_keynote-pt-br_americo
PDF
New way to learn Machine Learning with AWS DeepLens & Daniel ZivKovic
PDF
Quarterly Planning Deck
PPTX
Perceptive Analytics is hiring!
PPTX
Perceptive Analytics is Hiring!
PPTX
Darin_Briskman_AWS_Machine_Learning_Beyond_the_Hype
PDF
10 Lessons from 10 Years of AWS
Kristina McMillan, VP of Research of TOPO at The Sales Development Conference...
Breaking Voice and Language Barriers with AI - Chatbot Summit Tel Aviv
Serverless Text Analytics with Amazon Comprehend
What IT Transformation Really Means for the Enterprise
Ai Services on AWS - AWS IL Meetup
Introduction to AI/ML with AWS
The Future of AI - AllCloud Best of reInvent
Smart Data Webinar: Advances in Natural Language Processing I - Understanding
Latam virtual event_keynote-pt-br_americo
New way to learn Machine Learning with AWS DeepLens & Daniel ZivKovic
Quarterly Planning Deck
Perceptive Analytics is hiring!
Perceptive Analytics is Hiring!
Darin_Briskman_AWS_Machine_Learning_Beyond_the_Hype
10 Lessons from 10 Years of AWS
Ad

More from Intersog (20)

PPTX
The power of 1 on 1
PPTX
FrontEnd: JS + css + html
PPTX
Clients mean all_for_us
PDF
Intersog Hack_n_Tell. Docker. First steps.
PDF
How to bring greater QA value with a little bit of release management
PPTX
How to Create a Data Infrastructure
PPTX
Как не завалить клиентское интервью
PDF
Agile business development.
PDF
Infographic based on "Scrum: the art of doing twice the work in half the time"
PPTX
Java4hipsters
PDF
Final countdown-in-sales
PPT
Как пройти пути от любительских поделок на Arduino до промышленных решений за...
PPTX
Стек протоколов для IoT. Пример использования SNMP
PPTX
DIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft Azure
PDF
Zigbee social network
PPTX
​Успешные, популярные и интересные IoT проекты в США. Тренды
PDF
Small tips для иррационала
PDF
Healthcare. Правила коммуникации.
PPTX
The Unicorn Workflow
PPTX
Co-Founder & CEO Igor Fedulov and senior software engineer Igor Rolinskiy abo...
The power of 1 on 1
FrontEnd: JS + css + html
Clients mean all_for_us
Intersog Hack_n_Tell. Docker. First steps.
How to bring greater QA value with a little bit of release management
How to Create a Data Infrastructure
Как не завалить клиентское интервью
Agile business development.
Infographic based on "Scrum: the art of doing twice the work in half the time"
Java4hipsters
Final countdown-in-sales
Как пройти пути от любительских поделок на Arduino до промышленных решений за...
Стек протоколов для IoT. Пример использования SNMP
DIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft Azure
Zigbee social network
​Успешные, популярные и интересные IoT проекты в США. Тренды
Small tips для иррационала
Healthcare. Правила коммуникации.
The Unicorn Workflow
Co-Founder & CEO Igor Fedulov and senior software engineer Igor Rolinskiy abo...
Ad

Recently uploaded (20)

PDF
Complete Guide to Website Development in Malaysia for SMEs
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Monitoring Stack: Grafana, Loki & Promtail
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
history of c programming in notes for students .pptx
PDF
Nekopoi APK 2025 free lastest update
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
AutoCAD Professional Crack 2025 With License Key
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Cost to Outsource Software Development in 2025
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Transform Your Business with a Software ERP System
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
Complete Guide to Website Development in Malaysia for SMEs
Operating system designcfffgfgggggggvggggggggg
Monitoring Stack: Grafana, Loki & Promtail
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
iTop VPN Free 5.6.0.5262 Crack latest version 2025
history of c programming in notes for students .pptx
Nekopoi APK 2025 free lastest update
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
How to Choose the Right IT Partner for Your Business in Malaysia
Reimagine Home Health with the Power of Agentic AI​
AutoCAD Professional Crack 2025 With License Key
wealthsignaloriginal-com-DS-text-... (1).pdf
Cost to Outsource Software Development in 2025
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Transform Your Business with a Software ERP System
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Advanced SystemCare Ultimate Crack + Portable (2025)

No one likes getting up at 3 am to fix bugs OR how to be a better developer

  • 1. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. No One Likes Getting Up at 3AM to Fix Bugs ~ Or ~ How to be a Better Developer Rob Grzywinski
  • 2. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. About Me -- Rob Grzywinski ◉ Writing software professionally >20y ◉ Chief Technology Officer ◉ Advisor to Silicon Valley and other Companies Big Data & Analytics Artificial Intelligence Data-Centric Apps ◉ Multiple successful startup acquisitions Latest: Aggregate Knowledge (AdTech) for >$100M (USD)
  • 3. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. No rule is Black and White … … Including this one
  • 4. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Lesson #1 The worst happens when you’re the least ready for it! 1
  • 5. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Am I going to understand this: ◉ At 3AM ? ◉ With a Hangover ?? ◉ After eating bad McDonald’s fries ??? (Cuz that’s when you’re going to need it!) Mantra (Copyright WarnerBros) Friends don’t let friends Code Drunk!
  • 6. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Code spends the majority of its lifetime in maintenance. Write code so that it can be maintained! !
  • 7. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. 3AM is for Sleeping! How can you write software so that you never get the 3AM call to fix it? But if you are woken up, will you have everything you will need to fix it?
  • 8. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. ◉Naming (to name it you have to understand it) ◉Formatting (pick a style and follow it) ◉Documentation (sufficient useful supporting docs) Things to Think About
  • 9. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Lesson #2 You’re not even half as smart as you think you are! 2
  • 10. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. If you’re making something up ... … you’re probably doing it wrong! Look for standard answers to problems ◉ Easier to Debug ◉ Likely handles cases you haven’t thought of ◉ Provides on-line references, support, etc Don’t Make It Up!
  • 11. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Oh! The Horror! WITH interval_window AS ( SELECT reading_date , DATETIME_DIFF(LEAD(reading_date) OVER (ORDER BY reading_date), reading_date, SECOND) AS next_interval , DATETIME_DIFF(reading_date, LAG(reading_date) OVER (ORDER BY reading_date), SECOND) AS prev_interval FROM latest_meter_data ) , meter_data_with_boundaries AS ( SELECT reading_date , CASE WHEN (next_interval = 900) AND (prev_interval > 900 OR prev_interval IS NULL) THEN 'START' WHEN (next_interval > 900 OR next_interval IS NULL) AND (prev_interval = 900) THEN 'END' WHEN (next_interval IS NULL OR next_interval > 900) AND (prev_interval > 900 OR prev_interval IS NULL) THEN 'START-END' ELSE NULL END as boundary FROM interval_window ) , meter_data_boundaries AS ( SELECT reading_date, boundary FROM meter_data_with_boundaries WHERE boundary IS NOT NULL ) , almost_islands AS ( SELECT reading_date , boundary , LEAD(reading_date) OVER(ORDER BY reading_date) AS next_date , LEAD(boundary) OVER(ORDER BY reading_date) FROM meter_data_boundaries ) , islands AS ( SELECT reading_date as start_date , CASE WHEN boundary = 'START-END' THEN reading_date ELSE next_date END as end_date FROM almost_islands WHERE boundary LIKE 'START%' ) (40+ lines and doesn’t work)
  • 12. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Standard Answer WITH sequence_offsets AS ( SELECT reading_datetime , (RANK() OVER(ORDER BY reading_datetime) * duration) AS offset_seconds FROM sensor_interval_data ) , islands AS ( SELECT MIN(reading_datetime) AS start_date , MAX(reading_datetime) AS end_date FROM sequence_offsets GROUP BY DATETIME_SUB(reading_date, INTERVAL offset_seconds SECOND) ) (10 lines and covers corner cases)
  • 13. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Gotchas ◉ Dates4 (use a library!) ◉ Timezones4 (you’re going to screw it up! Trust me) ◉ Off-by-One (write it out to make sure you have it & test!) ◉ Wildcards (always have backups :) )
  • 14. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Testing “I don’t write buggy software so why should I test?!?” 3
  • 15. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. “Testing cannot show the absence of defects, it can only show that software defects are present” - Robert Pressman “
  • 16. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Positive Testing isValidUser(String username):Boolean Valid users: “Bob” and “Alice” Test: “Bob” ➞ true Test: “Alice” ➞ true Works!
  • 17. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Not-so-Positive Testing isValidUser(String username):Boolean Valid users: “Bob” and “Alice” Test: “Joe” ➞ true Test: “Lucy” ➞ true Works! Maybe Not!?!
  • 18. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Negative Testing isValidUser(String username):Boolean { return true; } Whoops!
  • 19. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Confirmation Bias The tendency to search for, interpret, favor, and recall information in a way that confirms one's preexisting beliefs or hypotheses2
  • 20. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Code Coverage ◉ Does 90% code coverage by tests mean that you miss 10% of the defects? ◉ Does 100% code coverage mean that you miss 0% of the defects?
  • 21. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. 100% Code Coverage isValidUser(String username):Boolean { return true; } Test: “Bob” ➞ true Test: “Alice” ➞ true 200% Code Coverage != 0 defects!
  • 22. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Testing Think of testing like trying to lose weight: ◉ You don't try to lose weight by weighing yourself more often ◉ What you eat before you step onto the scale determines how much you will weigh
  • 23. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Testing You don't improve software quality by increasing the amount of testing To improve your software, don't test more: Develop Better!1
  • 24. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Instead of writing tests Assert things you know! assert3: ● state a fact or belief confidently and forcefully ● cause others to recognize (one's authority or a right) by confident and forceful behavior Assert not Test!
  • 25. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. What Should I Focus On? “How do I accelerate my career?” 3
  • 26. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. “Practice does not make perfect. Only perfect practice makes perfect.” - Vince Lombardi “
  • 27. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Which Technology Should I Try? Doesn’t matter but here are some options: ◉D3 (do something hard!) ◉SQL (really learn it -- CTEs, Window Functions, etc.) ◉RegEx (really, really learn it) ?
  • 28. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. What Should I Do? Pick anything and: ◉Take it apart ◉Learn how it works (remember 3AM?) ◉Fix a bug and submit PR ?
  • 29. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Absolute Musts! ◉IDE (learn it without the mouse) ◉Debugger (print statements are for babies :) ) ◉Cloud Anything (spin up, do something, tear down) ◉Async / Threading (race conditions, debugging, etc.)
  • 30. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Open Source “What should I be worried about?” 4
  • 31. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. There’s a zillion libraries to do anything: ◉What is the license? (no GPL!) ◉When was the last release? ◉Do bugs get fixed? (How often? By whom?) ◉Community? (StackOverflow, etc) Which Library?!??
  • 32. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Anything Else? Always explicitly manage your dependencies (Know when the world moves underneath you) ?
  • 33. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Any questions ? You can find me at: ◉ rob@limalimacharlie.com Thanks!
  • 34. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Appendixn
  • 35. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. 1. http://cc2e.com/ (Code Complete by Steve McConnell) 2. https://en.wikipedia.org/wiki/Confirmation_bias 3. https://www.google.com/search?q=define%3A+assert 4. http://revelry.co/time-zone-bugs/ References
  • 36. Copyright © 2017, Lima Lima Charlie, LLC. All rights reserved. Attribution 1.http://www.slidescarnival.com/

Editor's Notes

  • #6: Not bad so far!
  • #9: Not bad so far!
  • #14: Not bad so far!
  • #25: Not bad so far!
  • #28: Not bad so far!
  • #29: Not bad so far!
  • #30: Not bad so far!
  • #32: Not bad so far!
  • #33: Not bad so far!