Colleagues Wanted
[Update (August 2019): TRA Robotics is now officially part of Arrival and called Arrival Robotics]
We are looking to hire robotics and software engineers in TRA. Here are a few job descriptions.
On second thought, don’t read that. It’s looking for someone who is a technical expert at everything. You’d think you are not qualified. Nobody is. I’d rather that you knew who they are really looking for and what it’s really like to work here. Anybody hired to fill that position would end up as my colleague. I may even be one of the interviewers. So, read this post instead. And apply.
Disclaimer: This post is not endorsed by my employer. They don’t know I am doing this. Ssh!
First, I must tell you how I ended up here. Catching up with news one unremarkable Monday morning almost a year ago, I noticed an article about a new electric van under development. Yes, a van. Don’t yawn already. Listen. The picture of the vehicle in the article caught my attention — it looked elegant, from a company I’d never heard of called Arrival. OK, the image itself was probably computer generated, but having worked for a well known product design firm before, I could recognise inspiring design when I see it. There was a unique design language to it, and didn’t seem anything like electric vehicles I’d seen before (i.e. ugly). Now I am not a vehicle enthusiast or anything, but I strongly believe in the need for vehicles driven by clean energy, probably because I want my son growing up on a planet that is cleaner than it is today. I also had a growing interest in the automotive sector thanks to this course on self driving cars that I had been doing. I felt compelled to send in my CV. So I did.
A couple of hours later I got a phone call from their Chief of Talent. I learnt that Arrival was just one of many sister companies that spawned from the same source. One of the notable sisters was Roborace, developing a new form of entertainment in electric racing cars that are breathtakingly beautiful while at the same time pushing the state of the art in autonomous driving systems. Yet another was Charge, a company developing high performance electric classic cars. However, given my robotics background, I was asked whether I would be interested in TRA.
Say what now? Who?
At the time they didn’t even have a website. Looking up my notes from the phone call above, it says (and I am not kidding)
TRA: Didn’t hear what this was really about. Too much background noise to grasp key points. Seems like they have a good work culture.
I had just about grasped that culture was key; important enough to note it down and nothing else. As a person who believes that Culture is the only true competitive advantage that any company could have, I decided that’s good enough information to accept a face-to-face interview. My interview preparation plan was (again, from my notes):
- Review recent course-work (that self-driving cars course) and brush up on concepts (i.e. skim through one or two texts that have become my lifelong companions)
- Refresh my memory on my own technical contributions to projects that I have recently been involved in.
- Print two copies of resume (one to give away and one for reference).
- Prepare slides on work history, personal philosophy, and how I can contribute technically and culturally (a 100 day plan, of sorts).
- Test HDMI cable (No point in preparing slides if you have no means to show it!)
I knew who the interviewers were from the email invite. Not knowing much about the company, I researched their backgrounds instead. A social media profile of the main interviewer read: “Spacecraft Engineer, Science Writer, DJ in London”. Lovely. He was also a PhD in Computer Science; I had a quick read through his PhD thesis to get an insight into his expertise and mindset.
So, armed with the ‘intro deck’ of slides, I went. And did well enough (My notes say: “Good chat with X and Y. Lasted 2.5 hours”). It took three more conversations — one with engineers I would work with day-to-day, another with the company CEO and a final one with the group Founder — to finally get the job. (Yes, the Founder, who started all these other companies that I mentioned earlier, still has a one-to-one conversation with every candidate before a final offer is made.)
OK, now. You are going to be better prepared. Right now, you care about four things:
- What does TRA do?
- What is it like to work here?
- What do they want from you?
- How to prep for the interview?
So here we go..
What does TRA do
TRA is developing technologies to build highly reconfigurable and fully automated/robotic manufacturing systems — popup factories that could produce anything from shoes to automobiles, without human intervention. This is enabled by a software framework built on certain approaches to Artificial Intelligence, that given a product specification will generate a manufacture-able solution; i.e. a sequence of operations to build that product. Obviously, most existing products couldn’t be built this way, and may have to be redesigned to be manufacture-able in a robotic factory. TRA calls this concept ‘software-defined robofacturing’.
At TRA, ‘AI’ is not a buzzword. It defines the core product.
To transform a list of steps into a physical object, we need robots with advanced capabilities. At TRA, we are either developing or integrating:
- Computer Vision techniques for part recognition and manipulation planning;
- Multi-agent distributed sensing and control strategies for motion control and manipulation in highly dynamic environments;
- Advanced simulation capabilities built on top of Game Engines to plan and orchestrate factory operations;
- Autonomous robotic vehicles to move assets across the factory, including omni-directional ground vehicles and self-balancing two-wheeled robots, quadrupeds and air vehicles.
What’s the point of all this, you ask? Good question. We all have to die eventually. What’s the point of anything?
Because, this could mean products that are quick to market, cheap to produce, yet of high quality, and potentially customisable to the individual. There is much internal debate about how it could be an enabler for a whole new generation of aspiring new product designers who may not have the capital to commit to mass-production using traditional means. To create real impact, this requires a community and ecosystem, not just one company and TRA is building that too.
Our first use-case is to build commercial electric vehicles this way.
This is an ambitious goal, to put it mildly; I am excited about it because…..well, as Elon Musk recently put it:
“Our existence cannot just be about solving one miserable problem after another. There need to be reasons to live.” Elon Musk on Twitter, Dec 13 2017
What is it like to work here
You will get the equipment you ask for. A couple of weeks before I started, I got contacted by IT to ask what I wanted in order to do my job. They try their best to accommodate whatever you want, within reason of course.
The office in London is in a lovely part of town. Ditto for St Petersburg where most of my colleagues are. (I am yet to visit the spanking new Berlin office, but I hear it’s lovely too). The London office space is shared between all the sister firms — Arrival, Roborace, Happy Electron, Robonetica and TRA. We talk to each other about what we are up to (internal documentation systems are open to all), and have lunch together (provided free on site, by the way). It’s a good mix of people of different nationalities, social backgrounds, interests and expertise. That alone makes coming to work every morning rewarding and lunch-time conversations interesting. (May be it’s just me; I have worked in mono-cultures before and I find them stifling.)
To me personally, an office is not just a place of work with desks and people. It is a place where I seek inspiration. And there is no shortage of inspiration in the London office, which has the look and feel of a design studio. On my way from the front door to my desk I pass by posters on walls and engineering mock-ups in the hallway, reminding me what it is that I am working towards. I will shamelessly admit that if I pass by a desk with something interesting on it — a book, a printed circuit board, a 3D printed mockup — I will sometimes pick it up and inspect it, trying to understand what it is about, why it is the way it is and so on. Perhaps, not everybody appreciates me poking around that way. If my colleagues are reading this, I promise to be always careful and respectful of your work.
At my desk, I have the freedom and opportunity to create. We use the tools we want to practice our craft. As a company, we are still in the early stages of development and what’s being done is novel enough that engineers are not burdened by legacy, by which I mean pre-existing systems and processes that may be outdated or sub-optimal. What each one of us have instead is an opportunity to create and leave behind a legacy of our own, by which I mean best practises, well-considered engineering designs, and indeed exemplary behaviours and attitudes that seek to inspire those around us and help all of us grow personally and professionally. If we want to learn something new or train ourselves on a skill we don’t already have, there is a generous personal development budget for that.
However, as you might expect, in an environment where much is yet to be defined and developed, there is disorder, unpredictability and tendency for increasing entropy. It’s a delicate mental balancing act that places lots of demands on my soft skills — the constant need to communicate, to listen and most importantly, to empathise. I have to remember that things change around me for good reason, and not because they are all collectively conspiring to send me to an early grave. Understanding the nature of the business and the constraints it operates within also helps. (I was once asked what business Honda was in. It’s not cars or even motors, otherwise decades of research and tens of millions of dollars spent on the Asimo wouldn’t make any sense. It’s probably ‘mobility’.)
What do they want from you
I don’t know. It’s not written down anywhere, yet. Depends on who you ask.
Bummer. You did not spend 6 minutes of your precious life reading this far to receive this nugget of wisdom. Apologies. The best I can do is to tell you what kind of colleague I would like to have.
When I interview people, I am biased in favour of those who appear to:
- Be empathetic, and have the aptitude to understand constraints of people and systems, and still get the best out of them. (See previous section)
- Be open minded about seeking ideas from outside their own domain. At one of my previous employers, our best hire was a computer games developer. As it happens, there are lots of similarities between game development and industrial robotics in the math and physics expertise required; as a bonus, game developers tend to be better computer programmers than the average robotics engineer. In yet another workplace, our best ideas came from psychologists, who are unsurprisingly better at designing productive human-robot interfaces than the average software or electronics engineer.
- Have a bias to action. By this I mean decision making without endless analysis and vacillation. None of us are really interested in philosophical discussions about AI, consciousness, free-will, etc. We’ve got things to build. We work in small teams, and we cannot make progress unless each one of us takes personal responsibility for what we do and take well-considered but reasonably quick decisions. In order to make sound decisions, one of the prerequisites is undoubtedly that you..
- Have “The Right Stuff” technically speaking and the aptitude to continue developing them on the job. It’s a never-ending process. Read this. We are not NASA, and our systems are not remotely as safety-critical. But attention to detail does matter. It’s about craftsmanship. It’s about pride in your work. Also, if and when you leave, others have to pick up where you left off. Be kind and do as good a job as you can. Document your design. Apply the best practises that you are aware of. Seek to leave a legacy behind. Set an example for others to follow.
- Have the courage and conviction to “Do The Right Thing”. We respect our colleagues, customers, and external collaborators. We don’t cheat, we don’t talk behind their backs. We provide honest feedback. We are honest about our abilities or the lack of it (Nobody gets fired for revealing they don’t know something. We are all learning all the time. See point above). We seek to be self-aware especially of our unconscious internal biases. We don’t use pirated software.
- Have the ability to go beyond your narrow area of expertise and think top-down like a Systems Engineer.
- Be comfortable leading and living in ambiguity.
How do you prepare for the interview
How would I even find out whether you have the above qualities? It’s difficult. But I can try. Here’s how:
- Yogi Berra once said, “You can observe a lot by just watching”. Similarly, one can learn a lot about a person by just listening. I will let you talk most of the time. Allow you to shine and show off. So come prepared to show off. Bring slides if that helps, or notes, or whatever. But talk about the things you did, not your team. ‘I’ not ‘we’ — that way it’s just easier to understand what your personal contributions were. It’s also easier to talk passionately about things you did and care about. If you have code samples to share where you have been the sole developer, please do send us a link before arriving for the interview. If you have a portfolio of work, please bring that along.
- I may ask a few open ended questions and system-design type problems for which I would expect a conceptual solution. We have whiteboards for you. Feel free to walk up and scribble your thoughts. This is to understand the way you think and approach problems, to gauge your technical depth, and how well you explain your thoughts.
- I won’t be asking you programming trivia or stuff you could look up on the internet in a few seconds. I am not a Jerk and I don’t want to work with one either. However, you should be able to explain fundamental concepts you may have learnt at the degree level. If you are being hired for a robotics role, you should be able to talk intelligently about PID control, SLAM, Kalman Filters, homogenous transforms, mathematical modeling (kinematics, dynamics) and you should know how to implement them. You should know how common sensors and actuators work. We will not talk about ROS — we have realised that we can’t get much insight into the technical depth of a candidate if we focus on their ROS experience. We use it for prototyping and proof-of-concept but fundamentally we write most of our software in C++17 on Linux at the moment. If you have good reasons to prefer another systems language such as Rust, sure, tell us about it. You would be expected to know about data structures, concepts of determinism, scheduling, concurrency and message passing. You should be able to talk about any coding standards you follow, and the rationale behind standards such as MISRA-C++ and JSF-AV Rules.
Good Luck!
References
- More than a decade ago, Netflix published what was then considered to be “the most important document to ever come out of Silicon Valley”. This was their set of slides on how they hire titled, Netflix Culture — Freedom and Responsbility. Also here. This document has been very influential in how I think about colleagues and what I aspire to be myself.