npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

find-testers

v0.0.6

Published

Finds testers in given country with matching devices

Readme

Tester Matching

Installation and run

Requires nodejs, grab this repository, then

npm install // installs dependencies
npm test // runs unit tests
npm run-script complexity // shows complexity metrics

Background

A major feature of uTest is our tester-matching algorithm. We are able to drilldown from a community of over 80k testers with multiple devices, to 10-20 testers that best meets a customer needs. As you can image, this is a complicated algorithm that takes multiple dimensions into account.

Your goal will be to write a simpler matching algorithm that takes two matching criteria (country and device) and presents a sorted list of results. The sort order is based on what the system is suggesting a user should select (more details below).

Data Set Provided

  • testers.csv: CSV list of testers. Each row corresponds to a tester.
  • devices.csv: CSV list of all available devices. Each row corresponds to a mobile device. This is all the possible devices a tester can have.
  • tester_device.csv: CSV list of tester to device. These are the devices a tester has. Each row corresponds to a tester and a device.
  • bugs.csv: CSV list of all the bugs filed by a tester. Each row corresponds to a bug filed by a tester and contains a tester and the device the bug was reported on.

Assignment

Write an application that will match testers based on a user search criteria. The search results should be ranked in order of experience. Experience is measured by the amount of bugs a tester filed for a given device. You can use any third party libraries, but be prepared to discuss why you decided to use it.

Search Criteria

  • Country: values should be collected from "tester.csv" and should also have an option for "ALL". User can select one or more countries. Multiple selections are treated as "OR".
  • Device: values should be collected from "devices.csv" and should also have an option for "ALL". User can select one or more devices. Multiple selections are treated as "OR".

Walk Through Example 1

Search Criteria: Country="ALL" and Device="iPhone 4"
Matches: 2 testers (User1 and User2).
User1 filed 4 bugs for iPhone 4.
    - 4 bugs filed for devices in search
User2 filed 10 bugs for iPhone 4.
    - 10 bugs filed for devices in search
Results: User2, User1

Walk Through Example 2

Search Criteria: Country="ALL" and Device="iPhone 4" or "iPhone 5"
Matches: 2 testers (User1 and User2).
    User1 filed 4 bugs for iPhone 4 and 20 bugs for iPhone 5.
        - 24 bugs filed for devices in search
User2 filed 10 bugs for iPhone 4.
    - 10 bugs filed for devices in search
Results: User1, User2

Walk Through Example 3

Search Criteria: Country="ALL" and Device="iPhone 6"
Matches: 2 testers (User3 and User4).
    User3 filed 4 bugs for iPhone 6
        - 4 bugs filed for devices in search
User4 filed 0 bugs
    - 0 bugs filed for devices in search
Results: User3, User4

UI Output

How you output the results are up to you, there are no design requirements.

Submission

Compress entire source code tree, include third-party jars and instructions how to run or access the running example.

Presentation

Brad will get in contact with you on scheduling time for you to present and walk through your solution. During the presentation, there will be a couple engineers that will ask various questions about the code.

Questions

If you have questions or problems, feel free to email us to ask. We’re happy to provide input on whatever you like. For questions about the assignment, make sure to include these people in your email: