Dan Lew
blog.danlew.net · Personal blog · on HN since 2014
Dan Lew, an Android developer, writes on code review, Kotlin, RxJava, reactive programming, and software practice.
What HN saysCommenters recommend his posts on code review, especially the LOGAF scale and 'Stop Nitpicking', and his RxJava tutorials for Android.
23HN people shared it
9linked it in comments
26stories submitted
707story points
8 months agolast shared
2014people per year2026
Most-shared posts
- 1Stop Nitpicking in Code Reviews5 people · 43 points · first shared 2021 · 36 comments on HN
- 2An Introduction to Functional Reactive Programming (2017)4 people · 7 points · first shared 2017 · discussion on HN
- 3The Logaf Scale3 people · 4 points · first shared 2020 · 1 comments on HN
- 4Android: I don't need your permission2 people · 541 points · first shared 2014 · 183 comments on HN
- 5Software Development Is Nonlinear System2 people · 4 points · first shared 2024 · discussion on HN
- 6Coroutines and Java Synchronization Don't Mix2 people · 2 points · first shared 2020 · discussion on HN
- 7Mutable vals in Kotlin1 people · 84 points · first shared 2017 · 41 comments on HN
- 8My Programming Earworms1 people · 3 points · first shared 2021 · discussion on HN
- 9You Should Write More1 people · 3 points · first shared 2014 · discussion on HN
- 10When to use Kotlin's standard functions1 people · 3 points · first shared 2019 · discussion on HN
- 11When Your Source of Truth Is Reality1 people · 2 points · first shared 2025 · discussion on HN
- 12Why I’m No Longer Traveling for Conferences1 people · 2 points · first shared 2019 · discussion on HN
- 13Don't Cite Unsold eBay Listing Prices1 people · 2 points · first shared 2026 · discussion on HN
- 14Trello Android's Git Branching Strategy1 people · 1 points · first shared 2020 · 1 comments on HN
- 15The Reality of Migrating to AndroidX1 people · 1 points · first shared 2018 · discussion on HN
What HN people wrote when they linked it
btown · 2024-01-24
Similar to the FG scale in the OP, LOGAF is a fantastic system to use, especially in asynchronous/remote environments. It's radically improved our code review iteration cycles.
https://blog.danlew.net/2021/02/23/stop-nitpicking-in-code-reviews/
That said, review debates are only one part of a "debate everything" culture. Architectural disagreements are much harder to solve while maintaining morale. One thing I've found effective as an engineering leader, when we need a plan of action, is to ensure I listen to every technical take, but make it clear that while I'm incorporating all those concerns into the decision, some concerns need to be weighted more than others based on larger medium-to-long-term business context, and that those concerns need to drive the design. It isn't always the best approach with 20/20 hindsight, but the removal of paralysis has been a net positive so far.
yla92 · 2017-01-30
For Android dev related, I follow
Jake Wharton : https://github.com/jakewharton , https://twitter.com/JakeWharton - He is well known in Android community. He has authored a lot of great libraries personally and under Square.
Mark Murphy - https://commonsware.com/blog/
Chris Banes - https://chris.banes.me/
Cyril Mottier - https://cyrilmottier.com , https://twitter.com/cyrilmottier
Dan Lew - http://blog.danlew.net/
Donn Felker - http://www.donnfelker.com
Mark Allison - https://blog.stylingandroid.com
Jesse Wilson - https://publicobject.com/
Roman Nurik - https://twitter.com/romannurik
tartuffe78 · 2016-03-24
We ran into that as well integrating it into a 3 year old Android codebase.
We followed these tutorials at first, but it definitely just took a lot of time and trying things out.
http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/
RxJava + Retrolambda has accelerated our development speed once we got a grip on it, but it does complicate our build process.
kerbs · 2021-03-04
Not every reviewer has a "fine-toothed comb" philosophy.
Unless code is algorithmic in nature, I look at architecture and approach only.
A good post on the topic: https://blog.danlew.net/2021/02/23/stop-nitpicking-in-code-reviews/
TuringTest · 2020-06-03
Maybe the difference is that you keep control with events, i.e. you can filter, retarget, cancel or otherwise reason in general about the way they propagate?
I'm no expert, but the essence of the "reactive functional programming" programming paradigm is that you have composable high level abstractions about the streams of events (e.g. marble diagrams).[1]
[1] https://blog.danlew.net/2017/07/27/an-introduction-to-functional-react…
pjmlp · 2020-02-06
Yeah and then funny things happen when one tries to use libraries written in Java with Kotlin ones together.
https://dev.to/martinhaeusler/why-i-stopped-using-coroutines-in-kotlin…
https://dev.to/domnikl/kotlin-coroutines-and-javafx-threads-26od
https://blog.danlew.net/2020/01/28/coroutines-and-java-synchronization…
angarg12 · 2022-06-27
I keep a running list of articles I found useful over the years. There are many great articles about Code Reviews out there. Consider this a more general answer to your question:
Feedback Ladders: How We Encode Code Reviews at Net-lify
https://www.netlify.com/blog/2020/03/05/feedback-ladders-how-we-encode…
How to Make Good Code Reviews Better
https://stackoverflow.blog/2019/09/30/how-to-make-good-code-reviews-be…
Best Practices for Code Review
https://smartbear.com/learn/code-review/best-practices-for-peer-code-r…
Code Review Guidelines for Humans
https://phauer.com/2018/code-review-guidelines/
Unlearning toxic behaviors in a code review culture
https://medium.com/@sandya.sankarram/unlearning-toxic-behaviors-in-a-c…
How to Do Code Reviews Like a Human
https://mtlynch.io/human-code-reviews-2/
Stop Nitpicking in Code Reviews
https://blog.danlew.net/2021/02/23/stop-nitpicking-in-code-reviews/
HillaryBriss · 2015-12-30
Maybe it's just me but, when I see things like this, I lose confidence in the method naming process on the Android SDK:
glEGLImageTargetRenderbufferStorageOES
http://developer.android.com/reference/android/opengl/GLES11Ext.html#g…
They capitalized Render but not buffer. Also: what does this even mean?
---
readExceptionWithOperationApplicationExceptionFromParcel
http://developer.android.com/reference/android/database/DatabaseUtils.…
Do they really need to put the word Exception in this name twice?
---
getGestureStrokeSquarenessTreshold
http://developer.android.com/reference/android/gesture/GestureOverlayV…
What's a Treshold? (Yes, that's how they spelled it).
---
Ok, so the standard way they spell it is N-U-L. One L: getAllButNulLegal
http://developer.android.com/reference/android/net/UrlQuerySanitizer.h…
But wait: readMessengerOrNullFromParcel
http://developer.android.com/reference/android/os/Messenger.html#readM…
---
Ok, so the standard way they spell it is C-A-N-C-E-L-E-D. One L: registerOnLoadCanceledListener
http://developer.android.com/reference/android/support/v4/content/Load…
But…