SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Visualization of
Complex Systems
Chris Laffra
1989 - 2019
Who is Chris Laffra?
Chris works at Uber Amsterdam, since Jan 2018.
Chris has worked in Tech at IBM Research, Morgan Stanley,
IBM Rational, Bank of America, and Google. At Uber, Chris
works on tools that increase Uber’s ability to roll out software
faster and more frequently.
Chris has spent the last 30 years of his life on a mission to
make other engineers more productive.
See chrislaffra.com for more details.
Goals
This is an overview of my career. Over the last 30 years,
I have spent most of my technical career towards
understanding, profiling, and visualizing complex systems.
System
“Related entities forming a unified whole”
First, what is a system?
Complex
“No centrally defined interactions”
“Consisting of many parts”
“Complicated”
Second, what is complexity?
Cynefin framework
“Images, diagrams, or animations
communicating a message.”
“A picture is worth a thousand words”
Visualization
Finally, what is visualization?
PROCOL
How I got started, by visualizing the execution of applications
written in PROCOL, my PhD thesis language.
Book #1 Book #2
Explore the
heap of objects,
starting with the
“main” object.
Understand the
shape of an object
See live calls to
object methods
And argument
values
1989
The goal: Understand
what is happening and
see surprises.
HotWire
My first job after my PhD. Developed a system for custom
visualizations for C++ and Smalltalk.
the
subject
Showing
live objects,
methods, &
patterns
Original source code
Custom, declarative
visualization script.
The result
1994
JVM
As soon as Java came out, I wanted to learn more about it.
So, I ended up writing book the fourth book that was
published on Java while working at Morgan Stanley.
Book #3
At IBM Research, I worked on Jax, which used JikesBT, that I developed, to analyze whole
program call graphs and optimize Java programs for size. For example, we reduced javac to
half its size. Aside from being smaller, the secondary benefit was that applets loaded faster. 1999
2001
I wrote the first AdBlock, 8 years before the actual AdBlock was launched. I instrumented the
entire IE Java runtime, using JikesBT to do bytecode instrumentation, and added specific
hooks for networking, general profiling, and ability to stop/start/kill any applet remotely.
Eclipse
Book #4
My IBM/OTI team in Amsterdam developed the first commercial IBM product
based on Eclipse, focusing on embedded Java. We constantly worried about size
and performance. The learnings from Jax were applied to make embedded Java
apps as small as possible. I also started looking into performance of larger Java
programs, such as Eclipse itself. To better understand how Eclipse works, I signed
up to co-author a book on Eclipse and wrote numerous profilers.
One experiment was a
heap-exploration tool, in
this case showing all the
objects in Eclipse
pointing to a given
editor.
2004
A custom CPU
and memory
analysis tool I
developed for
Eclipse was
XRay. The goal
was to show
patterns and for
engineers to
discover
surprising
patterns related
to performance.
2004
Other tools, such as Eclipse Universe, offered novel structural communication patterns
between Eclipse plugins, allowing engineers to dive deeper into specific scenarios. It showed
domain-specific issues, in addition to resource management issues and challenges. 2004
Finally, working with IBM Research, I devised novel way to package up Eclipse applications
using streaming delivery, combined with introducing memory-mapped shared classes using the
J9 JXE format. This allowed us to save about ⅓ in startup time and memory used. 2005
WebSphere VMs per Node
Normal JXEs
My impact.
2X scaling.
Python
Book #5
At Bank of America, I was the first hire on the Quartz project. My interest on this
project was to increase other people’s understanding in how the platform was
structured and implemented. I developed a live-coding training system and
contributed to coding workflows, training, and general developer advocacy.
Quartz
Academy
Chris Laffra
Bank of America
2012
At BofA, I developed a
live coding system
similar to Jupyter
notebooks.
A novel invention I
added was the ability
to do time-travel
debugging of generic
Python code, but also
algorithms that were
implemented using
Quartz features.
I also wrote all the
training materials,
published internally.
Still at BofA, I
developed repository of
>50 Computer Science
algorithms with
visualization.
This essentially was a
reimplementation of
Hotwire for Python.
This was implemented
using Google
AppEngine and cool
Python execution.
2013
code test
2016
The goal of Auger was to introspect a running system, record everything, and then produce
specific output that uses all the data being recorded. In this case I generate unit tests. But,
another application could be to automatically generate performance metrics, or derive types.
Pava
Pava takes Java
bytecodes and
converts them to
Python source code.
Not sure how useful
Pava really is, but for
me, this was really an
effort to study the
differences in
bytecodes for Java
and Python.
2017
Ikke
HappyMac
Tempo
At Google, I worked a lot on Java and Android tools and apps. I also developed an
interest in making the life of engineers better by providing them with tools to
understand how they fit into their organisation and how they can profile their life.
2016-2018
People also represent
a complex system and
I played a lot with
different visualizations
of my personal and
work graph to discover
human connections.
github: Ikke Graph.
While working at Uber, my MacBook was always struggling with the CPU usage of Intellij and
the Android Emulator. To understand better what was going on, I created HappyMac, which
allows its user to discover expensive processes and auto-suspend them using some rules. 2018
HappyWeb is like HappyMac, but focuses on slow network connections. 2018
Tempo constantly
watches your
MacBook and
records the
currently active
program and saves
an event in a local
SQL database.
The recorded
events can show
effectiveness of
workflows, how
much time is spent
in certain activities,
and how to avoid
context switches.
A human profiler?
2019
Summary
Complex systems are all around us, either as technical solutions or as connections between humans. In
order to improve these complex systems, we need to understand them better. To understand them better,
we need to measure and generate metrics. Custom tools will then provide insights.
The End
“Be humble, we have small brains.”

