Experience

Google

Senior Software Engineer • Feb, 2020 — Sep 2023

In this role I was part of project-oak, focused on building a Trusted Runtime for running privacy preserving applications.

Revolut

Machine Learning Engineer • Nov, 2019 — Jan, 2020

Based on an analysis of prior user feedback, I proposed and implemented a mechanism to improve the chatbot.

Testify AS

Senior Test Automation Consultant and CTO • Oct, 2015 — Oct, 2019

In the context of the project for modernizing the Norwegian population registry:

  • I was the architect and tech lead of Synthetic Norway;
  • Built a search engine, powered by ElasticSearch, for internal use by testers and developers;
  • Co-supervised a PhD candidate.
From May 2019, I served as the CTO of Testify, and established three working groups for test automation, machine learning, and penetration testing.

Simula Research Laboratory

Research Scientist and Software Engineer • Jul, 2012 — Jul, 2015

In this role, I led the Model-Fusion project, co-supervised a PhD candidate, and contributed to building a software change recommendation system, in the context of the evolveIt project.

Simula Research Laboratory

PhD Candidate • Jun, 2009 — Nov, 2012

My PhD project started with a focus on integration problems in cyber-physical and integrated control systems (e.g., subsea systems). These problems surfaced themselves during system integration testing. A study of the root-causes, at an industry partner, pointed the finger at too many configuration parameters. I studied software product-line architectures, and proposed and developed a number of techniques, some using constraint programming, for semi-automated and consistent configuration of large embedded software systems. See my dissertation.

Projects

Transparent Release Process

Tech Lead • Nov, 2021 — Sep, 2023

In this project, relying on verifiable data structures, we built an end-to-end release process to trace software binaries to their source code, in a transparent and verifiable manner. The idea is very similar to Certificate Transparency.

See the project's GitHub repository.

Talks and publications:

Oak Trusted Runtime

Senior Software Engineer • Feb, 2020 — Sep, 2023

Relying on a number of cutting edge technologies, including Trusted Execution Environments (TEEs), Remote Attestation, and sandboxing (e.g., using WebAssembly), the team developed a Trusted Runtime. In this project, we used Rust as the main programming language.

Synthetic Norway

Senior Test Automation Engineer • Jan, 2018 — Oct, 2019

The goal of this project was to generate synthetic, and statistically representative population data to use for testing. I suggested framing the problem as a language modeling problem, built a proof-of-concept by training a char-RNN network, and proposed the overall architecture.

Talks and publications:

Education

University of Oslo

PhD in Computer Science • 2009 — 2012

Thesis: A Model-Based Approach to the Software Configuration of Integrated Control Systems

University of Tehran

M.Sc. in Artificial Intelligence • 2006 — 2008

Thesis: Improving Model Checking Using Reinforcement Learning

University of Tehran

B.Eng. in Software Engineering • 2001 — 2006

Thesis: Modeling and Verifying Timed Systems Using Rebeca

Publications

For complete list of my publications please see my Google Scholar page.