62951413
47 MPG on the highway (but it goes down dramatically when driving around town to ~35). My Limited trim has a glass cockpit with all the popular safety features. Its exterior also looks more expensive than it is and at the time was way cooler than Civic or Corolla.
It remains to be seen what happens around 100K miles/10 years though and how it compares to my previous Corolla experience.
I can assure you that it's a very different crowd from what I see at my day job. We're very used to a being among a self-selected group where something like an EE degree is assumed. Physics/Math majors are not uncommon including some PhDs.
And I don't mean just credentials. It's noticeable in how intellectually curious people are, how they digest information, how comfortable they are with basic school level math (e.g. complex numbers). Not to mention that textbooks at that level are a little watered down in comparison with your first year college textbooks.
They do rely on something that sounds like a COBOL mainframe from 40 years ago to me. They see people making the same basic clerical mistakes every year when towns and government organizations report their numbers. Like literally not being able to format numbers according to certain rules on the first try and such. Sending excel file in emails is the level of automation they rely on. They are all union jobs.
She was recently preparing for an obscure accounting certification. There's very little publicly available information to use and at most one textbook. She was asking her LLM (Gemini?) to formulate exam-level questions instead and explain the answers. She told me it worked spectacularly well.
Secondly, in CA to be a real residential electrician you need to be C-10 licensed. Which requires all kinds of time consuming prerequisites to begin with. Some of them could be a challenge if you are not the kind of guy who knows a guy. Apprenticeships, unions, depending on your major 1 to 4 year of "hands-on, full-time journey-level experience" and such. Your best hope is probably that your EE degree from 20+ years ago still counts for something.
And there quite a few 20 yo candidates to compete with who are taking DC/AC circuits classes in community colleges this very moment. They are not spoiled with life-long office work experience.
The competition among people who'd like to be an industrial robotics technician at the Tesla Fremont Factory is very real too.
Contra: I'm reading digital circuits and introductory FPGA programming books this summer - fullstack development for the robotics dominated future here I come ;) Granted some EE classes in your old major will help. But modern digital circuits and embedded hardware space also have a lot of similarity to your muscle memory as a software developer.
Depending on how much memory is used by the Thread stack (presumably 1M-512K by default, allegedly 128K with Alpine base images) that's your 1G-500M heap space usage improvement right off the bat.
The migration from JDK17 to JDK21 was uneventful in production. The only issue is limited monitoring as a thread dump will not show most virtual threads and the micrometer metrics will not even collect the total number of active virtual threads. It's supposed to work better in JDK24.
The Spring Framework directly supports virtual threads with "spring.threads.virtual.enabled=true" but I haven't tried it to comment.
When I joined my current team (in a big honkin' corporation with a history of layoffs and outsourcing) I inherited a dozen microservices, all on JDK8 and a couple written in Scala. So among the first things I did was an upgrade to JDK17 of every single repository. And it was mostly uneventful. More or less use a different Docker base image and bump up the Spring Boot version from 1.x to 3.4. Not running the latest LTS release is professional negligence in my book.
But from what I have observed in the last few years Scala is either used in legacy projects or you're talking to a hard-core FP shop. The saddest fact that it's true even in Data Engineering with Spark :(
The only rare exceptions I heard of were strict FP shops who share nothing with common JVM-based development. You could have a few years of full-time Scala experience with Akka and Spark and they won't even screen you.
In the year of our Lord 2024 the question is if you want to bet on Java21+ catching up with Kotlin or go with Kotlin from day one. The choice is less obvious nowadays. I'd go with a modern language, actual job market sides with Java still. At least on the backend in the Bay Area.
As a side note, I cannot imagine a competent JVM-based developer not familiar with either Kotlin or Scala by now. In a typical Java shop half of the team is dying to switch to one of them in my experience.
Turbo Pascal for education, C as professional lingua franca in mid-90s (manual memory management). C++ was all the rage in late 90s (OOP,STL) . Java got hot around 2003 (GC, canonical concurrency library and memory model). Scala grew in popularity around 2010-2012 (FP for the masses, much less verbosity, mainstream ADTs and pattern matching). Kotlin was cobbled together to have the Scala syntactic sugar without the Haskell-on-the-JVM complexity later.
And then they came up with golang which completely broke with any intellectual tradition and went back to before the Java heyday.
Rust feels like a Scala with pointers so the "C++ => Rust" transition looks analogous to the "Java => Scala" one.
Some of them try to migrate from it to a unified k8s "platform" (i.e. frequently not pure k8s/EKS/helm but some kind of in-house layer built on top of it). It takes so long that your tenure with the company could end before you see it through.
If you came to programming because you liked computers you'll find building an interpreter a fascinating topic in its own right. Building a compiler frontend is comprehensible and reading a modern/practical textbook (e.g. based on ANTLR or whatever is the latest parser generator in the wild) will illuminate so much for you.
You're highly unlikely to find a job with this skillset though. There are very few companies that do it, very small core teams, and there's competition with PhDs from top tier schools. The current leetcode fashion will ignore your niche knowledge right off the bat. So from this perspective the utility of knowing this stuff has always been a grey area regardless of the AI.
If you like money more than you like computers surely aim for an MLE position instead of SE/DE. But that's kind of a selective club too I imagine.