Dave Leeds is a senior Android developer on the EveryDollar team at Ramsey Solutions. Programming professionally for 18 years, he’s worked at Ramsey Solutions for seven. In his free time, Dave enjoys drawing cartoons and teaching his miniature schnauzer, Ninja, tricks.
EveryDollar Beginnings and Transition to Android Development
Dave began work at Ramsey Solutions as a ColdFusion developer. His responsibilities included API development on MyTotalMoneyMakeover (MyTMMO), the predecessor to EveryDollar. MyTMMO was an application that provided budgeting tools as well as a lot of other life management and improvement tools, such as goal tracking.
But in 2014, the MyTMMO team noticed that the budgeting features of MyTMMO were receiving the main bulk of user engagement. Based on those analytics, the MyTMMO team decided to focus development solely on budgeting tools—and EveryDollar was born.
Dave continued Java service development on EveryDollar until November 2016 when he began splitting time on the EveryDollar Android app. In the middle of 2017, Dave transitioned to full-time Android development.
When asked why he was drawn to Android, Dave replied that he enjoys the unique challenges Android developers face. The variety of device types, battery power limitations, and the lower processing power of phones compared to PCs are just a few of the hurdles that Dave tackles daily.
While some back-end developers see front-end and UI development as second-class citizens, Dave says, “There are big problems to solve in the UI space.” He believes Android development and user experience are just as important as architecting a solid back-end service layer.
Exploring a New Language—Kotlin
Always looking for a new challenge, Dave began exploring a new programming language called Kotlin after it was released in beta. Following the Kotlin learning exercises only increased his enjoyment and curiosity.
Kotlin was created by the software company JetBrains as an alternative to Java. Kotlin compiles to the same bytecode as Java and runs in the Java Virtual Environment (JVM).
Already a fan of statically typed languages like Java and the JVM, Dave found Kotlin to be a natural fit. He was impressed by how it borrowed features from other successful languages such as C#, Groovy and Scala. Other benefits that attracted Dave were the helpful risk reducers such as null safety features and the concise and expressive nature of the language.
Kotlin in EveryDollar
As Dave’s interest in Kotlin grew (and after Kotlin was released), Dave began writing Kotlin code for the EveryDollar Android app. Dave says implementing Kotlin was easy because of the language’s strong interop with Java. The EveryDollar team gradually wrote more and more Kotlin code with minimal refactoring and rework.
In May 2017, a few months after EveryDollar deployed their first lines of Kotlin code, Google (the owner of Android) announced first-class support for Kotlin in Android. Dave says this was confirmation for the work he and the EveryDollar team had done in vetting, testing, and placing their confidence in a new language such as Kotlin.
After gaining momentum with Kotlin, Dave launched a personal blog on September 1, 2017: Dave Leeds on Kotlin. Dave admits that he (like many developers) loves to learn new things. But for many, that desire can result in bouncing around in different domains without gaining a deep knowledge of any one topic. For Dave, the Kotlin blog was an opportunity for focused learning.
Instead of spending a day or two cranking out short, shallow articles, Dave sometimes spends upward of four to five months researching topics. His in-depth research lets him create a comprehensive post that doesn’t leave out edge cases.
For the newcomer to Kotlin, Dave recommends checking out the Kotlin documentation website. And if you’re willing to spend a little money, Dave recommends Kotlin in Action, a book written by two of the contributors to the Kotlin language. There’s also a Kotlin Slack group and a Kotlin Weekly email newsletter.
As for Dave’s blog articles, he highlights the following:
For a full reference of topics, see Dave’s Encyclopedia of Kotlin Concepts page.