Teaching & Mentorship
Teaching & Mentorship
I teach bachelor, master, and PhD programmes at Aalborg University, spanning three disciplines: software engineering, artificial intelligence, and research methodology.
My approach to teaching is grounded in the belief that software engineering is as much about people and processes as it is about technology. I design courses that challenge students to think critically about design decisions, stakeholder needs, and the ethical implications of their work.
Whether teaching at the bachelor, master, or doctoral level, I emphasize hands-on learning, peer collaboration, and direct engagement with industry challenges. I believe the best teaching happens when students grapple with authentic problems and learn to navigate ambiguity alongside technical depth.
Teaching by Discipline
Software Engineering
From agile methods to systems design
Courses covering the full spectrum of software engineering practices: from contemporary agile methodologies and iterative development to large-scale systems architecture and engineering excellence.
6 coursesArtificial Intelligence
Human-centred AI for software-intensive systems
Examining how AI reshapes software development and organisational practice. Courses cover responsible AI design, fairness, transparency, and the societal implications of deploying intelligent systems at scale.
1 courseResearch Methodology
Rigorous empirical methods for software engineering
Training doctoral researchers in advanced quantitative and empirical methods. From structural equation modelling to research design, these courses build the methodological foundations for credible SE scholarship.
1 coursePractical introduction to agile methodologies, sprint management, and iterative development practices used in modern software teams.
Advanced course on innovation in software development: exploring emerging technologies, startup methodologies, and disruptive practices.
Object-oriented analysis and design for software systems. Covers UML modelling, design patterns, and systematic approaches to building well-structured applications.
Specialised topics in systems development for students looking to deepen their expertise in architectural challenges and advanced design methods.
Foundations of system analysis and object-oriented design, covering requirements elicitation, domain modelling, and the transition from analysis to implementation.
Comprehensive introduction to software engineering principles, processes, and practices for building reliable, maintainable software systems.
Advanced doctoral seminar on designing and deploying AI systems with consideration for human values, fairness, transparency, and societal impact. Bridges technical AI literacy with organisational and ethical reasoning.
Doctoral seminar introducing SEM as a powerful methodology for analysing complex, multi-variable relationships in empirical software engineering research. Covers model specification, estimation, and interpretation.
The 5th semester (30 ECTS) centres on complex software engineering under conditions that resemble real practice. Students choose a front-end or back-end project track and work in cross-team constellations on a shared product, inheriting an existing codebase rather than starting from scratch. Three mandatory courses run in parallel: Agile Software Engineering, Machine Intelligence, and Database Systems. The semester is deliberately structured so that front-end and back-end teams must negotiate API contracts and shared system boundaries, making inter-team coordination a first-class learning outcome rather than a side effect.
Coordinating the 3rd semester of the Software programme at the Copenhagen campus.
Teaching & Research Connection
My teaching and research are deeply intertwined. The courses I design emerge directly from my research interests: understanding how development teams work most effectively, how software engineering practices scale to complex systems, and how we can build AI systems that respect human values and agency. Students in my classes often become collaborators in research projects, bringing fresh perspectives to ongoing empirical studies.
Through both research and teaching, I am committed to advancing the field’s understanding of what makes software engineering truly excellent — not just in technical terms, but as a human endeavor that shapes how people work and interact with technology. For more on my research, visit my Research page.
A PhD for Software Professionals
Have you spent years solving hard problems in industry and started wondering whether there is a more systematic way to think about what you do? A PhD is not only for people starting an academic career. For experienced software professionals, doctoral research can sharpen the way you frame problems, evaluate evidence, and design interventions in complex organisations.
Aalborg University offers several pathways for external candidates — whether you want to pursue a structured programme alongside your professional role or have your existing body of published work assessed for doctoral equivalence. I supervise external PhD projects at the intersection of software engineering, AI adoption, and empirical research methods, and I am always interested in hearing from practitioners who want to bring scientific rigour to the questions they face every day.
Is this for you? If you are a senior engineer, technical lead, architect, or engineering manager curious about turning practical experience into peer-reviewed knowledge, this could be the right next step. No prior academic publishing record is required for the structured programme — only genuine curiosity and the discipline to pursue it.