Teaching
I support(ed) bachelor-level courses at ETH Zürich and the University of Edinburgh as a teaching assistant, leading exercise sessions alongside the course teams.
Vibe Coding Workshop

Ecosystem Management Group, ETH Zürich
Workshop: Summer 2026
I ran a hands-on Vibe Coding workshop for the Ecosystem Management Group at ETH Zürich, walking through how to build and iterate on small projects together with AI coding assistants. The slides cover the tooling, the workflow, and a worked example from the session. Use the arrows to scroll through the slides below.
Fundamentals of Web Engineering

Department of Computer Science, ETH Zürich
Teaching Assistant: Fall 2023
This course covers the fundamental concepts of web engineering, focusing on the development and maintenance of robust, scalable, and secure web applications. Topics include client-server architecture, web technologies, performance optimisation, and security considerations. Contemporary web development utilises a technology stack that spans from back-ends to front-ends, and includes virtual server environments, document databases, back-end and front-end programming, and UI/UX design. The depth of this stack fosters separation of concern and reuse, but also amounts to a steep learning curve.
Foundations of Natural Language Processing

School of Informatics, University of Edinburgh
Teaching Assistant: Spring 2022
The course is normally taken by third year undergraduates. It introduces you to foundational concepts and techniques in Natural Language Processing and is a prerequisite for Advanced Topics in NLP (ATNLP) in Year 4. We will focus on what makes automatic processing of language unique and challenging: its statistical properties, complex structure, and pervasive ambiguity. This course will cover a range of architectures and algorithms for NLP. We will start with simple models for text classification and generation. We will then discuss neural models to represent the meaning of words and model language, such as Recurrent Neural Networks and Transformers. You will gain insight into the technology behind contemporary Language Models, including pre-training, supervised fine-tuning techniques, and alignment. As part of the course, we will also introduce methodological and ethical considerations (e.g., linguistics, evaluation, data collection, algorithmic bias) that are important for working in the field.