Skip to content
View otsembo's full-sized avatar
πŸ–₯️
Shipping Kotlin code.
πŸ–₯️
Shipping Kotlin code.
Block or Report

Block or report otsembo

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
otsembo/README.md
  • Howdie, Folks! πŸ‘‹πŸ€“
  • πŸ€ͺ I am Ian Okumu, Software Engineer
  • πŸ“± I have much ❀️ for mobile
  • πŸ“ˆ This is what I have been doing:

Lines of code

I'm an Early 🐀

🌞 Morning                2428 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   32.04 % 
πŸŒ† Daytime                2788 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   36.80 % 
πŸŒƒ Evening                1840 commits        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   24.28 % 
πŸŒ™ Night                  521 commits         β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   06.88 % 

πŸ“Š This Week I Spent My Time On

πŸ•‘οΈŽ Time Zone: Africa/Nairobi

πŸ’¬ Programming Languages: 
Kotlin                   16 hrs 16 mins      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘   86.78 % 
Python                   1 hr 34 mins        β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   08.40 % 
XML                      24 mins             β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   02.19 % 
HTML                     9 mins              β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   00.86 % 
TOML                     8 mins              β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   00.72 % 

πŸ”₯ Editors: 
Android Studio           16 hrs 3 mins       β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘   85.62 % 
VS Code                  1 hr 43 mins        β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   09.20 % 
Intellijidea             58 mins             β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   05.18 % 

πŸ’» Operating System: 
Linux                    18 hrs 44 mins      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   100.00 % 

I Mostly Code in Kotlin

Kotlin                   52 repos            β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   31.71 % 
JavaScript               45 repos            β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   27.44 % 
HTML                     12 repos            β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   07.32 % 
EJS                      1 repo              β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   00.61 % 
SCSS                     1 repo              β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   00.61 % 

Last Updated on 26/05/2024 18:39:13 UTC

Recent Contributions ⏰

  • Jetpack DataStore: A Multiplatform Solution - This article describes how to implement persistent storage using Android Jetpack Datastore library. The article speaks of how to use the library wuth multiplatform support.
  • K2 Compiler with Jetpack Compose - In this article, I speak on how to get started with the new K2 Compiler slated for Kotlin 2.0. I discuss results from a benchmark test comparing the build speeds for the original compiler against the new one. I also discuss how to get started with the K2 Compiler using Compose Multiplatform.
  • Compose Animations (IO Extended Nairobi 2023) - In this talk, I speak on how to get started with creating animations using Compose Multiplatform. The session was done in the Android track at the IO Extended event.
  • Compose Canvas API - At times, your favorite UI framework; Jetpack Compose, does not have a specific UI element that you need. Needless to worry, you can create any custom shape of your liking using Jetpack Compose's Canvas API. This article describes how you can recreate a few of the popular app logos using just the Compose Canvas API.
  • Implement LinkedList using Kotlin/Native - This is a sequel to this article about Kotlin/Native. I discuss the implementation of a LinkedList using Kotlin/Native target.
  • Kotlin Generics - In this article, I speak about how one can utilize the power of Generic programming to make their Kotlin code more concise, readable and reusable. Unleash the power of Kotlin Generics by understanding its in's and out's.
  • Reactive Programming with Kotlin - The world of reactive programming unleashed a whole new dimension on how we can create more performant applications (both frontend and backend). This article dives deep into the world of reactive programming with Kotlin and how we can have it power our applications.
  • Kotlin / Native: An Introduction - Native binaries can seem scary, I mean who wants to be writing some C / C++ jargon. Well, you do not have to; you can get an introduction to Kotlin/Native. This article describes the Kotlin/Native target and how we can make performant apps that do not require virtual machines.
  • Dynamic Web Apps with Compose for HTML (KotlinKenya User Group/Android254) - As an Android developer, you may not have enough time to learn another set of programming languages in order to create user interfaces on the web. This talk at Kotlin Kenya User Group, I and Prince Mwai speak on how to use Kotlin to create web applications with Compose for HTML.
  • Kotlin/JS - The language of the web has been considered to be JavaScript for the past 28+ years. Now we can use the Kotlin language to power the language of the web. Get introduced to this Kotlin Multiplatform target with this article.
  • Improving Kotlin Loops - In this talk at the #Android254 meetup in October 2022, I discuss how Kotlin developers can utilize the power of functional programming to create more efficient loops for repetitive actions.
  • Learning how to learn (IO Extended Nairobi 2022) - My #IOExtended2022Nairobi talk. I take time to discuss the methodologies developers can use to optimize their own productivity and keep themselves up to par with the latest technologies as they innovate on their current ones.
  • Accessibility on Android (GDSC IO Extended Nairobi 2022) - In my IOExtended Students Edition Nairobi 2022, I speak of how we can build for the next billion users on Android.
  • Accessibility on Android (KotlinKenya User Group/Android254) - An extended version of my GDSC talk where I speak more on the importance of accessibility when building applications.

