55-Venkat-Subramaniam.txt

(00:00:00):
Venkat, Venkat Subramaniam welcome, welcome back to Duke’s Corner!

(00:00:05):
hey, thanks, Jim, for having me here it’s a great pleasure always to talk to you and and i i

(00:00:09):
can’t believe it’s a new year and i’m gonna see in a few months actually so excited

(00:00:14):
to talk to you now and again in a few months

(00:00:16):
Yeah, it’s great.

(00:00:17):
It is.

(00:00:17):
I cannot believe it’s 2025.

(00:00:20):
That’s shocking to me, actually.

(00:00:22):
And yeah, you mentioned a few months.

(00:00:23):
We’re going to actually see each other in California.

(00:00:26):
Java 1 is right around the corner,

(00:00:27):
which is one of the reasons why I wanted to chat with you here today.

(00:00:31):
And I saw your name on the schedule.

(00:00:33):
Of course, I expected that.

(00:00:35):
So tell me a little bit.

(00:00:37):
Let’s just start off with Java 1 since we’re going to actually since that’s in March,

(00:00:40):
March 18th through 20th.

(00:00:42):
What are you looking forward to with Java 1 this year?

(00:00:45):
Oh, I’m super excited.

(00:00:47):
I’m definitely very thankful for getting the opportunity to speak there as well.

(00:00:52):
And one of the reasons I’m excited about being in Java 1 is, A, it’s in California.

(00:00:58):
So I have to say that being on Oracle campus absolutely excites me.

(00:01:04):
Don’t get me wrong.

(00:01:04):
I’ve been to a few different Java 1s over the years,

(00:01:08):
back in time when it was in California,

(00:01:12):
again in Vegas.

(00:01:13):
But for some reason, I’m truly excited about being on the Oracle campus this time.

(00:01:18):
To be at the home of where a lot of these things happen means a lot more than being

(00:01:24):
in a huge conference venue out in Vegas.

(00:01:27):
So that’s part of the excitement, not the only, though.

(00:01:29):
And it’s a short flight from where you are.

(00:01:32):
It really is.

(00:01:33):
It’s like an hour or so, right?

(00:01:37):
Totally.

(00:01:37):
How many Java 1s have you been to?

(00:01:39):
Oh, I can’t remember.

(00:01:41):
I’m going to say definitely quite a number.

(00:01:45):
So you’ve really seen sort of the evolution,

(00:01:47):
not only of the conference itself,

(00:01:48):
but of obviously the people,

(00:01:49):
but of the technology as well.

(00:01:52):
So actually, let’s just stick with the conference for a second.

(00:01:55):
What are you going to be talking about there?

(00:01:56):
Yeah, I’m going to be talking about really a talk focused on knowing your Java.

(00:02:02):
And it’s funny, you know, you may ask, well, wait a minute, Java is starting 30 years.

(00:02:07):
We got a lot of people with a lot of experience now.

(00:02:10):
Do you really need to talk about Know Your Java?

(00:02:13):
And exactly my point.

(00:02:15):
So essentially,

(00:02:17):
what I’m going to be talking about is,

(00:02:19):
I favorably call it as,

(00:02:20):
tuck your toes moment.

(00:02:23):
I have seen a lot of developers in my consulting work.

(00:02:28):
And to be very honest, myself,

(00:02:31):
stub my toes and say,

(00:02:32):
ouch,

(00:02:33):
when I implement a certain feature and then begin to realize that the code is

(00:02:38):
behaving very differently than I expected it to be.

(00:02:43):
Sometimes out of my ignorance or out of the ignorance of people who are using it,

(00:02:48):
sometimes it’s just not thinking through the consequences of what the code may do.

(00:02:54):
And I often say, you don’t want to get the call at 2 a.m.

(00:02:57):
on that Wednesday saying that your code has failed in production.

(00:03:02):
So what I’m going to talk about are things I’ve seen in production that have led to

(00:03:07):
problems because developers either have not fully understood a certain idea or it

(00:03:13):
comes back to bite them in the back,

(00:03:15):
me included.

(00:03:16):
And I’ve decided to take a very interactive approach towards this rather than,

(00:03:22):
you know,

(00:03:22):
just pressing slides and talk about stuff.

(00:03:25):
What I do is obviously no slides in my talks,

(00:03:28):
but I show them a piece of code and then interactively they tend to figure out what

(00:03:35):
the code is doing.

(00:03:36):
And this counts really well for a larger audience because I use an interactive tool

(00:03:41):
to pull their response.

(00:03:43):
And then I show them the poll of the response.

(00:03:46):
And I’ve given this talk a couple of times.

(00:03:48):
And it’s really fascinating to see how many developers figure out what the code actually does.

(00:03:56):
Then we dive in and talk about the actual behavior of the code and then extend it

(00:04:03):
to things we need to pay attention to become really good developers with it.

(00:04:08):
And in fact,

(00:04:09):
what’s fascinating about this is even AI tools quite often don’t get these things right.

(00:04:17):
That’s what is the scary part.

(00:04:19):
People often jump in and say, oh, I don’t need to do this right because I can use AI to do this.

(00:04:25):
Well, I’ve actually seen AI tools fall into the same trap that programmers fall into.

(00:04:31):
Well, guess what?

(00:04:31):
Because AI has been trained on the two code that a lot of us have written over the time,

(00:04:37):
and if we have collectively made that mistake,

(00:04:40):
it’s no surprise that AI is going to make that mistake as well.

(00:04:43):
So that’s kind of essentially what I focus on in the talk,

(00:04:46):
is the things that can bite you in the back,

(00:04:49):
things that you need to know.

(00:04:51):
And then it’s a very example-driven presentation where we look at a code,

(00:04:57):
take a poll of the behavior,

(00:04:59):
reflect on what we collectively identify,

(00:05:02):
and then analyze the code,

(00:05:04):
and then draw some conclusions on how to become better at dealing with similar code

(00:05:09):
as we move forward.

(00:05:10):
And to just emphasize things you need to know from this,

(00:05:14):
this is one of the things I often emphasize is you look at the syntax,

(00:05:20):
but you should really see the semantics.

(00:05:22):
That, to me, is the essence of programming.

(00:05:25):
Syntax is what we look at all the time.

(00:05:28):
But as developers,

(00:05:30):
We need to really take the time to see through the semantics.

(00:05:34):
And this talk is really focused on the semantics.

(00:05:37):
You know, I’m a huge fan of testament development.

(00:05:41):
I like to write test cases.

(00:05:43):
And every single example I show in the talk, compilers don’t catch the problem.

(00:05:50):
Any serious effort with unit testing often will not catch these problems.