Contenu connexe

Tendances

Tendances (20)

Artificial Intelligence Bill of Rights: Impacts on AI Governance
Artificial Intelligence Bill of Rights: Impacts on AI GovernanceArtificial Intelligence Bill of Rights: Impacts on AI Governance
Artificial Intelligence Bill of Rights: Impacts on AI Governance
 
Generative AI in Healthcare Market.pptx
Generative AI in Healthcare Market.pptxGenerative AI in Healthcare Market.pptx
Generative AI in Healthcare Market.pptx
 
Theresa Fesinstine - AI Forward.pdf
Theresa Fesinstine - AI Forward.pdfTheresa Fesinstine - AI Forward.pdf
Theresa Fesinstine - AI Forward.pdf
 
Dr. Harvey Castro - GPT Healthcare.pdf
Dr. Harvey Castro - GPT Healthcare.pdfDr. Harvey Castro - GPT Healthcare.pdf
Dr. Harvey Castro - GPT Healthcare.pdf
 
Cavalry Ventures | Deep Dive: Generative AI
Cavalry Ventures | Deep Dive: Generative AICavalry Ventures | Deep Dive: Generative AI
Cavalry Ventures | Deep Dive: Generative AI
 
AI: From Data to ROI
AI: From Data to ROIAI: From Data to ROI
AI: From Data to ROI
 
generative AI in healthcare.pdf
generative AI in healthcare.pdfgenerative AI in healthcare.pdf
generative AI in healthcare.pdf
 
GenAI at UBER: Scaling Infrastructure
GenAI at UBER: Scaling InfrastructureGenAI at UBER: Scaling Infrastructure
GenAI at UBER: Scaling Infrastructure
 
A Framework for Navigating Generative Artificial Intelligence for Enterprise
A Framework for Navigating Generative Artificial Intelligence for EnterpriseA Framework for Navigating Generative Artificial Intelligence for Enterprise
A Framework for Navigating Generative Artificial Intelligence for Enterprise
 
leewayhertz.com-The architecture of Generative AI for enterprises.pdf
leewayhertz.com-The architecture of Generative AI for enterprises.pdfleewayhertz.com-The architecture of Generative AI for enterprises.pdf
leewayhertz.com-The architecture of Generative AI for enterprises.pdf
 
Nadia Piet - Design Thinking for AI
Nadia Piet - Design Thinking for AINadia Piet - Design Thinking for AI
Nadia Piet - Design Thinking for AI
 
