Proof of Competence Proposal Draft

Summary

This document proposes an open-source Proof of Competence (PoC) framework and implementation for Developer DAO to recognize a DeveloperDAO member’s demonstrable skills and knowledge through the use of onchain and community approved methods. Skills will be identified and scored based on the types of tasks completed through DeveloperDAO Journeys.

A successful implementation of the framework will allow each DeveloperDAO member the ability to obtain an objective and verifiable assessment for each of their skills that is identified by the framework and a completed DeveloperDAO Journey. The assessment will be an easy to understand and universally applied measure for whichever skill is being considered, enabling an objective appraisal of competency.

Motivation

This project provides value in several fronts:

  1. Onboarding: Improve DeveloperDAO’s internal onboarding process for new participants by providing a simple to follow journey that will ramp them up to a desired skill level. We can progressively increase the difficulty of the journeys so participants can level up their skills.
  2. Job Opportunities: A reliable and recognized competency rating that can be used by companies to search for and find talent would benefit DeveloperDAO members. Members would also benefit from the ability to obtain an objective assessment of their own skills.

    Synergism exists with the DeveloperDAO job board where we can suggest potential candidates that meet certain skill sets to job posters; potentially earning the DeveloperDAO a fee for each successful candidate that is placed. A fee that can fund the DAO treasury.
  3. Member Engagement: Onboarding is always a challenge. Finding ways to make the process easier and less intimidating is important. Using journeys to gamify the experience could help promote more member engagement.

Scope of Work

Core Framework

The components of this framework and implementation will consist of:

  1. Skill Rating Methodology:  A predefined and objective measurement process to assign specific skills a rating. The skill rating methodology will begin with identifying skills and skill categories. Once skills and categories can be identified, a process to assess those skills and assign a competency level will be used.
  2. DeveloperDAO Journey: A task or project that meets specific criteria to qualify for a set of skills. Anyone that successfully completes a journey will become eligible to obtain a skill rating based on that journey. Journeys can be developed internally by DeveloperDAO teams or adopted from external sources (like buildspace).
  3. User Profile: Integration with Proof of Skill project to provide a comprehensive online presence that contains the relevant information for any DeveloperDAO member.
  4. Industry Feedback/Collaboration Tool: A process for allowing industry to provide continuous feedback on the skill rating methodology to ensure its value and relevance. We also need a process to capture the current needs of industry in terms of identifiable skills.
  5. Integration with RFC: User Stories for DAO Job Board
  6. Integration with RFC: IRL ‘MMORPG’ achievements with NFTs 

DeveloperDAO Journeys

A DeveloperDAO Journey is a task or project that has been defined or approved by DeveloperDAO and meets specific criteria to qualify for a set of skills. Anyone that successfully completes a journey will become eligible to obtain a skill rating based on that journey. Journeys can be developed internally by DeveloperDAO teams or adopted from external sources.

A process would need to be developed to onboard a Journey before it can be used to obtain a skill rating. The process should engage delegated DD members with recognized expertise in each specific skill to assess the level for each skill that is identified for a journey.

There would need to be consistency in the content of a journey to ensure an accurate assessment if it changes over time. Material changes to the content should be communicated and submitted for reassessment to ensure the skills identified have not changed, and if so, updated.

Eventually, a catalog of journeys could be made available for members to search for and complete and develop skills that interest them.

Skill Rating Methodology

There has been healthy discussion across the discord, voice chats and this document covering the ways in which we could potentially measure competence. We are exploring the concept of a hybrid between a skill rating that comprises a score as well as a level. The idea being that a score invites more engagement for the member to develop their skills while the level provides an easy way to identify where a member lies within a spectrum of competency.

The skill ratings will be applied through a combination of onchain verifiers and DD approved methods. Off chain methods will contain a reward mechanism to help promote participation.

Potential Verification Methods

On Chain Verification

DeveloperDAO Approved Off Chain Methods

NFTs granted upon completion

