As a technical hiring manager, I do not care how long a resume is and welcome more length if it gives me a better idea about the candidate and what they’ve done. My resume’s pretty long given my 27 years in tech and I’m doing pretty well getting jobs.
The one and only rule of a resume is keep the reader in mind. A bad long resume can bore me before I get to the important stuff, but assuming you get the good stuff up front to hook me I appreciate a lot of additional context. Let me explain how resumes are used because I think that makes how to construct one obvious.
The Initial Sort - Ruling Out
There are a lot of candidates for all tech jobs. Expect that a hiring manager for a technology position is looking at a stack of at least 100 resumes, of which 80% of the candidates are completely and wildly unqualified for the position.
The manager flips to each and reads the first "above the fold" part of the first page - usually this is the "Objective" and the most recent position. If what he or she sees does not indicate the person is in the ballpark - and that's as simple as "is a Ruby programmer" for a Ruby programming job - it gets immediately thrown away/deleted. Doesn't matter if you're a super Ruby programmer, if the top of the first page of your resume doesn't say that out loud it goes into the trash with all the bots, spammers, scammers, freaks, weirdos, and melonheads who infest job applications. If for some reason the stack of resumes is actually 50% Ruby programmers for a Ruby programming position, which I must stress is almost never the case, then they'll become arbitrarily more demanding as they go and hope to see the "with five years of experience" or "on financial apps" or whatever the other things are they really wanted, again in that first 2/3 of a page.
This is where "crafting your resume" comes in. Some combo of your top freeform part of the resume and the recent experience should indicate, briefly and to the point, how you're a fit for this specific position. And unless your previous job was "doing exactly this same thing" then you need the additional tuning.
What About The ATS?
If there is some automated system or poorly paid drone pre-processing your resume they are looking for keywords. This should be handled by e.g. saying you're a dang Ruby programmer if you're a Ruby programmer. But I don't use these or work for places that do. If there's a skilled tech recruiter doing it then they're just doing step 1 for the manager and then the manager has to start with step 2 below.
The Second Runthrough - Ruling In
OK, now the manager has few enough resumes that they can mentally process them they go back and read through them in more detail to figure out who this person is and what they can do.
Here, they want to see "all the jobs you've had" because they are actively looking for things in your favor. Good school? X years of experience (in tech, out of tech)? Working at companies they know have good tech departments? Interesting projects? Compatible tech stack? If they're looking for a Ruby programmer to deliver microservices onto Kubernetes in AWS, and you have done any or all of those things, you get little "+1"s to push you into the next round, just saying "Ruby" doesn't get you there. If their customers are retailers, then working for a retailer in the past is valuable (ideally in tech, but even just working retail is a small +1 in that case).
Deep work history even before a degree or otherwise changing careers is valuable - in previous hiring cycles I've definitely counted even non "direct" experience as a plus in a candidate. There's a huge difference between "new SWE grad" and "new SWE grad but with five years of finance experience prior" - if I'm hiring for anything with any financial component it's huge but even without that I would expect 5 more years of professionalism and life skills in the package and I would prefer/pay more for the latter with everything else being equal.
Don't pad though, it needs to be consumable in a couple minutes. The reason new grads hear "one page max" is because in general new (especially under-) grads haven't done anything worth going into in detail; a hiring manager doesn't want to know every class project you did. Actual internships and externally meaningful projects, however, they do. Each item should be briefer the older it is (20 year old job - two bullets, developed this thing, did this other thing, done). If you spent two years running a Bio lab and doing data analysis, it's definitely something you should mention and put on there but it should just be a couple lines; what you did and the tech involved.
Crafting the resume a little bit is OK here. When I go in for a more security, or dev, or infra focused role I might go through my master resume that has 2-5 bullets for each old job and delete the least relevant ones, for example. But don't go overboard, someone with dev, infra, and security experience is a WAY better hire for a security job than someone with just security experience. You just don't want the "security" to be drowned in the other bits. Remember at this stage it's not a computer looking for matches, it's a person with a limited attention span scanning the resume looking for things that "jump out" to them as matching their needs.
Remember the best proof you can do something to a prospective employer is having done something previously. That's the biggest thing they want to see. If you haven't, then you're hoping that a trajectory towards that, plus courses or certifications or open source projects and a statement of passion in your objective or whatever might tell someone "hey maybe they could do it."
The goal of the resume is to get someone to actually talk to you. You are telling them a story and they have limited time to deal with your application/resume. So give them the most important bit up front, and then give them depth with all the things that might be in your favor but still make sure the most relevant bits jump out - first in lists, delete cruft.
The interview process is exactly the same - the interviews, tech test, project, looking at your github, etc. is a desperate multi-axis attempt to verify you can indeed do the things you say before spending a lot of time and money on you.