(00:05:56):
That’s the scary part.

(00:05:58):
You can’t delegate this to the tools and say or the techniques and say, gosh, I do all these.

(00:06:04):
I don’t have to worry about it.

(00:06:06):
No,

(00:06:06):
you do,

(00:06:07):
because with all respect,

(00:06:09):
we want to rely on compilers because they allow us to get early feedback on certain

(00:06:15):
problems in the code.

(00:06:16):
And if a code passes through compiler, we can be confident to a certain level.

(00:06:21):
Similarly, I’m a big fan of automated testing.

(00:06:24):
That gives us confidence.

(00:06:26):
So I’m not rejecting those tools and techniques, but those are necessary but not sufficient.

(00:06:33):
Your knowledge of semantics still is relevant and important in spite of compilers

(00:06:39):
and test-driven development and AI tools,

(00:06:42):
and that’s kind of the emphasis of the talk.

(00:06:44):
This is fascinating to me.

(00:06:46):
I’ll tell you a little story.

(00:06:47):
I’m going to comment on a few things you’ve said, but in this framework here.

(00:06:51):
When I first met you,

(00:06:53):
it was 2017 to 2018,

(00:06:53):
and you were doing a keynote,

(00:06:54):
and it was a coding session.

(00:07:00):
sort of thing,

(00:07:00):
obviously,

(00:07:01):
and I’m sitting there because I didn’t know you at the time and I had to sort of

(00:07:04):
get to know you really quickly because I was going to do an interview with you,

(00:07:08):
a streaming interview right after your keynote,

(00:07:10):
and I had to go up and introduce myself and then drag you off to the corner to do

(00:07:14):
this interview.

(00:07:15):
So,

(00:07:15):
I’m watching this keynote,

(00:07:16):
and you’re talking about,

(00:07:17):
obviously,

(00:07:17):
technical things,

(00:07:18):
about software and stuff,

(00:07:20):
but I was following it because I was getting this message from you.

(00:07:25):
You were really looking at things from not only a micro level, but a macro level.

(00:07:30):
And I was seeing how I can apply that level of thinking to writing, you know, English, and…

(00:07:38):
project management, because it was a way of thinking.

(00:07:41):
And it sounds like everything you just said now,

(00:07:44):
it sounds like a perspective you’re taking in terms of writing code,

(00:07:47):
not just relying on a tool to find the errors and stuff like that.

(00:07:50):
But as you’re writing, it’s the perspective up front, especially with test-driven development.

(00:07:57):
And it’s interesting to me how, as a non-coder myself, I can follow what you say.

(00:08:02):
That’s fascinating to me.

(00:08:04):
It’s interesting that you say this,

(00:08:05):
Jim,

(00:08:05):
actually,

(00:08:06):
because I was reading something yesterday and they were talking about the use of AI

(00:08:12):
versus critical thinking.

(00:08:14):
And I don’t want people to take this negatively,

(00:08:17):
but this is something for us to really think about because we are living at that

(00:08:22):
tipping point where we are going to benefit a great deal from a new evolution of technology.

(00:08:33):
But it comes with a certain caveats.

(00:08:36):
And that is, with us, we have some amazingly great tool.

(00:08:41):
But unfortunately, we can’t compromise on critical thinking.

(00:08:47):
In fact, we are living in a time when I think critical thinking is even more important.

(00:08:53):
And that’s exactly to your point.

(00:08:55):
This is something I had to take the time to learn along the way because,

(00:09:00):
you know,

(00:09:00):
oftentimes our schooling doesn’t teach us the necessary skills we need to survive

(00:09:07):
and succeed in this world.

(00:09:09):
These are things we stumble upon,

(00:09:11):
figure out,

(00:09:11):
maybe have a good friend or a mentor,

(00:09:14):
and then you kind of observe and say,

(00:09:16):
what

(00:09:18):
And then you accidentally stumble upon these things.

(00:09:21):
And that’s been journey for me.

(00:09:24):
But to me,

(00:09:24):
that is one of the things I would encourage younger developers who are at the

(00:09:29):
conference are trying to learn and apply is don’t be on a fast track.

(00:09:35):
Don’t try to solve problems too quickly.

(00:09:38):
Yes, we want to solve problems.

(00:09:40):
We want to deliver value to our business, definitely.

(00:09:44):
But there’s a risk of being too rash in our development because we don’t take the

(00:09:51):
time then to understand the consequences of what we do.

(00:09:55):
And to your point,

(00:09:57):
that I think is the critical thing is to really emphasize is that we need to really

(00:10:03):
improve on our critical thinking.

(00:10:05):
And to your point,

(00:10:06):
critical thinking applies to program development,

(00:10:11):
but it applies to every aspect of our life.

(00:10:14):
It’s every decision we make,

(00:10:16):
every problem we solve,

(00:10:18):
every solution we consider,

(00:10:20):
it requires that.

(00:10:22):
And I think that’s

(00:10:23):
kind of the essence of the talk as well is to say that,

(00:10:27):
hey,

(00:10:28):
we can go beyond what we see at the surface.

(00:10:31):
If we start thinking through the consequences of what we are using,

(00:10:35):
we tend to identify the issues a lot more.

(00:10:39):
So I often say sometimes we have to slow down in order for us to gain speed.

(00:10:45):
We are in this mode of, can I go faster?

(00:10:47):
Can I go faster?

(00:10:49):
Well, there are times we have to slow down.

(00:10:51):
And if we don’t slow down, then we’re going to end up in a ditch.

(00:10:56):
And we didn’t gain speed.

(00:10:58):
We actually resulted in more of an accident, right?

(00:11:01):
So that’s kind of the, so to your point, you’re absolutely right.

(00:11:04):
That’s what fascinates me as well.

(00:11:06):
Yeah, well, I’m really looking forward to your talk.

(00:11:08):
I’ve read the description and it was kind of interesting to me.

(00:11:11):
And now that you explain it, I definitely want to attend it.

(00:11:13):
I’m actually the photographer for Java 1, so I have to be at your talk, so I have to shoot it.

(00:11:19):
But I’m going to make sure I hang out there because I really enjoy your talks from

(00:11:23):
this actual perspective here because you can get micro and macro simultaneously.

(00:11:28):
And I really learned from that.

(00:11:30):
And I pick up a little bit of coding along the way as well.

(00:11:33):
But I’m always fascinated in this concept of learning and efficiency and development.

(00:11:38):
It’s one of the reasons why I like talking to developers is because to one degree

(00:11:42):
or another,

(00:11:43):
they’re struggling with these very same issues and how they learn complex things,

(00:11:47):
how they’re able to focus and go very,

(00:11:49):
very deeply into a topic.