Digital Platform Ecosystems - Introduction - latest.pptx
Digital Platform Ecosystems - Introduction - latest.pptxDigital Platform Ecosystems - Introduction - latest.pptx
Digital Platform Ecosystems - Introduction - latest.pptx
 
Tojin Eapen - Augmenting Creativity Using Gen AI.pdf
Tojin Eapen - Augmenting Creativity Using Gen AI.pdfTojin Eapen - Augmenting Creativity Using Gen AI.pdf
Tojin Eapen - Augmenting Creativity Using Gen AI.pdf
 
14 2 2023 - AI & Marketing - Hugues Rey.pdf
14 2 2023 - AI & Marketing - Hugues Rey.pdf14 2 2023 - AI & Marketing - Hugues Rey.pdf
14 2 2023 - AI & Marketing - Hugues Rey.pdf
 
James Feldman - AII Powered Business Tools.pdf
James Feldman - AII Powered Business Tools.pdfJames Feldman - AII Powered Business Tools.pdf
James Feldman - AII Powered Business Tools.pdf
 
Andy Roy - Conversational AI - Why We Must Build.pdf
Andy Roy - Conversational AI - Why We Must Build.pdfAndy Roy - Conversational AI - Why We Must Build.pdf
Andy Roy - Conversational AI - Why We Must Build.pdf
 
CIPR 'The Effects of AI on the Professions; A literature repository'
CIPR 'The Effects of AI on the Professions; A literature repository'CIPR 'The Effects of AI on the Professions; A literature repository'
CIPR 'The Effects of AI on the Professions; A literature repository'
 
Thabo Ndlela- Leveraging AI for enhanced Customer Service and Experience
Thabo Ndlela- Leveraging AI for enhanced Customer Service and ExperienceThabo Ndlela- Leveraging AI for enhanced Customer Service and Experience
Thabo Ndlela- Leveraging AI for enhanced Customer Service and Experience
 
Enterprise Artificial Intelligence strategy
Enterprise Artificial Intelligence strategyEnterprise Artificial Intelligence strategy
Enterprise Artificial Intelligence strategy
 
UNLEASHING AI: THE GAME-CHANGER IN MODERN MARKETING AND ADVERTISING
UNLEASHING AI: THE GAME-CHANGER IN MODERN MARKETING AND ADVERTISINGUNLEASHING AI: THE GAME-CHANGER IN MODERN MARKETING AND ADVERTISING
UNLEASHING AI: THE GAME-CHANGER IN MODERN MARKETING AND ADVERTISING
 

Similaire à Visualization of Complex Systems

Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...
Carmen Sanborn
 
Un Microsystem Company Analysis Essay
Un Microsystem Company Analysis EssayUn Microsystem Company Analysis Essay
Un Microsystem Company Analysis Essay
Rikki Wright
 
Functional Requirements Of System Requirements
Functional Requirements Of System RequirementsFunctional Requirements Of System Requirements
Functional Requirements Of System Requirements
Laura Arrigo
 
Pair Programming Explained By Shrikant Vashishtha
Pair Programming Explained  By Shrikant VashishthaPair Programming Explained  By Shrikant Vashishtha
Pair Programming Explained By Shrikant Vashishtha
ShriKant Vashishtha
 

Similaire à Visualization of Complex Systems (20)

History Of C Essay
History Of C EssayHistory Of C Essay
History Of C Essay
 
Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...
 
OOP Java
OOP JavaOOP Java
OOP Java
 
Semantic web, python, construction industry
Semantic web, python, construction industrySemantic web, python, construction industry
Semantic web, python, construction industry
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
 
Shuzworld Analysis
Shuzworld AnalysisShuzworld Analysis
Shuzworld Analysis
 
Rrw02 Week 1 Assignment
Rrw02 Week 1 AssignmentRrw02 Week 1 Assignment
Rrw02 Week 1 Assignment
 
Un Microsystem Company Analysis Essay
Un Microsystem Company Analysis EssayUn Microsystem Company Analysis Essay
Un Microsystem Company Analysis Essay
 
Python libraries
Python librariesPython libraries
Python libraries
 
Effective Collaborative Programming3
Effective Collaborative Programming3Effective Collaborative Programming3
Effective Collaborative Programming3
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
 
