I generally tend to interview every year to see what's out there in the world (sometimes I find something worth switching for, other times not). I'm not even looking very hard but have had 4 interviews in the last month.

Personally I think it's a bit more nuanced than senior vs junior (though it is very hard for juniors right now). What I've seen a lot of hunger for is people with a track record of getting their hands dirty and getting things solved. I'm very much a "builder" type dev that has more fun going from 0-v1 than maintaining and expanding scalable, large systems.

From the early start of the last tech boom through the post-pandemic hiring craze I increasingly saw demand for people who where in the latter category and fit nicely in a box. The ability to "do what you must to get this shipped" was less in demand. People cared much more about leetcode performance than an impressive portfolio.

Now reminds me a lot of 2008 in terms of the job market and what companies are looking for. 2008-2012 a strong portfolio of projects was the signal most people looked for. Back then being an OSS dev was a big plus (I found it not infrequently to be a liability in the last decade, better to study leetcode than actually build something).

Honestly, a lot of senior devs lose this ability over time. They get comfortable with the idea that as a very senior hire you don't have to do all that annoying stuff anymore. But the teams I see hiring are really focused on staying lean and getting engineers how are comfortable wearing multiple hats and working hard to get things shipped.

> I'm very much a "builder" type dev that has more fun going from 0-v1 than maintaining and expanding scalable, large systems.

Maintaining and expanding is more challenging, which is why I’ve grown to prefer that. Greenfield and then leaving is too easy, you don’t learn the actually valuable lessons. As experience shows that projects won’t stay in the nice greenfield world, building them can feel like doing illusory work — you know the real challenges are yet to come.

Not sure what type of "greenfield" startup experience you've had, but most of the work I'm talking about involves solving problems that most people simply don't have the combined skill set to solve. Typically problems that involve a substantial amount of quantitative skills combined with the ability to bring those solutions to prod.

Nearly all of the teams I've joined had problems they didn't know how to solve and often had no previously established solution. My last gig involved exploring some niche research problems in LLM space and leveraging the results to get our first round of funding closed, this involved learning new code bases, understanding the research papers, and communicating the findings publicly in an engaging way (all to typical startup style deadlines).

I agree with your remarks around "greenfield" if it just involves setting up a CRUD webapp, but there is a wide space of genuinely tricky problems to solve out there. I recall a maintainer style coworker of mine, who describe himself similar to what you are describing, telling me he was terrified of the type of work I had to do because when you started you didn't even know if there was a solution.

I have equal respect for people such as myself and for people that you describe, but I wouldn't say it is more challenging, just a different kind of challenge. And I do find the claim "you don't learn the actually valuable lessons" to be wildly against my experience. I would say most of my deep mathematical knowledge comes from having to really learn it to solve these problems, and more often than not I've had to pick up on an adjacent, but entirely different field to get things done.

FWIW this is the best kind of job ever for me as well:

"when you started you didn't even know if there was a solution."

Regardless what the problem is - as long as I know _nobody knows if there is a solution_ it's an instant sugar rush.

You are free to bang your head against a stone wall for months trying to crack the damn thing.

OFC you need to deliver in the end. And this requires then ruthless "worse is better" mentality - ship something - anything. Preferably a the smallest package that can act as mvp that you know you can extend _if this is the thing_ what people want.

Because that's the other side of the coin - if the solution is not known - people are also not aware if the solution has true value or if it is a guess.

So in any case you have to rush to the mvp.

Such joy!

Of course the mvp must land, and must be extensible.

But these type of MVP:s are not a slam dunk.

The combined requirement of a) must ship within limited time b) nobody knows what _does_ require a certain mindset.

Interesting, this is a trap that I've seen multiple senior hires fall into. In my experience "we have a problem but no solution" often means (a) there actually is a solution but it's too expensive to implement, (b) there are organizational reasons why this problem exists and a new hire doesn't have the experience or credibility to navigate it or (c ) there is no solution to the problem or the solution is very complex, and by the time the new hire onboards, digs into the problem, and figures it out their credibility is shot because everyone was expecting the senior hire to figure it out in 90 days.

I've found new hires to be more successful when they join, get some easy wins, and then find their own problems to solve. But maybe it's just an artifact of working at large companies where most of the day-to-day stuff is figured out.

I think you forgot

(d) although the initial statement seems credible, the problem is actually ill defined and under specified and therefore not solvable as originally stated.

Example: our start-up plans to "fix health care"

"Interesting, this is a trap that I've seen multiple senior hires fall into."

Definetly it's a trap. If you are a purist it's nigh impossible. But if you ruthlessly 80/20 it most stakeholders will be pleasantly surprised.

I have no clue why I end up in these situations but I sure do like them.

I do realize this would sound more of a perpetual "not invented here syndrome" but technical implementation of modeling aspects for 3D and computational geometry is such a scarce talent you actually get to do novel stuff for your business.

The last time this happened I designed & implemented the core modeling architecture and led the implementation effort for our new map feature[0]

[0] See section "Stunning new building facades add practical value" in https://www.mapbox.com/blog/detailed-architecture-and-new-de...

Yup. You learn the most valuable information from watching how things break and then fixing them.

It's kind of like when the FAA does crash investigation -- a stunning amount of engineering and process insights have been generated by such work to the benefit of all of us.

> You learn the most valuable information from watching how things break and then fixing them.

Trust me, you get plenty of experience in this as a founding engineer in a startup.

Many of these comments make me wonder how many people here have actually worked at an early stage startup in a lead role. You learn a lot about what's maintainable and scalable, what breaks and what doesn't, in the process rapidly iterating on a product to find your market.

I don't think HN has been frequented by startup engineers with leadership responsibilities in any density in a long time. It's very obvious to me reading a lot of the comments here that most folks are ICs somewhere in a large, bureaucratic software organization. That's why there's so much BOFH style commentary here these days.

(For readers, I don't think there's anything wrong with that but it just means that certain perspectives are overrepresented here that may not be more reflective of the broader industry.)

That's what I've come to realize. For most of the commentators here "greenfield" means typing in 'npm init', for me it usually means doing three different roles in order to iterate as fast as possible on the product to find your market, then figuring out how to scale it to the new users you've started acquiring.

The idea that this is means "you don’t learn the actually valuable lessons" is completely baffling to me.

