SlideShare a Scribd company logo
How
Python
Changed
My Life
Fauzan Erich Emmerling
PyCon Indonesia 2019
About Me
• Coding since 2000
• Python user since 2010
• @femmerling on twitter
• Mobile Product Engineering Lead at Gojek
• An engineer by heart, I love building things
• Joined Python-ID in 2013
• Co-Founded Python-ID Jogja with Ismail Sunni and Meirza Arson
• Married, 3 kids
The Dark
Ages
My pre-Python
Journey
It all started with…
• Finding the internet back in 1999
• My first codes were HTML pages for Geocities
• Read some VB6 books, didn’t get the hang of it
• Got into university in 2002, first real intro to programming in C
• Got limited resources to learn, this was 2002
• Got a lot of programming concepts, but didn’t quite get how to
apply them in real cases
THIS HAUNTED MY DREAMS
Then came life after C…
• First intro to visual programming with VB6, finally understood the
books I read years earlier
• Of course, the one and only, Java
• This was the beginning of the web application
• Java became JSP and there I went
• C++ is of course there too
• But then, came the long-standing language of web programmers…
The mother language
I enjoyed it a lot because…
• It was hype back then!!! I felt like I’m part of something
• My first interpreted language, I loved it
• Finally found dynamic typing, so liberating, debate me on this
• Light on the PC, compared to JSP or .NET
• Plenty of reference on the web
• A lot of people were using it in the University so I can ask a lot of
people
• Plenty of cheap hosting support compared to the other options back
then
But…
• I still didn’t understand much of the programming concepts taught
• The language did not inspire me to be better
• The IRC community back then was quite harsh regarding asked
questions on the channel
• I didn’t find any good coding philosophy to look up to
However…
• It worked! I delivered production codes sooner than the other
languages
• I graduated using a thesis with PHP program
• I started making money with it by creating a service company
focusing in making websites and web-based applications
The Age of
Enlightenment
My Python Discovery
Years
So here’s the story
• My service company got a contract with an Austrian Agency
• The initial test was in PHP using ZEND, and we passed with flying
colours
• However, they’re switching to Google App Engine (freshly released
back then)
• And they want to use Python…
I’m supposed to use a snake?
no kidding!
But then…
• The simplicity got me well
• It was the easiest learning I did in years
• I got more products delivered, with half the lines of code
• I learned a lot about the programming concepts, and finally
understood most of the concepts I learned during my C years
• I am inspired to learn even more things, like testing, security, etc.
It didn’t stop there
• The community was very welcoming in IRC
• I am blessed with the rich and extensive standard library
• Docs and tutorials are everywhere
• The BDFL was very cool and inspiring
• I started using the way I approached the language simplicity in my
life
Can I make it simpler?
A language inspired me in my life view
I was enlightened
So, what changed?
Career jump
• I was working as an IT Auditor before Python, with afterwork work on
my service company
• Why? Non corporate IT jobs back then wasn’t enough to support
family
• After Python, I won a prize in a hackathon that exposes me to big
startup companies
• I finally decided to take the leap in 2012 and never regretted the
decision
• Been with Icehouse, Traveloka, Coral, Prism, Midtrans and Now
I discovered the Zen of Python
• It really changed how I approach my codes and affected my codes in
other languages too
• I learned to write codes I can look back and be proud of
• It built my pragmatism and help me deliver things
• All other language learning became easier after I understand the
meaning
The Zen of Python, by Tim Peters
• Beautiful is better than ugly.
• Explicit is better than implicit.
• Simple is better than complex.
• Complex is better than complicated.
• Flat is better than nested.
• Sparse is better than dense.
• Readability counts.
• Special cases aren't special enough to break the rules.
• Although practicality beats purity.
• Errors should never pass silently.
• Unless explicitly silenced.
• In the face of ambiguity, refuse the temptation to guess.
• There should be one-- and preferably only one --obvious way to do it.
$ python -c ”import this”
Outside of coding, python taught
me to…
• Work better within a team
• Manage people around me
• Manage expectations of stakeholders
• Create a safe engineering environment
• Have a work-life balance
• Have more time with my family
How is that possible?
• By trying to simplify things, you try to make things easier for people
around you
• By being simple, you can do things faster and have more time to your
self
• By exposing your views, you became more readable, people around
you can collaborate easier
• By being explicit, you manage expectation better
• By making sure that errors are not considered a sin. It is a mistake
that people should learn from
Since my learning improved…
• I learned mobile app development in 3 weeks total for both iOS and
Android
• I dug deeper into building better backends
• I learned how to build adaptive codes
• I learned to see the beauty in other languages
• I learned more on DevOps
• I learned how to build a startup
• Learning became not just a habit, but a need
How does it relate to my current
job?
• I am currently leading teams making mobile products, no Python involved
• Gojek’s culture enables me to have enough freedom in building things
and enabling other team members
• How’s that related to today’s talk?
• The habit to make simplified solution helps me in trying to give ease to
users in using the products my team builds
• The habit of using Python’s data structure helps in handling data
structures in other languages better
• All the backend learning helps me in dealing with various backend
systems and how to provide better inputs for the backend team from a
In reality,
programming
languages are how
programmers
express and
communicate ideas
— and the audience
for those ideas is
other programmers,
not computers.
- Guido van Rossum -
from King’s Day Speech
What else changed?
Community contribution
• I joined Python-ID in 2013
• I felt the need to give back to the community that already gave so
much to me
• Founding Python-ID Jogja to grow the community
• I’m not too active in hosting meetups anymore but still contribute as
speaker
• Python ID welcomes you in our community events in many cities,
telegram channels, slack, etc.
• If you can, contribute to the python repo
THANK YOU
PYTHON
Last but not least…

