6 ms·
And now, in 2021, Google has inflicted their "clarity" on the rest of the world. I miss jobs from the 2000s, the jobs where you were paid to write software for
by loxias 5y ago
And now, in 2021, Google has inflicted their "clarity" on the rest of the world. I miss jobs from the 2000s, the jobs where you were paid to write software for a living.
You know, engineering! Given a task, or set of requirements, develop software on your computer, software which eventually runs on the customer's computer, where it's used to solve the customer's problem.
My most recent full time employment a year ago was at a great company. Healthy culture, some of the most talented coworkers I've ever had the pleasure to work along side.
Over the year I lasted there, I used for the first time: Docker, Golang, Kubernetes, Terraform, Gitlab, Saltstack, Prometheus, (and probably other middleware that my brain has GCd to free space). I was barely able to get anything done. At least, it always felt that way.
Maybe I'm just an idiot, I don't know. I'd accept it if true! What I do know is that I used to be able to build things for people, be compensated well for it, and get satisfaction from a customer liking what I've built. It was simple.
In this brave new world, with containers, pods and this and that and the other thing, where it can take months before one even understands enough primitives to do a "hello world".... how can anything ever get done?? How can anything inventive, creative, or experimental emerge from our industry when the develop/test/improve cycle has gone from minutes to weeks or months?
I don't know what the future looks like, but the present strikes me as unsustainable in the long run.
(edit: Wow! I expected this to be downvoted to oblivion, not my highest rated comment on the site...)
<tiny>(Forgive this shameless self promotion: if, dear reader-who-is-a-hiring-manager, you have a paid role for a lowly but experienced systems engineer who doesn't know anything about "web" or "apps" or "social" but is quite adroit with C/C++ (and a few others), most "sciencey/mathy" type problems, signal processing, firmware, network protocols, automation/scripting, and more, ... email is welcome!)</>
- ethbr0 5y agoThe current landscape (optimizing for hyperscale, at the cost of complexity) seems like a natural extension of relatively few giant corporations funding the majority of programmers. To such an organization, efficiency & time to market are more important than simplicity.
- iamstupidsimple 5y agoBut at least in the FAANG example, time to market is much slower because of said complexity.
- deleted 5y ago[deleted]
- deleted 5y ago[deleted]
- VHRanger 5y agoIn my team, we often deploy internal "services" as cronjobs on an EC2 service. This hasn't run into any issues in 24 months. One of these we decided to move to a more serious infrastructure (a set of AWS lambdas). It's failed three times in 6 months since, and we're moving it back to be a good old cronjob on a server. Simple is good.
- SamuelAdams 5y agoJust curious what your cost differences are between a dedicated EC2 instance and lambdas. For our organization an EC2 instance was at best 8-10 times more expensive than lambdas.
- azmodeus 5y agoThe question is also what's the cost of troubleshooting the lambda service going down 3 times. 10x more expensive and reliable can be a good trade.
- x0x0 5y agolikely dwarfed by eng time, both in dollars and opportunity cost
- callmeal 5y agoAWS Lightsail instances are pretty affordable ($10/mo and up)
- SanchoPanda 5y ago$3.5 USD and up
- VHRanger 5y agoThere are multiple equivalent lambdas on a single EC2 instance, so it's running jobs 10-12hours per day
- cheeze 5y agoWhat does the cronjob do? Start some service that listens for inbound connections? Or are you talking more about daemons that do some set of work every interval?
- thrashh 5y agoPerhaps we need more specialization but I remember the time before these kind of tools and I hated it. I’m a lazy person and I absolute love tools. Tools like Docker helped me never have to solve other people’s complex environment problems again. I love metric reporting tools like Prometheus because it helps me front problems before they become weekend emergencies. I use a paid Git GUI so I can fix complex Git problems without ever making a mistake.
- pm90 5y agoSame. I do not have any nostalgia for when you had to say into machines and run scripts. Please no.
- loxias 5y agoI'm also a lazy person! Which is why tools like this are a PITA to me. The one exception is Docker. It's not a regular part of my workflow, because of how it makes things both harder to get started (making a working Dockerfile takes a bit of time), harder to debug, and slower to build (I just changed one line! Now I have to rebuild the whole image to see if it fixed the problem... &c). However, for deployment of the final product? I agree Docker's GREAT. But, consider, in that respect it offers nothing I didn't have at the start of my career 20 years ago. Static linking for interpreted languages. :)
- thrashh 5y agoRemember that Docker does cache intermediary builds (each Dockerfile line being a build) so when you are developing, avoid editing any existing lines and then combine it back together when you get it working. Deployment of Docker is gross, but I think that’s because that space IMO is very immature. From my experience, when something has a poor interface (Backbone.js, AngularJS, UMD, etc.) I avoid learning it because I know something is going to replace it. Kubernetes is currently squarely in that boat as far as I am concerned.
- karolist 5y agoWhich paid Git GUI friend?
- rvnx 5y agoI tend to agree with the green dude :| It's normal to have a production service replicated on 2 availability regions. The green guy is annoying, because reality is annoying, and reliability is not about luck, but is about a properly calibrated and tested process. Yes, you need to write monitoring, you cannot run only with "hope". Yes it sucks that a DC can go down. Your particular service is not important if it's down, but having a copy of the production data is essential in case of a catastrophe. Except for the tests that are probably unnecessary, everything else seems to make sense. The peer bonuses are an issue though.
- novok 5y agoGreen guy should be making a all of that a one click process to start up a service shell that does all of that for you although. Then as you write it up an automatic linting & rules engine will highlight what is missing before you make a final pull request to get the necessary human approvals, ONCE.
- ridaj 5y agoI think the challenge is you'd expect a company like Google to have more of the setup be automated. If replication and monitoring are such universally good ideas, then why don't they come out of the box?
- midasuni 5y agoDepends what the problem you’re trying to solve is. In my experience the vast majority of business problems do not need that kind of reliability, and if they do they don’t need it deployed in such a Byzantian way.
- zaphar 5y agoYou say that but then the system goes down and the CTO is walking up to your desk asking why it's down and exactly when can they expect it to be up and don't you know we are bleeding money right now? What you call byzantine an SRE calls necessary complexity to meet the needs of your business.
- deleted 5y ago[deleted]
- mwcampbell 5y ago> software which eventually runs on the customer's computer I gather then that you're not a fan of SaaS. True, one can cynically explain the rise of SaaS as rent seeking. But there's undeniably value in selling whatever functionality your software provides without burdening the customer with having to run it on their own computer(s). And when we do that, it's our responsibility to make the service reliable, which is what a lot of these tools are trying to do.
- loxias 5y ago> I gather then that you're not a fan of SaaS. I'm neutral, I think? I don't quite see the point of it would be more accurate. I don't think I've used any SaaS in my personal life (other than streaming services. Which I'd prefer as a local app anyway, and I still do, for music, but not video) I'm sure it's a matter of opinion, not something with an objective answer, but "burden of running software on their own computers" genuinely confused me as I read your comment, I thought "burden? what burden?". As a user: If software is designed properly (and most isn't...) you download it once, and it runs. Is the burden the time it takes to do the download? Compared to the noticeable burden of using a webapp, with problems like crappy and frustrating responsiveness, an inability to work without an internet connection, and frequent inability to handle tasks of real complexity, I'd choose a local program any day. As an employee: Heck yes SaaS! $/month >>> $$$/customer :D Of course it's rent seeking, and I take (and give) no shame in that.
- mathteddybear 5y agoReminder that jobs from the 2000s that you were paid to write software for a living include also J2EE and CORBA projects.
- loxias 5y agoTrue, true. The mention of J2EE did just made me shudder a bit. ;) But at least, then, I could write code, run it, make changes, and run it again! And see results! Quickly! My main objection to this "future world" is the vast number of layers of abstraction that you need to fight through just to get your first result. As you can surely guess from my biases and opinions, my happiest engineering projects are those that only require me, my thinkpad, emacs, some man pages, and a C++ compiler. :D And those are the ones I do in my spare time.