Skip to content

Instantly share code, notes, and snippets.

@paul-hammant
Last active March 27, 2019 16:51
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paul-hammant/3375fec8e204f0c7567d4daea1fe48ef to your computer and use it in GitHub Desktop.
Save paul-hammant/3375fec8e204f0c7567d4daea1fe48ef to your computer and use it in GitHub Desktop.
Linkedin alternative on Github?

Is anyone interested in an alternative to LinkedIn based on GitHub* (likely to mean a subset to just tech savvy users initially).

Decentralized data-centric GitHub repos

Your GitHub repo is a about you and your claims:

eg. "I worked at FoobarLLC as a Director of Engineering between CCYYMMDD1 and CCYYMMDD2 and did blah blah blah." 

files: claims/roles/foobarllc/CCYYMMDD1.md & claims/roles/all.json

I remember FredF was with me at FoobarLLC and initiate a workflow for him to agree with my claim. FredF (if he agrees) in his GH repo links to my claim (citing the particular SHA1 hash) and notes that he agrees. I then update my repo to reflect that FredF agreed with that claim (linking to his agreement including SHA1 hash).

Your repo may also have your claims encrypted (partially or wholly). You note FredF's public key, and write a file in your repo containing an encrypted decode key to that claim for each linked person that you'd wish to have view rights. Every time you revise your claim about a job/role/affiliation/qualification, the claim will have a new SHA1 hash (obviously) and requires "I agree" actions from all those that could. The system can work out that "FredF agreed with prior versions of this claim" and allows navigation to those.

The UI would manifest itself offline. Possibly also in a Chrome/Firefox webExtension. Explicitly this is decentralized - no server/site beyond a static how-to one. GitHub doesn't need to rollout new features or UI, it just needs to hold the data for self in a structured way.

More on the UI / app

That offline/extension UI might have to do a bunch of IO when you're using it to other view people. First level connections: you'll be able to see all their claims about themselves and who has agreed with that and when. Second level connections - you'll not be able to see their claims about themselves if they're encrypted (you will be able to see unencrypted portions).

Seeking a connection to a another person means a structured pull-requests being filed against their repo. I can't work out if code-review or issues play a part in this. Indeed seeking to get someone to agree with a claim, can workflow as a pull-request to their repo. Their UI offers that as as something they can efficiently agree with or decline. The regulr GitHub Notification system plays a part too, or course.

Importantly, these LinkedIn deficiencies can be overcome:

  1. Employer/client differences (nesting) can be modelled - (ThoughtWorks placed me at Google for 20mo, and dozens of others).
  2. How you are connected to someone can be modelled for posterity - LinkedIn asks how you know someone, but then never displays that to others.
  3. Connection spammers can be noted too (and declined invitations to connect if you so desire)

Summary?

A system of hundeds of thousands of GH repos that use URLs and SHA1s to interlink effectively making this a massive Merkle tree leveraging directed graph (with no single root). Some would say blockchain, but I'm thinking it's just Merkle tree-like Git itself. Also, a tech that you would Homebrew install (substitute your package manager) to efficiently navigate in a read/write capability. You'd be able to do everything without that tool/UI of course (in emacs, say), if you understood the directory structure and and JSON/YAML/TOML formats and were adept with sha1sum.

Yeah, I started it

https://github.com/paul-hammant/me <-- about 15 mins work, with maybe 150 more to do by me about me, or consuming pull requests by people I know willing to write about me that have nothing better to do with their time.

After this?

  1. (*) Bitbucket and other platforms that support Git and have a pull requests capability (additional coding needed)
  2. Allow the same system to facilitate solicitations for work. I.e. replace UpWork (escrow payment portal not solved).
@anishkny
Copy link

Great idea! 👍

@quad
Copy link

quad commented May 25, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment