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

open-source and me: tips for a career in software development

open-source and me: tips for a career in software development

a talk aimed at computer science students, about participating in open-source and building a career in software development

D47656e20ff5e42f125fc5ea0fd636c6?s=128

Aman Karmani

April 03, 2022
Tweet

More Decks by Aman Karmani

Other Decks in Technology

Transcript

  1. Aman Gupta Karmani · github.com/tmm1 open-source and me tips for

    a career in software development
  2. • programming for 20+ years • full-stack polyglot dev +

    ops • 10 years in silicon valley building my career • founded multiple startups • early engineer at GitHub • consulting for AirBnb, Twitter, etc • thousands of open-source contributions • moved to sunny Santa Barbara in 2018 Aman Karmani · @tmm1 about me
  3. about me 2003 - high school

  4. tips for a career in software development master a scripting

    language pick any one you like and get really good at it
  5. tips for a career in software development invest in your

    development environment experiment with di ff erent code editors like vim, emacs, intellij, vscode to fi nd what makes you most productive
  6. tips for a career in software development learn web technologies

    html, css, javascript http request/response + headers
  7. about me 2006 - college

  8. about me 2008 - San Francisco

  9. 2009 - conferences about me

  10. tips for a career in software development engage with your

    community attend conferences, talks and meetups about the languages and frameworks you’re using
  11. about me 2010 - rails performance consulting

  12. tips for a career in software development learn to use

    debugging tools when you’re stuck, fi nd a tool which will dig deeper
 
 pro fi lers, tracers, inspectors, debuggers for example: chrome web inspector
  13. about me 2011

  14. about me 2012 - pro fi ling tools

  15. tips for a career in software development think about how

    and where your code will run writing code is only half the battle.. maintenance + operations resilient software saves you sleep
  16. about me 2013 - ruby-core team

  17. about me 2014 - RubyKaigi Tokyo ! Aman Gupta (@tmm1)

    VP Technical Infrastructure GitHub, Inc. Ruby 2.1 in Production How I upgraded github.com from 1.8.7-p72 to 2.1.2 http://bit.ly/ruby21-in-production
  18. 2016 about me

  19. 2017 about me

  20. 2018 about me

  21. 2021 about me

  22. what is open source?

  23. None
  24. 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 card
 processing http
 webserver tcp/ip
 network stack memory management
 
 process scheduling
  25. 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
  26. how does open source work? code
 (version control)
 discussion
 (code

    review)
  27. case study open-source software for tax returns

  28. OpenTaxSolver 20 years old! • written in C • subversion

    source control • hosted on sourceforge • GPLv2, contribute patches via email • mailing list + facebook group for discussion
  29. 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
  30. • 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
  31. let’s contribute!

  32. • 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
  33. start small let’s contribute

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

    contribute
  35. let’s contribute setup development environment

  36. let’s contribute setup development environment

  37. document for the future let’s contribute

  38. document for the future let’s contribute

  39. copy existing patterns and style let’s contribute

  40. code review and scope creeeeeeeep let’s contribute

  41. code review and scope creeeeeeeep let’s contribute

  42. code review and scope creeeeeeeep let’s contribute

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

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

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

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

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

  48. tips for a career in software development participate in open-source!

    build your skills and your portfolio scratch your own itch
  49. newborn project taxes.cue

  50. questions? Aman Karmani aman@tmm1.net · github.com/tmm1