Let's Face It: Paper Figures Are Always Subject to Change

The story of a single figure

../img/posts/2023/2023-03-10/initial_whiteboarding_cover.jpg
There is one painful truth about the process of writing research papers that I haven’t heard anyone talking about during my years as a PhD student: Figures keep changing until the very last moment! It seems that the journey of figures (and other kinds of visualizations) in research papers is...

Continue reading...

Securing a Permanent Job in Sweden Before Completing My PhD

My personal experiences and tips

../img/posts/2023/subway_in_red_cover.jpg
For better or worse, a PhD is a time constrained endeavour. For me, this represented almost 5 years of full-time research in Computer Science at KTH. When approaching completion, the decision of whether to pursue a career in academia or explore other paths lay before me. After some key considerations,...

Continue reading...

How to Write a Good Cover Letter for a Research Paper

Quick an easy

../img/posts/2022/knowledge_cover.jpg
Submitting a research paper is probably one of the most happy moments in the working life career of PhD students. You’ve been dealing with a research paper for months, maybe years. And you know, clicking that “submit” button represents such a moment of relief. You just want it to be...

Continue reading...

The True Value of Attending Academic Conferences

It's not only about the technical content

../img/posts/2022/fse_cover.jpg
I recently attended the 29th edition of ESEC/FSE 2022 in Singapore. ESEC/FSE is one of the most prestigious conferences in the Software Engineering field.1 This was my first time participating in an academic conference (in person). I went there to present two papers. But let me admit it, I had...

Continue reading...

The Execution Lifecycle of a Java Application

Or... what happens when you run a Java program?

../img/posts/2022/statue_cover.jpg
If you are reading this post it’s likely that you already know how to write Java code. That’s very good for you, I think everyone should know how to code these days (in the same way everyone should know about basic math operations such as +, -, *, and /...

Continue reading...

../img/posts/2022/cheers_ascii_cover.jpg
There is a common belief that top-class software developers can do their job without ever abandoning the terminal. I think this is true to some extent. It is almost impossible to become an outstanding software developer without knowing how to get the most out of the terminal. Personally, I treat...

Continue reading...

No One Cares About Your Research!

A comfortable truth

../img/posts/2022/park_paint_cover.jpg
That’s the truth. No one cares about what you’re doing in your PhD, no one, no one!1 But don’t be sad, because this is actually a very comfortable truth. I only came to this realization after a while. Once you get it, then you will start looking at your PhD...

Continue reading...

The Dynamic Features of Java

A long-standing challenge for static analyzers

../img/posts/2022/untamed_horse_cover.jpg
The existence of dynamic features built-in within the language allows Java developers to dynamically transform their program executions at runtime. For example, using the Java Reflection API, one can inspect and interact with otherwise static language constructs such as classes, fields, and methods, e.g., to instantiate objects, set fields and...

Continue reading...

Inversion of Control and Dependency Injection in Java

The holy grails of modern enterprise Java frameworks

../img/posts/2022/universitetet_cover.png
Inversion of Control (IoC) is a programming principle. The idea of IoC is delegating the control of parts of our application to a framework that initializes some specific task for us. Dependency injection (DI) is a popular design pattern that applies the IoC principle. This pattern was made popular by...

Continue reading...