One-on-One Coding Interviews

Submitting a user’s known address to confirm certain activities onchain

GitHub contributions?

Skill Categories

Identify categories and subcategories to encompass skills. Skill category and subcategory identifiers would offer benefits to users (as a form of recognition for their development in a skill), to the community (as a way for members to understand each others’ capabilities), and to potential employers (as a way for them to easily search for specific categories or subcategories of skills that interest them).

Some skills will probably overlap across multiple categories so it might be worth considering how to factor that into a skill rating. Each category can expand into more specific subcategories. Skill ratings could be aggregated by top level category to create a heat map. This would be an interesting view on a member’s profile.

Skill Level Categories Matrix

Languages

  • Solidity
  • Rust
  • JavaScript
  • TypeScript

Protocols

  • ipfs
  • arweave

Libraries

  • ethers.js
  • web3.js

Projects

Marketing

Community

  • Discord Management
  • Discord Bots
  • Discord Mod

Governance

  • Membership in a DAO
  • Delegate
  • Proposer

Blockchains

  • Ethereum
  • Polygon
  • Solana

Tools

  • The Graph
  • Hardhat
  • Truffle suite

Skill Assessments

The process of assessing journeys to identify the underlying skills should be a collaborative effort between a delegated Developer DAO team and participating companies or projects. It would be ideal for any project or company that offers a completion based NFT[a] (for example buildspace) to undergo an assessment to identify the minimum skills required to complete and earn an NFT. Those skills could then be mapped to their respective category and subcategories.

By identifying the minimum skills necessary to complete a journey, we could avoid running into qualitative disagreements. Keep it simple and agree on minimum skills necessary. The additional benefit of focusing on minimum skill necessary is that we can stay focused on consistency. Any form of POC rating will only have value if it can be relied upon.

Proof of Competence (PoC) Rating

A POC rating[b] based on minimum skills necessary could allow for an alternative way to evaluating a person’s capabilities beyond x years experience. Instead of time, the PoC rating could be a sum of each individual skill across every journey completed. As a person completes more journeys, their PoC rating increases - both their overall rating and the individual skill rating.

User Profile

This project can have synergism with the DeveloperDAO job board where the User Profile in the Job Board MVP can show their competence in the tagged skills. With on-chain verifiable skill recruiters can expedite their hiring process, because they can easily determine which candidate has the skill they want and at the level they want.

Moreover, we can suggest potential candidates that meet the required skill set and experience to the recruiters instead of waiting on applicants. This could open the avenue for funding our treasury with a percentage of each placement.

Industry Feedback/Collaboration Tool

We need a process for allowing industry to provide continuous feedback on the skill rating methodology to ensure its value and relevance. We also need a process to capture the current needs of industry in terms of identifiable skills. This feedback/collaboration will allow us to validate the PoC concept and continue to improve on it.

Reward Mechanisms

We are considering reward mechanisms for both participants that complete journeys as well as to incentivize members that conduct interviews or other approved off-chain methods to verify skills. A reward mechanism for participants is something that will be considered for a future iteration.

There will be enough incentive at this time for members to complete journeys and receive a skill rating that demonstrates their competency for various skills. Designing a reward mechanism to incentivize and promote the use of off-chain skill rating methodologies will take priority. It will be an important way to bootstrap participation.

Success metrics and KPIs

How will the community measure the project’s success?

We can measure the success by the number of people that utilize the framework for onboarding.

Job placements

Demand for project to be vetted by DeveloperDAO


Discussion Documentation and Administration

Details of Proposers

Give a brief about who you/your team are and mention your discord handles.

Voting

Relatively smaller/ non-complicated proposals can be voted in the Discord Polls for quick execution. Bigger and significant proposals will move to the Voting phase. 

Action Items

  1. @Dhaiwat : Creating the repo on developer-dao Dhaiwat set up the core components per developerdao.com initialize Ceramic stack to allow for input/output
  1. https://github.com/Developer-DAO/proof-of-skill
  1. @Erik_Knobl : will start with some raw sketches of the journey (path 2) in a figma file