(00:11:52):
And just like you said,

(00:11:52):
the ramifications of not getting something thinking you’re right,

(00:11:56):
but you’re actually wrong on something and then finding out later when you get that

(00:11:59):
two o’clock in the morning phone call when the bank goes down and,

(00:12:02):
you know,

(00:12:03):
in Asia and,

(00:12:03):
you know,

(00:12:04):
that is your code.

(00:12:04):
Right.

(00:12:05):
And so.

(00:12:08):
i can’t i can’t imagine i was talking to a developer one time and he says yo yeah i

(00:12:12):
was writing some stuff and you know the bank actually went down and i said oh my

(00:12:15):
god that actually happened that’s just no that actually happened you know as well

(00:12:19):
he was a junior developer and he says but that’s okay i learned a lot from it i

(00:12:24):
says oh my god you know i

(00:12:26):
I don’t know if I can, that’s just stress to me.

(00:12:29):
It’s like becoming a surgeon or something.

(00:12:31):
So, all right, that’s really fascinating.

(00:12:33):
I’m really interested in this.

(00:12:35):
Cool.

(00:12:36):
So, okay, so let’s talk a little about your feelings about Java.

(00:12:41):
Like what’s new these days in Java?

(00:12:43):
I mean,

(00:12:44):
Java is very interesting from one perspective to me in that there’s always these

(00:12:49):
constant releases now every six months,

(00:12:51):
right?

(00:12:51):
So you get new bits that are coming out.

(00:12:54):
every six months,

(00:12:55):
but you can also obviously follow the stuff that’s under development on the open lists,

(00:12:59):
on the open JDK lists.

(00:13:01):
And so let’s talk a little bit about what’s new now, but also the evolution of Java.

(00:13:05):
Where did it come from?

(00:13:06):
I guess it’s 30 years old, but it’s also very young as well.

(00:13:10):
I’ll be honest about this to you, Jim.

(00:13:12):
I was one of those guys on the other side of the picket line,

(00:13:16):
constantly complaining about Java,

(00:13:18):
that it’s not moving forward.

(00:13:20):
I was ready to, you know, say the last rights for it.

(00:13:24):
Java is dead.

(00:13:25):
Really?

(00:13:26):
When was this?

(00:13:27):
When was this?

(00:13:28):
Actually, it’s fascinating because I’ve saved some of these emails back in 2010 timeframe.

(00:13:36):
This is funny if you think about it, but it also could be frustrating.

(00:13:40):
I used to get hate emails from people.

(00:13:44):
I hate you Venkat because you hate Java.

(00:13:48):
It was a crime to hate Java back in time, but rightfully so in my opinion.

(00:13:53):
And to be honest,

(00:13:55):
All that changed for me when Java 8 came out.

(00:13:59):
And you may say, well, wait a minute.

(00:14:01):
What did Java 8 do to get you convinced?

(00:14:04):
And I remember literally standing up at my desk one day.

(00:14:09):
That’s how you know how shaken you are seeing something.

(00:14:14):
I’ve seen lambdas.

(00:14:15):
I’ve seen functional programming.

(00:14:16):
I’ve seen functional pipeline.

(00:14:19):
I’ve used it in Scala and Groovy and other languages.

(00:14:24):
I’ve done things like Erlang.

(00:14:26):
So these concepts are not new to me.

(00:14:29):
And honestly, I said, big deal.

(00:14:32):
Java has lambdas.

(00:14:33):
Why do I care?

(00:14:34):
Because I’ve seen it in other languages.

(00:14:36):
But this is where I’m willing to admit when I’m wrong.

(00:14:40):
And to me, that’s very humbling.

(00:14:44):
When I can realize myself that I’m wrong and I’m looking at Java,

(00:14:50):
I looked at Lambdas,

(00:14:50):
I’m like,

(00:14:51):
big deal,

(00:14:52):
right?

(00:14:52):
I can do Lambdas in other languages.

(00:14:54):
I could do it in Scala, for example.

(00:14:56):
Why do I care?

(00:14:57):
And I truly looked at two things that blew my mind.

(00:15:00):
One was Invoke Dynamic,

(00:15:03):
and Invoke Dynamic replaced the need for inner classes to do Lambdas,

(00:15:09):
which is what languages like Scala and Groovy on the JVM were doing back then.

(00:15:14):
It fundamentally raised the bar for any language on the JVM to implement Lambdas

(00:15:21):
and functional pipeline very efficiently.

(00:15:24):
The other thing that blew my mind was the lazy evaluation of streams.

(00:15:30):
You know,

(00:15:30):
when I wrote the first book on functional programming in Java,

(00:15:34):
in fact,

(00:15:35):
it was released the day Java 8 was released,

(00:15:37):
and I’m very thankful for all the guidance and reviews and help I got from the core

(00:15:42):
developers behind the Java language because I was writing the book in parallel to

(00:15:47):
evolution of Java 8.

(00:15:49):
But one of the things I said in the book,

(00:15:50):
and my editor called me on the phone and said,

(00:15:53):
are you serious you want to write something like this in a technical book?

(00:15:57):
And I said to my editor, hey, I live in Colorado.

(00:16:00):
And she’s like, yeah, I’ll let you slip through this.

(00:16:03):
And I said in the book, Landis are the gateway drug, streams are the real addiction.

(00:16:11):
And what I meant by that is…

(00:16:13):
You get drawn into the feature by looking at lambdas,

(00:16:17):
but when you realize the functional pipeline and the lazy evaluation that streams provide,

(00:16:24):
that’s when you really realize,

(00:16:26):
oh my gosh,

(00:16:27):
we are sitting on something that’s extremely powerful.

(00:16:30):
Because as programmers, we know one thing really well.

(00:16:35):
You can look at a code and say, oh, that’s cute.

(00:16:39):
That’s easy to understand.

(00:16:40):
That’s easy to maintain.

(00:16:42):
But with all respect,

(00:16:44):
that’s not going to sustain if the code doesn’t give you the performance at the end

(00:16:50):
of the day.

(00:16:51):
And while lambdas give you the conciseness and the cuteness of the code,

(00:16:57):
it’s the lazy evaluation that brings the performance and,

(00:17:01):
of course,

(00:17:02):
the dynamic and concepts like that.

(00:17:04):
So what fascinated me and completely turned me around from being a person talking

(00:17:12):
ill about Java to saying,

(00:17:14):
I got to really pay attention to this because this is going to make a huge

(00:17:19):
difference in production for organizations that have heavily invested into Java.

(00:17:25):
And to me,

(00:17:26):
I often say that functional programming is fascinating because it reduces the

(00:17:35):
accidental complexity in code.

