I am a Staff Software Engineer at Google in New York focusing on application security, program analysis and software development productivity tools. I am also an Adjunct Assistant Professor in Computer Science at Columbia University in New York. Prior to joining Google, I was a Senior Researcher at NEC Labs in the Systems Analysis and Verification group in Princeton, NJ. At NEC, I developed a number of static and dynamic program analysis tools based on model checking, abstract interpretation and symbolic execution. Before that, I received a Ph.D. in Computer and Information Science from the University of Pennsylvania in Philadelphia, PA. 
My dissertation research focused on the modeling and verification of embedded and hybrid systems. Earlier, I received a diploma (Dipl.-Inform.) degree from the Rheinische Friedrich-Wilhelms-University in Bonn, Germany, for my research performed at the Fraunhofer Institute in St. Augustin, Germany. My research there focused on Fuzzy Pattern Recognition, Handwriting Recognition and Machine Learning. Before coming to Bonn I went to high school at Quirinus-Gymnasium in my hometown of Neuss, Germany, although I am of Croatian descent.

Research Interests

  • Software Engineering, Software Productivity Tools, Automated Software Testing
  • Program Analysis, Automatic Test Generation, Static and dynamic code analysis
  • Formal Methods, Model Checking
  • Cyber-Physical Systems, Hybrid Systems
  • Constraint Solvers
  • Concurrency, Distributed Services
  • Software-Defined Networking