Most people I've know with founding engineer experience or similar leave not because it's not challenging, but because it's exhausting.

Increasingly I've realized that the HN community and I are not even speaking the same language.

Some of the sharpest engineers I knew built tools and business processes at startups and watched them fail as they scale. I ran an internal presentation for years at a Unicorn where I was an early employee called "Failure at Scale" where I tried to capture lessons of huge incidents we had that were caused by us crossing scaling thresholds. Eventually the presentations stopped being meaningful because the company became too big and too removed from its origins.

No but it usually doesn’t mean achieving stability at tens of thousands of users a day (or hour) and ensuring that stability while rolling out new features, migrating infrastructure etc

You definitely do. Do you think Anthropic isn't working with thousands of users an hour? They're struggling to keep up with the scale and their ability to create a stable platform is, well, existential for them. Do you think Anthropic isn't a startup? The pace of their feature rollouts is exponential.

Even in areas where startups aren't literally creating new product categories like the foundational model providers, the edge of a startup over a more established business is the speed at which they can provide value. What's the point of buying CoolCo when you can go with L&M Inc. that has thousands of headcount working on your feature. The value prop of CoolCo is that CoolCo can roll out a feature in the time it takes L&M to make a detailed specification and a quarterly planning doc breaking down the roadmap and the order of feature implementation.

> Trust me, you get plenty of experience in this as a founding engineer in a startup.

Now be part of the team of folks that keeps that application running for 10, 20, 30 years. Now be part of the transition team to the new app with the old data. Those tasks will also teach you a lot about system stability, longevity, and portability... lessons that can only be learned with more time than a startup has.

I'm a founding engineer in a startup right now, and I was a founding engineer in a startup acquired by a large company. So then I became a part of a large company.

The technical challenges are _very_ different between these environments. In a small company you have to deal with technical breakages all the time, but you don't really have systems-level problems.

Valuable in what metric? I'm very much in the brownfield-has-the-lessons camp, but one of the lessons is that this experience has a very low market value. In fact it's so impossible to downgrade from "senior in $outdated" to "junior in $whateverisconsideredhotrightnow" that any brownfield experience could easily be considered to have negative market value.

I don't think they're mutually exclusive. You could just as easily describe someone with bootstrapping experience as being like an FAA crash investigator who investigates take offs. You get to know exactly what works when moving fast and looking for quick results, and what dooms a short timeline to failure.

> You could just as easily describe someone with bootstrapping experience as being like an FAA crash investigator who investigates take offs.

Takeoff systems aren't analogous to prototype development. I don't know you'd build a prototype plane that's feasible to take to market, without having deep knowledge about how planes are built.

Early design decisions matter. And you don't get to that realisation without dealing with legacy systems where some upstart made terrible decisions that you're now responsible for.

[deleted]

Yep. I have loved fixing problems in systems and the processes that the people working on them use for years.

I was just thinking yesterday that knowing all the ways something breaks and behaves is the key to understanding systems.

and people that understand data it critical with storage supply getting tighter

“What kind of role are you looking for?”

“Technologist flavor of NTSB investigator.”

There was a two year period around 2011-2013 where I experimented with my dev team. We were being "forced" to migrate a legacy enterprise system from .Net/MSSQL to Java/PostgreSQL with replace the front end with a modern, reactive web interface. Only two of the existing developers had Java experience, and both were conveniently senior engineers in two different offices and running their own discrete sub-teams.

One of the guys had a very strong opinion that the ideal architecture was something as abstracted and object oriented as possible with single function classes, etc. I let him run with that. The other guy got frustrated with his sub-team's inability to write code to spec in a language they'd never used before and where they were trying to build some new features they didn't clearly understand. He developed a strong feeling that TDD was the most efficient path forward: he owns the PRD and design, so he just created test stubs and told the remote team to "just write code that passes the test" even if they didn't understand the function of the block.

So, after a few months where did we end up:

1. The "abstract everything" architect's team had an extremely fragile and impossible to maintain codebase because it was impossible for any outsider to tell what was going on.

2. The "just pass the damn tests" guy had a team that had quickly ramped on a new language and they had a codebase that was incomplete (because they were building it like a Lego project) but that everyone could understand because the code blocks generally stood on their own.

What was the next step: to shut down the guy who abstracted everything and force him to drive a quick & dirty rewrite that would be more maintainable, and to also start a major refactoring of the "Lego" team's code because it was so fragmented that it also was fragile and unsuited for production.

I saw this as a terrific learning experience for all involved and I was able to get away with it because the stakes were pretty low and we had time to experiment (part of the ultimate objective was upskilling the team), but the more important lessons were these:

1. Docs matter. Take the time to write clear & detailed specs first because you'll be forced to think of edge cases and functionality that you didn't originally, and it provides a basis for system design, too.

2. Architecture & design matter. Adhering too close to any single paradigm is probably a mistake, but it takes experience on the team to understand where the compromises are and make the best decision for that system.

That second point will not stop being true with the advent of agentic assisted software development. Like others have said, my expectation in the job market is that pay will continue to be depressed for junior hires as employers reset expectations and generally just want folks who can instruct fleets of agents to do the actual coding. Senior staff will become increasingly critical and their jobs will be painful and difficult, because it'll be assumed they can (and will be willing to) do design & code reviews of artifacts originated by agents.

What I am going to be most interested in is what happens in the SRE/Sysadmin world over the next few years as more AI-generated code hits prod in organizations that don't have adequate review & oversight functions.

> What I am going to be most interested in is what happens in the SRE/Sysadmin world over the next few years as more AI-generated code hits prod in organizations that don't have adequate review & oversight functions.

You kindof answered the question yourself. Humans write the tests and then go tell the AI to write the solution which passes the test.

The nice thing about the "just pass the tests" approach is you end up with something sufficiently abstracted that it's easy to write tests for it.

Sounds amazing.

Everyone can do 0 to 1. Because delivery drives dopamine. The it is the boring thing, but there comes experience to find interest in that part

Oh boy you're wrong. Many people (including myself) are experts at doing 0 to 0.8. The rest is much more difficult.

This is news to me having watched many many many people fail to do 0 to 1.

Maybe you're just a really really good engineer and product thinking hybrid!

