Craig A Holliday

Network Throughput Testing SDK

Only general information is provided for this project because this project is under an NDA

TL:DR

Challenge: The customer sought two parallel SDKs for both Android and Apple platforms to assess network throughput during media playback. The results of this throughput assessment would then inform subsequent infrastructure and business decisions.

Solution: As the Lead Developer:

  • Collaborated intensively with the customer to fine-tune requirements.
  • Orchestrated the entire SDK blueprint, ensuring parallel functionality across Android and Apple platforms.
  • Oversaw and executed a majority of the project’s development.
  • Provided mentorship to a junior developer, ensuring a smooth project progression.

Tech Stack:

  • Swift (Apple), XCTest
  • Kotlin (Android), JUnit

Key SDK Attributes:

  • Seamless integration capacity with ongoing media playback.
  • Automated test results are dispatched to dedicated servers.
  • Comprehensive compatibility across all Apple and Android targets.
  • Exceptional test coverage (>80%).
  • In-depth documentation, spanning from code specifics to overarching project architecture.

Project Goals

For this project, the customer wanted an SDK that would run parallel to media playback to measure the available throughput of the network. They would then use the data from these measurements to drive other infrastructure and business decisions.

The customer required two SDKs, one for Android and one for Apple, to run the same throughput tests.

The requirements for the SDKs were:

  • Request test run information from a server that built the test input
  • Run the tests, which consisted of making network requests for resources from different locations and measuring HTTP information (like throughput),
  • Output the results for the throughput tests to a server that could ingest the data

Functions

  • Lead Developer on a team of 2
    • Worked closely with the customer to determine requirements
    • Architected the entire SDK
    • Primary developer for the project
    • Mentored junior developer on the project

Features

For this project, we used:

  • Swift and XCTest
  • Kotlin and JUnit

Both SDKs:

  • A simple to-integrate SDK that can run the throughput testing in parallel to media playback
  • Send test results to an ingest server
  • Support all Apple and Android targets
  • 80%+ test coverage
  • Fully documentation, including code documentation and project architecture documentation

Project Outcomes

These SDKs were delivered and accomplished all of the customer’s requirements.

The customer was able to integrate the SDKs into their applications for testing.

With all the documentation and tests, the customer’s developers could continue the project once our contract was completed.

Personal Takeaways

This project had an interesting set of problems to solve. Most of my work in the last few years has been dominated by network performance and testing.

Working with the customer on a project with precise requirements is always a plus.

This was one of the few projects in which we had the time and inclination to create excellent documentation and a great coverage of automated tests.

This was also my first complete project with Kotlin, which made this project a good learning experience.

Overall, this project had everything you would want for a small contracted project.