A global professional services firm had a code duplication problem at scale. Teams across continents were solving the same challenges independently, with no way to find what anyone else had already built. I designed InnerSource to close the discovery gap — and the trust gap behind it.
The firm's engineering teams were building the same code packages repeatedly across different geographies — without knowing what already existed. There was no central place to discover, evaluate, or reuse what colleagues had built.
Beyond discovery, the problem ran deeper: even when developers found an existing package, they had no way to know if it was compatible with the internal platform, who owned it, or whether it was still being maintained.
The goal of InnerSource was to give developers a single platform to find, understand, and reuse internal code packages — with enough context to trust what they were picking up.
Before touching any interface, I needed to understand the real relationship between developers and code packages — from the inside.
I conducted interviews with developers across different teams to understand three things: how they actually used code packages day-to-day, what information they considered essential when evaluating a package, and which packages kept appearing across teams as repeated builds. We also mapped compatibility — which packages could realistically integrate with the internal platform and which couldn't.
Moderated sessions with developers across different teams, seniority levels, and roles — consumers and package owners alike.
Research spanned geographies to ensure findings reflected how distributed teams actually work, not just one regional context.
Usage patterns, compatibility blockers, maintenance visibility, and what information developers actually need at the list level.
Research made clear that each package carried a lot of information — more than a standard card could hold. Before designing, I needed to understand what patterns already existed for this level of complexity.
Could a card component realistically surface all the information developers needed — ownership, compatibility, maintenance status, usage — without becoming overwhelming? I analyzed platforms that handled similarly dense content to identify what patterns worked and under what conditions.
With benchmark findings in hand, I moved into first explorations — putting designs in front of developers early to collect real feedback.
Feedback rounds focused on three areas: how developers navigated the platform, what information they needed visible on list-view cards, and whether the overall content felt relevant to their actual workflow. The goal was to validate direction before investing in high-fidelity work.
The most complex design challenge was the package detail page — each package had a different amount of documentation, and the layout had to work for all of them.
Content was variable by nature: some packages had extensive documentation, changelogs, and usage examples; others had almost nothing. We couldn't design for a fixed content model — the layout had to be flexible enough to handle every scenario without breaking.
The finished product — a single place for developers across the firm to find, evaluate, and reuse internal code packages across teams and geographies.
InnerSource's success was immediate and measurable.
Over 150 developers on the platform within six months — no mandate, no enforcement. It grew because it actually solved their problem.
Teams stopped rebuilding what already existed. Reusing proven packages cut development time by 2–3×.
Developers went from quietly solving problems alone to openly posting solutions. That shift didn't come from a policy — it came from making sharing easier than not sharing.