Senior Software Engineer (C++)

Full Time
London, UK
7 months ago
Who We Are

The name ThousandEyes was born from two big ideas: the power to see things not ordinarily possible and the ability to collect insights from a multitude of vantage points. As organizations rely more on cloud services and the Internet, the network has become a “black box” outside of their control. ThousandEyes gives organizations visibility and insight into the now borderless network. It arms them with an accurate understanding of how the network impacts their applications, users and customers. ThousandEyes is used by some of the world’s largest and fastest growing brands, including all of the top 5 global software companies, 5 of the top 6 US banks, and 45 of the Fortune 500.

ThousandEyes’ pioneered Cloud and Internet Intelligence and is widely known as the ‘Google Maps of the Internet.’ Today, ThousandEyes is central to the global operations of the world’s largest and fastest-growing brands. The company was acquired by Cisco in August 2020, chartered with continuing to drive leadership in empowering organizations to see, understand, and improve digital experiences everywhere.

About The Team

At ThousandEyes, our team isn't just a group of software engineers; we are innovators, creators, and builders at heart. As we embark on the exciting journey of upgrading the recently acquired SamKnows platform, we are in the process of integrating it into ThousandEyes at the same time. This is a unique opportunity to not just update, but to fundamentally transform and modernize our systems, influencing how our applications operate and interact with the world.

About The Role

Last year, ThousandEyes acquired SamKnows, and, in an era where connectivity is paramount, the acquisition of SamKnows marks a significant step forward in our mission to enhance network visibility and performance, particularly in the critical last-mile segment and within consumer homes. This integration empowers Internet Service Providers (ISPs) and consumers with insightful data to identify connectivity and application issues, whether they originate in the home or beyond.

We're looking for a senior engineer to work on our Device Agent, which is installed in more than 45 million broadband routers globally. Our agent is written in modern C++, and real world experience of C and C++ is essential. We integrate across many different hardware platforms, with different CPU architectures, but all are based on Linux. A deep knowledge of Linux is essential. The successful candidate would be helping to develop the core of our agent, and the measurements that the agent executes (e.g. speed tests, and application-specific measurements). There's some very exciting developments planned for this agent, and there's a real opportuntity to develop something that's deployed at very large scales here. What You Will Do
  • Self-service test scheduling: Our agent is deployed in more than 45 million devices worldwide, and each device is capable of running a variety of network performance tests, as defined by a test schedule. We are redeveloping the scheduling system that generates these test schedules, and will allow our customers to have a high degree of control too. Aside from the obvious scale challenges, we need to be careful to ensure there are suitable safeguards and audit controls here too.
  • Triggered testing: This powers our “on-demand” test capability (as opposed to our regular scheduled test capability). Our current system supporting is handling over 12 million concurrent connections, but we want to add many more over the coming year. This system underpins the popular SamKnows RealSpeed product.
  • Anomaly detection: Our customers want to derive insights from the data we collect. Some customers collect so much data across so many different dimensions that it can be a bit like looking for a needle in a haystack. We have been working on an anomaly detection system to automate this process and to find the most likely root cause of issues too, using supplemental topology information. This project has huge potential for our largest customers. Our existing prototype uses a variety of innovative techniques to be able to perform the anomaly detection in near real time without incurring huge costs.
  • Migration to AWS: We are currently migrating more than 40 applications from SamKnows’s Google Cloud environment to AWS. This is a challenging project given the scale and the requirement to avoid customer downtime.
  • Data pipeline: We use Kafka, BigQuery, and Spring Boot to process hundreds of millions of data submissions per day. We continue to add more measurements to support tests for various different games/software/cloud applications.
  • The vast majority of our code is written in Java, Golang, and modern PHP. But we are firm believers in the right tool for the job; so if a service needs to scale to millions of concurrent clients, then we will absolutely consider other options. Scalability and resilience is key, as we have large clients all over the globe that rely on us for their day to day operations.
Required Skills
  • Enjoyment in building products from scratch and seeing them used globally.
  • Proven experience in designing and building systems that are scalable and well-tested.
  • Professional development experience in C++ or similar programming languages.
  • Comfortable with problem-solving and prototyping solutions.
  • Excitement about exploring cutting-edge technology.
  • Proficiency with Terraform for cloud resource management.
  • Experience with ArgoCD for Kubernetes resource management.
  • Familiarity with Kafka and RabbitMQ for message queues.
  • Experience with Redis for caching.
  • Knowledge of Websockets for real-time communication with devices and clients.
  • Experience with MySQL 8 for dedicated service data stores.
  • Familiarity with Google BigQuery for our measurement datastore.
  • Experience with Docker for app containerisation.
  • Familiarity with cloud services, including Github, JIRA, Sentry, and various cloud hosting platforms.

Cisco values the perspectives and skills that emerge from employees with diverse backgrounds. That's why Cisco is expanding the boundaries of discovering top talent by not only focusing on candidates with educational degrees and experience but also placing more emphasis on unlocking potential. We believe that everyone has something to offer and that diverse teams are better equipped to solve problems, innovate, and create a positive impact.

We encourage you to apply even if you do not believe you meet every single qualification. Not all strong candidates will meet every single qualification. Research shows that people from underrepresented groups are more prone to experiencing imposter syndrome and doubting the strength of their candidacy. We urge you not to prematurely exclude yourself and to apply if you're interested in this work.

Cisco is an Affirmative Action and Equal Opportunity Employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, gender, sexual orientation, national origin, genetic information, age, disability, veteran status, or any other legally protected basis. Cisco will consider for employment, on a case by case basis, qualified applicants with arrest and conviction records.