跳转至

13 An Interview with Hadi Hariri

Developer and creator of many things OSS, he has been programming in one way, shape or form since the age of 12. Author of various publications and courses, Hadi has been speaking at industry events for nearly two decades. Host to Talking Kotlin, he works at JetBrains leading the Developer Advocacy team, and spends as much time as he can writing code.

Hadi HaririHadi Hariri

Connect with Hadi

Twitter: @hhariri

Interview

You are an authority in the world when it comes to public speaking and you have blogged extensively about it. What moved you to begin sharing your experiences and ideas through public speaking, as opposed to just publishing them online?

I have to admit that part of my motivation to give a talk was that I really wanted to attend a conference and I couldn’t afford to; but after giving the talk, I realized I enjoyed it very much and wanted to repeat it again, despite being very nervous and feeling as though I had failed badly. The more I gave talks, the more I enjoyed sharing my thoughts and experiences. What really made it for me, though, was seeing how what I was sharing impacted people. To think that I could contribute positively to other people’s lives—albeit in a very minor way—brings me a great sense of fulfillment.

What advice or tips would you give to a developer who is interested in getting started in public speaking?

Don’t believe that you have nothing to share. We all do. User groups and meetups are a very good way to start. You don’t have to give your first talk at a conference.

In addition to public speaking, through Twitter, you’ve raised awareness of certain social issues, including inclusivity in the tech industry, which is notorious for its gender imbalance and lack of opportunities for minorities and women. What steps should we be taking as an industry as a whole to address these issues?

Twitter is good way to connect with your peers and use as a professional platform. Regarding social advocacy, I’m still trying to learn how I can help more. What I would say though is to listen carefully to those who have more knowledge and be a platform for underrepresented groups. Help them share their message by amplifying their voice, not replacing it. As an individual, be conscious. Be aware that these issues exist and don’t ignore the problems. Don’t fall into the trap that “because it hasn’t happened to me or anyone I know, it doesn’t exist.”

“We should definitely be more conscious and aware of the unintended consequences of the technology we’re developing.”

Are there any other aspects of the current tech industry that you would like to see improved?

I’d like to see more ethics involved in the things that we’re doing. I’d like us to question more whether some things just shouldn’t be done, and we should definitely be more conscious and aware of the unintended consequences of the technology we’re developing. I’m sure we’re all aware of the dark side of AI, for instance.

An additional industry trend I generally don’t agree with is the constant hype train.

What steps can we take to make these improvements in the short term?

In terms of our ethics, step outside of the technology bubble. Think beyond the technology. Think beyond the excitement of working on cool stuff. Look at the human side of things and the consequences it may have. Raise awareness.

For the hype train? We should be thinking before adopting. Thinking before copying.

With everything else you have going on, do you still have time to write code?

Yes, although I’d like to often have more time. But I do still code. Besides enjoying it, I also think it’s very important to do so; otherwise, I’d not be very much of a good developer advocate!

For those developers transitioning to become developer advocates, but who want to also keep coding and developing, what would you advise?

Find a project—be it OSS, be it internal to your company—that keeps you coding. Also, understand that developer advocacy is not a 9–5 job, and personally I think it’s much harder than just development. Not only do you need to be on top of new technology, but you have to also test it, work with it, to remain knowledgeable and credible.

In settling in to do your own work, how do you start your day off with a bang? Do you have any secret morning routines that set you up for success?

I wish I could tell you I get up and work out to have a wonderful fresh start. But, usually, it involves waking up at around 5:00–5:30 a.m., making coffee and getting to work. Whether I’m traveling or at home, that’s mostly my routine.

How do you stay highly productive for long stretches of time?

That would assume I’m highly productive! To be honest, I’ve never thought about it. I do know that I’m probably not as productive as I’d like to be, and I’m looking at ways to try and improve. But one thing I’ve found that really helps me feel more productive, and can be seen somewhat by the results, is waking up early in the morning. Those four hours or so of uninterrupted work can really help accomplish results.

You are currently a Kotlin Developer Advocate at JetBrains. What argument would you make to a person unfamiliar with Kotlin for why they should take up Kotlin or why they should not?

I’ve always advocated for people to try things for themselves and see if they enjoy it. Often, people ask me, “What killer feature will make me switch to Kotlin?” My response is that it’s not about features, but the overall experience. The same holds true for IntelliJ IDEA and our other tools. It’s about everything put together. But like everything, people will only try things when they see there’s value in it for them. So I look at the issues that we face as developers using other languages and how Kotlin addresses these. If you see enough value, then you should try it.

What is something you wish someone had told you when you started software development that you had to learn the hard way instead?

That I should have paid more attention to Haskell in University. The more I’ve gotten into functional programming, the more I’m interested in the ways how solving problems are approached. I’ve now gone back to learning Haskell but it’s very hard to “disconnect” from the way in which I’ve been programming for so long, which is why I wish I’d have paid more attention early on!

In gaining insight from other sources, are there any that stand out as having an impact on your work?

Thinking, Fast and Slow by Daniel Kahneman. Badass: Making Users Awesome by Kathy Sierra is another. And Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity by Kim Scott really reaffirmed some of the things I was doing.

Hadi’s Recommendations

  • Thinking, Fast and Slow | Daniel Kahneman
  • Badass: Making Users Awesome | Kathy Sierra
  • Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity| | Kim Scott