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.
11 years of coding experience
6 years of employment as a software developer
PhD Information Retrieval, PhD Information Retrieval at University of Glasgow
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.
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.