IP Library Granted Patent US 11,640,583
Granted Patent B2
US 11,640,583 · App. 15/853,500 · Granted May 2, 2023

Generation of user profile from source code

Inventors: Sergey Surkov (Foster City, CA); Ryan Osilla (Mountain View, CA); Liubov Yaronskaya (Moscow, RU)
Assignee: Interviewstreet Incorporation
G06Q10/1053G06F8/77G06F21/6245G06F21/6254G06N20/00G06T11/20G06T11/206H04L63/105H04L67/306G06F8/71G06T2200/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,640,583
App. No.
15/853,500
Granted
May 2, 2023
Kind
B2
Abstract

A user profile may be generating from a source accordingly to embodiments of the present disclosure. In some embodiments, a process (e.g., implemented by a client) includes obtaining a set of commits associated with a user from a source code version control system, extracting at least one signal from the set of commits, obfuscating the signal(s), and outputting the obfuscated signal(s). In some embodiments, a process (e.g., implemented by a server) includes receiving a signal associated with source code, where the signal is extracted from a commit obtained via a source code version control system. The process further includes aggregating the signal with at least one other signal, generating a user profile based at least on part on the aggregated signals, and rendering the user profile on a graphical user interface.

Claims (45)

1. A method comprising:

obtaining, by a processor, a set of commits associated with a user from a source code version control system;

extracting, by the processor, at least one signal from the set of commits;

determining the user's degree of experience in a technological field based at least in part on an assigned number of points of experience in the technological field, wherein the determining of the degree of experience comprises:

determining whether a library associated with a commit in the set of commits is related to the technological field, wherein the technological field comprises one or more of the following: computer vision, neural networks, and/or web applications, wherein the commit is input into a library classifier, which outputs the technological field, and wherein the library classifier is trained using a machine learning technique; and

in response to a determination that the library associated with the commit is related to the technological field, determining that the user has experience in the technological field;

obfuscating, by the processor, the at least one signal to disassociate the at least one signal from the commit in the set of commits;

determining, by the processor, that the commit has not been previously processed based at least in part on a commit identifier (ID) associated with the commit;

in response to the determination that the commit has not been previously processed, outputting, by the processor, the at least one obfuscated signal; and

rendering, by the processor, a user profile for the user on a graphical user interface, wherein the user profile includes a chart showing at least one language and an associated experience and level of contribution to at least one project in the at least one language based at least in part on the user's degree of experience, wherein the level of contribution of the user is represented by a size of a shaded region in the chart and the level of contribution of the user relative to other contributors is represented by a degree of opaqueness in the shaded region.

2. The method of claim 1 , wherein the obfuscation of the at least one signal includes hashing the commit identifier (ID) of the commit associated with the at least one signal.

3. The method of claim 1 , wherein the obfuscation of the at least one signal includes encrypting the at least one signal.

4. The method of claim 1 , wherein the extracted at least one signal includes a feature of the set of commits.

5. The method of claim 1 , further comprising determining, by the processor, an ability based at least in part on a library referenced by the at least one signal.

6. The method of claim 1 , further comprising training, by the processor, a library classifier to identify knowledge of a technology area based at least in part on a library referenced by the at least one signal.

7. The method of claim 1 , further comprising determining, by the processor and based at least in part on the extracted at least one signal, experience with a programming language.

8. The method of claim 7 , further comprising outputting the user's degree of experience with a programming language in a user profile.

9. The method of claim 1 , wherein the determining of the degree of experience further comprises:

determining whether a particular function of a third party library associated with the commit is called, wherein the third party library is related to a corresponding technology; and

in response to a determination that the particular function of the third party library associated with the commit is called, determining that a user has experience in the corresponding technology.

10. The method of claim 1 , wherein the determining of the degree of experience further comprises:

determining whether code associated with the commit is similar to code from a public repository, wherein the code from the public repository is related to one or more of the following technologies: recurrent neural networks and/or 3D graphics; and

in response to a determination that the code associated with the commit is similar to the code from the public repository, determining that a user has experience in the one or more of the following technologies.

11. A system comprising:

a communications interface configured to

obtain a set of commits associated with a user from a source code version control system; and

extract at least one signal from the set of commits; and

a processor configured to:

determine the user's degree of experience in a technological field based at least in part on an assigned number of points of experience in the technological field, wherein the determining of the degree of experience comprises to:

determine whether a library associated with a commit in the set of commits is related to the technological field, wherein the technological field comprises one or more of the following: computer vision, neural networks, and/or web applications, wherein the commit is input into a library classifier, which outputs the technological field, and wherein the library classifier is trained using a machine learning technique; and

in response to a determination that the library associated with the commit is related to the technological field, determine that the user has experience in the technological field;

obfuscate the at least one signal to disassociate the at least one signal from the commit in the set of commits;

determine that the commit has not been previously processed based at least in part on a commit identifier (ID) associated with the commit;

in response to the determination that the commit has not been previously processed, output the at least one obfuscated signal; and

render a user profile for the user on a graphical user interface, wherein the user profile includes a chart showing at least one language and an associated experience and level of contribution to at least one project in the at least one language based at least in part on the determined degree of experience, wherein the level of contribution of the user is represented by a size of a shaded region in the chart and the level of contribution of the user relative to other contributors is represented by a degree of opaqueness in the shaded region.

12. A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

obtaining a set of commits associated with a user from a source code version control system;

extracting at least one signal from the set of commits;

determining the user's degree of experience in a technological field based at least in part on an assigned number of points of experience in the technological field, wherein the determining of the degree of experience comprises:

determining whether a library associated with a commit in the set of commits is related to the technological field, wherein the technological field comprises one or more of the following: computer vision, neural networks, and/or web applications, wherein the commit is input into a library classifier, which outputs the technological field, and wherein the library classifier is trained using a machine learning technique; and

in response to a determination that the library associated with the commit is related to the technological field, determining that the user has experience in the technological field;

obfuscating the at least one signal to disassociate the at least one signal from the commit in the set of commits;

determining that the commit has not been previously processed based at least in part on a commit identifier (ID) associated with the commit;

in response to the determination that the commit has not been previously processed, outputting the at least one obfuscated signal; and

rendering a user profile for the user on a graphical user interface, wherein the user profile includes a chart showing at least one language and an associated experience and level of contribution to at least one project in the at least one language based at least in part on the determined degree of experience, wherein the level of contribution of the user is represented by a size of a shaded region in the chart and the level of contribution of the user relative to other contributors is represented by a degree of opaqueness in the shaded region.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2022
From: SOURCERER, INC.
To: INTERVIEWSTREET INCORPORATION
Reel/Frame 059840/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2018
From: SURKOV, SERGEY; OSILLA, RYAN; YARONSKAYA, LIUBOV
To: SOURCERER, INC.
Reel/Frame 045391/0034 →
Continuity (2)
Provisional Application 62542536 · Aug 8, 2017
Related Publication 20190050814A1 · Feb 14, 2019