About the role
SamKnows is the global leader in internet performance measurement. We carry out end-to-end performance measurements across fixed-line and mobile connections all over the world. We have more than 45 million devices globally that have our measurement software installed, and carry out tens of millions of tests every single day. Our customers include many of the world’s largest ISPs and most influential telecoms regulators, such as the FCC and Ofcom.
One of our product lines is a set of SDKs for different platforms. These SDKs provide all of our measurement functionality - e.g. for speed testing, YouTube testing, and much more - in a single well-documented, reusable library. Our Android SDK powers our own Android apps and is also integrated into some third-party apps by our customers. In total, it is deployed on more than one million handsets worldwide already.
We are currently looking for a talented Android software engineer to help us further develop this Android SDK.
This role will involve working as part of our Tests & SDKs team. You will be working directly with the developers who write the measurement code (typically in C and C++), and exposing that testing functionality via Kotlin and Java APIs. You will also ensure that we are collecting as much environmental information as possible alongside the measurement results in order for us to make sense of the results (e.g. cellular signal strength, approximate coordinates of the test), without compromising user privacy. Most crucially, you will place an emphasis on ensuring that we are exposing our functionality using clear, logical APIs, with excellent documentation and usage examples.
You should have multiple years experience of working with Kotlin and Java in a professional context. You will have intimate familiarity with supporting legacy versions of Android (we go back to Android 5.0 currently). Ideally, you will have already been responsible for maintaining SDKs or APIs that are used by third-parties. Some experience of writing C is highly beneficial but not essential. A good understanding of networking concepts is also beneficial.
- Professional experience writing Kotlin and Java for Android apps
- Professional experience supporting backwards compatibility of Android apps
- Experience in writing and debugging C is highly beneficial
- Experience in producing and maintaining SDKs is highly beneficial
- A good grounding in networking concepts
- Professional experience using Git and Github
- Good written English, for documenting our APIs
- Automated testing (functional, integration and unit testing)