(00:17:37):
But with all respect,

(00:17:39):
with respect to reducing accidental complexity,

(00:17:42):
that’s a problem we deal with for development.

(00:17:45):
That’s important, but that cannot really replace an efficiency in production.

(00:17:51):
So as they often say that when it comes to these concepts,

(00:17:55):
functional programming relies on lazy evaluation for efficiency.

(00:18:02):
And Java,

(00:18:04):
you know,

(00:18:04):
there are languages like,

(00:18:05):
don’t get me wrong,

(00:18:06):
I love all these languages,

(00:18:08):
so I’m not saying these negatively.

(00:18:09):
But when you look at language like Ruby or JavaScript,

(00:18:13):
they provide you the functional style of programming.

(00:18:18):
but they don’t provide you lazy evaluation.

(00:18:22):
So that’s why I call them functional style, not functional programming.

(00:18:26):
And to me, Java developers behind the Java language could have just said, yeah, you know what?

(00:18:32):
You want Lambdas?

(00:18:33):
I’ll give you Lambdas.

(00:18:34):
Let me go home.

(00:18:35):
But instead,

(00:18:36):
they took the time to not only provide a syntactical benefit to reduce complexity,

(00:18:44):
but they took that down to providing performance at the execution level as well.

(00:18:49):
And on that day, I realized that Java is ready for a huge evolution moving forward.

(00:18:58):
I mean,

(00:19:00):
as a person who didn’t believe in Java,

(00:19:04):
I woke up to realize,

(00:19:05):
and that’s why I said I really stood up at my desk and I said,

(00:19:09):
I’ve got to focus on this one because this is going to be huge.

(00:19:13):
And fast forward literally, I don’t know, 12 years now since the day I realized it.

(00:19:21):
Java has not disappointed me.

(00:19:23):
In fact, it’s surprised me every single day as I look at the evolution of the language.

(00:19:29):
So since that time,

(00:19:30):
I would say one of the biggest contributions that Java made,

(00:19:34):
personally in my opinion,

(00:19:35):
is to truly show to us the developers

(00:19:40):
what agile development really should be.

(00:19:43):
I mean, I say this sincerely, right?

(00:19:46):
We are in a crazy world right now when everybody is chanting, be agile, do agile development.

(00:19:52):
Well, you don’t do agile development, you be agile.

(00:19:55):
And one of my aha moments is when the people behind Java figured out

(00:20:04):
They can decouple the development cycle from the release cycle.

(00:20:10):
I wish more people really thought about it and figured out what an amazing idea that really is.

(00:20:18):
Because it’s silly when you see people say,

(00:20:21):
oh,

(00:20:22):
we’re going to do sprint and two-week development.

(00:20:25):
The folks buying Java said,

(00:20:27):
nonsense,

(00:20:28):
we are not getting results from what we are doing,

(00:20:30):
or we’re not going to run behind agile development like everybody else does.

(00:20:34):
We’re going to decouple development from release cycles because they figured out

(00:20:39):
what was holding them back.

(00:20:41):
To come up with an arbitrary set of features to be released ahead of the time of

(00:20:47):
doing any work on it is definition of insanity.

(00:20:51):
And we have been doing that, and the folks behind Java were doing that too.

(00:20:55):
And they realized,

(00:20:56):
wait,

(00:20:56):
what if we give a six-month release cycle,

(00:21:00):
but we’re going to allow people to take the time to develop the features that

(00:21:05):
with the utmost quality and feedback cycle it needs by using the pre-release versions.

(00:21:13):
But then when it’s ready,

(00:21:15):
you get to release it within six months and not have to wait arbitrarily for

(00:21:23):
synchronizing with some feature that somebody decided to put together.

(00:21:28):
I wish more organizations will learn from what Oracle has done very brilliantly,

(00:21:35):
but has not,

(00:21:36):
in my opinion,

(00:21:37):
really marketed that idea really well.

(00:21:40):
To me, that to me is, again,

(00:21:43):
Nothing technical at this point,

(00:21:45):
but even from the managing the project point of view,

(00:21:49):
there is things to learn.

(00:21:51):
And that’s one of the reasons I appreciate Java today is that Java is no longer

(00:21:56):
what it used to be back in Java 4,

(00:21:59):
Java 5,

(00:21:59):
Java 6 timeframe.

(00:22:02):
It’s a vibrant environment.

(00:22:04):
And again,

(00:22:04):
with no disrespect to people behind Java,

(00:22:08):
we could also realize that we talk about Java as this one language.

(00:22:13):
Oh, boy, 30 years is what?

(00:22:16):
If not one, if it’s not two generations of developers moving the language forward.

(00:22:23):
It’s not the original creators of the language.

(00:22:26):
It’s not the people who came after that a decade later.

(00:22:30):
It is a much different set of people moving Java forward.

(00:22:34):
It’s new thinking because there’s new energy into it.

(00:22:37):
So I can talk endlessly about the technical reasons why I’m excited about Java as I

(00:22:43):
do in my talks,

(00:22:44):
but it’s also these non-technical things that also excites me about Java is because

(00:22:50):
it’s not one thing that makes it successful.

(00:22:53):
It’s kind of like the wheels of a car.

(00:22:55):
You can’t have just one wheel functioning really well and the other wheels being,

(00:23:01):
this is why we align wheels differently.

(00:23:03):
from time to time in a car because when the wheels are aligned,

(00:23:07):
we are able to move forward smoothly.

(00:23:09):
So it’s the time when several things aligned in Java,

(00:23:15):
both the technical things and the non-technical things coming into alignment is

(00:23:20):
what really excites about Java to me today.

(00:23:22):
Yeah, I always describe Java, you know, some people say, oh, it’s 30 years old.

(00:23:26):
And they don’t realize if you go to any real Java conference around the world,

(00:23:30):
you’re going to see a bunch of 20 year olds there.

(00:23:32):
You know,

(00:23:32):
there’s a lot of people,

(00:23:34):
you know,

(00:23:35):
I mean,

(00:23:35):
I go to a conference and I say my first Java one was in 2000.

(00:23:39):
Oh, I wasn’t really born then, that kind of thing.

(00:23:42):
And it’s like, that’s 25 years ago.

(00:23:46):
And yeah, that developer was just born.

(00:23:49):
And so these are the people now that are driving it.

(00:23:52):
But a lot of the older guys are still there.

(00:23:55):
So they have the history and things like that.

(00:23:58):
A lot of deep expertise.

(00:24:01):
But it’s completely young.

(00:24:03):
It’s the old and the young mixing together seamlessly.

(00:24:06):
I mean, you can see it inside of Oracle as well.