It is more challenging, but I feel like it also has fewer people looking for that. That whole "move fast and break things" phrase messed with too many people's heads. I don't think people appreciate this segment of a product's life cycle as much as they should. They're always looking for the quick solutions.

> Greenfield and then leaving is too easy, you don’t learn the actually valuable lessons.

You learn a ton of valuable lessons going from 0 to v1. And a ton of value is created. I guess I'm unclear how you're defining "actually valuable" here.

I suspect the issue is the parent has never worked in an early stage role at a growing startup still iterating on finding product-market-fit. If they had they would realize you learn a lot about "maintaining and expanding", especially when your prototype now has a bunch of users.

This is evident in my personal experience by the fact that I am often the one that sees scaling and maintenance issues long before they happen. But of course parent would claim this is impossible.

Having worked at both greenfield startups and unicorns, I've found that virtually every problem I've encountered at the unicorn startups was caused by folks being incompetent at the greenfield level. Maybe when you get to the scale of Google things are different, but it's certainly possible to build a business big enough to retire off that doesn't require any more technical knowledge than what you'd learn at a two-person pre-PMF startup.

Architecting not knowing how to maintain it.

Edit: a legacy vibe coder

Sure, but that's in many ways the easy part.

If v1 is successful and attracts a lot of users, it will have to have features added and maintained.

Doing that in ways that does not produce "legacy code" that will have to be thrown away and rewritten in a few years is a very different skill than getting v1 up and running, and can easily be what decides if you have a successful business or not.

Taking this to the extreme, I think most lessons represent sunset or dead projects. There's no sweet illusions anymore. No assumptions. No ego. No account for infinite flexibility. No shine. No excitement of a new thing. No holy wars. No astronaut architects. Only you, the ruins and the truth.

Soooo agree. I've had to clean up the messes of people that did the 0-1 in my field and going from 1-unconditionally stable was a lot more work than the 0-1 part.

Having been in both roles, I believe it is important that each side of the “1” give the other a little grace.

When you are going from “1” to stable, there is some breathing room because you have a 1 that works, mostly. Sort of. Dealing with it may be a slow slog of sordid substitutions, but the pressure is different.

Going from 0 to 1 may involve working 80+ hour weeks with little sleep and enormous stress. It may mean meeting deadlines that make or break the product in a mad rush to fulfill a contract that saves or dooms the company. It may mean taking minutes to decide designs when days or months of consideration would have been more appropriate. And it may mean getting a lot of things wrong, but hopefully not so wrong that a version 2 is impossible.

As a final note: often v1 has substantial problems, that’s true. But sometimes it’s actually not that bad, and v2 fails because it was trying to shove the tech de jure (k8s cough cough) where it wasn’t needed so someone could get that shiny architect promotion.

This is unironically my favorite kind of HN comment: to say something incredibly rude and/or condescending but wrap it in the right kind of thoughtful language to qualify as HN nice

The original punchline ("you don’t learn the actually valuable lessons.") was just a bit too sharp, so you even edited in a psuedo-clarification which actually just repeats that punchline but in a softer way, masterful!

The soft sensitive people today have no idea how hard a condesending asshole has to work to live up to his own standards. When they do, one should still find something to troll them with. If you cant find it you complaint about the excessive border radius creating a child friendly fisherprice kind of environment. If that is the worse you can find they should agree and confess they have a fear of sharp edges.

How times have changed

My intention was actually to inspire others to maybe also start preferring long-term/maintenance work, because I feel there’s a lack of enthusiasm for that.

Almost invariably after submitting, I see how I could clarify and/or expand on my thoughts, so I often do end up editing.

This seems wrong? Like if you look at a collection of open SWENG positions, most of them are maintenance roles at large companies. Greenfield software doesn't have the revenue needed to justify much headcount.

In my experience separating the roles out is silly if you're an engineer yourself. We do this a lot and that leads to silly mentalities. Greenfield developer vs maintenance engineer, MVP engineer vs Big Tech dev, FOSS hacker vs FOSS maintainer. Each of those dichotomies speaks to cultural differences that we humans amplify for no reason.

In truth the profession needs both and an engineer that can do both is the most effective. The sharpest engineers I've worked with over the years can hack new, greenfield stuff and then go on to maintaining huge projects. Hell Linus Torvalds started out by creating Linux from scratch and now he's a steward of the kernel rather than an author!

I wasn’t talking about segregating roles, but about personal preference. People do tend to prefer building new stuff over maintaining projects long-term, and I’d like the scale to tip a bit on that. Linus is indeed a good counterexample: He didn’t leave Linux after 1.0 to build the next new thing. But the latter is what developers in practice often prefer doing.

> Almost invariably after submitting, I see how I could clarify and/or expand on my thoughts, so I often do end up editing.

One of the tricks of HN is the 'delay' setting. https://news.ycombinator.com/item?id=231024

> There's a new field in your profile called delay. It's the time delay in minutes between when you create a comment and when it becomes visible to other people. I added this so that when there are rss feeds for comments, users can, if they want, have some time to edit them before they go out in the feed. Many users edit comments after posting them, so it would be bad if the first draft always got shipped.

I've got mine set to 2. It gives me a little bit of time for the "oh no, I need to fix things" or "I didn't mean to say that" and when everyone else can see it.

Ahh that finally explains the [delayed] posts. For ages I've wondered what that is about and assumed it's some automated rate limiting.

Business bros will not pay high salaries to maintain software. Software maintenance will always end in India with developers making $20/hr. Or less.

AI makes it look like these developers can do the same job the Americans did building the product to begin with. Even if things fall apart in the end, it won’t stop the attempt to order of magnitude reduce the cost for maintenance.

It's correct tho. If your entire career is nothing but greenfield development, you'll never know the result of your decisions or the impact of tech chosen.

Staff or principals that have a tenure of majority greenfield development are extremely dangerous to companies IMO. Especially if they get hired in a nontraditional tech company, like utilities, banking, or insurance.

Your list is places that treat development as a cost center, but greenfield-only devs don't want to touch that work with a 10-foot pole.

And if your entire career is nothing maintenance and sustaining projects, you'll never know what decisions it takes to build a greenfield application that lives long enough to become a graybeard.

You'll think you do because you see all the mistakes they made, but you'll only have cynical reasons for why those mistakes get made like "they don't care, they just make a mess and move on to the next job" or "they don't bother learning the tools/craft deeply enough moving, it's all speed for them".

