Dev-XP-Session with Crazy Bob

Chat session focused on his 'experience as a developer'. His transition from Google to Square and his rise to CTO of Square and then his new company 'Present Company'

Bob Lee

28.03.18

Hello Everyone,

It is time! Today, Ingressive and DevCenter would be hosting Bob Lee, also known as Crazy Bob. Bob is currently CEO of Present Company and Former CTO at Square.

To begin, we'd love to have you introduce yourself with as much details as possible.

OK! As you said, I was the CTO of Square. While there, I grew our team from 12 to 1200 people. I worked on everything from swipe decoding algorithms, to our apps, to our payments processing backend. I personally created Square Cash, our peer to peer payment system. Prior to that I worked at Google from 2004 to 2010 where I helped created Android as the first core library lead. I’ve also done a lot of work on Java, contributing to multiple JSRs and even a few language features (included lambdas). Any Java programmers here? 😃 I’m currently working on Present, a new location-based social network. I’d love to launch it in Africa soon!

Check this out, Present - Network with Extraordinary Women

Amazing Bob! So how long have you been in development ?

I started seriously programming when I was 12. I mostly learned by reading. This was before the world wide web, so I learned from books and BBSes (bulletin board systems). I actually learned a lot from resources like the Asphyxia VGA trainers.

Example: See this, They were from South Africa!

Here’s some code I wrote back in those days : How I learned 3D programming During the holidays, I stumbled across a 3D dem... How I learned 3D programming During the holidays, I stumbled across a 3D demo I wrote while in high school (circa 1997) and got it running again in DOS... In the mid 90s, I got into web development, and everything took off from there. 😄

Lets get to the business of the day.

First question from: favoriabs @favoriabs

Have you ever felt like quitting core development? perhaps because of a career reason? if yes, how did you go through that phase ?

As CTO of Square and CEO of Present, there have been many times when I’ve gotten away from development for a time. It’s ebbed and flowed throughout my career. I still code quite a bit though. 🙂 I’ve written most of our backend for Present. We use Java on Google App Engine. I also very much enjoy design though.

Question from: herocod3r @herocod3r

Why java?

Java is one of the most mature, performant languages. The tooling is amazing.

Generally speaking, I like statically typed languages because they make it easier to catch bugs up front, navigate the code, etc. What languages do you all like ?

herocod3r answered: This is a community with devs of diffrent languages...Js,C#, Go etc

It's a large community of techies from all languages and specializations here 😄

Plus, as I said, I’ve done a lot of work on Java itself, so I’m very comfortable with it: here , InfoQ Bob Lee on Java's Future, Lambdas, DI with Guice vs Dagger, Java and Ruby at Square Bob Lee explains the popularity of Java, future language features like Lambdas, DI with Guice vs. the Dagger framework, the role of Java vs. Ruby at Square, hiring at Square, security and much more.

Question from: Acekyd @acekyd

In your experience, would you advise a growing developer to give his/her attention to a particular technology stack or a general problem solver.

Good question. The best way I learn is by solving a real problem (like that 3D game I linked to before). Once you know the problem you want to solve, you can pick the appropriate technology. That said, technology stacks can get very complicated and take a long time to learn. Choose wisely!

Java is great. So is Swift (for iOS development). Go is interesting, too (for server). Javascript is unavoidable for modern web development. Plus you can use it with React Native which is cool!

If you’re just starting out, check out the book Effective Java

Question from: Ife @ife

What would you say is the most interesting engineering challenge you faced while you were at Square? Were you able to solve it?

Good question. The best way I learn is by solving a real problem (like that 3D game I linked to before). Once you know the problem you want to solve, you can pick the appropriate technology. That said, technology stacks can get very complicated and take a long time to learn. Choose wisely!

Java is great. So is Swift (for iOS development). Go is interesting, too (for server). Javascript is unavoidable for modern web development. Plus you can use it with React Native which is cool!

If you’re just starting out, check out the book Effective Java

Question from: Father Merry @fathermerry

One last question, speaking of transitions, I imagine you went from building things for yourself, to working with people, to managing people. If you did, was there a formal process that helped you through this transition?

I read a lot about leadership, and I had some great mentors over the years, including Bill Coughran and Greg Badros. I still prefer coding though. I like to call it “leading by example.“ 🙂

To round this up, we've heard (read) amazing stuff, how do you balance this with other aspects of life? Family, hobbies, fun? And what would you do to unwind 🙂

Great. Thank you very much @Bob Lee. Was exciting to have you here With this we have come to the end of todays' Dev XP Session. Thank you all for participating

Thank you!

Want to be part
of the conversation ?

Join the community