Company
How We Grow and Learn
Continuous learning is our motto. We share how we foster an environment in which learning is encouraged and most importantly materialised.
My Internship at Nimble
Our multi-talented Natcha Pongsupanee shares her experience during her 7 months internship.
Product
Product Backlog Ownership — Why It Matters
Have you ever loathed a Product Owner for complaining about this one small change that you made in the backlog? Here is why they got frantic.
From Pivotal Tracker to Clubhouse
The reasons why we chose to move from Pivotal Tracker to Clubhouse for Agile product development.
Code Reviews: A Tale of Two Developers
Pocket handbook for reviewee and reviewers to get the most of code reviews.
iOS
Modularizing iOS Applications with SwiftUI and Swift Package Manager - A Modern Approach
Learn how to break down your app into smaller, more manageable components and take advantage of the benefits of modularization using SwiftUI and the Swift Package Manager.
Adding Dynamic Custom Typing to your iOS Project
A simple guide to introducing Dynamic Typing for a custom font to your UIKit and SwiftUI project.
Have Fun at Home Screen with iOS Widget
Step-by-step guide on how to create a Widget Extension for iOS/MacOS apps
A Better Architecture to Implement Forms in iOS Applications
How to implement a clean and maintainable Form Architecture with UITableView.
Creating Local Authentication SDK on CocoaPods
Step-by-step guide on how we created a biometric authentication SDK published on CocoaPods.
Abstract Model in Swift
Using protocols as a base for models can help to better architect iOS applications.
Jenkins Pipeline for Mobile Testing
Step-by-step guide on how to configure and execute a CI/CD pipeline on a dockerised Jenkins server.
Dockerised Jenkins for mobile testing
Step-by-step guide on how to set up a Dockerised Jenkins Master-Slave-node architecture for mobile testing.
Android
Linting KMM Android Application with Danger
A starter guide for adding the static code analyzer for a Kotlin Multiplatform Mobile Android application, with Danger.
Tips for working with Preview in Jetpack Compose
How to avoid rendering errors by decoupling the screen contents and efficient use of PreviewParameterProvider and Multipreview annotations to preview multiple states of a Compose Screen.
Popular methods to enhance your Android application security
Step-by-step walkthrough on some practical security techniques on Android.
It’s time to support Edge-to-Edge
Step-by-step guide on how to enable Edge-to-edge support and how to deal with API level compatibility on Android
Android Bangkok Conference 2020
The Android Conference is a great opportunity to learn from experts & fellow developers. Here are the detailed slides and code samples for our talk on Android x Protobuf.
RxJava DebounceIf Operator
Step-by-step walkthrough on implementing a custom RxJava operator debounceIf by leveraging Kotlin extension methods.
Jenkins Pipeline for Mobile Testing
Step-by-step guide on how to configure and execute a CI/CD pipeline on a dockerised Jenkins server.
Dockerised Jenkins for mobile testing
Step-by-step guide on how to set up a Dockerised Jenkins Master-Slave-node architecture for mobile testing.
Mobile
Linting KMM Android Application with Danger
A starter guide for adding the static code analyzer for a Kotlin Multiplatform Mobile Android application, with Danger.
Modularizing iOS Applications with SwiftUI and Swift Package Manager - A Modern Approach
Learn how to break down your app into smaller, more manageable components and take advantage of the benefits of modularization using SwiftUI and the Swift Package Manager.
Tips for working with Preview in Jetpack Compose
How to avoid rendering errors by decoupling the screen contents and efficient use of PreviewParameterProvider and Multipreview annotations to preview multiple states of a Compose Screen.
Adding Dynamic Custom Typing to your iOS Project
A simple guide to introducing Dynamic Typing for a custom font to your UIKit and SwiftUI project.
Popular methods to enhance your Android application security
Step-by-step walkthrough on some practical security techniques on Android.
Have Fun at Home Screen with iOS Widget
Step-by-step guide on how to create a Widget Extension for iOS/MacOS apps
A Better Architecture to Implement Forms in iOS Applications
How to implement a clean and maintainable Form Architecture with UITableView.
It’s time to support Edge-to-Edge
Step-by-step guide on how to enable Edge-to-edge support and how to deal with API level compatibility on Android
Creating Local Authentication SDK on CocoaPods
Step-by-step guide on how we created a biometric authentication SDK published on CocoaPods.
Android Bangkok Conference 2020
The Android Conference is a great opportunity to learn from experts & fellow developers. Here are the detailed slides and code samples for our talk on Android x Protobuf.
RxJava DebounceIf Operator
Step-by-step walkthrough on implementing a custom RxJava operator debounceIf by leveraging Kotlin extension methods.
Abstract Model in Swift
Using protocols as a base for models can help to better architect iOS applications.
Jenkins Pipeline for Mobile Testing
Step-by-step guide on how to configure and execute a CI/CD pipeline on a dockerised Jenkins server.
Dockerised Jenkins for mobile testing
Step-by-step guide on how to set up a Dockerised Jenkins Master-Slave-node architecture for mobile testing.
Web
Passkeys in Rails: The end of passwords?
Discover the future of online security with passkeys, by learning to code your own solution in Rails using webauthn-ruby or devise-passkeys for enhanced digital protection.
Phoenix 1.7: A Major Step for the Phoenix Framework
Discover the exciting features of Phoenix 1.7 that will change and improve your development experience.
Let's benchmark some Admin Toolkits!
Discover how we benchmarked some Typescript admin toolkits (including Strapi, Hasura, React-Admin, and Directus) to save time and be more productive!
Fast and stable test suite
Goodbye, slow, flaky test suites. Save development time and Continuous Integration (CI) costs while getting fast, reliable feedback in the development cycle.
Create pull requests for your GitHub Wiki
Keep GitHub Wiki content changes reviewable, traceable, and centralized for better team collaboration with GitHub Actions, by following this step-by-step guide!
Generating Test Data in Phoenix application using ExMachina & Faker
The purpose behind factories usage in testing and how to use ExMachina & Faker to setup test data in an Elixir Phoenix project.
Getting Started with RediSearch
Hands-On and Deep-Dive into RediSearch, a full-text search offering by Redis.
Hosting providers for Elixir and Phoenix applications
Learn all about the pros and cons of the major hosting providers to deploy Elixir and Phoenix applications. Let’s explore the best hosting solutions for Elixir.
The journey on choosing Elixir background job tooling
Learn all about choosing the best tooling to implement background jobs in Elixir applications encompassing the built-in features like GenServer and third-party libraries.
Provision k3s on Google Cloud with Terraform and k3sup
Quickly provision 4-node production-ready Kubernetes cluster by k3s with help from Terraform and k3sup utility
Pretty URLs in Rails without a gem
Deep dive into 3 different ways in implementing pretty URLs in Rails application going from simple to advanced use cases.
Let's play design patterns: Form Objects
Form Objects are a great addition to the toolbox provided by Rails. Follow our step-by-step guide to start building better applications!