Parking Lot

Please enter any future ideas that have not been discussed in the proposal here so we can keep a tab on them.


Resources

Related Internal Projects

Related External Projects

Discourse Discussions


Kick-Off Meeting Minutes

Wed Nov 24 from 11:30 AM - 12:30 PM EST

Attendees

  • crypblizz#2638
  • cwong.eth
  • josevelez.eth
  • gjsyme | #496
  • Keishi@hashmimic | #2844
  • macabe | #5890
  • mmoderwell | #7388
  • nathanng.eth
  • Rocinante#6004
  • shawnmitchell.eth#8647
  • i1r0#4444
  • Diogomartf#0170
  • Alex245#0896
  • shawnmitchell.eth#8647
  • with-heart.eth
  • Hone1er.eth#3917
  • Glasbaby#5516

Agenda

Introduction

  • Wesley’s PoC and seeing how can expand this to be a part of a DDao Project.(Read the Summary section at the top)
  • Have a score (Proof of Competence)
  • Could entail Onboarding + Job Board Synergy + Core Contributors
  • CContributor might be something to look into later.

Scope of Work

Roadmap

Notes

How will core contributors be measured?

  • Potentially Co-ordinape
  • How can we capture the Github contributions? Could use SourceCred

How can we make it modular

  • Want it so other DAOs can start to build upon it.

What about non-development skills

  • Layer3?
  • Rabbithole.gg
  • This is a direction we may need to think of.
  • We should be able to measure it tangibly first
  • Verify tasks with Chainlink (mirror etc)
  • The main difference would be looking at different oracles

Skills Category

  • Getting away from the years of experience part
  • Visual examples built by the user. An experience is meant to represent the challenges/efforts they went through to finish project X
  • A visual portfolio
  • Focusing on the minimum skill set necessary to be assessed
  • How do we focus on that?
  • Number of projects you worked on in total.
  • Everyone has a different approach to doing a project.
  • Giving people the tool to audit and quantify their score
  • How does the system audit the quality of the work

The whole system

  • Utilize a layer that aggregates.
  • Adding a quiz at the end or a way of verification
  • Normal process: you want to become a engineer, you need to pass a test

Rating

  • If we want companies to rely on our rating, we need some sort of quality control

Contributions / Verticals

  • Core Development
  • Curriculum / DDAO journey
  • Reward mechanisms
  • If people go through the content
  • Tag it appropriately

Score

  • How do we quantify that you can do X as a Solidity engineer
  • Write tests
  • You must do A, B and C
  • Want to prove that you can do this.

How do the rewards work

  • Check out the Github Repo above.

Hiring

  • How can we tie in the interview process to this?
  • Does a new form of applicant tracking systems (ATS) become a conversation?
  • How can we have the domain experts (React, Solidity Dev, Solana Dev)
  • If Nader says hire person X, there is social authority and assessment that people value
  • So creating this system / connection would be value.
  • The ultimate goal + maintaining quality control for the applicants.

Domain experts

  • How do we measure what are the key metrics of a great Solidity or Solana Dev.
  • Reaching out to other companies on what they want and what they assess developers on
  • Rankings

Action Items

  • Ceramic ID work
  • Low hanging fruit: Adding Developer DAO journey to the PoC Github

Recording

RFC: Proof of Competence

What:

This RFC is to propose an open-source Proof of Competence framework and implementation to recognize a DeveloperDAO member’s demonstrable skills and knowledge through the use of onchain and community approved methods. A successful implementation of the framework would allow each DeveloperDAO member the ability to obtain an objective and verifiable assessment for each of their skills that is identified by the framework.

