Skip to main content


Photo of Erhan Bagdemir

Erhan Bağdemir's Blog

Hey there, here is Erhan and I'm a software engineer and a passionate photographer and in this blog I am writing about information technology. You can also find me on Twitter.




Liskov Substitution Principle

Posted: August 29, 2019 | Design , OOP
Liskov Substitution Principle (LSP) is a slick one. Violating this principle leads up to bugs which are hard to spot since the overriding subclasses change the internal state of the instance of the parent in such way so parent’s representation and the semantics of it is broken. Let’s have a look ...

Coroutines in Java

Posted: March 10, 2019 | Java , Coroutines , Programming
A few months ago, as I was attending the Devoxx’18 Conference in Antwerp, Belgium, one of the most spectacular topics which I was excitedly looking forward to following, was the Project Loom’s “Fibers”. Fibers are lightweight user mode threads scheduled by the JVM runtime — not by the Operating S...

How to Create a Mind (A Book Review)

Posted: February 7, 2019 | Java , Coroutines
The dream of emulating human brain is one of the most challenging endeavour of our time. As technological advancement is gradually speeding up and the vast amount of data giving cues about patterns of thinking, it might look like as if we indeed are not that far away from passing the Turing Test ...

Protocols and multimethods

Posted: September 5, 2018 | Clojure , LISP
Similar in Command Pattern, that we are familiar from object-orient programming, Clojure provides multimethods and protocols which enable developers to implement such runtime polymorphism while forming abstractions in functional-fashion and implementations thereof. In this blog article, I will de...