More Related Content

What's hot

TIA 2014 Engaging Project Choices Using Technology
TIA 2014   Engaging Project Choices Using TechnologyTIA 2014   Engaging Project Choices Using Technology
TIA 2014 Engaging Project Choices Using Technology
DentonISD - Myers Middle School
 
eText Support For Faculty
eText Support For FacultyeText Support For Faculty
eText Support For Faculty
sccdeye
 
The Art Of Learning E Portfolio D2l
The Art Of Learning E Portfolio D2lThe Art Of Learning E Portfolio D2l
The Art Of Learning E Portfolio D2l
wendyks
 
Code club
Code clubCode club
Twitter for Professional Development
Twitter for Professional DevelopmentTwitter for Professional Development
Twitter for Professional DevelopmentCatherine Ritz
 
Dream Big. Learn Code.
Dream Big. Learn Code. Dream Big. Learn Code.
Dream Big. Learn Code.
Holly Storck-Post
 
Summative Reflection
Summative ReflectionSummative Reflection
Summative Reflectionholaitsnoraxo
 
eBook Takeover
eBook TakeovereBook Takeover
eBook Takeover
Kelli Tanzi
 
Ipadagoy workshop celc symposium-nus.key
Ipadagoy workshop celc symposium-nus.keyIpadagoy workshop celc symposium-nus.key
Ipadagoy workshop celc symposium-nus.keyTAEDTECH Sig
 
Behaviour management in the IT classroom
Behaviour management in the IT classroomBehaviour management in the IT classroom
Behaviour management in the IT classroom
Mark Richardson
 
H5P TESL Ontario webinar July 2019
H5P TESL Ontario webinar July 2019H5P TESL Ontario webinar July 2019
H5P TESL Ontario webinar July 2019
John Allan
 

What's hot (11)

TIA 2014 Engaging Project Choices Using Technology
TIA 2014   Engaging Project Choices Using TechnologyTIA 2014   Engaging Project Choices Using Technology
TIA 2014 Engaging Project Choices Using Technology
 
eText Support For Faculty
eText Support For FacultyeText Support For Faculty
eText Support For Faculty
 
The Art Of Learning E Portfolio D2l
The Art Of Learning E Portfolio D2lThe Art Of Learning E Portfolio D2l
The Art Of Learning E Portfolio D2l
 
Code club
Code clubCode club
Code club
 
Twitter for Professional Development
Twitter for Professional DevelopmentTwitter for Professional Development
Twitter for Professional Development
 
Dream Big. Learn Code.
Dream Big. Learn Code. Dream Big. Learn Code.
Dream Big. Learn Code.
 
Summative Reflection
Summative ReflectionSummative Reflection
Summative Reflection
 
eBook Takeover
eBook TakeovereBook Takeover
eBook Takeover
 
Ipadagoy workshop celc symposium-nus.key
Ipadagoy workshop celc symposium-nus.keyIpadagoy workshop celc symposium-nus.key
Ipadagoy workshop celc symposium-nus.key
 
