Craig Macdonald

Professor Of Information Retrieval

Glasgow, Scotland, United Kingdom
email-iconphone-icongithub-logolinkedin-logotwitter-logostackoverflow-logofacebook-logo
Join Prog.AI to see contacts
email-iconphone-icongithub-logolinkedin-logotwitter-logostackoverflow-logofacebook-logo
Join Prog.AI to see contacts

Summary

🤩
Rockstar
🎓
Top School
Craig Macdonald is a Professor of Information Retrieval at the University of Glasgow with over a decade of experience bridging academic research and practical engineering. He holds a PhD in Information Retrieval and has progressed through roles from research student to professorship while contributing to industry collaborations, including a visiting scholar stint at Amazon. His technical work spans both theoretical IR and hands-on back-end development, with open-source contributions to notable projects like ColBERT (neural search) and pyjnius (Java-Python interop), demonstrating deep familiarity with search models, tokenization, and low-level library internals. Based in Glasgow, he combines rigorous research rigor with pragmatic code-level problem solving, often improving compatibility and subsystem robustness in mature codebases. An understated strength is his ability to navigate cross-language integration and model engineering challenges, making him effective at translating research into deployable systems.
code11 years of coding experience
job6 years of employment as a software developer
bookPhD Information Retrieval, PhD Information Retrieval at University of Glasgow
stackoverflow-logo

Stackoverflow

Stats
1reputation
0reached
1answer
0questions
github-logo-circle

Github Skills (20)

pytorch10
reflection10
python10
jna10
reflections10
nlp10
expressions9
model-checking9
checkpoint9
transformers9
java9
checkpointing9
machine-learning9
expression9
lambda9

Programming languages (13)

C#JavaC++RustCScalaTeXJupyter Notebook

Github contributions (5)

github-logo-circle
kivy/pyjnius

Feb 2020 - Oct 2020

Access Java classes from Python
Role in this project:
userBack-end Developer
Contributions:11 reviews, 55 commits, 32 PRs in 8 months
Contributions summary:Craig focused on modifying the `pyjnius` library's internals to improve Java class access from Python. Their contributions primarily involved refactoring code, such as changing method arguments, and making adjustments to the underlying reflection mechanisms. They also addressed specific issues related to class inheritance and interface implementations, as well as improving support for lambda expressions. The user's work demonstrates a strong understanding of the library's internal workings and how it interacts with Java.
pythonjni-wrapperpython27python38python36
stanford-futuredata/ColBERT

Dec 2020 - Apr 2021

ColBERT: state-of-the-art neural search (SIGIR'20, TACL'21, NeurIPS'21, NAACL'22, CIKM'22, ACL'23, EMNLP'23)
Role in this project:
userBack-end Developer
Contributions:5 commits, 4 PRs, 20 comments in 4 months
Contributions summary:Craig primarily focused on improving the codebase's compatibility and supporting existing functionality. Their commits include fixing dependencies to support older Python versions and implementing support for HTTP checkpoints. They made code changes related to tokenization and checkpoint loading, indicating an understanding of the model's architecture and data loading mechanisms. Furthermore, the user addressed a subclassing issue in the indexing functionality, demonstrating a grasp of the system's core components.
pytorchnaaclartneuripsstate-of-the-art
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.
Request Free Trial