Libraries & Tools πŸ”¨

I am big on developer tools and improving Software Engineers' lives. I write a lot of internal tools for where I work, however, I also have several open-source tools that you can utilize in your projects:

  • mathified-kt - A Kotlin Multiplatform library for Math enthusiasts. Take the opportunity and try out all those formulas your Math teacher/professor was blabbing about πŸ˜ƒ.
  • ruby-daraja - A Ruby wrapper for the Safaricom Daraja API. It provides a simple interface to the API endpoints and allows for smooth setup in Ruby on Rails applications or any other Ruby application.
  • kotlin-multiplatform-samples - Explore different samples for various Kotlin Multiplatform projects. Identify templates and explore the amazing world of Kotlin and its various targets. Beware, we love food 🍟, πŸ˜ƒ.

PS: I am accepting contributions for all these projects.

Courses πŸ–₯️

I like creating courses for Android and Kotlin developers. I have featured courses at industry leading platform, Kodeco. I also create free course that can be accessed on my YouTube channel. Get in and gain some wonderful Kotlin knowledge.

  • Jetpack Compose: Getting Started - An introductory course on the fundamentals of building UIs using Jetpack Compose. This course covers everything from the basics of UI elements to advanced techniques of styling Jetpack Compose UI elements.
  • Lottie Animations with Jetpack Compose - Lottie is a great library to add animated files to your app. Explore how to add visually appealing and engaging animations to an Android app by using Lottie animations and Jetpack Compose without the need for complex coding or heavy graphic assets.
  • kt whisperer - My YouTube channel that has a wide variety of tutorials in Kotlin and Android. This channel will provide you with relevant knowledge in a quick and easy manner.

Other Contributions πŸ”–

When I am not writing kotlin, I write the language of love; #ruby and the beloved framework; **Ruby on Rails**. Checkout the following:

  • Derailed - An article series that covers the basics of Ruby on Rails by building my flagship product, Rutubishi. The series covers everything from:

    • Databases
    • Testing
    • Containerization
    • Caching with Redis
    • CI/CD with GitHub Actions
    • Authentication / Authorization with JWT

Pinned

  1. rutubishi/TableTop rutubishi/TableTop Public

    TableTop is a restaurant reservation system built with Kotlin Multiplatform.

    Kotlin

  2. ruby-daraja ruby-daraja Public

    A ruby client for Safaricom's Daraja API

    Ruby 13 1

  3. droidconKE2023Android droidconKE2023Android Public

    Forked from droidconKE/droidconKeKotlin

    Kotlin

  4. Travelly Travelly Public

    A simple travel app UI built with Jetpack Compose

    Kotlin 1

  5. my-todos-sinatra my-todos-sinatra Public

    My-Todos is a basic API built with ruby's Sinatra DSL.

    Ruby 1 33

  6. sinatra-pod/the-force sinatra-pod/the-force Public

    The force is here. A web application for Star Wars fans; get information about all the films in the franchise.

    TypeScript 2