Senior Software Engineer (C++), SamKnows
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 organisations rely more on cloud services and the Internet, the network has become a “black box” outside of their control. ThousandEyes gives organisations 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 organisations to see, understand, and improve digital experiences everywhere.
About The TeamAt 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 modernise our systems, influencing how our applications operate and interact with the world.
About The RoleLast 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 opportunity to develop something that's deployed at very large scales here.
What You Will Do- Improve the scheduling, execution and reporting of the tests that run in the broadband routers.
- Create new tests and improve existing ones: as the services change and evolve, our tests need to be kept up to date. We’d also love to add more tests to our suite.
- Perform investigations and discovery about the best way to measure the services in a representative way, for instance doing packet captures and analysing the traffic, to determine which IP addresses are being used by the application, depending on the location.
- Develop a launcher that automatically downloads newer versions of the agent and runs them.
- Improve the security of the agent – backend communications.
- Optimise the bandwidth usage and the calls to the backend, to reduce our operating costs.
- Develop tests to measure the in-home performance.
- Develop tests to measure QUIC and L4S.
- Help our integration team to adapt the agent and/or the tests to run on new targets, debugging the performance issues or writing adapters for the hardware accelerators.
- Interact with and improve our physical lab environment. Connect devices and wire network/serial console. Additional setups such as PPPoE, VLAN and traffic shaping may be necessary.
- Help our measurement support team with live deployment of tests. Monitoring test execution status and solving problems
- Interact with platform team and front-end team as well as customer-facing team
Required Skills
- Knowledge of TCP/IP and HTTP.
- Knowledge of Linux and socket programming.
- 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.
- Knowledge of Websockets for real-time communication with devices and clients.
- Familiarity with MySQL.
- Experience with Docker for app containerisation.
- Familiarity with cloud services, including Github, JIRA, Sentry, Jenkins and various cloud hosting platforms.
- Familiarity with database systems. Data ingestion and queries using SQL
- Experience with revision control systems, primarily Git
- Experience with cross compilation toolchains and build systems like CMake and GNU Make/Automake
- Professional development experience in C++ or similar programming languages.' should be written as 'Professional development experience in C/C++ or similar programming languages.
- Experience with embedded systems. Being aware of hardware constraints and adjusting the solution to work in such an environment
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, colour, 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.