Upgrade to Pro — share decks privately, control downloads, hide ads and more …

developing open-source software

Aman Karmani
September 27, 2022

developing open-source software

an intro on how to get involved

Aman Karmani

September 27, 2022

More Decks by Aman Karmani

Other Decks in Technology


  1. • 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
  2. 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
  3. 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
  4. OpenTaxSolver 20 years old! • written in C • subversion

    source control • hosted on sourceforge • GPLv2, contribute patches via email • mailing list + facebook group for discussion
  5. 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
  6. • 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
  7. • 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
  8. 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
  9. 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
  10. 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
  11. 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