(00:24:08):
You have people that are working on the platform.

(00:24:10):
This is a lot of young people around.

(00:24:12):
So,

(00:24:12):
okay,

(00:24:12):
when you talk about the decoupling of development from release,

(00:24:16):
I mean,

(00:24:18):
it’s been that way for years now in terms of Java.

(00:24:22):
Other organizations aren’t, I mean, aren’t using that.

(00:24:24):
Isn’t that normal now in software development?

(00:24:27):
Sadly,

(00:24:28):
no,

(00:24:28):
because one of the reasons for that is the world is a really big place,

(00:24:35):
and it takes certain time and effort for people to do things and realize it’s not

(00:24:44):
working for them,

(00:24:46):
and then to have the ability to change.

(00:24:50):
Certainly, there are a number of organizations that are very effective, doing great.

(00:24:55):
Absolutely, that’s fantastic.

(00:24:56):
But there is a fairly significant segment of the industry where,

(00:25:01):
unfortunately,

(00:25:02):
there are certain people in the management or in various responsibilities who are

(00:25:08):
looking for a prescription rather than a practice.

(00:25:13):
That’s one of the things I often emphasize to people is,

(00:25:16):
you know,

(00:25:16):
look for practice,

(00:25:18):
not for methodologies.

(00:25:20):
Look for practices, not for procedures.

(00:25:24):
And practices are easier to change, procedures are what you are trying to follow.

(00:25:30):
And a lot of times what these organizations do is they want a prescription as to

(00:25:35):
how to do agile,

(00:25:37):
and they fall into the trap of following certain predetermined things.

(00:25:42):
One of the things I often say is be agile about being agile, because you’ve got to figure out

(00:25:49):
what works for your team, and what needs to change.

(00:25:53):
And again,

(00:25:54):
to emphasize that,

(00:25:55):
just because it worked for Oracle doesn’t mean it will work for everybody else.

(00:26:00):
But it’s important to really take the time to see and say, wait, why are we building this way?

(00:26:06):
You know, personally, right, I gave my company as agile developer, but I don’t think I do any

(00:26:13):
agile software process training.

(00:26:16):
I don’t do that anymore.

(00:26:17):
Part of the reason for that is, if you ask me, how do I develop software?

(00:26:23):
Well, I do continuous delivery.

(00:26:26):
That’s what I do.

(00:26:27):
I release software multiple times a day into production.

(00:26:32):
I don’t believe in this two-week cycle.

(00:26:34):
Well,

(00:26:35):
why should I focus on an arbitrary process I create when I can deliver value to my

(00:26:41):
customers much faster and focus on what actually they want?

(00:26:47):
So I’ve changed a lot of things I do based on my own experience and experimentation.

(00:26:54):
But unfortunately, as a smaller company, I’m able to do it.

(00:26:58):
As a larger company, Oracle is able to do it.

(00:27:01):
So it’s not the size that matters, but it’s the mindset that matters.

(00:27:06):
It’s for people who are able to come in and say,

(00:27:09):
well,

(00:27:09):
duh,

(00:27:10):
this is not working,

(00:27:11):
but thank you for your suggestions.

(00:27:14):
The Agile manifesto said we shouldn’t focus on the process.

(00:27:20):
And yet, agile development has become such process-oriented, unfortunately.

(00:27:25):
What an irony, right?

(00:27:26):
So to your point, yes, companies like Oracle have done it.

(00:27:30):
Some other few companies have done it.

(00:27:32):
But at large, I think our industry is struggling.

(00:27:35):
It goes back to what we talked about earlier, right?

(00:27:38):
Critical thinking is hard.

(00:27:40):
And when people want prescription, they don’t want to take the time to do critical thinking.

(00:27:47):
Instead, they’re like, this is why I hate the words best practices.

(00:27:52):
When somebody says best practice, I cringe because best practice means give me a checklist.

(00:27:58):
I will tick them off.

(00:28:00):
If it works, great.

(00:28:02):
If it doesn’t work, it was not my problem.

(00:28:04):
I just followed the best practice and obviously it didn’t work for me.

(00:28:08):
I think there’s a lot to learn in this world and to improve.

(00:28:12):
Yeah,

(00:28:13):
it’s interesting with this whole release model,

(00:28:16):
I’m feeling more and more as it’s,

(00:28:19):
yes,

(00:28:20):
it’s been obviously around for years now,

(00:28:22):
but it has such an impact with so many people.

(00:28:25):
Whenever I bring it up, everyone reacts like you react.

(00:28:27):
It’s really interesting.

(00:28:28):
It’s not just a release model.

(00:28:31):
It’s much more than that.

(00:28:32):
Okay, so that’s an interesting bit there about the evolution.

(00:28:36):
Anything more about what you’ve seen with Java over the years?

(00:28:40):
One thing that I’m absolutely excited about is the ideas behind virtual threads.

(00:28:47):
I’m absolutely excited about a lot of other features in the language,

(00:28:53):
but one thing that excites me about virtual threads is,

(00:28:56):
this again goes back to what I mentioned earlier,

(00:28:59):
is I tend to get excited about Java

(00:29:03):
when it makes the production environment really successful and not just the

(00:29:09):
development experience.

(00:29:11):
You know, I’m a programmer.

(00:29:12):
I care about developer experience.

(00:29:14):
I care about the joy and the journey of writing code and reducing complexities.

(00:29:20):
But at the same time, what fascinates me is how much impact it has in production.

(00:29:27):
And virtual threads,

(00:29:28):
to me,

(00:29:29):
is something that’s going to make a huge impact in production when companies are

(00:29:34):
able to move forward into much more recent versions of Java.

(00:29:39):
And the reason is…

(00:29:41):
Without you having to modify the code a lot,

(00:29:44):
I often say virtual threads is like aspects in aspect-oriented programming.

(00:29:50):
Because to me,

(00:29:51):
you can flip a switch here and you can see changes way over there rather than

(00:29:58):
having to modify code at every different level.

(00:30:02):
This is huge because if you look at C Sharp and if you look at JavaScript,

(00:30:06):
again,

(00:30:07):
those are languages I appreciate for their own merit.

(00:30:11):
to be negative about the languages.

(00:30:12):
But when it comes to asynchronous programming in C-sharp or even in Kotlin or JavaScript,

(00:30:21):
if you want to convert a code from being synchronous to asynchronous,

(00:30:27):
you have to modify a lot of code.

(00:30:29):
We could argue the code change is not a lot, but the code change is intrusive.

(00:30:36):
It’s not just where you come and flip a switch and you walk away.

(00:30:40):
But it really is,

(00:30:41):
again,

(00:30:42):
fantastic to see how,

