Thorsten Tarrach was a PhD student in the Henzinger group at IST Austria, and is currently working as a research engineer at AIT in Vienna
May Chan from Graduate School Office interviewed Thorsten at his workplace at AIT to find out what it was like to leave IST Austria.
I’m a research engineer at AIT (AIT – Austrian Institute of Technology). There are two career paths for scientific/technical staff, which are research engineer, and scientist. For me the research engineer is a perfect position because it combines both the technical aspect of doing the implementation, which I’ve always enjoyed, but it also has a scientific side to it, where I’m involved in the paper writing and will be co-author on some of the papers. I will also be doing theoretical work before we can start implementing things. It’s not like your typical implementation job in industry, where you use existing technologies—here at AIT we’re really working at the forefront of technologies.
My first task has been to work on MoMuT [Model-based Mutation Testing], an existing framework that has been developed mostly at AIT. In the computer industry, a large part of the work is to test programs, which is a very time-intensive and labor-intensive task. We want to automate that—we want to automatically generate those tests for the customers.
Essentially, we are mutating the specifications and the mutated one is wrong. Then we’re trying to find a test case that can distinguish the wrong one from the right one. So a test case is essentially a set of inputs that we use to observe the output the computer gives us. If you had for instance an input “3” and the output given by the computer is the same as the correct one, then you couldn’t see any difference and couldn’t see if the system was behaving incorrectly. But if you gave it the value “0” and the output is not the one we expected, then the value “0” would be a good test case. So, we are trying to find those inputs for which the system shows deviation from the correct execution.
It’s an exciting, new thing that’s being done here, something that you can writes papers on. We’re not just using existing techniques, but developing new techniques here, yet at the same time–which is different from at IST Austria—here we’re really trying to create a product out of that research that’s usable for industry. At IST Austria, we would always stop with a research prototype and a few examples—you would never bring it to the production level.
I worked with Tom Henzinger at IST Austria. He’s the President and also one of the most senior computer science researchers in Europe. It was a great privilege to be able to work with him. Despite all his obligations he actually has quite a lot of time for his students. We had very regular meetings and there were four students in the group, which is really an excellent ratio.
I think it really depends a lot on what’s coming up in the next couple of weeks. I think my experience work-wise is that it was quite cyclic, coming in recurrent waves. The work intensity really goes up before the deadlines, and after that it’s much more relaxing. Generally, what I also felt as a student and as a postdoc, people are really engaged in their work all day round, seven days a week. Whereas here[at AIT]the working days are much more clear-cut. After eight hours you go home and then you can forget about the work.
At IST Austria I was working in a very similar field, so we worked on verification—we were trying to prove that the software is correct. This is a bit different from the testing approach that’s being done here[at AIT]. But it’s also much more restrictive in terms of what size of programs can be handled because the technique we used was computationally more expensive.
We went a little bit further, we didn’t just want to see if the program is correct or not, but we wanted to automatically repair the program. This is called synthesis. Synthesis or automated program repair are somewhat synonymous. This is what I worked on for my thesis. So we would take a computer program—essentially software and source code—and then I developed for my thesis a little tool or a research prototype (it’s not fully usable) and that tool would analyze the program, find certain kinds of defects, and automatically repair the code of the program. It deals with a certain class of programs called concurrent programs.
I was already interested as a child. It started with my father’s Comodore 64, where I would try some simple basic programs. I was probably eight back then. A bit later we got the first actual PC, and my dad brought home a box with Visual Studio 2. Then I started writing small programs, and I remember when I was fifteen, I took part in a local competition where people present different programming work that they did. I wrote a vocabulary trainer. Essentially it had a database where it had German and corresponding foreign language words. It would show you the German one and ask you what it should be in the foreign language—you could type this in, and it would tell you if it’s correct or not.
I wanted to study computer science very early on. I started my bachelor’s at the University of Saarland, Saarbruecken. And during my bachelor’s I went on Erasmus (a European exchange program) to Trinity College in Dublin, Ireland, staying there for 9 months. I also did a 9-month internship at Microsoft in Dublin, doing software development.
I then did my master’s in 2010 and worked for 2 years in a small start-up like environment. After 2 years I was interested in doing a PhD. For personal reasons, I chose Vienna and my former colleagues happened to tell me about the work of Krish Chatterjee. I wrote Krish an email, and a few days later I got an email from the Graduate School Office, saying they would like to see a full application. I was very lucky that I was invited for an interview (there were about 600 applications).
I heard about Krish but once I applied and read through the list of professors, I found Tom’s research interests were much closer than mine. In the end I did rotations with Krzysztof Pietrzak, Christoph Lampert and Tom Henzinger, and it was clear that working with Tom was what I wanted.
At the beginning I was working with Pavol Cerny, formerly postdoc in Tom’s group (now a professor at UC Colorado Boulder), as well as with Arjun Radhakrishna, another PhD student. It was very lucky for me I could work with them. They had a very good idea, and my task was to do the implementation, which is what you typically start with as a PhD student. I worked on that during my rotation, and worked very hard on it—during weekends as well. The paper got accepted at CAV[Computer-Aided Verification], and I got my first CAV paper before I even affiliated. And I could never have done it by myself due to the lack of experience, but this worked out really nicely, and that’s also what enabled me to finish my PhD after 4 years. I essentially continued working with both of them throughout the entire PhD and we produced a succession of 4 papers. We were all lucky that these papers got accepted at first attempt.
I typically went to work rather early, coming in at 8:30 or 9:30 latest. For me the morning was usually the quiet time when you get a lot of work done, I find. I particularly enjoyed the lunch break with others, and we usually went for a coffee right after. I enjoyed this social interaction. In the afternoon, we usually had meetings scheduled and there were talks.
I was mostly Vienna-based. I didn’t make use of the socializing opportunities at IST Austria as much as one could have.
Yes, the environment is very nice. The atmosphere there is also such that you’re encouraged to take breaks, there’s a gym, people go running and so on.
In the first year, we interacted a lot as we shared an office so we were bonding a lot. But when you join different research groups, you get separated a bit more. In the end you hang out mostly with people from your own and related groups. You don’t see students from other subject areas as regularly anymore. But you still bump into them on campus, in the gym, and find out what they are working on.
Think & Drink was also a good way of bringing together people.
I was socializing regularly, mostly with other students at IST Austria.
Some of the best times at IST Austria were the retreats. PhD students organize their own retreats, and the institute has its own retreat. But the student one is really the best. You get to know other students very well through those.
I think AIT is a bit special, in that it is not as strict as an industry job, but I think there are a few common points that you experience in transition to both AIT or industry, which is that you have a much more clear-cut work/life balance, both in terms of time and the tasks that you have to perform, which are usually very clearly laid out. As a PhD student, the first thing is you have to motivate yourself, you have to keep track of your own time, in the sense of making sure you do enough work, or—for some people this is more of a problem—know when you need a break.
I chose this job at AIT because I thought my knowledge from IST Austria was useful. I was lucky in that IST Austria didn’t just prepare me in the abstract sense, such as knowing how to work on your own on your projects—these are things that doing a PhD and being at IST Austria can equip you with; but also with the concrete knowledge from the papers I read from my projects, from the write-up—these are very applicable to my current position.
Tom suggested to me that a PhD is always useful, no matter what job you end up doing—you learn how to acquire new knowledge yourself, by learning how to learn. This skill is transferable to other realms, whether you take up a research or industry position, or join a start-up.
I’m happy at AIT. One benefit of this job is that it’s permanent. One of the reasons why I didn’t pursue an academic career was that you constantly have to move. And it’s unclear, even if you’re very good, if you will get a position. I felt like settling down and having a job where, if I wanted to, I could stay.
First, you have to be prepared to work hard for it. But of course at the same time you need to take care of your work/life balance. You can’t be working hard for four years non-stop. A good start of your PhD—a lot is in the hands of your advisor, but it’s also good to have more senior PhDs or postdocs, to work with you on the project, and to see themselves as having a supporting role for your first paper. It’s good to listen to advice of both your supervisor and the people you’re working on the paper with. They have more experience and can provide guidance on how to, for instance, work on collaborations with other groups. Be humble, work hard, and understand that the hard work will pay off whether it is now or later.
It’s important to not only focus on the work you’re doing at the moment, but to also keep a broader view of your research area, to listen to talks, go to conferences, irrespective of whether it’s directly related to your current project or not.
And while IST Austria basically offers an environment where you don’t have to speak any German, many people consider going to industry after their PhD and staying in Vienna, so learning some German could prove useful. A few PhD students I know have stayed in Vienna and settled with industry positions.