-

To indulge myself in the niceness a bit: I don't think you write comments like the one above if you've done both, yet having done both feels like an obvious requirement to be a well-rounded Staff/Principal.

Most maintenance work suffers because of decisions made at the 0 to 1 stage. And most greenfield work fails entirely, never maturing to the maintenance stage.

So both sides have to do something right in the face of challenges unique to their side. And having familiarity with both is extremely valuable for technical leadership.

This is an excellent point.

When working at larger orgs on legacy projects (which I have also done) you think "what sort of idiot did this?"

Then when you're the one tasked with getting a project shipped in two weeks that most reasonable engineers would argue needs two months, you start have to make strategic decisions at 2am about what maintainability issues will block the growth of the product on the way to funding and what ones can be fixed before 5pm by someone that will think you're an idiot in 3 years.

And yet it is correct. The most valuable engineers today are those who have maintained and expanded the 0..v1 crap from others, and are now driven and ambitious enough to go build the next generation of 0..v1. Armed with that experience, the crap is minimal and value maximized.

Oof ima be the one to say it depends. This is personality based and the truth is a successful product has both. Even late on u want that person willing to break convention to find a new way of doing something. Early u need some seasoning in there too.

Passive aggressiveness isn't the opposite of kindness, and worse than directness, but you'll get away with it here because this is just reddit but more pretentious and all the same biases are intact, just more walls of text instead of getting to the point.

They're 100% correct, though.

They're incorrect, and my reply to a sibling covers why in detail.

But to reword it: if you think the reason 0 to 1 work is typically a duct-taped mess is because of a lack of experience or understanding from greenfield devs, you'll probably fail at 0 to 1 work yourself.

Not that a noob developer great at selling has never landed 0 to 1 work, crapped out a half working mess and left with a newly padded resume... but maintenance work is missing out on by far the most volatile and unpredictable stage of a software project, with its own hard lessons.

The duct-taped nature of 0 to 1 work is usually a result of the intersection of fickle humans and software engineering, not a lack of knowledge.

-

People in maintenance can do things like write new tests against the production system to ensure behavior stays the same... what happens when 1 quarter into a 2 quarter project it turns out some "stakeholder" wasn't informed and wants to make changes to the core business logic that break half the invariants you designed the system around. And then after that it turns out you can't do that, legal pushed back. And then a few weeks later they came to an agreement so now we want a bit of A and B?

Or you're in consumer and there's a new "must have" feature for the space? Maybe you'd like to dismiss as "trend chasing", but that'll just doom your project in the market because it turns out following trends is a requirement for people to look at everything else you've built

Or worst of all, you know that quality engineering of the system will take 8 weeks, and there's a hard deadline on someone else's budget of 4 weeks, and you can of course decline to ship it, but then you'll need a new job. (and I know, you'll say "Gladly, I take pride in my engineering!", but again, you're probably going to end up maintaining a project that only survived by doing exactly what you quit over)

tl;dr it's Yin and Yang: you can't have one without the other, and you need to have a bit of the other side in you whenever you're working in the capacity of either to be a good technical leader.

You must be “that person” who joins a team, creates IMPACT!!!, reaps the review-time award, and fucks off to some other new team to do it all again before any of the difficult maintenance issues arise. I've spent far too much time cleaning up after people like that to ever tolerate it again.

"Build one to throw away" comes to mind.

You'll figure out what you should have built after it's been used in prod for a while. Possibly years.

> I'm not even looking very hard but have had 4 interviews in the last month.

How many offers did you receive? Companies have also adopted your strategy: interviewing candidates "to see what's out there" - there's a job I interviewed for that's still open after 10 months.

> Companies have also adopted your strategy: interviewing candidates "to see what's out there" - there's a job I've interviewed for that's still open after 10 months

When I was doing a lot of hiring we wouldn't take the job posting down until we were done hiring people with that title.

It made a couple people furious because they assumed we were going to take the job posting down when we hired someone and then re-post a new listing for the next person.

One guy was even stalking LinkedIn to try to identify who was hired, without realizing that many engineers don't update their LinkedIn. Got some angry e-mails. There are some scary applicants out there.

Some times a specific job opening needs to stay open for a long time to hire the right person, though. I can recall some specific job listings we had open for years because none of the people we interviewed really had the specific experience we needed (though many falsely claimed it in their applications, right until we began asking questions)

> some specific job listings we had open for years

If you need to wait YEARS to hire someone with some specific experience, I can guarantee that you really didn't need that person. You're doing this just to check some specific artificial goal that has little to do with the business.

>If you need to wait YEARS to hire someone with some specific experience, I can guarantee that you really didn't need that person. You're doing this just to check some specific artificial goal that has little to do with the business.

There's a difference between "critically needing" and "would benefit from."

If you can find the specialist who's done what you're doing before at higher scale and help you avoid a lot of pain, it's awesome. If not, you keep on keeping on. But as long as you don't start spending too much on the search for that candidate, it's best to keep the door open.

So this is not a job that you need to fill, it is a wish you may have and that is mostly impractical. If you really needed that person, you would go find them and pay way more than they're making now or give them something else they want to join immediately.

> So this is not a job that you need to fill,

There is no requirement that every job opening needs to be urgently filled.

You keep repeating this like it means the job opening shouldn't exist at all. Not all job openings are for urgent demands that must be filled right away or not exist at all.

When I was a team lead at a big tech company, any requisition that was not filled at the end of each quarter was cancelled and required a fight to be reinstated. Many job listings became conflicts between:

Option 1) Hire someone sub-standard and deal with either an intense drag on the team while they came up to speed or worst case having to manage them out if they couldn't cut it.

Option 2) Give up the requisition which looked like an admission that we didn't really "need" the position, and also fails to help with senior management and director promotions tied to org size.

This always seemed pathological to me and I would have loved to have the ability to build a team more slowly and intentionally. Don't let all this criticism get to you.

> If you need to wait YEARS to hire someone with some specific experience, I can guarantee that you really didn't need that person.

I've worked in specialized fields where it takes YEARS for the right candidate to even start looking for jobs. You need to have the job listings up and ready.

This was extremely true when we were working on things that could not be done remote (literal physical devices that had to be worked on with special equipment in office).