(00:30:44):
without modifying any code,

(00:30:47):
you can just modify a configuration,

(00:30:50):
I use the word loosely here,

(00:30:52):
at one level,

(00:30:53):
and all the code can now behave asynchronously what was previously synchronous.

(00:31:00):
To me, that is huge in terms of performance at the runtime introduction.

(00:31:07):
And that’s what I truly appreciate.

(00:31:09):
I tend to really appreciate things that you don’t see, you don’t look at.

(00:31:15):
When you look at the code, this is not staring at you.

(00:31:18):
But you’ve got to kind of see through it and say, whoa, I see what’s going on here.

(00:31:24):
And that’s why it’s kind of like coming back in full circle.

(00:31:28):
What exactly about Stream was not the syntax, but the semantics.

(00:31:32):
And what I appreciate about virtual threads is again,

(00:31:35):
not just the syntax,

(00:31:37):
but the semantics of its behavior.

(00:31:39):
And that to me is really fascinating.

(00:31:41):
And if you ask me, what are the super big threads

(00:31:46):
A big as not in huge in terms of code change,

(00:31:49):
but huge in terms of impact that I’ve seen in Java.

(00:31:54):
I would say, of course, the introduction of Java itself in the beginning.

(00:31:59):
But then I would put Java 8 as the next biggest change.

(00:32:04):
But fast forward with,

(00:32:05):
again,

(00:32:06):
all respect to everything that’s happened in between,

(00:32:08):
which are as valuable

(00:32:10):
But to me,

(00:32:11):
the next big change in Java,

(00:32:12):
in my honest opinion,

(00:32:14):
is virtual threads and structured concurrency.

(00:32:17):
And I think these are going to be the super highlights of Java over the evolution

(00:32:23):
over the 30 years is because they have a huge impact in various different ways in

(00:32:29):
terms of productivity for both the developers and in terms of production as well.

(00:32:34):
This is fascinating.

(00:32:35):
You should write about the history here.

(00:32:38):
I don’t think I’m qualified to write.

(00:32:41):
I’m the person who speaks the joy, but I don’t think I’m qualified to write about it.

(00:32:47):
Well, you did mention earlier about a book.

(00:32:49):
I do have a book coming out on the evolution of Java,

(00:32:54):
not in terms of history of it,

(00:32:55):
but the technical evolution,

(00:32:57):
cruising along with Java.

(00:33:00):
Essentially,

(00:33:01):
the idea behind cruising along with Java is to say,

(00:33:04):
hey,

(00:33:04):
I was excited about Java 8,

(00:33:06):
but here’s what’s happened in Java since Java 9 to Java 23.

(00:33:11):
And one of the things I’m really happy about is how much this evolution has been exciting.

(00:33:16):
You know, I usually write my books really quickly, but I’m really thankful to my publisher.

(00:33:20):
They’ve been very patient with me.

(00:33:22):
I literally took two years to write this book,

(00:33:24):
not because I needed the time to write it,

(00:33:27):
but I really wanted to.

(00:33:29):
I would see a feature in Java.

(00:33:31):
I’m like, oh, my gosh, I’m really excited about it.

(00:33:33):
My gosh, it’s in pre-release.

(00:33:34):
I’ve got to wait for it to become, you know, into the language.

(00:33:37):
So I kind of waited for these features to be baked into the language.

(00:33:41):
So I was writing the book alongside as these features were developed,

(00:33:45):
but I finally realized that it’s time to release the book.

(00:33:47):
So it’s coming out in a couple of months from now, cruising along with Java.

(00:33:51):
But to your point,

(00:33:52):
you know,

(00:33:53):
I’m excited about the features like text blocks and features like type inference,

(00:33:59):
but all the way to,

(00:34:00):
you know,

(00:34:00):
what excites me is not that Java has these n number of features,

(00:34:05):
right?

(00:34:05):
But what blows my mind is the synergy between those features.

(00:34:11):
You know, oh, wow, sealed classes are really cool.

(00:34:14):
Oh, wow, pattern matching is cool.

(00:34:17):
Oh, wow, records are cool.

(00:34:19):
But then I sit back and say,

(00:34:21):
what’s even more fascinating is,

(00:34:23):
for example,

(00:34:24):
how pattern matching and sealed classes and records work.

(00:34:29):
all come together, right?

(00:34:32):
That’s what truly has been exciting for me to see.

(00:34:36):
So when I work with my clients,

(00:34:37):
when I’m working on code for them,

(00:34:40):
I show them how they can refactor their code from those gnarly if and else

(00:34:46):
conditions to using pattern matching and sealed classes and records.

(00:34:51):
And that’s what I wanted to really bring in the book to say,

(00:34:54):
you can use these ideas in your current code

(00:34:59):
and refactor those code so that they become a lot more easier to maintain.

(00:35:04):
And so anyway,

(00:35:05):
that’s kind of the emphasis that I really want to bring to developers interested in

(00:35:10):
Java is to say,

(00:35:12):
you are no longer writing.

(00:35:14):
I give a talk from time to time, which is called, this ain’t your parents Java.

(00:35:20):
And I say that as a parent myself, right?

(00:35:23):
To me, it’s fascinating because 30 years, to your point, Jim, we see 20-something.

(00:35:29):
I have children who are adults now who are in the workforce.

(00:35:34):
And for me to see my children in the workforce and learning to use technologies and

(00:35:42):
push the boundaries –

(00:35:43):
You know,

(00:35:44):
I use Java very differently as a young programmer than the next generation gets to

(00:35:50):
use Java.

(00:35:52):
So I think that’s the key is,

(00:35:54):
you know,

(00:35:54):
in fact,

(00:35:55):
to your point earlier,

(00:35:56):
this was fascinating to me because somebody came to me and said,

(00:35:59):
hey,

(00:36:01):
I used to program in Java 15 years ago.

(00:36:04):
I kept telling people, don’t use Java because it’s obsolete.

(00:36:09):
I just stumbled into your talk.

(00:36:12):
I saw the features you are talking about.

(00:36:15):
I hate to admit it.

(00:36:17):
I begin to realize Java is no longer the language that I once programmed in.

(00:36:23):
I should no longer tell people, don’t use Java.

(00:36:29):
I should go learn the new Java and explore how I can benefit as well.

(00:36:35):
And to me, that is the key is we all, this is human nature.

(00:36:41):
I used to do something.

(00:36:42):
I develop an opinion about it.

(00:36:45):
I have moved away, but I don’t realize that.

(00:36:48):
I have moved away, but the language has moved on and forward as well.

(00:36:53):
And a significant number of developers have just not been exposed to it.

(00:36:57):
So when somebody tells Java,

