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...

AOT vs. JIT Compilation in Java

Which one is better?

../img/posts/2022/curves_cover.jpg
There are two ways of compiling a Java application: using Just in Time Compilation (JIT) or Ahead of Time Compilation (AOT). The first is the default mode, and it is used by the Java Hotspot Virtual Machine to translate bytecode into machine code at runtime. The latter is supported by...

Continue reading...

How to Write a Good Revision Letter

My system to address major revisions and get my papers accepted

../img/posts/2022/ring_cover.jpg
I just finished a major revision for one of my research papers.1 It was a lot of work, as usual. Writing a response letter for the editor and reviewers is always a challenging process. After receiving the editor’s decision, I had to put aside what I’m working on at the...

Continue reading...