Engineers aren't interchangeable cogs.

> I can guarantee that you really didn't need that person.

So what? There are many roles where we don't "need" someone, but if the right person is out there looking for a job we want to be ready to hire them.

So what did you do when those devices broke for years while you had no local/physical person on site? You either didn't need to employ the person bad enough or didn't need the devices to function bad enough.

Engineers aren't cogs, but they are able to travel and you can hire them by other means that full-time employment. So I suspect that was probably what you were meant to do for your situation.

Nothing about this was mission critical or even all that important or you would have found a way to solve the problem or you did and it wasn't a problem to begin with. I'm in a field where people often want to hire me for some special thing like this, but it often turns out, most of my life would be spent idle because no one company has enough demand for me. I can consult instead and be busy all year, or I can take a job for someone that's OK with me being idle for 80% of my time. I prefer the former for multiple reasons but just making an example of why hiring for specialized roles that aren't mission critical is often not the thing you should be doing.

> So what did you do when those devices broke for years while you had no local/physical person on site? You either didn't need to employ the person bad enough or didn't need the devices to function bad enough.

I don't know why you assumed that. We had teams. We just wanted to grow them.

We weren't sitting there waiting.

It's implied by you wanting more people, that you had more demand than could be fulfilled. Even if you have teams, it stands to reason that the device repair would have been running into backlog territory that had negative implications of some sort. If not, why hire?

> it stands to reason that the device repair would have been running into backlog territory that had negative implications of some sort. If not, why hire?

I don't know where you're getting these ideas. We weren't hiring people to repair a backlog of devices. Warranty and repair work typically goes to the contract manufacturer, for what it's worth.

Companies like to grow and develop more products. You need more people.

> I've worked in specialized fields where it takes YEARS for the right candidate to even start looking for jobs. You need to have the job listings up and ready

If this is true then those shouldn't even be public job postings. That sort of critical position is for headhunters

> If this is true then those shouldn't even be public job postings.

Why? Not everyone is on LinkedIn or has an updated profile.

Some of the best candidates I've hired were people who were in other states who were planning to move, but waiting for the right job opportunity to come up.

We also used recruiters.

Why does it make people so angry that we posted job listings for real jobs that we were really hiring for?

If your real candidate pool is so small that you're effectively targeting a handful of people worldwide then you aren't "really hiring"

Yet somehow we really did hire people.

If only we had listened to HN comments and given up instead

Or... your company should be training potential replacements. This is what the US military and "white shoe" consulting companies do. While expensive, it guarantees that critically needed skilled staff are always available.

I recommend the article "Up or Out: Solving the IT Turnover Crisis" [0] which gives a reasonable argument for doing exactly that.

Notes:

0 - https://thedailywtf.com/articles/up-or-out-solving-the-it-tu...

> If you need to wait YEARS ...