(00:36:59):
don’t use it,

(00:37:01):
I respectfully ask them,

(00:37:03):
when was the last time you actually used Java?

(00:37:07):
Well,

(00:37:07):
if you used it 10 years ago or so,

(00:37:11):
I’m sorry,

(00:37:11):
but you’re not really looking at the same language.

(00:37:15):
In a way, it’s like being in a city, right?

(00:37:18):
You know,

(00:37:19):
I was down in Houston a couple of weeks ago with my wife,

(00:37:23):
and we used to live in Houston for 20 years,

(00:37:26):
and it’s been almost 20 years since we moved from Houston.

(00:37:30):
And as we were driving by, my wife was saying, hey, look what they have done to downtown.

(00:37:36):
You know, Jim, when I used to live in Houston, downtown is not where you go after it gets dark.

(00:37:43):
It was the scary, dark place.

(00:37:46):
And she was telling me, look at this.

(00:37:48):
This is a vibrant community here.

(00:37:51):
young people walking down, beautiful apartments, looking fascinating apartments.

(00:37:59):
It doesn’t look rundown.

(00:38:01):
And I was like, yeah, when you come back, you get a different view.

(00:38:06):
I’m sure things could have gotten better, could have gotten worse as well.

(00:38:10):
But the point is, you need to revisit to improve your opinions about it.

(00:38:17):
That’s what is the difference between opinions and biases.

(00:38:21):
And then to me,

(00:38:22):
if you’ve been away from Java,

(00:38:23):
like I’ve been away from Houston for a while,

(00:38:27):
I would say take a nice drive through it.

(00:38:31):
And you may have a very refreshing view as me and my wife did as we drove through Houston.

(00:38:36):
Yeah, everything evolves, everything, everything grows.

(00:38:40):
So, yeah, that’s really a good point.

(00:38:42):
And,

(00:38:43):
you know,

(00:38:43):
that’s why I like listening to you in sessions like this,

(00:38:46):
but also in your technical sessions,

(00:38:48):
because I get a holistic viewpoint where you’re bringing things together and and I

(00:38:52):
can actually learn from them,

(00:38:53):
even though I’m not necessarily using the tool that you’re using.

(00:38:56):
I can abstract the concept that you’re talking about into what I do.

(00:39:00):
You know, it’s really interesting.

(00:39:02):
So now you’ve been training and coding and teaching for years and years and years,

(00:39:08):
and you have clients and stuff.

(00:39:09):
But now, most recently, you’re also running your own conferences now.

(00:39:12):
So talk for a minute or two about that.

(00:39:15):
It’s been an exciting experience,

(00:39:17):
and I’m very humbled at the amazing support I got from the community.

(00:39:23):
But one of the things I really wanted to do was to be able to run a conference that

(00:39:30):
brings together experts and the next generation of experts at the same time.

(00:39:37):
You know, with all respect, right?

(00:39:39):
I don’t mean this as a disrespect to anybody, but I love speaking in conferences.

(00:39:44):
I’m thankful, humbled when conferences invite me and say, we can come and give a talk.

(00:39:49):
But I ask the question,

(00:39:50):
I get invited to speak in talks today.

(00:39:53):
You know, I’m marginally good.

(00:39:54):
Thank you for that.

(00:39:55):
But how can we have the next generation of amazing speakers who can influence and

(00:40:03):
move the world forward?

(00:40:04):
When I ran Deaf2Next earlier in October of 2024,

(00:40:09):
I was humbled and very thankful to have experts like Dave Thomas and Neil Ford come

(00:40:16):
and give a talk.

(00:40:18):
These are names we recognize because we see them all the time in conferences.

(00:40:24):
I love hearing Dave.

(00:40:25):
I love hearing Neil.

(00:40:26):
He’s amazing.

(00:40:27):
Yeah.

(00:40:28):
They are amazing.

(00:40:29):
And I had Lisa Crispin, you know, somebody I’ve admired for a long time.

(00:40:34):
Lisa came and gave a talk at the conference.

(00:40:36):
I’m very thankful for her presence as well.

(00:40:38):
So these are names recognized because they are experts.

(00:40:42):
We’ve seen them write books.

(00:40:43):
We’ve seen them give talk in conferences.

(00:40:46):
But what also excited me was when I was looking at the reviews from the talk,

(00:40:52):
we had speakers who are practitioners in the industry whose name nobody has heard.

(00:41:00):
I didn’t know those names.

(00:41:02):
But when we opened up for open call for papers and encouraged people to say,

(00:41:07):
you know,

(00:41:08):
we will pay you for your travel if you are qualified to come and speak.

(00:41:14):
You don’t need to be part of a large organization or you could be,

(00:41:18):
but you don’t have to wait for your boss to approve your trip.

(00:41:22):
But if you are qualified, that’s the key.

(00:41:24):
We’re going to support you to come and give a talk in the conference.

(00:41:27):
And we did that.

(00:41:29):
And when we looked at the reviews,

(00:41:31):
there were people saying,

(00:41:32):
oh,

(00:41:32):
my gosh,

(00:41:33):
I went to this talk by this person.

(00:41:35):
And here are the things I learned.

(00:41:37):
It blew my mind.

(00:41:39):
Here are things I can use on Monday when I get back to work.

(00:41:42):
Right.

(00:41:43):
And to me,

(00:41:44):
with all respect,

(00:41:45):
people like me can give talks and we can influence people,

(00:41:48):
and we do,

(00:41:49):
but I want to give an opportunity for the next generation of those people who can

(00:41:54):
inspire and educate people.

(00:41:58):
But these are the hidden gems in the world, and I want to give more opportunity for them.

(00:42:04):
And that’s exactly what we’re doing this year as well,

(00:42:07):
is we’re going to have a really good balance between these experienced and expert speakers.

(00:42:13):
But we also want to bring in experienced practitioners who are not those well-known speakers.

(00:42:20):
but who can eventually become those well-known speakers over time.

(00:42:25):
But we bring them for their technical competency.

(00:42:29):
They not only gave talks,

(00:42:30):
but then they spent their time in the hallway,

(00:42:33):
sitting down with developers and talking about

(00:42:37):
how to address their architectural concern or their particular problems.

(00:42:42):
And to me, that’s a whole point of going to a conference.

(00:42:46):
You know,

(00:42:46):
that’s exactly why to kind of bring this into from my conference to Java 1,

(00:42:51):
that’s the reason I want to go to Java 1 as well.

(00:42:53):
It’s not because I can give a talk in Java 1.

(00:42:56):
I give talks everywhere.

(00:42:58):
But I get an opportunity in Java 1 to sit down with the core developers behind Java

