# The Blog of Amir Mir > Software Engineer | Researcher | Passionate about Machine Learning and Software Engineering ## Posts - [My Advice for Prospective PhD Students](https://mirblog.net/index.php/2025/09/03/my-advice-for-prospective-phd-students/): It’s been a while since I wrote a blog post on my personal website. I wanted to write a blog post reflecting on my PhD journey after successfully defending my PhD in February 2025. I think it’s now the time to share my advice with prospective PhD students. Initially, I was thinking about giving people some general advice on how to complete a PhD with successful results and a happy outcome. However, I decided to offer two essential pieces of advice to people, which can potentially help them not only during their PhD journey but also after graduation, when the […] - [Deployment of Machine Learning Models (with an example)](https://mirblog.net/index.php/2022/04/25/deployment-of-machine-learning-models-with-an-example/): Last year, I wrote a blog post on the development and release of Type4Py. Type4Py is a machine learning model for code. In a nutshell, it predicts type annotations for Python source code files and enables developers to add types gradually to their codebases. At the time of the Type4Py release, its deployment was pretty simple. I didn’t use containerization (Docker) and Kubernetes, and the model was deployed on a single machine. There were two clear downsides to the initial deployment approach. First, I could not easily deploy the ML model and its pipeline on another machine. Because I had […] - [Development and Release of Type4Py: Machine Learning-based Type Auto-completion for Python](https://mirblog.net/index.php/2021/07/31/development-and-release-of-type4py-machine-learning-based-type-auto-completion-for-python/): Over the past decade, machine learning (ML) has been applied successfully to a variety of tasks such as computer vision and natural language processing. Motivated by this, in recent years, researchers have employed ML techniques to solve code-related problems, including but not limited to, code completion, code generation, program repair, and type inference. Dynamic programming languages like Python and TypeScript allows developers to optionally define type annotations and benefit from the advantages of static typing such as better code completion, early bug detection, and etc. However, retrofitting types is a cumbersome and error-prone process. To address this, we propose Type4Py, […] - [On the importance of writing skill in Academia](https://mirblog.net/index.php/2021/05/01/on-the-importance-of-writing-skill-in-academia/): In this post, I share my thoughts on the importance of writing skill in Academia. Currently, I’m a PhD student. So a large part of my job is to write papers and a thesis at the end. I don’t consider myself a good writer by any means, though I got compliments about my writing from some people. This post is useful mostly for novice researchers like PhD students and also people who want to consider a research career in Academia. - [9 useful tips for PhD students](https://mirblog.net/index.php/2021/03/13/some-useful-tips-for-phd-students/): I’m back again with another post after a long time! I’m currently a second-year PhD student in software engineering at TU Delft. Since last summer, I wanted to write a blog post for giving some tips to PhD students. You might now call me a “lazy person”!! 😀  but I tweeted some short tips a while ago. However, on Twitter, it’s not possible to explain things and give examples. I’m also writing this post to remind myself of the below tips, given that I haven’t finished my PhD yet.  Without further ado, let’s talk about the tips:   - [mlpack: A C++ machine learning library](https://mirblog.net/index.php/2019/03/31/mlpack-a-c-machine-learning-library/): Nowadays, most people use scikit-learn for machine learning projects. Because scikit-learn is a top quality ML package for Python and lets you use a machine learning algorithm in several lines of Python code, which is great! As a machine learning researcher, I personally like to try and use other machine learning libraries. It’s good to have knowledge of other ML libraries in your arsenal. Since I used C++ for my projects, I decided to try a C++ machine learning library. - [The main sections of a research paper are explained (With examples from a machine learning research paper)](https://mirblog.net/index.php/2019/02/28/the-main-sections-of-a-research-paper-are-explained-with-examples-from-a-machine-learning-research-paper/): To stay up-to-date in your field of research or study, you should read research papers. However, reading a research paper is not like reading a newspaper. Because a paper has a formal structure that consists of several sections. Authors of research papers know the structure quite well. It is also essential for readers to be familiar with the main sections of a research paper. This helps readers to quickly find the information they are looking for in a research paper. Moreover, it helps them comprehend new ideas and methods of a paper better. Aside from gaining new knowledge, reading research papers […] - [A Review of the Book "The Hundred-Page Machine Learning Book" by Andriy Burkov](https://mirblog.net/index.php/2019/01/11/a-review-of-the-book-the-hundred-page-machine-learning-book-by-andriy-burkov/): Currently, many people want to learn about Machine Learning. Because they see fancy and intelligent things in the media from big tech companies.  To learn about this appealing subject (Machine Learning), there are numerous textbooks and tutorials out there. However, machine learning textbooks are often more than 500 pages. Also, these books are written for the technical audience.  That is those readers who have a degree in Computer Science, Mathematics or Engineering. Even CS graduates often find some topics of Machine Learning hard to grasp. - [An accuracy comparison between scikit-learn's SVM and LightTwinSVM program](https://mirblog.net/index.php/2018/12/28/a-accuracy-comparison-between-scikit-learns-svm-and-lighttwinsvm-program/): Recently, I’ve introduced the LightTwinSVM program on my blog (If you haven’t read it, check out this post.).  It is a fast and simple implementation of TwinSVM classifier. Some people might ask why I should use this program over other popular SVM’s implementation such as LIBSVM and scikit-learn. The short answer is that TwinSVM has better accuracy than that of SVM in most cases. In order to show the effectiveness of the LightTwinSVM program in terms of accuracy, experiments were conducted on 10 UCI datasets benchmark datasets. - [LightTwinSVM: A Fast, Light-weight and Simple Implementation of TwinSVM Classifier](https://mirblog.net/index.php/2018/12/14/lighttwinsvm-a-fast-light-weight-and-simple-implementation-of-twinsvm-classifier/): Support Vector Machine (SVM) is a popular and state-of-the-art classification algorithm.  Hence many packages and implementations of standard SVM can be found on the internet. However, there are some interesting extensions of SVM that has a slightly better prediction accuracy. Of these extensions, Twin Support Vector Machine (TSVM) has received more attention from scholars in the field of SVM research. Even I myself have published a classifier based on TSVM and KNN. TSVM does classification using two non-parallel hyperplanes as opposed to a single hyperplane in standard SVM (To know more about TSVM, you can read this blog post.).  Unlike SVM, TSVM […] - [A Brief Introduction to Twin Support Vector Machine Classifier](https://mirblog.net/index.php/2018/12/07/a-brief-intro-to-twin-support-vector-machine-classifier/): Support Vector Machine (SVM) was proposed by Vapnik and Cortes in 1995 [1]. It is a very popular and powerful classification algorithm. The main idea of SVM is to find an optimal separating hyperplane between two classes. Due to SVM’s great classification ability, it has been applied to a wide variety of applications. Over the past decade, scholars have proposed classifiers on the basis of SVM. Among the extensions of SVM, I’d like to introduce Twin Support Vector Machine (TSVM) [2]. Because it has been received more attention. ## Pages - [Projects](https://mirblog.net/index.php/projects/): Type4Py:  Deep similarity learning-based type inference for Python The neural model is trained on the ManyTypes4Py dataset and achieves 79.2\% accuracy considering the prediction of type annotations for parameters, return values, and variables. It has a Flask app that exposes an endpoint to query the pre-trained model and return predicted type information for a given Python source file. A VS Code extension that provides ML-based type auto-completion for Python and assists developers to gradually add type annotations to their codebases (has more than 1800 installs) LIBTwinSVM: A Library for Twin Support Vector Machines A simple and user-friendly Graphical User Interface […] - [Publications](https://mirblog.net/index.php/publications/): Conferences Mir, A. M., Keshani, M., & Proksch, S. (2024, April). On the Effectiveness of Machine Learning-based Call Graph Pruning: An Empirical Study. In 2024 IEEE/ACM 21st International Conference on Mining Software Repositories (MSR) (pp. 457-468). IEEE. Venkatesh, A. P. S., Sabu, S., Mir, A. M., Reis, S., & Bodden, E. (2024, April). The Emergence of Large Language Models in Static Analysis: A First Look through Micro-Benchmarks. In Proceedings of the 2024 IEEE/ACM First International Conference on AI Foundation Models and Software Engineering (pp. 35-39). Shivarpatna Venkatesh, A. P., Sabu, S., Wang, J., M. Mir, A., Li, L., & Bodden, […] - [Blog](https://mirblog.net/index.php/blog/) - [Home](https://mirblog.net/): Welcome to my blog! 👋 I am currently a Software Engineer at IMI Critical (Process Automation). I enjoy tackling interesting and challenging problems and proposing efficient solutions. I recently finished my PhD in the Software Engineering Research Group (SERG) at the Delft University of Technology. I conduct research at the intersection of Software Engineering and Machine Learning. Specifically, I am interested in boosting developers’ productivity with AI-powered tools and techniques. During my PhD, I developed Type4Py, an ML-based type auto-completion tool designed to assist developers in retrofitting type annotations within their codebases. Additionally, I investigated the effectiveness of machine learning techniques in […] - [Contact Me](https://mirblog.net/index.php/contact-me/): You can reach out to me by sending a mail to: mir[dash]am[at]hotmail[dot]com - [About Me](https://mirblog.net/index.php/about-me/): Hello This is the personal blog of A. Mir. First of all, I’d like to thank you for visiting my personal blog. The main purpose of my personal blog is to create useful tutorials and content for people who are interested in AI and Machine Learning. To help you know more about me, I have answered a set of questions about myself that you may have. Actually, these are somehow answers to the frequent questions in a job interview. [faqs filter=”about-me” style=”toggle”]   [comment]: # (Generated by Hostinger Tools Plugin)