Do you happen to have some insights on networking job being given to non-engineer?
None of the network engineers I know started off with that job in mind. It is an intensely practical job. You help a guy lift a new server into a rack. You find the rack ears in a box over there and grab some mounting hardware and screw it into the rack while he routs some cables from the network switch to the new server. He explains (because ALL network engineers talk about what they are doing, out loud, while they do it) and tells you why these cables are going this direction, and where these other cables go to, and why these cables are this color and those cables are that color, etc. You plug in the server and turn it on.
As you walk over to the lab computer to do the initial configuration on this new server and switch, he/she will tell you about how this whole rack here needs to move to the other side of the datacenter, and they are gonna do that next month because they gotta make room for an entirely new division that is moving into the building in two months, etc, etc.
Now you are standing at a terminal configuring the network switch to see your new device you just mounted in the rack. Health checks. Setting IP and gateway info, locking down the most vulnerable ports, etc. After about 20 minutes the thing reboots and you are done in the datacenter so you go back to your desk.
Where, for the last 3 months, you have been planning all the services that are going to run on this server - a virtual machine with three SQL databases, and a JIRA ticketing system, and blah blah blah - and now the device is installed you get to build all these services. So you spend the next two days setting the machine up, installing software, testing it, checking that the routing is right and data is going where it needs to and NOT going where it shouldn't be, and then you send emails off to all the people who have been waiting for this thing to come online.
But all of that I just described? You planned it all four months ago on a whiteboard with a team for four other people. You figured out exactly how much horsepower this machine would have, what it could do, what it needed to talk to, all the configuration of all the firewalls and routers and other intermediate systems that would need to be touched to make sure this new machine worked. You noodled this plan with a group of REALLY smart people, came up with an elegant solution, and you have just gotten to execute on that plan.
Of course, everything has changed in the interim, and now the requestors need 3x the capabilities you originally budgeted for, but another team stopped using THEIR old system, so you can move some non-critical services over to that one to free up more cycles on the new one, and... so on.
Every single thing we do every single day - email, ATM machines, text messages, phone calls, Twitter, ordering new stuff from Fry's, swiping our credit card at the 7-11 on the corner - ALL of that data transmits across THESE EXACT MACHINES.
And the people who can think like this, who can plan, who understand the intricacies and issues of routing and using a full-proxy load balancer for medical information (in short: you can't), these people are becoming rarer and rarer.
And yet, every single programmer on the planet is utterly reliant on these people to do their jobs perfectly, every single time. A programmer writes an app that accesses an API and pulls out some data from another system... and that takes maybe three method calls. But every one of those System.out.println calls - if you unpack it and track the zeroes and ones across the network - requires 4-10 different devices to be configured PERFECTLY to allow that call to return anything but an error message.
Network engineers are big damn heroes. And few of them are trained in it. They just learn it on the job. One of the best ones I knew was a truck driver who had to find a new career. He took one class - probably a Basics of Networking for some basic Cisco certification - got a grunt-level job running wires and rack-mounting servers in some corporate network, and three years later is a highly skilled network engineer making over $100k/year. And that's not unusual, in my experience.
Anyway, I said:
I have a deep personal affection for Java, since I worked on the Java Development Team at Sun Microsystems.
And you said:
Damn! That's impressive as hell to be honest. Would you mind if I would ask you some questions on that later?
Sure... but any info I have is purely of historical interest. The 1.0 JavaVM that I worked on was completely rewritten and replaced with the "Hotspot" update around 1999 or so. And I was never a skilled programmer anyway. I was on the Testing side of the team, so my role was mostly figuring out why something broke, and then telling the dev who was responsible for that method how I broke his code. So, not a lot of practical experience building apps and things!