About the role
At SamKnows, we're working hard to improve internet access performance worldwide. We firmly believe that you need to be able to measure something before you can improve it, and that's why we've been focused on global internet performance measurements for ten years now. We're the leaders in our field, and we're looking for people that share our enthusiasm for improving internet access and want to help us.
We are looking for a Senior Backend Developer to join our growing team. You'll be an enthusiastic problem solver, with a keenness to get your hands dirty and to share your ideas. You'll have experience in creating distributed systems that can scale to handle very large traffic volumes, and will enjoy seeing them being put to good use.
We operate cross-functional product teams, and ideally you'd have experience of working in an agile environment. The product teams operate in short feature-focused sprints. They incorporate frontend developers, mobile developers, product designers, infrastructure engineers and measurement developers.
At SamKnows, our backend engineers primarily work on creating backend services and APIs for our client-facing frontends (web apps, mobile apps) to interact with. We pride ourselves on developing solid projects that incorporate good practices, such as comprehensive unit and functional test suites, and integrate common industry principles. The majority of our backend code is written in modern PHP (7.1+), but we also have a plethora of projects in Java, Go and Node. We are firm advocates of using the appropriate tools for the job.
The majority of our backend services and APIs interact with our vast measurement dataset in one way or another. Our software is installed on more than 30 million devices globally, and this figure is growing daily. The code you write will directly interface with these devices, and will also be used by our client-base that includes the largest Internet Service Providers and governments worldwide.
We use a blend of database technologies to power our platform, including Presto (on top of Hadoop) for our measurement data storage and analytics, and MySQL for our globally distributed metadata store. Familiarity with big data technologies would be a great asset; however we're happy for you to learn and gain experience with these technologies at the company.
You should apply if:
- You think the work we're doing sounds interesting!
- You share our belief that fast, reliable internet access is rapidly becoming a human right
- You enjoy building products from the ground up and seeing them used by people worldwide
- You have experience in designing and building APIs that are scalable and well-tested
- You're familiar with developing web-facing APIs using PHP, Java, Python or Node
- You're comfortable with exploring issues and prototyping solutions for yourself
Technologies we rely on for backend development:
- PHP 7 with Symfony for most backend APIs
- Java for some mission-critical high-volume APIs
- Go, Node
- Redis for caching
- Websockets for realtime communication with devices and clients
- Globally distributed MySQL 5.7 for relational metadata storage
- Presto, Hive and Hadoop for our measurement data store
- Docker for powering a reproducible development environment
- The usual array of cloud services, including Github, JIRA, Sentry and cloud hosting platforms.