Key Features Of The Pseudo Code
Key Features Of The Pseudo CodeKey Features Of The Pseudo Code
Key Features Of The Pseudo Code
 
Using Technology to Make People More Powerful
Using Technology to Make People More PowerfulUsing Technology to Make People More Powerful
Using Technology to Make People More Powerful
 
Gap search system
Gap search systemGap search system
Gap search system
 
MODULE_1_The History and Evolution of Java.pptx
MODULE_1_The History and Evolution of Java.pptxMODULE_1_The History and Evolution of Java.pptx
MODULE_1_The History and Evolution of Java.pptx
 
Functional Requirements Of System Requirements
Functional Requirements Of System RequirementsFunctional Requirements Of System Requirements
Functional Requirements Of System Requirements
 
Top Deep Learning Frameworks.pdf
Top Deep Learning Frameworks.pdfTop Deep Learning Frameworks.pdf
Top Deep Learning Frameworks.pdf
 
Pair Programming Explained By Shrikant Vashishtha
Pair Programming Explained  By Shrikant VashishthaPair Programming Explained  By Shrikant Vashishtha
Pair Programming Explained By Shrikant Vashishtha
 
Effective Collaborative Programming3@March 19th 2009
Effective Collaborative Programming3@March 19th 2009Effective Collaborative Programming3@March 19th 2009
Effective Collaborative Programming3@March 19th 2009
 
HTML5 - New UI Library for Games, Chad Austin, IMVU
HTML5 - New UI Library for Games, Chad Austin, IMVUHTML5 - New UI Library for Games, Chad Austin, IMVU
HTML5 - New UI Library for Games, Chad Austin, IMVU
 

Plus de Chris Laffra

Plus de Chris Laffra (7)

Java bytecode hacking
Java bytecode hackingJava bytecode hacking
Java bytecode hacking
 
Project Cacophonia
Project CacophoniaProject Cacophonia
Project Cacophonia
 
Productivity and happiness
Productivity and happinessProductivity and happiness
Productivity and happiness
 
Eclipse Visualization and Performance Monitoring
Eclipse Visualization and Performance MonitoringEclipse Visualization and Performance Monitoring
Eclipse Visualization and Performance Monitoring
 
Jax retrospective
Jax retrospectiveJax retrospective
Jax retrospective
 
Curry on/Ecoop/ISSTA 2018 report
Curry on/Ecoop/ISSTA 2018 reportCurry on/Ecoop/ISSTA 2018 report
Curry on/Ecoop/ISSTA 2018 report
 
Little languages
Little languagesLittle languages
Little languages
 

