Welcome to my collection of notes and guides about software development, focusing on modern technologies and best practices.
Technology Ethics
- When Technology Goes Wrong: Technical Debt vs Ethical Debt - Why some problems hurt companies, while others hurt people
LLM and AI
- The Complete Guide to Deploying LLM RAG Systems - A comprehensive cost and technical analysis for developers and CTOs
Android Development
Architecture & Design Patterns
- State Production Pipeline (One-shot + Stream Data) - A comprehensive guide to implementing unified state production pipelines using Flow and StateFlow
Jetpack Compose
- Jetpack Compose: Architecture - Understanding the layered architecture of Jetpack Compose
- Jetpack Compose: Composition Phase - Deep dive into UI rendering and state management
- Jetpack Compose: Custom Modifiers - Creating reusable UI patterns
- Jetpack Compose: Testing & Semantics - Testing and accessibility in Compose
- UI Layer with UDF Pattern - Implementing Unidirectional Data Flow in the UI layer
- Understanding compositionLocalOf vs. staticCompositionLocalOf - Choosing the right CompositionLocal for better performance
- Hosting Compose UI in an Activity: setContent - Understanding how Compose integrates with Activities
- Why var in Data Classes Breaks Compose Performance - Understanding the performance implications of mutable data classes
- State-Based vs Value-Based Text Fields - Comparing text input approaches in Jetpack Compose
- Jetpack Compose - Stable vs Unstable Types - Understanding type stability in Compose and its impact on performance
Performance Optimization
- Understanding Android Baseline Profiles - A guide to performance optimization using Baseline Profiles
Kotlin Coroutines
- Kotlin Coroutines: Dispatchers - Guide to coroutine dispatchers
- Kotlin Coroutines: Channels - Understanding coroutine channels for communication
- SupervisorScope vs viewModelScope - Choosing the right coroutine scope
- Why You Should Use runBlocking with Caution - Understanding the risks and alternatives to runBlocking
Kotlin Language Features
- Kotlin Data Classes - Understanding and using data classes effectively
- Kotlin Builder Functions - Creating and using builder functions in Kotlin
AI and Machine Learning
- Koog Graph Workflows - Building complex AI agent behaviors with Kotlin
Machine Learning
- Supervised Learning: Linear Models - Understanding linear regression and classification with practical examples
- Machine Learning Resources - Curated list of courses, books, and tools for learning machine learning
Database
Database Architecture
- Multi-Tenant Database Design - Implementing and managing multi-tenant database architecture
- When to Denormalize a Database - An interactive checklist for database denormalization decisions
Cloud
- Complete Cloud Hosting Guide: AI Systems on Cloud - An Cloud comparison for AI app Host VM