Behaviour management in the IT classroom
Behaviour management in the IT classroomBehaviour management in the IT classroom
Behaviour management in the IT classroom
 
H5P TESL Ontario webinar July 2019
H5P TESL Ontario webinar July 2019H5P TESL Ontario webinar July 2019
H5P TESL Ontario webinar July 2019
 

Similar to How Python Changed My Life PyCon Indonesia 2019

eLearning and Networking Technologies to Mimic the In-Person Experience
eLearning and Networking Technologies to Mimic the In-Person ExperienceeLearning and Networking Technologies to Mimic the In-Person Experience
eLearning and Networking Technologies to Mimic the In-Person Experience
janetkrenn
 
How I switched to automation testing?
How I switched to automation testing?How I switched to automation testing?
How I switched to automation testing?
Sudha Nadchal
 
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessiblyUsing Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
D2L Barry
 
Saron Yitbarek Codeland 2020 keynote
Saron Yitbarek Codeland 2020 keynoteSaron Yitbarek Codeland 2020 keynote
Saron Yitbarek Codeland 2020 keynote
Peter Frank
 
Using Web 2.0 Tools inside Brightspace with an Eye on Accessibility
Using Web 2.0 Tools inside Brightspace with an Eye on AccessibilityUsing Web 2.0 Tools inside Brightspace with an Eye on Accessibility
Using Web 2.0 Tools inside Brightspace with an Eye on Accessibility
D2L
 
Confessions of a Senior Mind
Confessions of a Senior MindConfessions of a Senior Mind
Confessions of a Senior Mind
Stojan Peshov
 
DevOps India Days' 17 Keynote
DevOps India Days' 17 KeynoteDevOps India Days' 17 Keynote
DevOps India Days' 17 Keynote
Neependra Khare
 
Going Remote: User experiences at a distance
Going Remote: User experiences at a distanceGoing Remote: User experiences at a distance
Going Remote: User experiences at a distancelinoleumjet
 
Never too late to learn - IM Tech Meetup - Feb 2022
Never too late to learn - IM Tech Meetup - Feb 2022Never too late to learn - IM Tech Meetup - Feb 2022
Never too late to learn - IM Tech Meetup - Feb 2022
Ilesh Mistry
 
Career of the Software Engineer in Modern Open-Source e-Commerce Company
Career of the Software Engineer in Modern Open-Source e-Commerce CompanyCareer of the Software Engineer in Modern Open-Source e-Commerce Company
Career of the Software Engineer in Modern Open-Source e-Commerce Company
Vrann Tulika
 
Tauranga DNUG 2010-11-11
Tauranga DNUG 2010-11-11 Tauranga DNUG 2010-11-11
Tauranga DNUG 2010-11-11
dbruning
 
Assignment of ict's
Assignment of ict'sAssignment of ict's
Assignment of ict'sEngr Hassan
 
My Open Source Journey - Developer and Community
My Open Source Journey - Developer and CommunityMy Open Source Journey - Developer and Community
My Open Source Journey - Developer and Community
Sammy Fung
 
Assignment of ict's
Assignment of ict'sAssignment of ict's
Assignment of ict'sEngrMuneeb
 
Give your event a theme (YeurLeadin 2019)
Give your event a theme (YeurLeadin 2019)Give your event a theme (YeurLeadin 2019)
Give your event a theme (YeurLeadin 2019)
YeurLeadin
 
Welcometo imscomputers7
Welcometo imscomputers7Welcometo imscomputers7
Welcometo imscomputers7Anne Asplund
 
Nonprofit Must Have Technology Tools & Tricks
Nonprofit Must Have Technology Tools & TricksNonprofit Must Have Technology Tools & Tricks
Nonprofit Must Have Technology Tools & Tricks
Minds On Design Lab
 
Exploring technology tools
Exploring technology toolsExploring technology tools
Exploring technology tools
hsqreyes
 
Digital leaders presentationy for 6th ju!
Digital leaders presentationy for 6th ju!Digital leaders presentationy for 6th ju!
Digital leaders presentationy for 6th ju!heapbridge
 

Similar to How Python Changed My Life PyCon Indonesia 2019 (20)

eLearning and Networking Technologies to Mimic the In-Person Experience
eLearning and Networking Technologies to Mimic the In-Person ExperienceeLearning and Networking Technologies to Mimic the In-Person Experience
eLearning and Networking Technologies to Mimic the In-Person Experience
 