(00:43:05):
who are not these people who speak in a thousand conferences like I do,

(00:43:10):
but who are the people who have their hands wet with the technology that most of us use.

(00:43:16):
And so back to my conference,

(00:43:19):
if you can come over,

(00:43:20):
but sit down with the person who is doing the architecture,

(00:43:23):
who is driving the development behind AI in their company,

(00:43:28):
and get to really sit down and talk to them about

(00:43:31):
practically what they are doing, I think your time is well spent being in a conference.

(00:43:36):
And that’s kind of what motivated me to create this conference.

(00:43:39):
And that’s what we’re focusing on as well.

(00:43:41):
Wow.

(00:43:41):
Inspiring.

(00:43:42):
That’s really inspiring.

(00:43:43):
That’s really great that you’re doing that.

(00:43:45):
And just to let you know,

(00:43:46):
I have heard from several people who went to your conference and they really said

(00:43:50):
it was very innovative.

(00:43:52):
So that’s some feedback there.

(00:43:54):
So that’s really cool.

(00:43:56):
All right, Venkat, is there anything else that we need to talk about today?

(00:43:59):
I think we can go on for another hour, but it is two o’clock in the morning here.

(00:44:04):
And do you have any final words?

(00:44:09):
Well, I really appreciate you staying late and taking the time to talk to me.

(00:44:14):
I’m very humbled and grateful for that.

(00:44:17):
But I want to say,

(00:44:18):
you know,

(00:44:19):
if there’s anyone out there kind of still thinking,

(00:44:22):
should I really go to conference?

(00:44:24):
Should I go to Java 1?

(00:44:27):
I would say the conference is you.

(00:44:31):
It’s what you want to make out of it.

(00:44:33):
It’s not the published talks or it’s not the scheduled program, even though those are important.

(00:44:38):
It is the people that you’re going to meet.

(00:44:41):
It is the experts.

(00:44:42):
It’s the practitioners.

(00:44:44):
It’s the fellow developers in the industry.

(00:44:48):
And Jim, I’ll be honest about it.

(00:44:50):
I started speaking in conferences nearly approximately 25 years ago.

(00:44:55):
And not only conferences,

(00:44:58):
I also want to bring attention to user groups.

(00:45:02):
User groups have seen less attendance over the past few years.

(00:45:07):
I go to speak at about 25 user groups every year.

(00:45:13):
I’ve noticed that.

(00:45:14):
I’ve really noticed that.

(00:45:15):
Yes.

(00:45:16):
And I attend user groups when I’m able to, when I’m in town.

(00:45:20):
And I’ll tell you why, honestly, I invest my time to go to user groups and go to conferences.

(00:45:28):
It’s because when I come back from a user group or a conference,

(00:45:33):
I don’t come back saying, yeah, I went there, I had the pizza and the food they gave me.

(00:45:38):
No, it is things that change my thinking.

(00:45:43):
I have written chapters in book because I had a conversation with somebody.

(00:45:48):
I got motivated to work harder on something.

(00:45:51):
I’ve implemented a certain design ideas for my clients because I heard somebody in

(00:45:58):
the hallway talk about something they do.

(00:46:01):
I cannot tell you how much I learn when I go to these events.

(00:46:06):
I’m selfish in that regard.

(00:46:09):
I want to learn.

(00:46:10):
If I’m not learning, I’m not going.

(00:46:13):
And it doesn’t matter.

(00:46:15):
I was in Chicago a couple of months ago to speak in a conference.

(00:46:19):
And Mary, who runs the Chicago Java user group, said, would you come and speak in the evening?

(00:46:24):
I’m like, sure.

(00:46:25):
And I go there.

(00:46:25):
I speak in the evening.

(00:46:27):
But then I spend the next hour and a half after the talk literally standing there

(00:46:34):
and talking to developers.

(00:46:36):
And at 1030 in the night, we are leaving the building.

(00:46:40):
And I’m like,

(00:46:40):
oh,

(00:46:41):
my gosh,

(00:46:41):
I’m so enlightened by this hour long,

(00:46:45):
hour and a half conversation because it’s given me thoughts that I want to focus on

(00:46:50):
moving forward.

(00:46:52):
I leave educated.

(00:46:55):
And more important,

(00:46:56):
one of the things I often emphasize to people is it’s not who you know that matters.

(00:47:02):
It matters who knows you.

(00:47:05):
You know, it doesn’t matter, Jim, that you know me.

(00:47:08):
But the fact that I know you,

(00:47:10):
if somebody calls me and says,

(00:47:12):
hey,

(00:47:12):
we’re looking for somebody like this.

(00:47:14):
Can you recommend somebody?

(00:47:16):
Honestly, I recommend people that I know.

(00:47:19):
I know people from user groups I’ve been to.

(00:47:22):
People have enjoyed conversation after the user group.

(00:47:25):
I’ve communicated with them by email.

(00:47:27):
And I refer people because I know them.

(00:47:30):
So when you go to conferences, when you go to user groups,

(00:47:34):
You are networking.

(00:47:36):
You allow other people to know you,

(00:47:40):
which means when there are opportunities,

(00:47:43):
they tend to call you.

(00:47:44):
I’ll be absolutely honest about it.

(00:47:47):
I’ve not done any marketing for my training or consulting in the past 25 years.

(00:47:52):
Zero.

(00:47:52):
Zero.

(00:47:55):
And the only reason is I’ve got people call me and say,

(00:47:59):
hey,

(00:48:00):
one of my colleagues heard you speak.

(00:48:01):
One of my colleagues worked with you in a previous company where you did consulting.

(00:48:06):
Can you come and teach us this or can you come and help us with this problem?

(00:48:09):
So it’s because people know me and people know me because I go to conferences,

(00:48:14):
I go to user groups.

(00:48:17):
Again,

(00:48:17):
it doesn’t have to be for one thing,

(00:48:19):
but I encourage more developers to go to conferences,

(00:48:23):
but go to user groups.

(00:48:25):
User groups cost you nothing other than your time,

(00:48:28):
and they give you food,

(00:48:29):
and you get to interact with people and make new friends.

(00:48:33):
I want to say the last thing on my mind is to encourage people to go out and

(00:48:38):
network more and let the world know them.

(00:48:41):
more than anything else.

(00:48:43):
Beautiful.

(00:48:44):
Beautiful.

(00:48:44):
All right,

(00:48:44):
Venkat,

(00:48:45):
we’ll see you in a couple of months in March,

(00:48:48):
March 18th through 20th in Silicon Valley.

(00:48:51):
I look forward to seeing you there, Jim.

(00:48:52):
Thank you so much.

(00:48:53):
Cheers.