Network Services Team Lead

About Us

At Carnegie Technologies, we are a strong technical team that builds communications products for the multitude of networks available today.  Whether that’s combining LTE and Wi-Fi together for better-quality VoIP calls that aren’t disrupted when you switch networks, aggregating networks together for smoother video streaming, giving your smartphone the ability to place calls over satellite from anywhere on the planet, or constructing end-to-end IoT systems that take advantage of the latest wireless protocols, we’re always looking for ways to get the best experience at the lowest operational cost.

We come from many different backgrounds and levels of expertise – but to all of us, craft and functionality are equally important.  We constantly learn and hone our skills and incorporate those experiences into every line of code.  We don’t ship “fast” solutions – we ship the right ones for our customers.  We’re also leaders that create quiet time to solve hard problems and the space to focus on the best result.

Our Kitchener-Waterloo office is the heart of our software engineering team, and works closely with the hardware and operations teams from our company headquarters in Austin, Texas.  You’ll have the opportunity to work with our super talented team of people, from experts in networking, machine learning, and applications to some of the pioneers of Wi-Fi itself. You might even get your name on a patent!

Our technology stack is carefully chosen to give our developers a great development experience – you’ll spend your time building quality software, not on repetitive tasks.  We’ve built tools to ensure our code is consistently formatted, to release after commit, and to automate documentation; and we rely on a shared set of engineering principles when reviewing every line of code we write.  Common technologies we use are:

  • Mobile apps: Java (Android), Objective-C (iOS), Ionic/Cordova (cross-platform), C++ (cross-platform)
  • Servers: Node.js (with TypeScript), React (web), C++ (traffic handling), Cassandra (db)
  • Build & Deploy: Git, Jenkins, Docker, Kubernetes, HockeyApp

Come join us!

The Role

The Network Services Lead will be responsible for designing and building the high-scale traffic systems that drive our network convergence platform. From bandwidth aggregation to seamless handover, you’ll be working with protocols and networks and high-performance code to enable a better user experience for mobile devices.

  • You’d be responsible for the team designing and building our Network Convergence Platform, specifically for bandwidth aggregation, gapless handover, and our connected vehicle gateway
  • You’ll spend a good chunk of your time coding - and code-reviewing others to ensure we maintain a high standard of quality
  • You’ll be primarily coding in C++, with specific focus on scale and performance
  • You’ll spend the rest of your time on architecture, requirements, design, and coordinating development activities
  • You’d own the technical portions of the Network Convergence Platform, and be responsible for shepherding the architecture, development/test environments, automation, and tools
  • Outside of your team, you’d be frequently working with the leaders of our Web Services and Mobile Apps teams; with our DevOps team on rollouts; with our Product team on defining the product roadmap; with our Project team to communicate status; and occasionally with sales & customers to get feedback from the field
  • You’ll be pushed by your colleagues to deliver quality products in a reasonable timeframe – and trusted to seek input from then take the best action
  • You’ll be working out of our office in Kitchener-Waterloo, with occasional travel to our office in Austin, TX

About You

  • You have a wide knowledge of computer science/software engineering – through a related degree or diploma, but we also recognize practical experience
  • You are formidable with C++, understand memory and pointers, and know how to architect effective and high-performance C++ applications and libraries using strategies like zero-copy and object pooling
  • You understand networks and protocols, and can turn a specification (IETF RFC or 3GPP specification) into a working system
  • You have a deep understanding of TCP, UDP, and IP – congestion and flow control, routing, differences between IPv4 and IPv6, NAT, fragmentation, ACKs and SACKs, MSS and MTU, and Nagle’s algorithm
  • You have a wide understanding of the applications that use networks – web browsers, video streamers, VPNs, VoIP applications, P2P, gaming – and how they use them
  • You are comfortable in Linux, and SSH-ing to servers and working on the command line is no big deal
  • You want to work in a small, fast-moving team with lots of responsibility (and few roadblocks to getting things done)
  • You are excited at the prospect of gaining a first-hand knowledge of exactly how the Internet works – or sharing your existing knowledge with the team here