I am a theoretical computer scientist working on the design and analysis of algorithms for combinatorial problems. I particularly like to work on problems in distributed computing and use the power of randomization. Much of my work intermixes these classical topics with questions, ideas, and tools from (network) coding theory, and information theory. Most recently I got particularly interested in error correcting coding schemes for interactive communications and distributed network optimization algorithms.