Slide 1

Slide 1 text

Aman Gupta Karmani · github.com/tmm1 developing open-source software an intro on how to get involved

Slide 2

Slide 2 text

• open-source enthusiast & developer for 20 years • early engineer @ GitHub • thousands of open-source contributions • ruby: rails, eventmachine, ruby- core, pro fi lers • golang programming language • ios/android libraries • ff mpeg/mpv multimedia • pytorch, stable-di ff usion Aman Karmani · @tmm1 about me

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

what is open source?

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

pick your battles why open source? 
 Operating System 
 Device Drivers Framework Libraries Proprietary Business Logic } } closed source trade secret speci fi c to your product/business open source shared infrastructure community adding features edge case bugs found and fi xed credit cards
 images http
 webserver tcp/ip
 network stack memory management
 
 process scheduling

Slide 7

Slide 7 text

open-source is a super power control your own destiny • look behind the scenes, instead of getting stuck • every change documented for future devs (+ you) • who changed it and when • what lines changed where • why why why

Slide 8

Slide 8 text

how does open source work? code
 (version control)
 discussion
 (code review)

Slide 9

Slide 9 text

case study open-source software for tax returns

Slide 10

Slide 10 text

OpenTaxSolver 20 years old! • written in C • subversion source control • hosted on sourceforge • GPLv2, contribute patches via email • mailing list + facebook group for discussion

Slide 11

Slide 11 text

since 1996! excel1040 • written in excel macros (!) • no source control
 no license • can it be called open- source? • hosted on google sites • contribute bug reports via email

Slide 12

Slide 12 text

• written in TypeScript and React.js • git for source control • AGPL3, hosted on GitHub • discord discussions • automation: CI, codecov, dependabot, code formatting newcomer UsTaxes.org

Slide 13

Slide 13 text

let’s contribute!

Slide 14

Slide 14 text

• with the project • README, contribution guidelines, coding style • recent discussions, upcoming releases and goals • with the code base • look at open and recently closed issues • read through open and merged pull requests • what libraries, languages and frameworks are used? • how to setup a development environment? familiarize yourself let’s contribute

Slide 15

Slide 15 text

start small let’s contribute

Slide 16

Slide 16 text

documentation and project planning not all contributions are code let’s contribute

Slide 17

Slide 17 text

let’s contribute setup development environment

Slide 18

Slide 18 text

let’s contribute setup development environment

Slide 19

Slide 19 text

document for the future let’s contribute

Slide 20

Slide 20 text

document for the future let’s contribute

Slide 21

Slide 21 text

copy existing patterns and style let’s contribute

Slide 22

Slide 22 text

code review and scope creeeeeeeep let’s contribute

Slide 23

Slide 23 text

code review and scope creeeeeeeep let’s contribute

Slide 24

Slide 24 text

code review and scope creeeeeeeep let’s contribute

Slide 25

Slide 25 text

bug fi x: follow the open source let’s contribute ??

Slide 26

Slide 26 text

bug fi x: follow the open source let’s contribute

Slide 27

Slide 27 text

bug fi x: follow the open source let’s contribute isMobile = is mobile or tablet!

Slide 28

Slide 28 text

bug fi x: follow the open source let’s contribute

Slide 29

Slide 29 text

fi x bugs that a ff ect you let’s contribute

Slide 30

Slide 30 text

let’s create open-source! from inspiration to implementation

Slide 31

Slide 31 text

inspiration let’s create

Slide 32

Slide 32 text

inspiration let’s create 🎉

Slide 33

Slide 33 text

inspiration let’s create 🎉 ❓

Slide 34

Slide 34 text

inspiration let’s create • NBER is a non-pro fi t doing academic research on tax policy • TAXSIM project started in the 1970s using Fortran

Slide 35

Slide 35 text

let’s create inspiration: taxsim.nber.org

Slide 36

Slide 36 text

let’s create inspiration: taxsim.nber.org

Slide 37

Slide 37 text

let’s create inspiration Your Tax Data Your Computer NBER Server Results

Slide 38

Slide 38 text

let’s create inspiration Your Tax Data Your Computer NBER Server Results • latency issues • 100ms, possibly more from west coast • no instant feedback = limited UI choices • privacy issues • tra ff i c might be sni ff ed • inputs could end up in log fi les unknowingly

Slide 39

Slide 39 text

let’s create inspiration Your Tax Data Your Computer NBER Server Results 🚫

Slide 40

Slide 40 text

let’s create inspiration Your Tax Data Your Computer NBER Server Results 🚫 • runs locally = instant results (1ms) • no internet access required • data never leaves your device

Slide 41

Slide 41 text

let’s create inspiration • 30,000 lines • Fortran 77 • “ fi xed mode” from 1950s punchcards • fi rst 6 columns have special meanings • 2.3MB of source code in one fi le

Slide 42

Slide 42 text

let’s create the source

Slide 43

Slide 43 text

let’s create the source

Slide 44

Slide 44 text

let’s create the source

Slide 45

Slide 45 text

let’s create the source

Slide 46

Slide 46 text

let’s create the source

Slide 47

Slide 47 text

let’s create the result: https://taxsim.app

Slide 48

Slide 48 text

let’s create the result: https://taxsim.app

Slide 49

Slide 49 text

let’s create the result: https://taxsim.app

Slide 50

Slide 50 text

let’s create the power of open-source

Slide 51

Slide 51 text

let’s give back the power of open-source software

Slide 52

Slide 52 text

let’s give back the power of open-source software

Slide 53

Slide 53 text

questions? Aman Karmani [email protected] · github.com/tmm1