Description
About Ably
Ably is a global realtime data delivery platform that powers low-latency communication between internet-enabled devices.  We solve the hardest parts of delivering the service reliably at scale so developers don’t have to.
At its core, we provide a transport for developers to deliver realtime applications, notifications, data syndication, and synchronization at Internet-scale. Our product is offered as a multi-tenanted, globally distributed, elastic, and completely redundant platform-as-a-service.
Ably helps power next generation digital experiences. Ones which are live rather than static, where data is in motion rather than at rest. Things like live chat, realtime location tracking, live document collaboration, gaming and elearning. One of our customers even uses Ably for their air traffic control system for drones. Working at Ably means you are working on a cutting-edge product that is helping build the future.
Job description
Ably has developed and continues to maintain both Realtime (sockets) and REST based client libraries for its customers. The client libraries are all open source (under the Apache 2 license), and follow a strict and necessarily detailed specification that ensures all client libraries expose the same APIs (within reason and as idiomatic as possible for each platform) and behave the same.  The specification is continuously evolving, however our current stable release is 1.0 which was released earlier this year.  The complete v1.0 specification can be seen at https://www.ably.io/documentation/client-lib-development-guide/features/.
Our .NET client library is unfortunately behind the other client libraries and supports the previous stable version 0.8 of our specification.  Unlike a number of our other client libraries, the .NET client library is not maintained by the full time team at Ably.  The current maintainer is unable to commit the time we require to upgrade this client library to version 1.0 of our specification, so we are looking to find a new primary maintainer for this portable .NET library who will upgrade the library and ideally also help maintain it moving forwards.  We expect a solid burst of work is required at the outset to get the lib up to v1.0 spec, and then there will likely be ongoing maintenance and minor improvements moving forwards where a part-time  commitment is required.
Benefits
- Contribute to an open source project where you will get the credit and recognition in your Github profile
- Flexibility to work on the project when you have time, however we do need a minimum contribution per month to ensure we make sufficient progress
- Collaborate with a deeply technical team who truly enjoy coding without any bullshit
- Work on a necessarily complex client library that addresses complex issues such as failure handling, network rerouting, quality of service, sockets etc.
- Build something that other developers will depend on
Requirements
- Experience: Solid commercial experience using C#, Xamarin and preferably exposure to sockets and/or low-level networking. Â Our library is intended to be portable between UWP, Mono, Xamarin (iOS and Android) so experience with all those platforms is a strong benefit.
- Pragmatic: A problem solver excited by the prospect of working autonomously solving problems.
- Testing: Experience using testing frameworks and adoption of test driven development, where applicable.
- Communication: We use tools such as Slack throughout the day to communicate, however we believe in voice conversations to discuss and solve problems. You must be proficient in spoken and written English, be eager to collaborate with the engineering team and constructively welcome code reviews.
Please apply for this role on our Jobs Website
**** NO AGENCIES PLEASE ****
P.S. We are also recruiting a full time client library / SDK developer and maintainer to the team.  If you are looking for a full time role, take a look at the client library / SDK developer job role.