I’m Devin and my title is Principal Software Engineer on the Cloud team. Here’s what I do at KUKA and why I enjoy working here.
I work on the backend team, a small group of three people developing the server-side components of the KUKA Connect web application.
KUKA Connect is a web app that gives our customers the ability to monitor their KUKA robots, and one day to preemptively diagnose potential failures.
Every person on the team and in the office is enjoyable to work with: pleasant, helpful, and capable.
We have a cooperative atmosphere, and on our backend team we often do “mob programming” where we go into a room together and have a group coding session to implement important features. This practice 1) brings the team together, 2) gets everyone up to speed on coding style and feature architecture, and 3) facilitates better code through the group dynamic (three heads are better than one).
I’ve never worked at a company that fostered such a collaborative environment. Oftentimes it is wrongly thought that having developers code together slows down velocity: the opposite is true in my experience. By working together, obstacles are overcome more quickly and development effort is more focused.
We have some talented people on our team, and these people share their wealth of knowledge through mentorship, so everyday affords the opportunity to grow and learn.
The Technical Aspects
It’s one thing to work with great people. We’ve got that. Pair it up with cutting edge software development practices and tools, and now you have something really special.
We are writing a scalable web app that is global in scope with massive data pouring in every day. We need near 100% uptime; we need to be able to dynamically scale up the web app based on load; and we need to be able to evolve the architecture as we move forward.
To solve these challenges, we employ paradigms and tools that are industry leading: test-driven development, event sourcing, the concept of a log (we use Kafka for this), a distributed and highly scalable database, data streaming (Akka), and microservices. This is in addition to fundamental practices like dependency injection and interfaces/protocols/traits.
We deploy our system to Amazon Web Services (AWS) and manage our app through Kubernetes with Docker containers. Each microservice is packaged up in a Docker container and then one or more replicas of it are deployed by Kubernetes as pods to an AWS instance in our cluster.
We capture live metrics on all important aspects of our app and have a huge TV that shows the DataDog dashboard for our different tiers. When something goes wrong, we know it quickly and can fix it.
The bottom line: being on this team has leveled up my software experience by leaps and bounds.
KUKA Connect is our first product. We just released it. Industrial robots like the ones KUKA makes have been around a long time and do things like assemble vehicles.
But the software for monitoring and managing these robots has developed more slowly. We are changing that with KUKA Connect, giving our customers unprecedented ability to manage their robots: visualize what each robot is doing, know when maintenance milestones are coming up, find out when a robot hits a critical fault, and see important operating data about their robots.
We have already been getting feedback and the good news is people love the app and want even more features. So we have lots of great work to do.
The Next Step in Your Career
We’re hiring, and you can go to our Careers page right here to see all the positions we have open.
If Cloud engineering or another role sounds intriguing to you, apply for it! Look forward to seeing you here.