Hello! I'm Michael Tegegn, a graduate research assistant at the University of British Columbia, where I conduct research on ML-based software security and ML reliability. I enjoy turning complex data into actionable insights and building robust ML-driven solutions. I'm experienced in malware analysis, interpretable/explainable ML, large-scale evaluation of ML models, exploratory data analysis, LLM-driven malware detection, and binary analysis. I thrive on solving challenging problems and collaborating with teams to create reliable software systems.

Michael Tegegn

Hello! I'm Michael Tegegn, a graduate research assistant at the University of British Columbia, where I conduct research on ML-based software security and ML reliability. I enjoy turning complex data into actionable insights and building robust ML-driven solutions. I'm experienced in malware analysis, interpretable/explainable ML, large-scale evaluation of ML models, exploratory data analysis, LLM-driven malware detection, and binary analysis. I thrive on solving challenging problems and collaborating with teams to create reliable software systems.

Available to hire

Hello! I’m Michael Tegegn, a graduate research assistant at the University of British Columbia, where I conduct research on ML-based software security and ML reliability. I enjoy turning complex data into actionable insights and building robust ML-driven solutions.

I’m experienced in malware analysis, interpretable/explainable ML, large-scale evaluation of ML models, exploratory data analysis, LLM-driven malware detection, and binary analysis. I thrive on solving challenging problems and collaborating with teams to create reliable software systems.

See more

Experience Level

Expert
Expert
Expert
Expert
Expert
Expert
Expert
Expert
Intermediate
Intermediate
Intermediate
Intermediate
Intermediate
Intermediate
See more

Work Experience

Research Assistant - ML reliability, with special focus on ML-based Android malware detection at Reliable, Secure, and Sustainable Software Lab (UBC)
September 1, 2021 - Present
Conducted ML reliability research with a focus on ML-based Android malware detection. Built ML-based detectors using a pre-trained CodeBERT for code and hierarchical transformers. Developed a scalable Android malware detection pipeline with context filtering using vector databases. Surveyed over 400 papers to identify key data properties impacting reliability under test-time evasion. Performed large-scale robustness evaluations under challenging dataset configurations and adversarial scenarios. Analyzed Android malware datasets to reveal near-duplication and inflated metrics. Led an LLM prompting case study on how software engineers use AI assistants, with results published in ACM CSUR and ASEW.
Undergraduate Researcher - Binary analysis at KAIST Software Security Lab
June 1, 2019 - June 1, 2021
Worked on the B2R2 binary analysis framework: built an assembler and lifter for x86 and ARM on .NET; created a full C++ name demangler; translated Intel x86 FP instructions into abstract representations; built a binary emulator on top of the lab’s IR to facilitate binary analysis.
Software Developer Intern - ML resource sharing at Backend.AI (Lablup)
December 1, 2020 - February 1, 2021
Contributed to a resource management and hardware sharing platform for ML tasks. Implemented matchmaking between web front-end compute requests and available resources (RAM, CPU, GPU) managed by a Python backend. Created and managed ML-configured containers preloaded with major libraries using Docker.
Teaching Assistant - Software Engineering at University of British Columbia
August 1, 2021 - December 1, 2023
Led lab sessions for a project-based software architecture course, evaluated artifacts from 40 groups focusing on design and testing milestones, and used tools such as Android Studio, Node.js, Jest, and Codacy.
Research Assistant – ML reliability at Reliable, Secure, and Sustainable Software Lab (UBC)
September 1, 2021 - Present
Developed ML-based malware detectors using pre-trained CodeBERT and hierarchical transformers with Python, PyTorch, and TensorFlow. Surveyed 400+ papers and identified key properties of training data affecting reliability under test-time evasion, with a paper published in ACM CSUR. Built a scalable Android malware-detection pipeline via LLM-based context filtering and vector databases, demonstrated in ASEW. Conducted large-scale robustness evaluations showing 90% of correct predictions can be explained by spurious correlations and analyzed dataset near-duplication (60%+), plus an ICSE-accepted case study on prompting AI assistants for software artifacts.
Undergraduate Researcher – Binary Analysis at S oftware Security Lab (KAIST)
June 1, 2019 - June 1, 2021
Worked on the B2R2 binary analysis framework; built an assembler/lifter for multi-architecture binaries on .NET; implemented a C++ name demangler; translated x86 FP instructions to abstract representations; developed a binary emulator atop the lab's IR to facilitate analysis with optimizations.
Software Developer Intern – ML resource sharing at Backend.AI (Lablup)
December 1, 2020 - February 1, 2021
Contributed to a resource management platform for ML tasks. Matched compute requests from the web front-end to available resources and created ML-configured containers preloaded with major libraries using Docker; worked on the Python backend and GraphQL interfaces.
Teaching Assistant – Software Engineering at University of British Columbia (UBC)
August 1, 2021 - December 1, 2023
Led lab sessions for a project-based third-year course covering software architecture and development life cycles, evaluating artifacts from 40 groups focusing on design, testing, modularity, reliability, and efficiency.

Education

Doctor of Philosophy (PhD) in Software Engineering at University of British Columbia (UBC)
January 1, 2026 - December 17, 2025
Master of Applied Science (MASc) in Software Engineering at University of British Columbia (UBC)
September 1, 2021 - November 1, 2025
Advanced BSc in Computer Science with Certificate in AI at KAIST (Korean Advanced Institute of Science and Technology)
September 1, 2017 - September 1, 2021
PhD in Software Engineering at University of British Columbia (UBC)
January 1, 2026 - December 17, 2025
MASc in Software Engineering at University of British Columbia (UBC)
September 1, 2021 - November 1, 2025
Advanced BSc in Computer Science with Certificate in AI at KAIST
September 1, 2017 - September 1, 2021

Qualifications

Certificate in AI KAIST
January 1, 2021 - December 17, 2025
International Student Scholarship in Korea KAIST
January 1, 2017 - December 17, 2025
Hanseong Sonjaehan Youth Scholarship KAIST
January 1, 2017 - December 17, 2025
National Ranking: 5th Highest Score in Ethiopian University Entrance Exam
January 1, 2016 - December 17, 2025
Certificate in AI
January 11, 2030 - December 17, 2025
International Student Scholarship KAIST
January 11, 2030 - December 17, 2025
Hanseong Sonjaehan Youth Scholarship KAIST
January 11, 2030 - December 17, 2025
National Ranking 5th in Ethiopian University Entrance Exam
January 1, 2016 - December 17, 2025

Industry Experience

Software & Internet, Education, Professional Services