Kotlin Pioneer. Meet Damian – an Android Developer with 16 Years of Experience
Damian built apps for the very first Android smartphone. Do you even remember that phone? He started to use Kotlin before most developers learned about its existence. He dedicated his time to sharing knowledge about it. Eventually, he became one of the ambassadors of Kotlin. Meet Damian – a Senior Android Developer from Bright Inventions.
I got my first software development job in 2006. At that time I studied externally Computer Science. I chose that field because computers were the only thing that really interested me. Like many others, it all started with gaming. I figured that programming was intriguing because it involved solving problems and that felt exciting.
At my first job, I was developing games for phones. Obviously not for smartphones because they weren't on the market yet. For example, I worked on a Pro Evolution Soccer game. So I started my career as a game dev and I couldn’t be happier about it. I was a dedicated gamer after all. 🙂 I worked with Java 2 Platform, Micro Edition. Yes, I used tech that’s dead at this point. 😉
It happened at my second job around 2008. This was the first time I got to work with Android. Back then there was only one smartphone with Android OS. The one and only G1 phone with a very unique slide-out QWERTY keyboard. Maybe some people still remember this phone. 😉
My job was to rewrite the software for Android. I just loved Android from the first interaction with it. I could see the tremendous quality improvements made by Android. It was just easier to write code.
I got so into it that I built my own apps after hours. I launched my app for spinning workout enthusiasts just to see how it is to launch something on Google Play. My app helped to create playlists for workouts on your MP3. At some point, I got over 2000 users. Obviously, the app couldn’t survive the streaming era. However, this project gave me many possibilities to learn about Android development.
I changed jobs from time to time but from then my priority was to always work exclusively with Android.
I started to use Kotlin when there wasn’t even a stable version of it. I had the opportunity to use it while developing a project at work from the scratch. Kotlin didn’t even have a 1.0 version back then.
Kotlin was so unknown to developers that when I tried to talk about it with another Polish dev they thought that I talked about a Polish ketchup brand because it is called Kotlin too. 🙂 However, Kotlin was then unknown globally, not only among Polish programmers.
I decided to spread the word about Kotlin. I was a speaker at various events. I also created other content about Jetbrains’ solution. There was one special video interview I was a part of. The video was listed by JetBrains as one of the Top 5 Events Recordings about Kotlin in 2015. Since 2017 I also shared my Android development experiences on my blog.
Jetpack Compose is a new toolkit to build native UI for Android apps. It is an alternative to XML. It’s still in the early phase of development. Even though, my guts tell me that this is the future, just like I felt about Kotlin. It is much easier to write UI with Jetpack Compose. Compared to XML, working with Jetpack Compose gives you more control over UI. Also, you can manage the state of the views and as a result, you develop UI avoiding more bugs in the process.
Obviously, the Jetpack Compose library is in its early stages. So it still doesn't work as we expect it to do, for example, there have been issues with the preview. Yet, I guess we all remember that the Android Studio preview had its issues at the beginning as well. It is a typical cycle of life for every new library or language.
I would utilize Jetpack Compose on every new mobile project. However, I don’t think that developers should now migrate all their solutions to it. Every migration of an advanced project is a challenge. No matter if we talk about Jetpack Compose or other tools.
I must say, though, that Jetpack Compose makes the potential switch as easier as it is possible. You can mix old views with new ones. You can build views in Compose and then implement them with XML. So you can use Jetpack in huge projects but only for one screen just to see if it works for your team. After all, it is not as a challenging transition as some could think.
In September I will conduct a free webinar – “Introduction to Jetpack Compose”. It will be held in Polish. I will show how this new Google framework works and answer any questions. I invite Android developers who haven’t had a chance to try Jetpack Compose yet. You don’t have to be a senior mobile developer but you should have some experience in writing Android apps.
I started to look for a job because the project I worked on wasn’t satisfying to me. My friend who is an Android Developer as well recommended Bright Inventions and linked me with Ula. We started to talk and I liked what I heard. I appreciated the fact that Bright Inventions is not an outsourcing company. Here you work as a team for the client. Also, it suits me that Bright is a small company, so you don’t have to worry about bureaucracy or following corporate standards, etc.
You believe in the power of knowledge-sharing. What are best practices for knowledge exchange among developers?
When I joined Bright Inventions, I got a chance to introduce bi-weekly Android devs meetups. I must say that this is a great way to share knowledge. It’s all about giving everyone opportunities to interact and talk about projects and challenges in a friendly, open atmosphere. Meetings aren’t mandatory but I can see that people gladly participate.
It often turns out that simple talks about our recent tasks become great starters for inspiring discussions. I get to know other people's perspectives and it can only make me a better programmer.
I’ve noticed that these meetings have helped some people to really speak up. Thus, it builds strong relations among Android devs despite being on different teams. Thanks to meetups like that it is easier to call or message a colleague and ask about their opinion or help. I believe that organizing meetups like that are one of the most effective ways to share knowledge internally.
I work on a team that builds a mobile solution for a building construction company based in Germany. We build an Android app for employees and contractors. The client already owns a web app and they needed our support to build a mobile one. I enjoy the fact that we work closely with the client. They trust us and our expertise. We are a partner helping to meet all their business objectives.
Soon we will launch the MVP. The app’s core is an offline mode. Building offline mode was definitely a technical challenge for me. But these are typical challenges every programmer faces on daily basis.
If my job was only writing code I would get bored so fast. I am fulfilled when I get to design processes, life cycles, and the whole logic of the app. I am definitely a person on the team who creates most of the feature diagrams. Figuring out how something should work is much more intriguing to me than writing lines of code. Code is just one thing, nothing unusual, everything that surrounds it determines if the project succeeds.
I spend lots of my free time with my wife and daughter. Also, I am a Path of Exile game maniac. When there is a new league released I can even take some days off to play it. Plus, I work on my own app with a friend. During winter I love snowboarding. I read books and follow movies and TV series on every available streaming platform. The app I work after hours is actually related to that passion. Maybe someday you will download it on your phone. 😉