The components of this framework and implementation will consist of:

  1. Skill Rating Methodology:  A predefined and objective measurement process to assign specific skills a rating. The skill rating methodology will begin with identifying skills and skill categories. Once skills and categories can be identified, a process to assess those skills and assign a competency level will be used.
  2. Journey: A task or project that meets specific criteria to qualify for a set of skills. Anyone that successfully completes a journey will become eligible to obtain a skill rating based on that journey.
  3. User Profile: Integration with Proof of Skill project to provide a comprehensive online presence that contains the relevant information for any DeveloperDAO member.
  4. Industry Feedback/Collaboration Tool: A process for allowing industry to provide continuous feedback on the skill rating methodology to ensure its value and relevance. We also need a process to capture the current needs of industry in terms of identifiable skills.
  5. Integration with RFC: User Stories for DAO Job Board 
  6. Integration with RFC: IRL ‘MMORPG’ achievements with NFTs 

Why:

  1. Onboarding: We can improve DeveloperDAO’s internal onboarding process for new participants by providing a simple interactive journey that will ramp them up to a desired skill level. We would work closely with #onboarding-ideas and #dao-wiki to ensure we are all on the same page. This will be extremely useful with the incoming wave of new members once we release our governance token to the public.

  1. Job Board: This project can have synergism with the DeveloperDAO job board where the User Profile in the Job Board MVP can show their competence in the tagged skills. With on-chain verifiable skill recruiters can expedite their hiring process, because they can easily determine which candidate has the skill they want and at the level they want. Moreover, we can suggest potential candidates that meet the required skill set and experience to the recruiters instead of waiting on applicants. This could open the avenue for funding our treasury with a percentage of each placement.

  1. Subject Matter Experts: In a community of over 4k individuals it’s hard to determine who are the true subject matter experts that have proven track record of experience. Identifying these individuals early on allows us to leverage their years of experience in terms of development, but also mentoring capabilities. They could help curate developer journeys and evaluate developers after completing journeys to ensure a high degree of quality control.

How:

Developing a framework and implementation for Proof of Competence will require a multipronged approach. There are existing projects and RFCs already underway that relate directly to Proof of Competence that could be eventually integrated.

To keep this proposal focused, it might be best to identify some primary tracks to branch off of and begin building teams to champion those tracks.

The primary tracks could include:

  • Skill Rating Methodology
  • Journey Development
  • Outreach to companies and projects
  • Development of a PoC application/website
  • Coordination with other ongoing but related projects within the DAO

Some work has already been done that we can build off of. See this current Proof of Competence framework. There has also been some very high level discussion in the #proof-of-competence channel and a thread on skill categories in the #Skill Categories and Levels thread.

By creating branches for each of the main tracks, we can keep the conversations and efforts focused. Regular working sessions with all of the branch contributors can keep everything aligned and moving forward.

[c]

[a]Will we need to enforce some mechanism to tie them to a single identity (the initial user being granted the NFT), or will transfers be allowed?

Also, given how quickly technologies change, should these expire, or are they permanently valid?

[b]Are these an aggregated number based on the completion of journeys, or are these determined by the NFT achievements a user receives? (or something that integrates both?)

[c]I've removed this for now to try and keep the document focused. Perhaps this can be added to the relevant track?

"In order to properly understand how to improve the current Proof of Competence framework, we must first understand what it currently consists of. The current framework incorporates journeys, on-chain verifiers, and a user interface. Journeys define tasks that are important to new projects, protocols, or DAOs, thus helping people familiarize themselves with it in an interactive fashion. Tasks are simple activities that can be verified on-chain, for example, "Create a Web3 wallet". Each task has a corresponding name, description, points, verifier, and an optional chainId.

Putting a set of tasks together creates a journey for participants to follow along interactively as they learn about a new project, protocol, or DAO. Journeys have the potential to gamify learning with the points one accumulates as a result of completing the tasks. But it’s important to note that this will be used as a reward mechanism and not as a measure of one’s competence as it can become rather complex to gauge an individual’s competence with just a score. Finally, we have a UI that allows individuals to interact with the Proof of Competence logic written in Typescript with a React and Next.js infrastructure.

"