Tales from the jar side: When too many people want the same thing (KotlinConf)
Welcome to Tales from the jar side, the Kousen IT newsletter, for the week of July 14 - 21, 2019. This week I did a workshop at OSCON, the O'Reilly software conference in Portland, OR, and gave several talks at UberConf, the NFJS event in Denver.
As an aside, I have to qualify the name of the city Portland with the state OR, because I live in New England. We have a moderately sized town called Portland, ME and even a tiny hamlet called Portland, CT. I don't think we have any other Denvers.
Exponential Distributions
Before I get to those, however, I want to bring up a topic from my Mental Bookmarks and the Fractal Nature of Success talk. One of the major themes of that talk is that no matter how successful you are, it's hard to feel like you've made it because there's always a level above you. As as simple example I use airline seats. When you're in coach, you want to be at least in Economy Plus, but really in Business. People in Business would love to be in true First Class. Then the people in First are thinking, "I can't believe I had to fly commercial," and so it goes. There's always a level above, and it's easy to forget about the levels below.
This is perfectly natural, by the way. Our entire economic system (at least in the U.S.) is designed to make you feel that way. What is advertising, but a way to make you feel that if you just tried a little harder, spent a little more, and worked a few more hours, you could at last buy the thing that will make you happy? Then when you actually reach that level, you discover there's another level above it and the process continues.
During the talk, as another way to indicate levels, I discuss two professions with an exponential distribution: acting and baseball. You can be the greatest baseball player your high school ever produced and have a Double AA manager say, "he couldn't play". You could light up the stage in local community theater and not be able to get an audition in Hollywood or on Broadway. In those professions, the supply is so much bigger than the demand that you can be in the top 1% of athletes or performers and still not make a living.
One of the biggest surprises in my life was discovering that academia -- getting a job as a tenured professor -- is also an exponential distribution. Schools crank out way more Ph.D.s than available jobs for them. Finding a tenure track position, even with a brilliant resume and recommendations, is brutally difficult. Back in the early 90's, when my eventual goal was to go into academia, the University of Connecticut (my local school) advertised a position for an Assistant Professor in Mechanical Engineering. They received over 450 resumes, all from qualified individuals. From all I've seen and read, the situation is much, much worse now.
Since I give that talk at NFJS conferences, the audiences are in the tech industry, where generally speaking there are enough jobs to go around. You may not find exactly what you want where you want it, and there are major hurdles to overcome (especially for women and underrepresented minorities), but it's a lot easier to get a job in I.T. than to make a living as an actor, or a writer, a musician, an artist, or a professional baseball player. We're lucky that way.
Except when we're not. The really good opportunities are always oversubscribed. Lots of people want to work at the major Silicon Valley companies, or even at the major companies in your area. Everybody wants to work on projects that are timely or relevant, or even just really interesting. Back when I first learned Java in the mid 90's, Java was so hot that everyone who had written a "Hello, World" program added Java to their resumes*. More recently that would be one of the major JavaScript frameworks like Angular, React, or VueJS. In the past couple of years the hot areas are cryptocurrencies, or cloud computing, or one of the hottest of all, artificial intelligence and machine learning.
*I call that RDD -- Resume Driven Development
(Just to pour some water on that last one: back in the 90's I spent a few years working in an A.I. group. A.I. and machine learning are defined by a few spectacular successes, surrounded by tons of marginal victories and some major losses. It's a field filled with overpromises, and the work can be incredibly tedious. Sure there are gains to be had, and fields like natural language processing and image recognition have seen (hah! no pun intended) major advances, but not everything works as well as advertised. Heck, when I see what YouTube suggests for me to watch I'm surprised how clueless it can be, and the selections from Google News are even worse, and both of those are owned by one of the most advanced A.I. companies in the world with more data about me than I care to think about. And don't get me started on how weak the autopilot capabilities in my Tesla are -- I only trust it on open highways on clear days with no traffic. Yes there have been advances, but we have a long, long way to go before we even begin to worry about generalized artificial intelligence taking over the world. I, for one, welcome our new robot overlords. I really want to get into my car at the airport after a long flight and ask it to take me home while I take a nap in the backseat. Yeah, good luck with that.)
Speaking of exponential distributions, however, if you've been reading this newsletter for a while (and thanks for that, truly), you know I've been talking about KotlinConf, the upcoming Kotlin conference run by JetBrains, for weeks. It's arguably the most important Kotlin-related conference in the world, and is scheduled for the first week of December this year in Copenhagen.
You may also recall that I have a book coming out called the Kotlin Cookbook (available in Early Access form on Safari). My plan for the last few months has been to finish the book in time to have print copies available at the conference. For the record, I'm also an official training partner for Kotlin with JetBrains, and I've been teaching training courses and giving talks on Kotlin and related topics for quite some time now. So I submitted two proposals for the conference, and combined with my resume (Java Champion, Java Rock Star at multiple JavaOne conferences, etc), I had high hopes of presenting at the conference.
This week I found out that both of my proposals were turned down. Ugh. So much for that.
No reason was given, other than the conference being overwhelmed with submissions and having a very difficult time selecting among them. A few people tweeted about having their talks accepted, but for the most part I don't know which talks were selected, so I can't really compare my proposals with theirs and see what happened. I only know that I'm very disappointed, and given my past performance I know I would have done an excellent job given the opportunity.
I'm sad about this also because I really want to be an active member of the Kotlin community, and this was going to be an excellent chance to meet several of the major players. They would also get to see what I could do and how I could be helpful, much the way I currently participate in the Groovy community. But now that's not going to happen either, at least not through that conference.
As I've gotten older and more experienced, I've gotten more realistic about what I can and can not do. For example, I think it may be time to acknowledge that the Red Sox are probably not going to be calling any time soon. It's really hard to overcome the bias of Major League Baseball teams against people who are over 50, small, slow, and have no discernible baseball talent. That's a tough admission, but it's probably time to let that one go.
On the other hand, I know I speak well on technical topics in front of a broad audience. On my worst days I can still get my points across, and at my best I can be one of the most popular speakers at a conference. With all that time to prepare, topics I know well, and a strong motivation to do a good job, I know I would have done well at the conference.
So what really happened? After a day or two of mulling it over, I suddenly had a revelation. My field may not be defined by an exponential distribution, but sooner or later everything is an exponential distribution. Whenever you want something that lots of others want as well, a lot of qualified people are going to be turned away.
(Okay, I can't help feeling that in this case, if the bar is set so high that they're eliminating me, they're doing it wrong. There ought to be enough tracks or other opportunities for at least people like me to be included, but apparently not this year.)
So I'm sad and disappointed. It's not just that I wanted to go -- the timing seemed particularly good for me this time around. I'll have a book ready to go, I'm active in the field, the number of people is still small enough for me to make an impact, and I've been preparing all year by doing related articles and speaking engagements. As I used to say to my son, "in order to be in the right place at the right time, you have to be in the wrong place at the wrong time a lot," and this seemed like it was right on both counts. But no such luck.
I'm already getting over it, though. In fact, I'm toying with the idea of paying my own way and attending the conference anyway, especially if I can arrange to have a book signing there. I have to talk to the people at O'Reilly about that, and to the KotlinConf people as well, but I imagine we could work out something. If we do, I'll be sure to talk about it in future newsletters.
If I do that, it will also make my editor(s) at O'Reilly happy, because I'll have to put on a real burst of effort over the new few weeks to get the book done in time to have it available at the conference. That goes against my natural tendency to rebel against arbitrary deadlines, but I may try to do it anyway.
I know I'm very lucky to have that option at all. Maybe I should take advantage of it. But grrr anyway.
OSCON
At OSCON, I did a tutorial on Spring and Spring Boot. It was essentially my regular two-half-day online course at Safari, condensed down to about 3 1/2 hours. That was tough, but the attendance was larger than I expected and everyone was engaged. I had a really good time doing it.
Afterwards I got a chance to sit down with Zan ("Don't Call Me Lone Wolf") McQuade, my acquisitions editor at O'Reilly. We had a long talk about future online training courses, videos to record, and the company in general. We've been talking every few weeks since she joined the company around the beginning of the year, but this was the first time we got to meet in person. She was very kind to give me an extended block of time to chat, but as payment now I have several proposals to complete this week. I need to find a way to train myself to enjoy that kind of paperwork, but I haven't found it yet.
(By the way, not once has Zan asked me not to call her Lone Wolf McQuade. I imagine that's mostly an age check though. I seriously doubt anyone under 35 would even get that reference.)
I also had a chance to hang out with my old friend and former No Fluff speaker Tim Berglund, who is truly one of the good guys. He works at Confluent these days doing work related to Kafka, which is a technology I know little to nothing about. I wish him all the best, and pray that he never wakes one morning to find himself transformed into a cockroach.
UberConf
I did six talks at UberConf, which is the biggest NFJS event of the year. It's the original "destination show" on the tour, meaning it's held during the week rather than on the weekend, and it features at least one day where the talks start at 8 in the morning and go to 10 at night. The crowd is composed of dedicated developers who seem to have limitless energy. For example, I did my Managing Your Manager talk during that 8:30 pm slot on Wednesday evening and due to all the questions and comments wound up going over by 15 to 20 minutes, which I never do. Nobody got up and left until the very end, though. It was awesome, if tiring.
I had two new talks at the conference: one on Kotlin: Beyond the Basics and one on the Kotlin DSL for Gradle. The former was okay, but I don't have a coherent theme for it yet. I made a list of topics to cover and jumped around my source code and the online materials, showing topics like how to make delegates, what the Nothing and Any types are about, the difference between fold and reduce, and so on. That one will get better with time and as I get better able to judge which ones people really want to hear about.
The Gradle DSL with Kotlin talk was a lot rougher. That API came out last November and adoption has not been high. The documentation is a bit dicey too (as I've said before about Gradle, I've never seen a project with so much documentation that doesn't help), the IDE support wasn't as solid as I expected, and to be honest I wasn't as prepared as I should have been. That talk was only okay, but it's a start. I don't know how much demand there will be for that in the future, but we'll see.
The highlight of the show (or lowlight, depending on how you look at it) came on the Speaker Panel, when one person (who shall go unnamed until I get her permission) answered a question about artificial intelligence by bringing up the topic of sex robots. Seriously. That subsequently became the default answer for any question where you didn't know the actual answer, and during the trivia contest one team called themselves the Sex Robots. I did pose the question of whether sex robots were actually three laws safe. You really did have to be there.
Miscellaneous
I may be going to Oracle Code One in San Francisco in September after all. The Null Pointers (the rock band of Java developers) will be playing at the Java Community Process party, and I always enjoy performing with them, but I submitted my request for travel funds well after the deadline. We'll see.
I've decided to participate in a local twelve-week bootcamp of I.T. training for career changers in Hartford starting in mid-August, at least a couple days a week. I don't relish the commute, but I like the students and the company and it's a good cause. More about that when it comes up.
In addition to releasing Grails 4.0, the team at OCI this week announced the data access toolkit Predator. While the name is apparently a short form of Precomputed Data Repositories, it's clearly a more controversial choice than the team expected. More about that in the next newsletter, which will probably necessitate a new Groovy Podcast.
I finally got around to watching the British comedy series Fleabag on Amazon Prime, and it was everything everybody said it was, and that's all I'm going to say about that.
I made it through the whole newsletter and never mentioned the 50th anniversary of the first Moon landing, but I've talked about that before. I still find it a frustrating reminder of a time when this country actually cared about science and technology and was optimistic about the future. At this point I only hope we survive long enough to get back to something vaguely resembling that again.
Last week:
Spring and Spring Boot tutorial at OSCON in Portland, OR
Six talks at UberConf in Denver, CO
Next week:
Introduction to Gradle online for Gradle, Inc.
As much writing as I can stand
Fill out proposals for a few more online training courses at Safari