How I switched to automation testing?
How I switched to automation testing?How I switched to automation testing?
How I switched to automation testing?
 
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessiblyUsing Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
 
Saron Yitbarek Codeland 2020 keynote
Saron Yitbarek Codeland 2020 keynoteSaron Yitbarek Codeland 2020 keynote
Saron Yitbarek Codeland 2020 keynote
 
Using Web 2.0 Tools inside Brightspace with an Eye on Accessibility
Using Web 2.0 Tools inside Brightspace with an Eye on AccessibilityUsing Web 2.0 Tools inside Brightspace with an Eye on Accessibility
Using Web 2.0 Tools inside Brightspace with an Eye on Accessibility
 
Confessions of a Senior Mind
Confessions of a Senior MindConfessions of a Senior Mind
Confessions of a Senior Mind
 
DevOps India Days' 17 Keynote
DevOps India Days' 17 KeynoteDevOps India Days' 17 Keynote
DevOps India Days' 17 Keynote
 
Going Remote: User experiences at a distance
Going Remote: User experiences at a distanceGoing Remote: User experiences at a distance
Going Remote: User experiences at a distance
 
Never too late to learn - IM Tech Meetup - Feb 2022
Never too late to learn - IM Tech Meetup - Feb 2022Never too late to learn - IM Tech Meetup - Feb 2022
Never too late to learn - IM Tech Meetup - Feb 2022
 
Career of the Software Engineer in Modern Open-Source e-Commerce Company
Career of the Software Engineer in Modern Open-Source e-Commerce CompanyCareer of the Software Engineer in Modern Open-Source e-Commerce Company
Career of the Software Engineer in Modern Open-Source e-Commerce Company
 
Tauranga DNUG 2010-11-11
Tauranga DNUG 2010-11-11 Tauranga DNUG 2010-11-11
Tauranga DNUG 2010-11-11
 
Assignment of ict's
Assignment of ict'sAssignment of ict's
Assignment of ict's
 
My Open Source Journey - Developer and Community
My Open Source Journey - Developer and CommunityMy Open Source Journey - Developer and Community
My Open Source Journey - Developer and Community
 
Assignment of ict's
Assignment of ict'sAssignment of ict's
Assignment of ict's
 
Give your event a theme (YeurLeadin 2019)
Give your event a theme (YeurLeadin 2019)Give your event a theme (YeurLeadin 2019)
Give your event a theme (YeurLeadin 2019)
 
Welcometo imscomputers7
Welcometo imscomputers7Welcometo imscomputers7
Welcometo imscomputers7
 
Nonprofit Must Have Technology Tools & Tricks
Nonprofit Must Have Technology Tools & TricksNonprofit Must Have Technology Tools & Tricks
Nonprofit Must Have Technology Tools & Tricks
 
Exploring technology tools
Exploring technology toolsExploring technology tools
Exploring technology tools
 
Digital leaders presentationy for 6th ju!
Digital leaders presentationy for 6th ju!Digital leaders presentationy for 6th ju!
Digital leaders presentationy for 6th ju!
 
Elearn 2012 Parent Meet
Elearn 2012 Parent MeetElearn 2012 Parent Meet
Elearn 2012 Parent Meet
 

Recently uploaded

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 

Recently uploaded (20)

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 

