(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.
