Build, be curious, read, and try stuff: James Gosling's tips for aspiring techies
Many software engineers would have spent a large part of their developer career writing Java code. So, when you come face to face with the father of Java, it can get a bit daunting. It was no different for Anupam Mishra, Head of Technology, AISPL, India and he vouches for this. Recalling a fan moment he says, “When I met James Gosling for the first time at re:Invent in Las Vegas, I could not resist taking a picture with him! I had read about him in different Java books and was so happy to see him in person.”
At the AWS Summit Online India 2021, we got Anupam to do a Q&A with James Gosling, who shared his thoughts on technology and trends. Excepts from the interview:
What are your thoughts on 25 years of Java, its journey so far and where do you think it is headed?
My previous job is the only software job I've ever had where snorkelling skills was a job requirement. I was doing the software for an autonomous marine robot and I was literally swimming with sea turtles - where a hazard on the job was the Manta Rays being curious, hard to beat that!
Twenty-five years! I mean, that's amazing. I never had aspirations for anything like that or even imagined the incredible success that people have had in using it to address a really huge variety of problems. And the trajectory of the things that people are doing, the innovations that are going on within the Java ecosystem itself is just amazing.
For years now, all the big action has been in all the libraries, the APIs around the tasks that people can do. The APIs for dealing with astronomy or the world magnetic model or the common ones like JSON parser. Often the hardest problem in building, some piece of Java code is figuring out which of the vaguely prevalent APIs you want to use, I mean it's so much diversity. But the language itself and in particular the virtual machine have been moving forward pretty rapidly and we're up to JDK 16 now. The folks on the JDK team working with the community have been adding all kinds of features.
The stuff that people have done around things like packaging and making programming easier with things like the pattern matching - these things have been hotly debated in the community for quite a long time and then you get to know that it released. The pace of innovation has been pretty constant and pretty high.
So James, you have been building software for many, many years, what is most fun software you have built?
That's actually a really easy one. I would like to be able to say that the most fun software I've ever done is Amazon, but my previous job is the only software job I've ever had where snorkelling skills was a job requirement. I was doing the software for an autonomous marine robot that's currently being used all over the world. And I wrote all of the navigation and radar control software and led the software development project for it. My job required me to go to Hawaii and I was literally swimming with sea turtles - where a hazard on the job was the Manta Rays being curious, hard to beat that! Was a lot of fun!
One of the big trends in the last several has been all the really magnificent stuff that people have been doing with Machine Learning and the ways that you can apply it to everything
James, I was watching some videos of yours and I've heard you saying at some other conferences that real problems are not programming languages anymore. For the business leaders, what technologies do you foresee them investing in to be successful in the upcoming years?
Well, so one of the big trends in the last several years has been all the really magnificent stuff that people have been doing with Machine Learning and the ways that you can apply it to everything - from finding bearings that are getting ready to fail, to finding criminals in the crowd of people! But you know, they come with ethical problems and these days technology has become intertwined with ethics in some pretty deep, deep ways, so, I think most people are really hesitant about the privacy issues.
So, from the technology point of view, how do you make it so that people feel safe online, between security issues which are just kind of rampant? In areas like IoT, it feels like every day somebody's got yet another interesting attack. Half the time when you chase down how is that successful, it is usually because somebody made a mistake and didn't do enough testing of the security software or even worse, they just didn't bother to do it. I mean, the number of IoT devices that you can associate into and they don't have a root password, is mind boggling and that's just stupid. And handling the issues about how these devices integrate with society in ways that make society better is a really tough one and requires constant vigilance.
So James, you've been with Amazon for almost four years now. What are you working on these days?
So, I am working on a project called Greengrass (An AWS service that helps you build, deploy, and manage device software), that's what I've been doing for the most last couple of years, occasionally dabbling on other stuff but Greengrass is pretty much the central thing. And the best way to think of Greengrass is that it's, it's kind of the bridge between IoT devices and the cloud.
The world is just too amazing for anyone to crack so, make peace with that, but keep on building.
You know, when you get to start an IoT project, you'll have some group of sensors and actuators that you want to tie together somehow - whether it's a volume knob in a radio station or a camera or a third sensor or whatever, right? So, you write an app and you install that app on your device and then you say, 'Wow, that's great. Okay, now how do I turn that into a product?' So, then you have to worry about things like, 'How do I do over the air updates?' 'How do I do management of fleets of these devices'. If I am really successful and I've got a million of these devices out there, how do I manage them? How do I get metrics out of them ? How do I do all of the bits around, provisioning certificates, making sure that they are secure, all those pieces and those, and then all of those tasks have kind of the mirror half in the cloud, and so, all of that is Greengrass.
So, the piece of your app that you think of as your IoT app, that's fine, that's your IoT app. But all that kind of boiler plate that goes into plumbing it into the rest of the world, that's Greengrass, you know, and it's got a part that runs on the device and big part that runs on the cloud, and makes it possible for you to do like software upgrades on a million devices with just one command.
So, in India Summit, today we have lot of builders in our audience. Do you have any tips for them to be successful?
Mostly it's build, be curious, read, try stuff. It's easy to get an internal crisis because there is so much stuff that you can possibly keep up with, but make peace with that, the world is just too amazing for anyone to crack. So, make peace with that, but keep on building. And it almost doesn't matter what you build, if you're building games for fun, if you are building for utility - the internet is filled with people who have built software that will feed their cat or dog, when they are away in some clever way - you learn stuff. So it just doesn't matter what you're building, what matters is that you're building.
There's a big difference between what people need and what people ask for, and if you kind of sort out that difference and do something that, actually solves the problem as oppose to just listening to what they said, you'll always end up with happier customers.
So, there are two, there are usually two sides, right? You can build something for yourself just for fun. But it is often more helpful to build something for somebody else. And one of the things that is the hardest is the question of figuring out what to build, because, you know, when somebody asks you to build something it's usually in response to there being some problem, some pain point. People, when they think about their pain points, they tend to be fairly literal about it and they will often ask you to do a specific thing and tell you how to do it and they will ask it from the point of view of someone who doesn't actually understand how many of these things work. So don't pay attention to what the ask you to do, try to dig deeper and figure out you know, what their pain points really are and what they need. And lot of the time, there's a big difference between what people need and what people ask for, and if you kind of sort out that difference and do something that, actually solves the problem as oppose to just listening to what they said, you'll always end up with happier customers.
Thanks James, for your valuable time and for being here with us today.
Well, thanks for inviting me.