peelle
I work with dynamic language developers. Perl, React, Python and so on. Most currently don't care about memory usage. Some devs are actively wasteful. Usually in the name of code clarity or speed of delivery.
Back when I was still young and impressionable, I had several frustrating experiences with it at university. Most due to my inexperience, a few times due to Windows being Windows. Also, back then the various $$ and time costs. IIRC $125+ for a windows DVD, $150+ for a VS.Net install DVD, and higher hosting prices for Windows. Also, installs and updates OS, .NET, etc were frequent and time consuming. When I'm making $2.50/hr + tips to get by I couldn't afford that kinda investment.
Now, most of my career has been using Linux, and a variety of interpreted languages. I'm comfortable with them. I boot my Windows partition maybe 2 times a year. There would be a huge cost for me to completely transition to .NET.
In order to get me to try it now would require you to show me some set of features that make it a much better choice than what I currently know. For example, if I someday choose to do Windows apps.
IMHO, a "best codebase" will be just a bit more advanced than I am, with good resources for me to grok it. I want to be able to learn from it. I also don't want to be so far out of my depth that I can't make a reasonable contribution.
For my personal sites, one is just a scp, into a subdir. If everything looks good, I just mv it to overwrite live. The other I just restart the process. There's nothing "mission critical" on it.
When we brought it up to management they were apologetic, and said they forgot. I work for a small company that wasn't particularly organized so it's possible they forgot but still. :(
TL;DR; If you take the pay cut, check in every few months with both management and others at your level.
Let me ask you this: What $$ will the current level of work be acceptable? My guess is that it's well above what your employer is willing to pay.
I'd suggest you do what your Jr peels do + 10%, that'll fulfill the requirement for bump & bonus. Also spend some time building relationships. If your manager mentions you no longer doing XYZ, show off your +10%. Politely and tactfully deflect if he tries to press the issue.
To answer your fairness question directly the system sounds inefficient and currently not fair. I think it could be fair(for whatever that means), given the right environment, and attitudes.
I know that one of the public health orgs in Australia has something similar. You should be able to google for it. It was a mostly no nonsense PDF with bullet points outlining the what and when, divided by an age range the milestone expected to happen during.
One example is that my home state's IRS portal(along with all the other state gov sites) straight up block access from the overseas democracy I live in. I assume they block almost all overseas access but I haven't tried to verify it. Like OP, I need to use a SOCKS proxy, or VPN to bypass this heavy handed tactic. While I'd love for it to not be so, Americans living abroad still have to file their taxes. An NPR article said there's probably close to 5 million of us expats.
Lastly with the Cloud VMs, it doesn't seem that this sort of ban is evenly distributed. I've proxied/tunneled through Linode, a well known Torrent VPN, and Digital Ocean, without raising any red flags, but Amazon, ViperVPN, and NordVPN have been flagged. I could go on and argue that with the learn to code movement I could see a cloud instance being the new geocities homepage, but that may never come to pass.
We've dealt with "new guy wants to overhaul ..." scenario. When I joined this company we were a C++ shop with some Perl and bash. Multiple new recruits successfully lobbied to implement refactors, or new projects in a hot language/framework. Several of the refactors were a huge waste of resources that either didn't come to fruition, or were only partially successful.
Now, we are a Perl shop with active development in 3 other languages(not counting front end), and we're maintaining legacy apps in an additional 4 languages. And we've deprecated apps in at least 3 additional languages.
I guess I should be thankful none of them have lobbied for switching databases. :-O On any given year, we average 3-4 programmers and 2-4 contractors(mostly front end) Two of us have been there 15+ years, but the other full timers seem to move on around the three year mark. Because of that all the hot shots have left. When a major bug is discovered in their code it can take a long time to fix, and any breakage due to upgrades is quite a hassle since those of us left aren't experts at every language we have to maintain.
At least here in the USA, there's a lot of advice about deflecting that question. Things like, countering with "What are your pay ranges?", or "Let's wait to negotiate the salary until we're sure we're a good fit." and so on.
I believe the common reasoning that they ask early is to cut out overpriced developers. When a company gets lots of applicants this probably makes sense to them. I think generally, if you're a good fit they'll go a little above their max pay to try and bring you in.
TL;DR; I would say that you assertion is context sensitive. - For a junior Perl programmer or an outside expert those symbols are stumbling blocks. - For an intermediate Perl programmer and up, those symbols are tools that make the code more readable and expressive.
I got two ways of looking at that. First, I would look at Perl in the context of language. It is a more context sensitive language than some of it's close competitors. When you understand those \ $ % @ & sigils you gain the ability to know at a glance the context in which data is being used. Understanding @_, $_, allows you to write shorter code without sacrificing meaning. Part of the Perl philosophy is TIMTOWTDI. Most of those special variables also have an English equivalent. Instead of using $) which I never remember I can use $EGID, or if I think that's not explicit enough then I can use $EFFECTIVE_GROUP_ID to really spell it out.
The second way is that Perl has a steeper learning curve than it's close competitors. I see this like comparing Vim to Notepad++ and Emacs, or Haskell to well most other functional programming languages. Just because it took longer to learn, that doesn't mean it's better or worse at creating good code. It does mean that armchair pundits are less likely to be correct in their hot takes. They lack experience and understanding.
How's that saying go? Show me a programmer with 20 years experience, and I'll show you a programmer that did the same thing twenty years in a row.
Most of my Digital Nomading has been outside the USA in Europe & Asia. We stayed between several weeks to several months per location. Internet experiences, and requirements will vary country by country but as long as you stay in or near a large metropolitan area you can expect fast internet. The the only exception so far has been China, theirs was slow no matter where I went.
I always tried to make my personal hotspot(Google Fi) the last resort. I used a local hotspot, AirBNB/Cafe WiFi, and coworking spaces as must as possible. Also, for video conferencing, I'd lower streaming quality. No one needs to see my ugly mug in that high a resolution. VPN was not for video conferencing, or browsing reddit/HN. It was mostly for interacting with financial institutions, and transferring IP back and forth with work. It's up to you on how paranoid you wanna be.
Equally important are your soft skills. I would recommend reading The Hard Truth About Soft Skills: Workplace Lessons Smart People Wish They'd Learned Sooner by Peggy Klaus.
In my opinion your expectations are too high for a small company. Most of the people I have worked with at small companies don't have experience with most those basic tools. Some actively are afraid of code reviews, and others see tests as writing the same code twice, hence a waste of time.
Management and coworkers pay lip service to wanting these things, but I've found that they see them as nice to have extras, and not as time saving efficiency increasing tools.
Don't get me wrong things can change. One way I found is to overwork myself and implement it outside of my normal projects. Then I just have to keep pushing and educating people to follow along. That's how I got the majority of our code under revision control.
The other way is that management finally has enough of a problem and someone convinces them one of those basics will make things better. In our case managment got tired of making new features live, and finding out afterwards that something else had regressed. That's how we got end-to-end tests.
Company culture can change, but it'll be slow. Try and frame things in a cost-benefit light for management. For developers try and show them how it will make their life easier, and show them the cool factor. Good Luck!
I mostly program in languages like Ruby & Perl using Vim. Even with my decked out version that has 35 plugins, and some other bells and whistles, I'm on average using 20 MB of RAM. Open/Close is near instantaneous.
In the past things like computer labs, and locked down school computers would have pushed me to recommend QWERTY. Nowadays everyone has their own iPad, or laptop, so this is much less of an issue.
The only time I have issues is during computerized testing, or using someone else's computer. I have a USB dongle that I can put between the keyboard and computer that'll swap the characters I type Dvorak, and the dongle swaps the QWERTY input to the correct ones as I go.
For testing I can request they change the layout, but it rarely gets approved. For random people, they usually let me add another layout without issue.
I'm recommending Dvorak, but there will still be a few pain points.
I think on average back end churns slower. Every year I'll hit a conference, and hear about the latest and greatest, but only a fraction of that stuff sticks around, and gets integrated.
I believe most company's won't swap language/framework/libraries until absolutely necessary. So the adoption of new things you might see at a company is much slower than someone who job hops every 3 years.
The company I am at now, had a C++, cout << "<html>..." version of the site for 6+ years. The version that replaced that is a younger language with a MVC, but it's already been 9+ years since that was implemented, and it'll probably be a few more years until anything else supplants that.
Another thing that I think affects front end is the browsers. I don't know the stats, but I believe that Chrome/FF/Edge release more features, experimental features, and bug fixes per year, than your average language, or OS. This cascade of releases in turn effect front end code, and libraries. It's a wave pool, not a ripple in the pond.
>There was a Buddhist monastery up in the mountains. Every day at noon the head monk would call everyone together in the main courtyard to meditate.
>One day a cat that lived on the monastery grounds started to come to the courtyard during these meditation sessions. It would screech at, and scratch the monks while they tried to concentrate.
> After a few weeks the head monk got tired of this. He ordered that every day before they meditate, the cat be caught. They tied up the cat away from the main court yard. After meditation the cat was to be released.
> This went on for a few years and everything was fine. Then the head monk passed away. A new monk was appointed.
> A few more after that the cat passed away. The monks retrieved a new cat from a nearby village and they started typing up this new cat; as is tradition.
Below, I added some numbers from my past. The everything else is still just for minimum/essentials. It includes things like car insurance, utilities, repairs, gas money to get to work, clothing, etc.
--- In 2003 as a college freshman(college paid for by parents/loans), I got by in Jonesboro, Arkansas for around $7000 a year.
$3,000 - rent in a run down part of town. $1,000 - food $3,000 - everything else.
--- 2005, in Columbia, MO I got by spending about $14,000.
$8,000 - rent $2,000 - food $4,000 - everything else
--- 2006, in Columbia, MO I got by spending about $10,000.
$3,2000 - rented a nice 5 bedroom split 5 ways. $2,800 - food $4,000 - everything else
--- In 2015, at Lake Worth, FL for around $20,000.
$11,000 - rent $4,000 - food $5,000 - everything else
--- This year I'm looking to rent in Taipei, Taiwan. Here's what I have so far priced things out at. $16,000 - $25,000.
$12,000 - $18,000 - rent $2,000 - $3,000 - food $2,000 - $4,000 - everything else
In between the 2006 & 2015 rentals, I purchased and lived in a home.
Also, like most people over time I went from $500 clunkers to a $5,000 reliable car, rented in nicer neighborhoods, bought higher quality food, and so on.
From my apartment with 300/30 I had no issues, but coffee shop internet varied. If 2 guys started watching YT, the responsiveness dropped fast.
I learned Dvorak in 2005 or 2006. I spent about 4-5 hours, over 2 evenings with a free typing tutor program. After that it took me about 2 weeks internalize it. At that point I was probably the same speed or faster than before.
After that I used QWERTY for a few hours a week for the next few years. For public, and other peoples computers. After a little practice it was easy to switch back and forth without issue.
Around 2012, I stopped having to use public and other peoples computers so I stopped using QWERTY but maybe once or twice a year.
As of now I can with a little bit of mental effort switch back to using QWERTY, but nowadays I often miss type a few keys in QWERTY. I am slowly loosing it.
Some related observations:
For the longest time I have been forced to use QWERTY for all onscreen keyboards like my cell phone and tablets. Recently I got a Chromebook, and it let me have onscreen Dvorak. Turns out my brain is currently wired for onscreen QWERTY. I'm not sure if I really should put any effort into learning an onscreen keyboard.
I can type both Mandarin Pinyin, and the Japanese equivalent. For whatever reason setting up these input systems hard locks QWERTY underneath them. I have tried to do the mental gymnastics to use QWERTY to write in these other scripts and it is just too frustrating. I end up finding a way to switch it.
I find it hard to work from my small apartment, whether family is around or not, music or no music.
I forget the term but I think it has to do with the fact that I use this same room to watch TV, play video games, sleep, and eat meals. My desk and bed are only inches apart.
Upgrading was bad. For my local machine, when it first came out trying to run the upgrade script would lock my system, and force me to hard reboot. I tried several fixes, but ended up just doing an install from CD over the old system.
For my web server, not copying 1 file to a new location before running the upgrade script caused me to destroy the whole system. I restored from backup. After researching about that file, I was able to do the upgrade with only a few broken packages needing my attention.