How Python Changed My Life PyCon Indonesia 2019

  • 1. How Python Changed My Life Fauzan Erich Emmerling PyCon Indonesia 2019
  • 2. About Me • Coding since 2000 • Python user since 2010 • @femmerling on twitter • Mobile Product Engineering Lead at Gojek • An engineer by heart, I love building things • Joined Python-ID in 2013 • Co-Founded Python-ID Jogja with Ismail Sunni and Meirza Arson • Married, 3 kids
  • 4. It all started with… • Finding the internet back in 1999 • My first codes were HTML pages for Geocities • Read some VB6 books, didn’t get the hang of it • Got into university in 2002, first real intro to programming in C • Got limited resources to learn, this was 2002 • Got a lot of programming concepts, but didn’t quite get how to apply them in real cases
  • 6. Then came life after C… • First intro to visual programming with VB6, finally understood the books I read years earlier • Of course, the one and only, Java • This was the beginning of the web application • Java became JSP and there I went • C++ is of course there too • But then, came the long-standing language of web programmers…
  • 8. I enjoyed it a lot because… • It was hype back then!!! I felt like I’m part of something • My first interpreted language, I loved it • Finally found dynamic typing, so liberating, debate me on this • Light on the PC, compared to JSP or .NET • Plenty of reference on the web • A lot of people were using it in the University so I can ask a lot of people • Plenty of cheap hosting support compared to the other options back then
  • 9. But… • I still didn’t understand much of the programming concepts taught • The language did not inspire me to be better • The IRC community back then was quite harsh regarding asked questions on the channel • I didn’t find any good coding philosophy to look up to
  • 10. However… • It worked! I delivered production codes sooner than the other languages • I graduated using a thesis with PHP program • I started making money with it by creating a service company focusing in making websites and web-based applications
  • 11. The Age of Enlightenment My Python Discovery Years
  • 12. So here’s the story • My service company got a contract with an Austrian Agency • The initial test was in PHP using ZEND, and we passed with flying colours • However, they’re switching to Google App Engine (freshly released back then) • And they want to use Python…
  • 13. I’m supposed to use a snake? no kidding!
  • 14. But then… • The simplicity got me well • It was the easiest learning I did in years • I got more products delivered, with half the lines of code • I learned a lot about the programming concepts, and finally understood most of the concepts I learned during my C years • I am inspired to learn even more things, like testing, security, etc.
  • 15. It didn’t stop there • The community was very welcoming in IRC • I am blessed with the rich and extensive standard library • Docs and tutorials are everywhere • The BDFL was very cool and inspiring • I started using the way I approached the language simplicity in my life
  • 16. Can I make it simpler?
  • 17. A language inspired me in my life view I was enlightened
  • 19. Career jump • I was working as an IT Auditor before Python, with afterwork work on my service company • Why? Non corporate IT jobs back then wasn’t enough to support family • After Python, I won a prize in a hackathon that exposes me to big startup companies • I finally decided to take the leap in 2012 and never regretted the decision • Been with Icehouse, Traveloka, Coral, Prism, Midtrans and Now
  • 20. I discovered the Zen of Python • It really changed how I approach my codes and affected my codes in other languages too • I learned to write codes I can look back and be proud of • It built my pragmatism and help me deliver things • All other language learning became easier after I understand the meaning
  • 21. The Zen of Python, by Tim Peters • Beautiful is better than ugly. • Explicit is better than implicit. • Simple is better than complex. • Complex is better than complicated. • Flat is better than nested. • Sparse is better than dense. • Readability counts. • Special cases aren't special enough to break the rules. • Although practicality beats purity. • Errors should never pass silently. • Unless explicitly silenced. • In the face of ambiguity, refuse the temptation to guess. • There should be one-- and preferably only one --obvious way to do it.
  • 22. $ python -c ”import this”
  • 23. Outside of coding, python taught me to… • Work better within a team • Manage people around me • Manage expectations of stakeholders • Create a safe engineering environment • Have a work-life balance • Have more time with my family
  • 24. How is that possible? • By trying to simplify things, you try to make things easier for people around you • By being simple, you can do things faster and have more time to your self • By exposing your views, you became more readable, people around you can collaborate easier • By being explicit, you manage expectation better • By making sure that errors are not considered a sin. It is a mistake that people should learn from
  • 25. Since my learning improved… • I learned mobile app development in 3 weeks total for both iOS and Android • I dug deeper into building better backends • I learned how to build adaptive codes • I learned to see the beauty in other languages • I learned more on DevOps • I learned how to build a startup • Learning became not just a habit, but a need
  • 26. How does it relate to my current job? • I am currently leading teams making mobile products, no Python involved • Gojek’s culture enables me to have enough freedom in building things and enabling other team members • How’s that related to today’s talk? • The habit to make simplified solution helps me in trying to give ease to users in using the products my team builds • The habit of using Python’s data structure helps in handling data structures in other languages better • All the backend learning helps me in dealing with various backend systems and how to provide better inputs for the backend team from a
  • 27. In reality, programming languages are how programmers express and communicate ideas — and the audience for those ideas is other programmers, not computers. - Guido van Rossum - from King’s Day Speech
  • 29. Community contribution • I joined Python-ID in 2013 • I felt the need to give back to the community that already gave so much to me • Founding Python-ID Jogja to grow the community • I’m not too active in hosting meetups anymore but still contribute as speaker • Python ID welcomes you in our community events in many cities, telegram channels, slack, etc. • If you can, contribute to the python repo