Almost everyone have something to talk about 2020. What a year! It’s definitely a year that we will tell to our children and grandchildren as bed time stories. But this won’t be a story of how the Covid-19 shake the world. Rather it will be short summary of important events in my life this year.

Meeting with Jibble Product Team

Well, that’s actually an event of December 2019. Since the motivation and all the funny moments of that event have effected the whole 2020, I need to mention it.

Jibble yearly event(also the first one) took place in Istanbul. It was a great one week…


At Jibble, we moved to a multi module architecture. Alongside with that, we have Kotlin Multiplatform that powers our core business logic and gives us a shared code between Android and iOS. It’s a monorepo project and we only use Kotlin Native for pure business logic code. Everything else related with iOS and Android is being handled on native side. The project is mainly a MVVM architecture. But we have extra couple of layers. Main components are:

  • ViewActivity or Fragment
  • ViewModel → Communicator between Interactor and the View
  • InteractorKotlin Native shared logic.
  • Assembler → Assembles View


When designing your API/SDK functions in Kotlin, there are some useful functions that called Preconditions. Those functions can help you to ensure your functions are used in proper way. You can always define what are the requirements of your function in documentation. But Preconditions can prevent false use of the functions even if developer doesn’t care about reading the documentation.

Preconditions.kt file

I will show two of them in an example. require() and check()

Let’s say we are writing a function to read characters in a file. This functions takes an argument as filePath: String and returns the character count as Int.


Often times I find myself observing simple values from LiveData or Rx observables and setting them to view items like TextViews or EditTexts. Or setting visibility of a Button or TextView.

Post values in ViewModel


Kahve en sevdiğim içecek diyebilirim. Hatta bir gün boyunca su içmeyi es geçtiğim ama kahve içmeyi atlamadığım zamanlarım olabiliyor. Bu durum kötü alışkanlıklar statüsünde tabiki, kabul ediyorum.

Kahve içerken de artık, üniversitedeki umursamaz zevksizliğimi bir kenara koyacak olursam, ciddi anlamda seçici davranmaya çalışıyorum. Çok uzun bir süredir öğütülmüş kahve almayı, hatta bir coffee shop’tan(bunu hep İngilizce olarak söyleyeceğim sanırım, Türkçe’sine dilim alışamadı) kahveyi taze çektirme işini de geride bıraktım. Yanlış okumadıysam, çekilmiş(öğütülmüş) kahvenin bayatlama ömrünün 5 gün civarında olduğunu biliyorum. Bu nedenle Starbucks gibi bir kahveciye gidip, muhtemelen çekirdeği de bayatlamış olan bir kahveyi öğüttürüp eve getirmek istemiyorum.

Bu yazı…


I’ve been working remotely as a Senior Android Engineer for more than a year. I should admit that it’s a wonderful opportunity. Eliminating commuting time and stress, creating your own schedule(well, I’m definitely not talking about sleeping by day and being a night owl), allocating more time to your wife and your parents and being with them when they need your help are some of the perks of being a remote worker. I truly experienced some moments that I was so thankful for all of the above.

But this post is not about the perks of being a remote worker…


Developer ve maker ruhlu insanların bir araya geldiği, bilgi paylaşımı yaptığı ve çalışma grubu oluşturduğu bir platform olarak Bursa I/O topluluğunu hayal ettik.

Günümüzde doğru insanlarla bir arada ve etkileşim içinde olmak özellikle mobil teknolojiler açısından büyük önem taşıyor. Mobil teknolojilerin geleceği “nesnelerin interneti” olarak tanımlanan ve temelde elektronik sistemlerin yazılımlar vasıtasıyla haberleşebilir olmasına dayanan akıllı cihazlara dönüşüyor. Bu konuda farkındalık yaratarak yazılım ve mobil teknolojiler konusunda çalışanların artmasını umuyoruz.

Bursa’da yazılım ve elektronik konusunda çalışan ancak birbirinden haberdar olmayan, etkileşim kuramayan bir çok insan olduğunu düşünüyoruz. Bu amaçla ilk olarak Bursa I/O Facebook grubunu kurduk. Çeşitli paylaşımlar yaparak insanları…


Haftasonunu internetteki blogları ve Medium’u tarayarak geçirirken, Serdar Kuzuloğlu’nun Dünya Halleri bloguna yolum düştü. Bu blogda haftalık özetler yer alıyor ve farklı kategorilerde içerik bulunabiliyor. 64.Hafta özetlerini sırayla okurken, İnternet/Girişimler sekmesinde rastladığım bir maddede New York Halk Kütüphanesi’nin zaman aşımı veya içerik sahibinin talebiyle kamuya malolan (public domain) içeriğinin tamamını internete açtığını gördüm. İlgimi çekti ve linke’e tıkladım. Bunda Serdar Kuzuloğlu’nun “187 binden fazla dosya içeren bu kaynak için hazine kelimesi bile yetersiz kalıyor.” cümlesi etkili oldu. Devamında Digital Collections kısmına girip, aklıma ilk gelen arşivlik kelimeleri yazdım arama alanına:

  • turkey
  • ottoman empire

Arama sonuçlarında birçok imaj döndü. Ve dönen…


Sometimes we have long coding marathons. Dealing with bugs in the projects and coding for hours can be very painful if you repeat it every week. Sometimes you have to get up from your chair and leave your MacBook behind. But sitting on a couch, sleeping in bed or going for a movie is not always a good way of relaxation. I think the most suitable relaxation method for human body is to go nature. Avoiding the technology for a while as possible as you can.

As I mentioned before on my Instagram page, here at Peakode we really love…

Can Uludağ

Senior Android Engineer @ Backbase| Former Co-Founder @ Peakode | https://uludagcan.com/me/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store