An Android engineer working on a super-secret project.
Written by Lindsay Wiese.
While Jake Wharton cannot divulge what he is currently working on at Square — it’s a “top-secret new project” — he did agree to answer a few questions.
What are you currently working on?
I am currently working on the Android client for a brand new product. Previously, I worked on the Android clients for Square Wallet, Square Register, and to a much lesser degree, Square Cash.
How would you describe Square’s engineering culture?
The engineering culture is a blend of specialists, who posses an extreme depth of knowledge on a subject, and generalists, whose breadth allows them to work with many different platforms and technologies. These two types of people are distributed on small teams, each of which are responsible for a significant chunk of all the machinery that makes Square move.
What’s the most challenging engineering project you’ve worked on in the past year?
Last summer a unique opportunity presented itself; we were in a place to significantly improve some of the libraries on which all of our apps are built. A few of us spent four weeks in heated API debates, deep dives into intricacies of the Java language, and re-writing massive sections of code for better speed, efficiency, and testability. It was a month of late nights and long weekends that ended up being both very challenging and fun. These libraries are the foundation on which all of our Android apps are built and the investment we made during that time has paid off in both developer productivity and app features.
Why is open source important to you?
Open source has been the foundation of almost everything I have ever worked on. Beyond just providing tools with which I can build applications more rapidly, it has been and remains a fantastic tool for expanding your knowledge and skill set.
What’s your most memorable moment at Square?
Coordinating and participating in the work for our Seven Days of Open Source, which culminated in manning a booth in the Developer Sandbox at Google I/O with a few of my fellow engineers.
Java, C++, or Python?
Java for the real things. It has unmatched tooling and IDE integration. Python for scripting everything else.
Favorite open source library?
If I’m excluding Square’s libraries that I work on…
- Serious — Google Guava: The missing standard library for Java offering anything and everything for simplifying common operations. It will be interesting to see how it evolves with the now imminent Java 8 release.
- Useful — Google compile-testing: Allows running and interacting with the java compiler inside your unit tests. For libraries which need to predictably fail your build this provides an extremely elegant way to test that behavior.
- Playful — lolcommits: Capture a webcam image every time you make a commit. Predictable hilarity ensues when enabled.