Dernier

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Dernier (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 

Visualization of Complex Systems

  • 2. Who is Chris Laffra? Chris works at Uber Amsterdam, since Jan 2018. Chris has worked in Tech at IBM Research, Morgan Stanley, IBM Rational, Bank of America, and Google. At Uber, Chris works on tools that increase Uber’s ability to roll out software faster and more frequently. Chris has spent the last 30 years of his life on a mission to make other engineers more productive. See chrislaffra.com for more details.
  • 3. Goals This is an overview of my career. Over the last 30 years, I have spent most of my technical career towards understanding, profiling, and visualizing complex systems.
  • 4. System “Related entities forming a unified whole” First, what is a system?
  • 5. Complex “No centrally defined interactions” “Consisting of many parts” “Complicated” Second, what is complexity?
  • 7. “Images, diagrams, or animations communicating a message.” “A picture is worth a thousand words” Visualization Finally, what is visualization?
  • 8. PROCOL How I got started, by visualizing the execution of applications written in PROCOL, my PhD thesis language. Book #1 Book #2
  • 9. Explore the heap of objects, starting with the “main” object. Understand the shape of an object See live calls to object methods And argument values 1989 The goal: Understand what is happening and see surprises.
  • 10. HotWire My first job after my PhD. Developed a system for custom visualizations for C++ and Smalltalk.
  • 12. Original source code Custom, declarative visualization script. The result 1994
  • 13. JVM As soon as Java came out, I wanted to learn more about it. So, I ended up writing book the fourth book that was published on Java while working at Morgan Stanley. Book #3
  • 14. At IBM Research, I worked on Jax, which used JikesBT, that I developed, to analyze whole program call graphs and optimize Java programs for size. For example, we reduced javac to half its size. Aside from being smaller, the secondary benefit was that applets loaded faster. 1999
  • 15. 2001 I wrote the first AdBlock, 8 years before the actual AdBlock was launched. I instrumented the entire IE Java runtime, using JikesBT to do bytecode instrumentation, and added specific hooks for networking, general profiling, and ability to stop/start/kill any applet remotely.
  • 16. Eclipse Book #4 My IBM/OTI team in Amsterdam developed the first commercial IBM product based on Eclipse, focusing on embedded Java. We constantly worried about size and performance. The learnings from Jax were applied to make embedded Java apps as small as possible. I also started looking into performance of larger Java programs, such as Eclipse itself. To better understand how Eclipse works, I signed up to co-author a book on Eclipse and wrote numerous profilers.
  • 17. One experiment was a heap-exploration tool, in this case showing all the objects in Eclipse pointing to a given editor. 2004
  • 18. A custom CPU and memory analysis tool I developed for Eclipse was XRay. The goal was to show patterns and for engineers to discover surprising patterns related to performance. 2004
  • 19. Other tools, such as Eclipse Universe, offered novel structural communication patterns between Eclipse plugins, allowing engineers to dive deeper into specific scenarios. It showed domain-specific issues, in addition to resource management issues and challenges. 2004
  • 20. Finally, working with IBM Research, I devised novel way to package up Eclipse applications using streaming delivery, combined with introducing memory-mapped shared classes using the J9 JXE format. This allowed us to save about ⅓ in startup time and memory used. 2005 WebSphere VMs per Node Normal JXEs My impact. 2X scaling.
  • 21. Python Book #5 At Bank of America, I was the first hire on the Quartz project. My interest on this project was to increase other people’s understanding in how the platform was structured and implemented. I developed a live-coding training system and contributed to coding workflows, training, and general developer advocacy. Quartz Academy Chris Laffra Bank of America
  • 22. 2012 At BofA, I developed a live coding system similar to Jupyter notebooks. A novel invention I added was the ability to do time-travel debugging of generic Python code, but also algorithms that were implemented using Quartz features. I also wrote all the training materials, published internally.
  • 23. Still at BofA, I developed repository of >50 Computer Science algorithms with visualization. This essentially was a reimplementation of Hotwire for Python. This was implemented using Google AppEngine and cool Python execution. 2013
  • 24. code test 2016 The goal of Auger was to introspect a running system, record everything, and then produce specific output that uses all the data being recorded. In this case I generate unit tests. But, another application could be to automatically generate performance metrics, or derive types.
  • 25. Pava Pava takes Java bytecodes and converts them to Python source code. Not sure how useful Pava really is, but for me, this was really an effort to study the differences in bytecodes for Java and Python. 2017
  • 26. Ikke HappyMac Tempo At Google, I worked a lot on Java and Android tools and apps. I also developed an interest in making the life of engineers better by providing them with tools to understand how they fit into their organisation and how they can profile their life.
  • 27. 2016-2018 People also represent a complex system and I played a lot with different visualizations of my personal and work graph to discover human connections. github: Ikke Graph.
  • 28. While working at Uber, my MacBook was always struggling with the CPU usage of Intellij and the Android Emulator. To understand better what was going on, I created HappyMac, which allows its user to discover expensive processes and auto-suspend them using some rules. 2018
  • 29. HappyWeb is like HappyMac, but focuses on slow network connections. 2018
  • 30. Tempo constantly watches your MacBook and records the currently active program and saves an event in a local SQL database. The recorded events can show effectiveness of workflows, how much time is spent in certain activities, and how to avoid context switches. A human profiler? 2019
  • 31. Summary Complex systems are all around us, either as technical solutions or as connections between humans. In order to improve these complex systems, we need to understand them better. To understand them better, we need to measure and generate metrics. Custom tools will then provide insights.
  • 32.
  • 33. The End “Be humble, we have small brains.”