Software Engineer C/C++

Morges, Switzerland
Software Engineering
Second Spectrum is the world leader in building machines that understand sports and the experts at creating value from tracking data. We create tools that help teams win with cutting-edge technology in Computer Vision, Machine Learning, Big Data, Augmented Reality, and product design. Second Spectrum is the Official Optical Tracking Provider of the NBA since 2017. In addition, we are working with several football clubs and leagues in Europe and in the US. We employ over 100 employees across 4 countries and are headquartered in Los Angeles (USA).

Your Mission:
The Software Engineer will design new video capture systems for live sporting events, and improve existing designs to deliver data (video and metadata) from venues in a wide variety of environments. Second Spectrum expects and empowers engineers to stretch their skill sets, expand their scope and capabilities, and tackle ever-increasing ambitions around speed, accuracy, and cost of these systems.

Your Role:

    • Find solutions to hardware and software challenges around low-latency and high-reliability video delivery
    • Design and deploy solutions involving hardware, networking and software; develop embedded and/or real-time systems
    • Implement and provide best-practices for maintainable software development, including deployment process, documentation, and adherence to and improvement of coding standards
    • Support and monitor live systems, including on-call rotation for video capture during professional sports seasons
    • Site reliability engineering: metrics, monitoring, incident response, post-mortem analysis

Your Experience and Background:

    • BSc or MSc in computer science or a related degree, with strong low-level programming
    • 3+ years of experience in systems software engineering: modern software development practices and tools, concurrent and distributed programming, operating systems, computer networks, database systems
    • Experience with real-time systems; embedded systems would be an asset
    • Fully proficient in both C and modern C++ at a systems level
    • Familiar with concurrency primitives: threads, locking and mutexes
    • Experience building metrics and monitoring systems, including alerts and escalation practices

Highly Valued Assets For the Position:

    • High performance computing; GPU computing is an asset
    • Cloud Computing
    • Experience with Linux systems: internals, kernel modules, kernel tuning, boot loaders
    • Interest in and experience with camera/video system technologies (PTP2, RTMP, RTSP, SDI, GigE Vision, CoaXPress, GenLock, IRIG-B), video compression (h.264, h.265, VP8, VP9) and audio compression (AAC, mp3)    

Our Software Stack:

    • Languages for scientific computing: C & C++
    • Networking: routing, High MTU/Jumbo Frames, TCP, UDP, IGMP/multicast, fiber, ethernet, bandwidth, VPN, equipment & throughput constraints
    • Code base: Git with GitLab
    • Cloud services: AWS EC2 and S3
    • Productivity: Slack, Jira, Confluence, Google Apps (Calendar, Docs, Sheets, Slides)

Our Work Environment and What You Will Benefit From:

    • Flexible working hours, competitive salary, incentive stock options and improved Swiss social benefits
    • Flat hierarchy and collaborative management by highly-qualified technical leads with daily stand-ups, weekly 1:1 & team meetings
    • Team-oriented engineering habits and software engineering best practices (readable, maintainable and efficient code)
    • Start-up mindset, innovative and dynamic environment, which encourages self-development and opportunities to make an impact
    • Multicultural team with team members based across 4 countries (USA, Switzerland and India)
    • Highly-qualified team of engineers, who enjoy learning, exchanging ideas and questioning existing standards
    • Regular formal and informal team outings