Saeed Amiri

I am a software engineer with a theoretical background.

From software point of view, I worked on various aspects, from routing and optimization side to designing and implementing ERPs.

In theory I worked on various aspects of theoretical computer science, mostly I'm interested in graph theory, distributed computing, network algorithms and machine learning. In distributed computing and networks I worked on covering and routing problems. In all of them, I'm interested in exploiting the structural properties of graphs to solve the problem or improve our understanding of the topic. 

One might ask why then distributed computing?

I found it awesome to think about the standpoint of a single node in the graph and see how much information from the entire graph is necessary to provide a suitable output. This actually is closer to what happens in the reality.

Graph Theory and Routing:

I'm interested in various algorithmic graph theory problems.  This is aligned with my interest in a better understanding of graph structure. You may see the outcome of such interests in my papers on structural graph problems such as my several papers on routing problems and our interesting work on Erdős-Posa property in digraphs.

Short CV

Since August 2022, I am working in Deliveryhero as an algorithm engineer. My work is focused on optimization in logistics: optimize the assignment, routes, interests of customers, etc. Additionally I lead co-lead some projects in this domain.


Prior to that I was a postdoctoral researcher working with Prof. Christian Sohler at the University of Cologne. Earlier between 2017-December 2019 I was a postdoctoral researcher at MPII.

I defended my Ph.D. at TU-Berlin under the supervision of Prof. Stephan Kreutzer in October 2017. My thesis title was Structural Graph Theory Meets Algorithms: Covering and Connectivity Problems in Graphs.


I did my master's study at the University of Tehran (Sep 2009 - Jan 2012).

Prior Industry Experience: Before continuing my Master's and Ph.D. studies, I worked as a software developer/technical team leader, for several years. Back then I was a decent developer and I was active in helping other developers in various Q/A websites such as Stackoverflow, in which I have trusted user access, due to my reputation (see the link).

Teaching: 

At the University of Cologne I taught:

     Theory of Distributed Computing

I did a mini-course and Q/A sessions on the basics of computer science at the University of Cologne.  Additionally, I served as a teaching assistant in several courses such as: Machine Learning, Online Algorithms, Efficient Algorithms, ...

Before that, I have taught advanced courses on graph algorithms and distributed computing in MPII. If you are interested, have a look at the corresponding course materials in the following links.

I also have been a teaching assistant for several courses such as Algorithms and Complexity, Digraph Structural Theory, Machine Learning, Online Algorithms, etc.

Community Service:

To see a list of my published papers, have a look at my DBLP or Google Scholar.


If you have a cool idea to turn it to a software or a cool theoretical problem to think or looking for a cool thesis topic or industry internship experience in cutting edge applied science environment, then do not hesitate to contact me via my Gmail address: [my first name] dot [amiri] dot [akh].


Hobbies: I'm enthusiastic about chess and table tennis and I am good at both of them. Especially in chess, I may be able to play it as a professional player (at lower levels though), but of course, chess alone does not earn us money! If you are good at any of them then we have valuable common interests.