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

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

    View full-size slide

  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

    View full-size slide

  3. about me
    2003 - high school

    View full-size slide

  4. tips for a career in software development
    master a scripting
    language
    pick any one you like and get really
    good at it

    View full-size slide

  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

    View full-size slide

  6. tips for a career in software development
    learn web
    technologies
    html, css, javascript
    http request/response + headers

    View full-size slide

  7. about me
    2006 - college

    View full-size slide

  8. about me
    2008 - San Francisco

    View full-size slide

  9. 2009 - conferences
    about me

    View full-size slide

  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

    View full-size slide

  11. about me
    2010 - rails performance consulting

    View full-size slide

  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

    View full-size slide

  13. about me
    2011

    View full-size slide

  14. about me
    2012 - pro
    fi
    ling tools

    View full-size slide

  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

    View full-size slide

  16. about me
    2013 - ruby-core team

    View full-size slide

  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

    View full-size slide

  18. 2016
    about me

    View full-size slide

  19. 2017
    about me

    View full-size slide

  20. 2018
    about me

    View full-size slide

  21. 2021
    about me

    View full-size slide

  22. what is open source?

    View full-size slide

  23. 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

    View full-size slide

  24. 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

    View full-size slide

  25. how does open source work?
    code

    (version control)

    discussion

    (code review)

    View full-size slide

  26. case study
    open-source software for tax returns

    View full-size slide

  27. OpenTaxSolver
    20 years old!
    • written in C

    • subversion source control

    • hosted on sourceforge

    • GPLv2, contribute patches
    via email

    • mailing list + facebook
    group for discussion

    View full-size slide

  28. 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

    View full-size slide

  29. • 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

    View full-size slide

  30. let’s contribute!

    View full-size slide

  31. • 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

    View full-size slide

  32. start small
    let’s contribute

    View full-size slide

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

    View full-size slide

  34. let’s contribute
    setup development environment

    View full-size slide

  35. let’s contribute
    setup development environment

    View full-size slide

  36. document for the future
    let’s contribute

    View full-size slide

  37. document for the future
    let’s contribute

    View full-size slide

  38. copy existing patterns and style
    let’s contribute

    View full-size slide

  39. code review and scope creeeeeeeep
    let’s contribute

    View full-size slide

  40. code review and scope creeeeeeeep
    let’s contribute

    View full-size slide

  41. code review and scope creeeeeeeep
    let’s contribute

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  47. tips for a career in software development
    participate in
    open-source!
    build your skills and your portfolio
    scratch your own itch

    View full-size slide

  48. newborn project
    taxes.cue

    View full-size slide

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

    View full-size slide