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, Canada 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, and our engineering office in Romsey, UK. 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), C++ (cross-platform)
- Servers:js (with TypeScript), Go, React (web), Postgres, Cassandra (db), Kafka, RabbitMQ (queue)
- Build & Deploy: Git, Jenkins, Docker, Kubernetes, Ansible
Come join us!
The Web Services Lead will be responsible for designing and building the back-end services drive one of our communications products. From the REST/GQL APIs that our user applications consume to the data pipelines that translate streams of events into summary KPIs – and scaling to hundreds of millions of users! – you’ll be guiding the development of the complete back-end of either our Network Convergence Platform or SatBridge and reporting directly to the Director of Software (back-end).
- You’ll be primarily coding in either TypeScript or Go, using frameworks like node.js
- 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 spend the rest of your time on architecture, requirements, design, and coordinating development activities
- You’ll be working closely with our front-end, DevOps, and tools teams, product/project management, and operations to build the right products for our customers
- 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, Canada, with occasional travel to our other offices in Austin, Texas and Romsey, UK
- You have a wide knowledge of computer science/software engineering – through a related degree or diploma, but we also recognize practical experience
- You are comfortable programming full-stack applications, and have been coding – professionally or personally – for years
- You have serious coding skills, in multiple languages – and practical experience deploying microservices on Linux
- You have deep knowledge of web application architecture, including integrating with third-party web APIs, push versus pull, high-availability architectures, horizontal scalability, containers and virtual machines, and service orchestration
- You have wide knowledge of developing for the web, including running services on AWS/Azure/Google Cloud, single-page apps versus server-side rendering, service and user authentication, logging, and application metrics
- You have experience developing for quality & reliability, and how it relates to web services in particular – automated testing, benchmarking, blue/green versus rolling deployment, and continuous integration
- You have some experience with HTML, CSS – enough to be dangerous, though this won’t be part of your regular duties
- You understand HTTP headers, HTTPS and HTTP 2.0, caching, websockets, and the limitations of REST
- You have some experience leading a development team and shipping products
- You want to work in a small, fast-moving team with lots of responsibility (and few roadblocks to getting things done)