John Li (@tbfJohn) header
John Li (@tbfJohn) profile picture

Android @Reddit. Cat Dad. He/Him

San Francisco, CA
Joined December 2010
Photo by John Li (@tbfJohn)Photo by John Li (@tbfJohn)Photo by John Li (@tbfJohn)Photo by John Li (@tbfJohn)Photo by John Li (@tbfJohn)Photo by John Li (@tbfJohn)
Does the model in MVC/MVP/MVVM depend on the presentation component? The short answer is No. medium.com/@johnleeroy/clean… #androiddev #iosdev #softwarearchitecture
1
3
I am grieving the loss of a team that I could picture working with for the rest of my career. #OneTeam
1
15
I'm vacationing in a different state and everything reminds me of Twitter.
3
As someone who spent several years helping build Twitter, I have some thoughts on what — if anything at all — Elon Musk means to the future of the service. It’s 3,555 heartfelt words, but you’ll sail right through it. 💙⛵️ mikeindustries.com/blog/arch…
35
117
77
631
Twitter is wild.
1
9
Do you remember when you joined Twitter? I do! #MyTwitterAnniversary
1
I finished one year at @Twitter and I appreciate the supportive and pragmatic culture that helped me continue to grow. #ThankYouJack
2
Obj-C tackled the null concern by their messaging paradigm. You can send a message to an object to invoke a method call. If the object is null, no crash. This allowed logic flows to fail silently. This can encourage a bad habit of not handling the else/null case.
1
1
Swift elevates the null concern with the optional. You can specify if objects are nullable. Features like default arguments and guard let help developers be more mindful of null cases. Optional chaining is more explicit about whether a flow results in no-op.
1
1
iOS developers are encouraged and empowered by Swift to be more explicit and transparent about nullability. Kotlin has the same features around working with null. Let's continue to prioritize mindfulness and good patterns for working with nullable objects.
3
A method that takes in a nullable argument should have logic to handle both sides of the nullability concern. If passing in null to the method results in no operation, then the argument should be non-null. The onus is on the caller to do the null check.
3
I'm having dinner with my parents and my mom looks at me and asks "Have you been working out?" I have been working out recently! "Yea mom." She says "I noticed your stomach has gotten chubbier." 🙃💀 🪦
6
I have less and less "glue work" as a tech lead thanks to investing in processes, documentation, delegation, and continued guidance from @AutisticManager. Soon I will be able to spend more time on establishing strategy and execution -- areas that I want to grow in.
6
I gave some feedback today for extending some base abstractions rather than modifying existing interfaces that many classes use. Remember to opt for the open-closed principle when you can to promote a more maintainable codebase.
1
One of the most helpful practices as a tech lead is to direct incoming requests and questions to the team's public channel. This helps reduces tribal knowledge and allows others on the team to publicly contribute.
1
1
18
Feeling really energized from having 4 hours of meetings yesterday to only 2 hours today. I need to invest is processes and delegate more tasks so I can enjoy time for solving engineering challenges.
1
1
72
1,317
125
8,525
Things I will always go to StackOverflow for in Android - Activity launch mode - How to make a circle drawable
1
3
Thanks @EmmaBostian for recommending @NotionHQ as a productivity service. It's so powerful. I can see how you can spend a lot of time customizing and finding your perfect workflow. I like the current project management setup I have right now.
1