I first encountered SNOBOL when I was 15, running an implementation on an old IBM 360 at university. It was the 3rd language I mastered (after Fortran and an early T/S version of Basic...both on the same 360) and the first I completely fell in love with.
It awoken me to just how different and amazing a programming language could be and bent my mind around something very different than what I'd been doing with Fortran. It was an entirely new way to think about designing solutions.
Years later when I was introduced to Prolog, everything thing felt very much at home...Prolog's backtracking algorithm being very much like SNOBOL's pattern matching system.
Of all the languages I've worked with over the years, SNOBOL and FORTH are in class by themselves for how they informed my thinking about problem solving...lessons I carried with me in work done in many other languages.
It's a shame that both languages have passed into history...they each had subtle things to teach a developer just learning their craft...
An awful lot of production capacity has to be sweep out of the North American market (production is actually still going UP!!!).
A lot of small to mid-size operating companies will need to go bankrupt...they're the ones keeping production volumes high. They need the cash to cover interest on the bank notes taken out to drill and frack those wells.
The other wildcard is how quickly Iran can ramp up production. That might be 5-7 years given that their technology base is circa 1979 and will need to be upgraded. But it might happen in as little as 2 years...which would continue to dump crude oil on the world markets.
If Congress would repeal the Carter-era export ban on crude oil, that would go a long way towards re-balancing the North American markets, but that seems to be a low-probability event.
So it could take a while, but eventually it will...it ALWAYS does!
That primarily impacts Canadian heavy crude exports. The BP Whiting refinery was the primary consumer of Canadian crude.
Few other refineries (other than some on the Gulf coast) are configured to handle the product.
That's why Canadian crude prices are collapsing...and why the price of gasoline in the upper midwest is going up.
The only other option for Canadian crude to pipeline export to the Texas gulf coast. The problem is pipeline capacity (that's why some much Canadian oil goes out by train), but even more critically, the pipelines typically offload at the giant Cushing OK storage center...and Cushing is right at 100% storage capacity. (you can't just pump crude straight into a refinery...there a timing mis-match that has to be dealt with via storage).
All the assumptions underlying the "Peak Oil" theory have been invalided by new technology.
Eventually we'll get there, but not this century...and possibly never if non-petroleum energy sources are developed between now and the end of the century.
Remember, petroleum was the answer to the "Peak Oil" problem of the 1840's & 50's.
We were running out of whale oil...and the solution wasn't more efficient ways to hunt and kill whales (though that did extend the life of the industry by a couple of decades). The solution was an entirely new energy source.
Petroleum will undergo the same transition...and the new recovery technology has bought the world a few additional decades to find that solution...
And it will go lower! Canadian crude hit $23/bbl earlier in the week.
North America is close to maxing out storage capacity...possibly within 90 days. We've not been this close to max storage capacity in more than 80 years.
North American crude oil production currently exceeds demand (meaning what we have capacity to refine) by over 1 million barrels a day. All that extra is getting dumped into storage.
And the spread in price between crude oil and gasoline will likely stay large.
The USA can't export crude (by law), but can export refined product (gasoline, diesel, jet fuel, etc).
So there's a finite closed market for crude oil (that's running out of places to store it), but a ready export market for refined product (mostly Central and South America).
Net result: low crude oil prices, high gasoline prices.
I've held 6 "normal" jobs (W-2 employee) in my career. I've never submitted an unsolicited resume or a CV...I've never gone through HR (except for onboarding after I was hired). I was asked to join and worked from the beginning directly with manager (or board of directors) that I'd be reporting to.
Here's the dirty secret: A hiring manager ALWAYS has more political power than ANYONE in HR. But in larger organizations hiring managers are also very risk averse (and political cowards) and therefore will always defer to HR. This is why HR is so out of control in most companies!
So either avoid large organizations and focus on startup, growth phase and SMB companies...or find a way to directly reach the ear of the hiring managers in a manner that reduces their level of perceived risk in choosing you.
Here are strategies I've used:
1. First understand how businesses and hiring managers perceive value (it's NOT as obvious as you might think!)
Then:
2. Write - blogs, articles, comments in places like LinkedIn groups where hiring managers might be loitering
3. Talk - conference talks, training, do a podcast, do webinars...but always with an eye towards message and audience (junior programmers will NOT be hiring you)
4. Network - take any opportunity to be visible and demonstrate expertise and knowledge. And tell everyone you know what it is you're looking for.
It not unlike marketing a product. Find where the audience hangs out, figure out what they value, and then communicate that value and be visible.
This isn't a "next week" solution, but could certainly be a 90-120 day solution!
As an example of one possible direction, I've seen some awesome product managers that came out of development. Did they have the Marketing degree or the 20 years of experience...NO!
But brought a unique understanding of how products were built and how to communicate the needs of the business back to the development team in a way that NO non-technical person would ever be capable of doing.
So don't compare yourself apples-to-apples with those already in the job (whatever role you're shooting for). In a certain sense, you have to BE what you want to become, even before you get there.
The truth is, there's nothing easier than doing tomorrow whatever it was that you did today and yesterday. Change is hard, and the hardest part of change is mastering the interior game. Knowing what you want and becoming that person.
I've found myself where you are at multiple points in my career. And each time, I made a leap to a new domain. Not wildly, but to an immediately adjacent domain that excited me.
With 20 years of experience you potentially bring far more to the table than "just" your dev skills. The great thing about being a developer is that you touch a lot of other domains...often at a fairly detailed level of understanding (I learned more than I ever wanted to know about the credit card industry by developing commercial credit card processing software for gasoline dispensers many years ago).
Of course, this is how many devs end up becoming managers...though you say that's not where you want to go. But there are other paths as well. For example, a Product Manager with strong development skills can have a significant edge over someone that's come up strictly through marketing.
People who can straddle the boundaries between domains of knowledge have unique value. At this point in your career, you likely possess knowledge and skill beyond just ASP.net development...skills that startups or companies would find valuable.
I originally came out of physics around the time of the collapse of the SSC project. I saw colleagues with freshly minted PhD's in theoretical physics (NOT a marketable degree...except for driving a cab) go off to Wall Street and become quants...and do quite well.
So the core question is: are you locked into thinking of yourself as just one thing ("developer"), in which case the search is for what kind of developer you want to be next...or can you think of yourself as someone whose years of experience bring unique and valuable expertise...in which case the search should be broader and more unconventional.
It's less about what the external trends are; more about how you can reset your internal self-image...and your willingness to make the investment to bring that into reality.
Of course that means adopting entirely new strategies for finding where your skills have value...those types of jobs aren't posted on HR job boards.
Personally, I've made some huge career and domain jumps over the years (physics, software, large-scale databases, robotics, biotech...and various startups). It can be challenging...and a little scary (but only in the roller-coaster/skydiving sense), but It's also made for an exciting life that's largely been quite financially rewarding.
It awoken me to just how different and amazing a programming language could be and bent my mind around something very different than what I'd been doing with Fortran. It was an entirely new way to think about designing solutions.
Years later when I was introduced to Prolog, everything thing felt very much at home...Prolog's backtracking algorithm being very much like SNOBOL's pattern matching system.
Of all the languages I've worked with over the years, SNOBOL and FORTH are in class by themselves for how they informed my thinking about problem solving...lessons I carried with me in work done in many other languages.
It's a shame that both languages have passed into history...they each had subtle things to teach a developer just learning their craft...