I prefer the term "software engineer" for a reason I haven't seen yet in this thread: clarity when speaking to people in other industries.
Among many of the people I talk to on a regular basis, if I told them I was a "developer" they would assume that I was a real estate developer.
If I told them I was a "programmer" it would be a little clearer, but before I moved into software I worked in the events industry for a few years, where "programmer" means "one who develops event programming."
In practice, I could append "software" in front of either "programmer" or "developer" to provide that clarity, but "software engineer" seems to be more common, and to me feels like it more adequately covers the totality of my job, which is as much about measuring, planning, and communicating as it is about producing code.
I think part of the discomfort is that there is no exam that software engineers have to pass (other than a few states) unlike real engineering professions. I suspect and I suspect many others suspect that a large percentage would not actually be able pass a meaningful exam.
However passing such an exam would probably only be partly correlated to success in the field. Part of this is because exams are imperfect, part because success in the field is not dependent on engineering skill, and part is because the tech field’s success is based on finding/creating/replacing/owning (new) markets rather than pure engineering.
If software is much better than what was there before, even shoddy software engineering will be superior to the existing solutions.
The exams and credentials part is certainly murky. One could argue we make it worse in tech. Among the certifications I hold is at least one with "certified engineer" in the title (RHCE), but that's hardly only ambiguous one, with "engineer" showing up in all sorts of vendor and third-party certs and "architect" and "auditor" also finding their way into many others.
Are those phrases misleading? I don't know. I certainly feel like I worked pretty hard to earn and maintain the certifications I hold, but I can't compare the rigour and level of effort to licensure, because that's not required of me for what I do.
I also know that there are quite a few "certifications" out there that aren't rigorous at all, that are basically multiple-choice exams you can cram for without actually learning anything. I've never bothered going after a CompTIA certification for that reason.
It's a tough problem. On one hand, I despise artificial barriers to entry on principle. On the other hand, being able to understand and trust a person's base level of understanding and competence does have value.
The solution IMHO is to perform your own test. It is hard to scale unless you have some superior filter or are a magnet of some sort (back channel references or your company is really hot).
The funny thing is, to be a professional engineer in Canada, the exam you take is more of an ethics and law exam rather than a skills exam. You prove that you've worked for four years or more under a P.Eng and do that exam and you've got your cert.
Ask any tech worker in an office about the free snack selection. My coworkers get genuinely outraged when we trade out one brand of prepackaged nuts for another, or when their preferred soda goes out of rotation. Never mind they all make six figures and could easily purchase whatever snacks they wanted. The cost of the employee time spent complaining every time something changes here easily outweighs the cost of the entire snack program.
Cost. On-prem is roughly on-par in an average case, in my experience, but we've got many cases where we've optimized against hardware configurations that are significantly cheaper to create on-prem. And sunk costs are real. It's much easier to get approval for instances that don't add to the bottom line. But for that matter, we try to get our on-prem at close to 100% utilization, which keeps costs well below cloud. If I've got bursty loads, those can go to the cloud.
Lock-in. I don't trust any of the big cloud providers not to jack my rates up. I don't trust my engineers not to make use of proprietary APIs that get me stuck there.
Related to cost, but also its own issue, data transfer. Both latency and throughput. Yeah, it's buzzwordy, but the edge is a thing. I have many clients where getting processing in the same location where the data is being generated saves ungodly amounts of money in bandwidth, or where it wouldn't even been feasible to transfer the data off-site. Financial sector clients also tend to appreciate shaving off milliseconds.
Also, regulatory compliance. And, let's be honest, corporate and actual politics.
Inertia.
Trust.
Risk.
Interoperability with existing systems.
Few decisions about where to stick your compute and storage are trivial; few times is one answer always right. But there are many, many factors to consider, and they may not be the obvious ones that make the decision for you.
One challenge it seems ever locale is dealing with is a large faction of people who cannot see the forest for the trees, so to speak. It seems everywhere I've lived, there are large factions of folks who cite individual trees in their neighborhoods as fodder to shoot down environmental projects.
I've seen light rail, bus lines, and other public transit; bike and pedestrian facilities like sidewalks; dense sustainable housing on transit corridors; PV and passive solar energy projects; contaminant removal and other soil/water quality mitigation efforts; and a slew of other projects backed by environmental organizations and non-profits get shut down because of neighbors defending individual trees. It's gotten to the point where I've become very cynical towards efforts to "save the trees" because so often it means "save the trees in my direct viewshed, even if it means cutting down hundreds of trees outside of town to build sprawling subdivisions there instead."
Are there places that are getting this balance to be healthier? Fostering a love for an urban canopy while also a general recognition that some trees coming down is necessary to repair ecologically poor planning decisions of the past 70 years or so?
This is a good cause, but the headline given to this post threw me.
Clearly, it's meant as "make communication between prisoners and their loved ones outside of prison free of cost"
But because of the phrasing, I read it as "make prison communication-free" or "make it be such that prisons are free from communication" which is a scary draconian dystopia that I can sadly imagine happening in my and many other parts of the world.
Cigarette smoking rate is widely studied; no reason to use anecdotal data here.
The tobacco smoking rate in New York is 14.1%; it's 11.3% in California. Some difference, yes, but far less difference than you see between either and some rural southern states where the numbers can be roughly double that.
Actually, no they don't. There are 5.6m rides per day. The average trip contains at least two rides: there, and back again. Many trips contain substantially more than two legs, and many people take more than one trip per day.
I can't tell you how many people ride the subway every day, but it's certainly less than half of the number of rides per day.
Number of rides is actually more relevant in this context than number of distinct riders. Each trip involves a new set of people next to you in the train car and a new chance of getting infected.
The number of rides is useless in estimating the percentage of the population with high risk for exposure if you don't also have the proportion of the population exposed to that risk.
The employer has no legal way to mandate that. That said, if it were consistent with generally accepted recommendations from the government, and my employer was not just allowing but encouraging that recommendation, I probably would comply voluntarily.
Among many of the people I talk to on a regular basis, if I told them I was a "developer" they would assume that I was a real estate developer.
If I told them I was a "programmer" it would be a little clearer, but before I moved into software I worked in the events industry for a few years, where "programmer" means "one who develops event programming."
In practice, I could append "software" in front of either "programmer" or "developer" to provide that clarity, but "software engineer" seems to be more common, and to me feels like it more adequately covers the totality of my job, which is as much about measuring, planning, and communicating as it is about producing code.