Tales from the jar side: Interviews and Briefings and Conferences, Oh My
Welcome to Tales from the jar side, the Kousen IT newsletter, for the week of September 8 - 15, 2019. This week I taught a Reactive Spring course online on Safari, an Introduction to Gradle class online for Gradle, Inc, spent a couple more days with the bootcamp students, and traveled to San Francisco for the Oracle Code One conference.
Last one first. Oracle Code One is the former JavaOne conference, which started out as the flagship Java conference back in the 1990s but had been declining in recent years. San Francisco is an extremely expensive city and Oracle is notoriously stingy about paying travel costs for speakers, so in the past I've only attended when I had talks to give and a book to sell. This year even though I'm writing a relevant book called the Kotlin Cookbook, I knew it wouldn't be ready in time for the conference, so I wasn't planning to go again. Yet, I'm here, for a rather silly reason.
You see, I'm the lead singer in the Null Pointers, the rock band made up of Java developers. This is a band that plays cover songs at a party during the conference, for about an hour. We rehearse roughly once a year, and it probably shows, though the band members are remarkably talented. But I always wanted to be in a band, and here's my chance, so I let the lead guitarist talk me into it.
We're performing Monday night, which is technically next week, so I'll save the rest for the next newsletter. I'll just say that we spent several hours in a very hot recording studio on Sunday, and I think we're going to have a lot of fun.
Java Champions
Saturday was the "Java Champions" briefing. A couple years ago a good friend of mine discovered I wasn't a Java Champion, and he was, so rather than give me a hard time about it he nominated me for the role instead. Much to my surprise I made it through, so now I have another resume stuffer. It gives me access to a special mailing list where most of the posts consist of debating what other nominations to approve. It also admits me to the briefing on Saturday, where people from Oracle let us know what's coming in the Java world. Since Oracle's legal department reputedly is twice the size of all its developer teams, we all had to sign a NDA in order to be allowed into the briefing.
(Okay, that's a bit cynical, though probably true.)
Let me spare you any suspense. Within the constraints of the NDA, I can tell you my experience, which was that all the discussions boiled down to:
Them: Here's an explanation of our confusing license agreements for Java.
Us: That's way too complicated.
Them: Yeah, we know, but it's a complicated subject. Don't you want a detailed explanation of all the various options and edge cases?
Us: Maybe, but it's too much. It's going to drive people away, especially newcomers to the language. Can't you make that simpler?
Them: Do you think this is easy? Have you looked at similar agreements in other languages? Oh, and you mind if we answer questions with additional questions?
Us: Apparently we can't stop you.
And so on. Each segment left me more confused than when I started, but they were trying. There's a classic book in computer science called No Silver Bullet: Essence and Accident in Software Engineering by Fred Brooks, where he claims that no development in software will ever achieve a major improvement in productivity. The problems we're solving are inherently complex, and that's an inescapable fact of life. Apparently Oracle feels the same way about licensing agreements. Like I said, it's a company full of lawyers. It's probably not a surprising result.
Interviewing Strategy
Regarding the bootcamp students, this was week eight of their program, out of twelve. That meant this was the week they actually applied for a job at the company sponsoring the training. The plan is to conduct interviews during week 10, at which point hopefully lots of them will receive job offers, contingent on completing the program. Since I'm in San Francisco during week nine, I wanted to make sure I gave them as much background as I could to help them with the interviews.
You would probably not be surprised to hear that I also have my own opinions about those interviews, too. After all, I'm a developer, and we're an opinionated lot. While I don't have any idea what actual questions the interviewers are going to ask, I know developers, and I kept offering questions that the students could ask to get the interviewers talking about themselves.
For example, ask the interviewer things like, "what cloud provider are you using? Do you like it? Do you think it's saving you money over maintaining servers in house? What about security? Isn't the company worried about exposing user's data to hackers?"
Or, "what do you think about the transition away from the free Eclipse IDE to the commercial IntelliJ product? Do you like it? Did you have to argue with management to get them to approve it? How it team doing with the conversion?"
Or even, "how to you handle code reviews? What do you consider worth writing tests for? Do you do both unit and integration tests? Which do you prefer? Have you applied them to legacy code?"
Etc, etc, etc. It's a strategy. Get the interviewer talking about themselves and problems they've encountered, and you're halfway there. If you play it right you can be a good listener, which everyone views favorably, and eliminate most of the available time for them to ask you awkward questions.
On a more practical matter, I spent as much time as I could this week talking about persistence -- how to save information into a database. We went over the available slides on basic SQL and a bit about transactions, then moved to Java's JDBC classes, and how the Spring framework simplified them. Then we talked about the basics of the object-relational mapping tool called Hibernate, used it in Spring, and then ended with Spring Data, which can generate your entire persistence layer automatically/
To be honest, it was quite the info dump, and I don't know how much they will retain, but it will probably be relevant and it might help in their projects. We'll see.
Online Courses
On Tuesday and Wednesday I taught the public online Introduction to Gradle class again hosted by Gradle, Inc. That went well. We had a smaller number of students than usual, but the ones who attended were very active and asked a lot of good questions. I think I managed to give them most of what they needed.
Finally, the week started with a Reactive Spring course, which is a very tough course to teach because it covered way too much material to fit into a single day. That's all we have, though, and I'm getting better at figuring out ways to streamline it. Hard to know how beneficial it is, though, in its current form, but at least I keep it inside the time constraints.
So the week was a busy one, and I'm leaving out all the surrounding chaos in the world. This week I'm in California, on Pacific Time, with lots going on once again.
I suppose I wouldn't have it any other way.
Last week:
Reactive Spring at Safari online
Introduction to Gradle online for Gradle, Inc
Travel to Oracle Code One (OC1) for Java Champions briefing and more
This week:
What's New In Java at Safari online
JUnit 5 at Safari online
Mockito and the Hamcrest Matchers at Safari online
Participate in a panel at OC1 on marketing your open source project
Play at the Java Community Process party with the Null Pointers