DevGraph
Find developers through the work that connects them.
Demonstrates how relationship-heavy data can become a usable discovery experience for talent, expertise, or connected records.
The problem
A developer's skills are only part of the picture. Projects, technologies, company context, and shared work add relationships that ordinary keyword matching can miss.
The approach
DevGraph resolves recognized terms from a search into structured filters and traverses a CognoDB graph using parameterized Cypher. React presents matching profiles and the projects and connections behind them.
- Search across skills, technologies, domains, projects, and companies
- Inspect developer profiles and connected project information
- Discover shared-project connections through graph traversal
- Show dedicated loading, empty, and error states
Follow the flow.
Select a stage to explore its role. This diagram explains the documented design; it is not live infrastructure.
React search interface
The visitor enters a natural-looking query and explores returned profiles.
The decisions behind it.
Model relationships explicitly
Shared work can be derived through project edges, without maintaining a second artificial developer-connection relationship.
Keep query structure separate from input
Entity values are bound as parameters. The application does not concatenate user text into Cypher.
Separate routes, services, and repositories
HTTP concerns, entity resolution, and database traversal have separate responsibilities so each can change independently.
What the evidence supports.
The repository provides reproducible seed data, a search test script, screenshots, and a recorded walkthrough. No search-relevance study, production usage metric, or comparative database benchmark is claimed here.
Current boundaries
- Natural-looking search resolves known entities; it is not a general language-understanding system.
- The seed dataset demonstrates graph behavior and is not evidence of a commercial developer directory.
- Public hosting may sleep or depend on an independently running graph instance.
What comes next.
- Evaluate ambiguous queries and no-match behavior against a labeled search set.
- Profile traversal costs as the graph grows before choosing indexes or query changes.