Imagine working on voyager II .. or some old-ass banking software that still runs RPG (look it up, I'll wait), or trying to hire someone to do numerical analysis for the genesis of a format that supercedes IEEE float .. or .. whatever.

There are many applications for extremely specific skillsets out there. Suggesting otherwise is, in my opinion, clearly unwise

[deleted]

Exactly. Hire someone 80-90% there and invest in their training FFS.

Answered elsewhere: If we're investing in someone's training we'll promote someone from within who is already familiar with the product and then backfill their simpler work.

So you had a talent pipeline, you just didn't like how hands on it was or how it took time to develop. We'd all prefer a magical unicorn applicant that checks every box but it's never possible especially the more you're required to know about specifics that are best learned internally to begin with. The whole hiring angle you describe seems silly in terms of process and expectations

> So you had a talent pipeline, you just didn't like how hands on it was or how it took time to develop.

There's a lot of anger in this thread at companies for making obvious choices.

If the perfect applicant happens to be looking for a job and it can save us the time and churn of switching someone internally, then yes: I would prefer to hire that person.

> The whole hiring angle you describe seems silly in terms of process and expectations

I think the silly part of this thread is all of comments from people who think they know better how to operate a company they know nothing about the people who were in it.

> There's a lot of anger in this thread at companies for making obvious choices.

Elsecomment and on Reddit, you'll see the attitude that their years of experience should be sufficient assurance for their prospective employer that they can pick up whatever other technologies are out there.

This is often coupled with the "you shouldn't need to learn new things outside of your 9-5."

Here, you are presenting a situation where a company would rather promote from within (counter job hopping culture) and would penalize someone who is not learning about new things that their current employer isn't using in the hiring process.

---

And you've mentioned it elsecomment too - it's about the risk. A company hiring an individual who isn't familiar with the technology and has not shown the ability to learn new material is more risky a hire than one who is either familiar with it professionally or has demonstrated the ability to learn new technologies.

That runs counter to the idea of the "best" candidate being the one who is most skilled but rather the "best" candidate being the one that is the least risky of a hire.

The whole thing is this perfect candidate doesn’t exist. How can they? You are dealing with imperfect information. A resume, yours and theirs assumptions about eachother. That is it. All the interview hoops attempts to make ourselves the hirer comfortable with the fact we are fundamentally taking a leap of faith. Because n=1. Because we aren’t simulating this hire 1000 times and modelling the distribution of performance. Because we haven’t accounted for all latent factors that may intersect between our work model and the hiree. Because we can’t ever know anything at all about the future for certain.

I think we could all be a little more mindful of that in hiring. That waiting for perfection is itself a fallacy for all these reasons and plenty more.

You probably don't realize that there are several thousands of people without a job who could work for a company that is instead just "waiting years" to find an imaginary worker. That's what people complain about. The more companies think the way you do, the more useless open positions are listed because companies will not hire anyone unless it's the perfect candidate in their dreams.

> You probably don't realize that there are several thousands of people without a job who could work for a company that is instead just "waiting years" to find an imaginary worker.

I screen hundreds of resumes a week when hiring. I know this very well.

Hiring the wrong person can easily be a net negative to the team. Hiring too fast and desperately hiring anyone who applies is doubly bad because it occupies limited headcount and prevents you from hiring the right person when they become available.

Building teams is a long game.

Shame how the cost of the long game is paid by the future employee having to be lying in wait, applying to you and 300+ of your colleagues openings, praying for a bite.

The best applicants aren't lying in wait or filing hundreds of applications. They're happy where they're at, ignoring the dozen people a week who reach out trying to recruit them, until eventually they decide it's time for a change. Then they apply or get referrals to the handful of companies they find most interesting, and at least one is going to give them an offer.

So if you don't have a job opening posted on the day they're sending out applications, you may miss your shot to hire them.

I have to say I appreciate your aplomb in these responses. The whole thread is littered with shocking (and unsurprising?) tech-bro overconfidence that they can manage a situation they literally know nothing about better than someone who's already done it. Cheers to you and have a good weekend.

Or, it’s the kind of place or situation where it’s not about the job/role as some abstract commodity “function,” it’s about specialist > internal generalist > external non-specialist.

“We’re making do, but we’re kind of figuring out X as we go. That’s working for now, but the problems keep getting knottier as we grow and change—it works, but it’s expensive in terms of avoidable mistakes.

Nothing’s on fire, but if we ever got the chance, we’d value authentic expertise in this niche. But if it’s just ‘I could probably figure that out,’ we’ve already got plenty of that internally.”

Where a good hire ends up helping those internal people as they develop experience and expertise, and one that’s not right is worse than none at all.

How do you know if someone is 80-90% there without having the job posting for the profile up, and interviewing candidates who come along?

That still takes a long time if random Senior Engineer X who's looking on LinkedIn is only 10% of the way there for what you'd need for a very specialized role.

> When I was doing a lot of hiring we wouldn't take the job posting down until we were done hiring people with that title

It's a small engineering org, allegedly head-hunting one principal engineer for the whole org, so it's a single opening. 10 months later they are still hunting for their special snowflake.

> I can recall some specific job listings we had open for years because none of the people we interviewed really had the specific experience we needed

This is exactly what I mean. If you can go for years without filling a role, it's non-essential , and are in effect, "seeing what's out there". More and more companies are getting very picky on mundane roles, such as insisting on past experience in specific industries: "Oh, your extensive experience in low-latency comms is in telecoms? We prefer someone who's worked in TV broadcast, using these niche standards specifically, even though your knowledge is directly transferable. We don't want to waste 5 days on training"

You expect more nonessential roles and slower hiring in a slower growing economy, especially if companies only hire for full-time roles.

For example, your company might need a full-time network admin once its network grows to a certain size and complexity. You won’t hit that level for three years but you’d hire the perfect person now if you found them even though they might be spending a lot of idle time scrolling Hacker News for the first year or two. At 5x the growth rate, you’d need that person within less than a year, and you might be less picky about whether they are coming from a TV or telecom shop.

Honest question. Were these super specialized roles with such specific skill requirements that it took such a long time to find the right person? Looking back, do you think the team would have been better off hiring someone who came close enough, and supporting them to learn on the job?

> Looking back, do you think the team would have been better off hiring someone who came close enough, and supporting them to learn on the job?

More specialized.

If we wanted to train someone, we'd start with an internal candidate who was familiar with the other parts of the job and then train them on this one thing.

Hiring an outsider who doesn't know the subject matter and then teaching them is less efficient and more risky. It was better to have someone in the team learn the new subject as an incremental step and then backfill the simpler work they were doing.

Some academic departments do this... put a job ad every year in case there's a superstar.

I assume that this means you're sending out rejections that include a mention of "we've hired someone else for this role".

If your hiring model is hiring multiple people through one posting, then you will probably get a lot fewer angry ex-candidates being weird (because they think you've lied to them since the posting is still up) by just sending out rejections that don't say that and just get the "we're no longer interested in you for this role" message across.

Nicer/more corporate language for both, of course.

> I assume that this means you're sending out rejections that include a mention of "we've hired someone else for this role".

No, this isn't possible unless you delay rejections letters until you hire someone.

We send letters as soon as the decision is made not to continue with that candidate.

Honestly it would be cruel to string them along any longer.

From applying places recently I'd much rather get these fast. One company sent me them, the rest either reached out or I never heard from them.

What a time to be alive: Companies post roles that don't exist to interview candidates who don't plan to switch.

and waste everyone time

> How many offers did you receive? Companies have also adopted your strategy: interviewing candidates "to see what's out there" - there's a job I interviewed for that's still open after 10 months.

On the hiring side, at least in tech: interviewing really sucks. It's a big time investment from multiple people (HR, technical interviewers, managers, etc).

I'm not saying it's impossible that companies are interviewing for fun, but it seems really unlikely to me anyone would want to do interviews without seriously intending to hire someone.

> On the hiring side, at least in tech: interviewing really sucks.

I know it sucks, I've sat on the other side if the interviewing desk many times, and the charade wastes everyone's time - the candidates most of all because no one values that.

> I'm not saying it's impossible that companies are interviewing for fun, but it seems really unlikely to me anyone would want to do interviews without seriously intending to hire someone.

It sounds like you've never had to deal with the BS that is headcount politics, which happens more at larger organizations due to more onerous processes. Upper management (director, VP) can play all sorts of games to protect a headcount buffer[1], and everyone down the chain has to waste their time pretending to be hiring just because the division heads want to "maximize strategic flexibility" or however they phrase it.

1. Which is reasonable, IMO. Large companies are not nimble when reacting to hiring needs. The core challenge are the conflicting goals thrust on senior leadership reporting to the C-Suite: avoiding labor shocks, and maximizing profitably -- the former requires redundancy, but the latter, leanness.

It sucks from both sides.

I am on the interviewing and screening side and understand what you're saying. I also empathize with the people I routinely reject who don't understand why they were rejected. It's hard to see why you might not be a right fit for a role.

> it seems really unlikely to me anyone would want to do interviews without seriously intending to hire someone.

I keep seeing this accusation thrown around and like you, I have a hard time seeing this. On the flip side, looking at it from the eyes of many disenchanted candidates, I can see how a theory like this is appealing and self-reinforcing.

Be careful to make judgement calls like this.

I've been running the same job ad for 2 years now, as a recruiter for a big Canadian bank. I've been laughed at for having ridiculously unrealistic standards. I've been accused of running ghost ads.

I'm in the process of hiring the 13th person using this same job ad for new and existing teams that need a very particular type of engineer.

I have to agree, getting tech interviews isn't a great gauge of the job market.

I recently did an interview and a complaint I hear from the interviewer and our own company, people (your competition) reading from AI output.

As a candidate I don't mind doing a few highly speculative interviews. After not interviewing for a while it is good practice.

> I'm very much a "builder" type dev that has more fun going from 0-v1 than maintaining and expanding scalable, large systems.

Most prefer a greenfield project.

I don't know, the majority of my colleagues have no idea how to do anything in a greenfield environment. They need guardrails.

My best projects have all been greenfield. The worst were a few years old but required tons of maintenance unrelated to the core product. Example: one place built their own ORM. Twice.

[deleted]

Seeing a lot of the same. Never studied leetcode and didn't work at leetcode companies. I could do them, I passed AWS and Microsoft cloud at L5 levels with no prep, but never was my strong suit. But I ship, and I can play politics very well. Especially in crusty organizations. Lots of callbacks, very hot market.

My friends who are "book smart" and leetcode geniuses are struggling. They're my friends, but they come off a bit "off" at first glance, the stereotypical nerd vibe. They're all really struggling since they can't sell themselves properly and lack the interpersonal skills.

Shipping is only hard when you have to deal with all the loose ends "builders" leave lying around.

There is famous term for those: Tactical Tornados

https://news.ycombinator.com/item?id=33394287

From 2022. Funny that soon after that we figured out how to automate the Tactical Tornado programmer and collectively decided that they're the best thing ever and nobody needs other kinds of devs anymore.

To provide a different framing, I’m more of a builder and I’m happy to maintain too. What I’m not happy with, and have left jobs over, is being put into a box or becoming overly siloed.

Large companies tend to over specialize and that’s where I see the “I’m a builder” types fall apart. That takes away agency, lowers skills, and removes variety from work. That’s when it stops being fun to me.

I would hope most people with the builder architype are otherwise fine to keep building and maintaining.

Shippers gonna ship.

I, too, am able to get interviews. The last time I made a serious search was in 2022-23, and companies were clearly eager to hire at competitive rates. This past fall, they were not. My salary requirements stopped at least two interview processes when the question was raised. In other cases it was not clear that the company was serious about moving forward with hiring for the position at all. A three month search ultimately came up dry, which is fine because I'm currently employed, but I do not think the hiring landscape is promising at all right now.

> Honestly, a lot of senior devs lose this ability over time. They get comfortable with the idea that as a very senior hire you don't have to do all that annoying stuff anymore.

A few years ago, when interest rates were 0% and companies were hiring at an unsustainable rate, I got a lot of criticism for cautioning engineers against non-coding roles. I talked to a lot of people who dreamed of moving into pure architect roles where they advised teams of more junior engineers about what to build, but didn't get involved with building or operating anything.

I haven't kept up with everyone but a lot of the people I know who went that route are struggling now. The work is good until a company decides to operate with leaner teams and keeps the people committing code. The real difficulties start when they have to interview at other companies after not writing much code for 3 years. I'm in a big Slack for career development where it's common for "Architect" and "Principal Engineer" titled people to be venting about how they can't get past the first round of interviews (before coding challenges!) because they're trying to sell themselves as architects without realizing that companies want hands-on builders now.

> The work is good until a company decides to operate with leaner teams and keeps the people committing code.

I'm no AI booster but I think this is exact scenario where AI-driven development is going to allow those non-coding developers to shine. They still remember how code works (and have probably still done PR review from time to time) so they're well placed to write planning documents for an AI agent and verify its output.

Yes when I saw this happen during the post COVID boom I was honestly shocked. Engineers I knew who were fairly senior thought that they could build the rest of their career in just boxes and arrows on a board. The whole thing just made me really dislike other Principal engineers.

I left to a startup where I write code and design architecture. I even had a former coworker tell me "wow you're willing to do stuff like that at this point in your career?"

If Jeff Dean still codes, so can I.

>I generally tend to interview every year to see what's out there in the world (sometimes I find something worth switching for, other times not). I'm not even looking very hard but have had 4 interviews in the last month.

The Pick-Up Artist's Guide to Tech Interviewing, you should be writing.

The first 100 subscribers get a 50% off discount the month of March, you should be announcing on LinkedIn and Tiktok, and making passive income.

The rest of us experienced people with proven track records have to learn algorithms on the weekends despite having white hair.

When I was in corporate I'd talk about cover your ass mode and get'er done mode. And while realistically I know both are necessary, I was always annoyed at the need to have a cya mode. I get a bit of schadenfreude from the thougt of the market being harder for the people who don't seem to have a get'er done mode, and a bit of his at the thought it might be because there's less concern over whom to bother if something needs to be fixed later.

> I'm not even looking very hard but have had 4 interviews in the last month.

Did you get any offers yet? It seems the issue is not lack of interviews but lack of offers. Many companies are looking for a goldilocks candidate and are happy to pass on anything that doesn't match their ideal candidate

I got laid off at the end of last year and am currently interviewing for Staff+ DevOps/Platform Engineer type roles. I definitely feel this. I've had a decent flow of recruiter inquiries and had multiple companies go 2-3 rounds of interviews deep with me (not counting the initial "do you have a pulse" recruiter screen calls). Then the communication always seems to dry up and I'm left to wonder what box I failed to check on their hiring rubric.

Semi related, holy hell do companies have a lot of interview rounds these days. It seems pretty standard to spread 5-6 Teams calls over the course of a month. I get that these are high salary, high impact roles and you want to get it right. But this feels really excessive. And I'm not talking about FAANG tech giants here. It's everyone, from startups to random midsize insurance companies.

I just had back to back round 6 interviews. Both companies have 8 rounds. And yes, not FAANG.

And a lot of it is networks as opposed to applying to a job position. My last position--that I had for many years--was reaching out to someone knew for not even a posted position and having one created for me.

Interviews are easy to get, going through 4-8 rounds and making it through is not.

In your experience, what’s the best way to increase signal? I feel as though a lot of devs struggle with the initial process of getting past screening, drawing attention to projects, etc.

Not the parent commenter but I've performed a lot of resume reviews for people and also done a lot of hiring.

Most resumes are not very good. Beyond the obvious problems like typos, there is a lot of bad advice on the internet that turns resumes into useless noise. Screen a lot of resumes and you'll get tired of seeing "Boosted revenue by 23% by decreasing deploy times by 64%." This communicates nothing useful and we all know that revenue going up 23% YoY was not attributable to this single programmer doing anything at all.

Often I'll get candidates into interviews and they light up telling me about impressive things they did at a past job with enough detail to convince me they know the subject, but their resumes are garbage because they've followed too many influencers.

So try to work on your resume first. Try different resumes. Rewrite it and see what makes interviewers take notice and what they ignore. The most common mistake is to write a resume once and then spam it to 100 jobs. I know it's not fun to change the resume or invest time into applying for a job that may not respond, but you know what else isn't fun? Applying to 100 jobs and not getting any responses because every hiring manager has 20 tailored resumes in their inbox ahead of yours.

Having a simple but clear LinkedIn profile helps. Many scoff at this, but it works. You don't have to read LinkedIn's social media feed or do anything with the site. Just set it up and leave it for them to find.

GitHub portfolios and other things have low relative value at most companies. There are some exceptions where someone will look at it and it might tip the balance in your favor, but it's a small optimization. You need to be perfect the resume first, get a LinkedIn that looks decent second, and only then think about the ancillary things.

At least in my experience, applying at jobs online has been entirely useless for the last 5 years. No company ever contacts you after using the online application forms. And the only way I’ve got interviews is from recruiters contacting me.

As someone applying right now I agree. I think I've had one company out of dozens get back to me on a cold application this year. Every contact that has led to an interview was from being referred in by a current employee, or a LinkedIn recruiter reaching out to me about a job. I assume the application forms get spammed with hundreds if not thousands of applicants. It's hard to blame someone for not wanting to sift through all that muck when there's already a stream of vetted candidates coming in from their recruiter. Sucks for the job seekers, though.

I'm putting more time into cleaning up my LinkedIn profile since that's been my most reliable route into hiring pipelines (other than referrals and networking).

I assume online forms are spammed with thousands of AI generated resumes now. The only reason I apply is it seems to flag your account as active which triggers recruiters to contact me.

My experience recently was something like 2/3 from referrals (the third I think will eventually get back to me but way too slow), and something like 3/10 from cold applications. Obviously big differences depending on location and experience but I was pleasantly surprised that some of the cold applications went somewhere.

> Screen a lot of resumes and you'll get tired of seeing "Boosted revenue by 23% by decreasing deploy times by 64%." This communicates nothing useful and we all know that revenue going up 23% YoY was not attributable to this single programmer doing anything at all.

This is the "quantify everything" mantra career coaches have been repeating for decades. As the story goes, no company is going to care that you refactored the FooBar library in order to make bugs in the DingDang module easier to fix. You have to only write down things that moved some quantifiable business needle like revenue or signups, even if the link to that needle is tenuous. Obviously, this ends up penalizing hard working, talented devs who don't happen to be working in areas where wins are easily quantifiable.

Some quantification is very helpful. We're going to have a very different conversation if the architecture you built was serving 1 million users as opposed to 1000 customers.

It's the useless quantification that turns resumes into noise, combined with making claims that you changed revenue by yourself.

> You have to only write down things that moved some quantifiable business needle like revenue or signups, even if the link to that needle is tenuous. Obviously, this ends up penalizing hard working, talented devs who don't happen to be working in areas where wins are easily quantifiable.

Every hiring manager knows this game and sees right through it. You can't read 1000 resumes with claims of "Increased revenue by 13% by" followed by something that clearly was not the reason revenue increased 13% to become numb to it.

Nobody believes these.

The somewhat useful quantifications are things like "Reduced cloud spend by 50% by implementing caching". This can spark a conversation about how they diagnosed they issue, made a transition plan, ensured it was working, and all of the other things we want to hear about.

> Most resumes are not very good. Beyond the obvious problems like typos ...

This is a person who you're going to be reviewing their code or reading the documentation that they write.

If there are typos and poor formatting in the resume (that they've had the leisure of reviewing themselves and correcting), what does this say about the quality of the code the code or documentation that they're going to write when under a time constraint?

Are you going to be faced with the decision of having code with variables that have spelling errors and documentation that is grammatically or factually incorrect go through because of the time pressure?

The resume itself is a demonstration of the applicant's ability to pay attention to the details that matter in software development without showing a single line of NDAed code.

I don’t see this reality in the style of interview being performed at all.

Everyone has seemingly adopted the FAANG playbook for interviewing that doesn’t really select for people who like getting their hands dirty and building. These kinds of interviews are compliance interviews: they’re for people who will put in the work to just pass the test.

There are so many interviews I’ve been in where if I don’t write the perfect solution on the first try, I’ll get failed on the interview. More than ever, I’m seeing interviewers interrupt me during systems or coding interviews before I have a chance to dig in. I’ve always seen a little bit of this, but it seems like the bar is tightening, not on skill, but on your ability to regurgitate the exact solution the interviewer has in mind.

In the past I’ve always cold applied places and only occasionally leaned on relationships. Now I’m only doing the latter. Interviewees are asked to risk asymmetrically compared to employers.

Interviews are easy, offers are hard.

interviews aren't the problem, you know full well that "getting a call back" means nothing in this space, but the insane and unresolved technical round process

and sure, lots of people can't get a call back too, but starting the process means nothing

should say how many offers did you get, that's a better way to normalize it

>I generally tend to interview every year to see what's out there in the world (sometimes I find something worth switching for, other times not). I'm not even looking very hard but have had 4 interviews in the last month.

You've been interviewing forever. You're the well practiced pickup artist of job searching. Of course you'll be getting the call backs over the other 1000 applicants who don't have the same experience level applying. You "just know" how to read between the lines and tailor a resume, whip up a cover letter, etc whereas they're making mistakes.

And even then, getting interviews is one thing, but getting offers is something completely different.

And there's also the advantage of having a current job, instead of an increasingly larger jobless gap that not only decreases your chances over time, but also contributes to the cycle of "less chance -> wider gap -> increased anxiety -> less chance".

Fumble the first few months due to a combination of a lack of interviewing practice, and of job postings that never intended to hire anyway or that are looking for someone that checks literally all their shopping list of boxes, all while still dragging you for a 4-8 journey, and suddenly your position is not that good anymore.

Hopefully it’s not too much like 2008 and we end up with another huge surge in unpaid internships

[dead]