Readit News logoReadit News
Posted by u/alldaysintoone 2 years ago
Ask HN: Why do interviewers hate anti-TypeScript opinions?
Hello HN,

I'm an experienced web dev and I've recently been interviewing for new fullstack role.

# background

Previous role I used TS everyday for all types of developement: api development and frontend via React.

In my current role I inherited an non-typed codebase and I decided to use JSDocs vs Typescript.

I made that decision because I knew that our older monolith framework and setup would cause compilation issues with TS and I wanted my future self and new developers to focus their skills on other problems with higher ROI: building features, refactoring code.

JSDocs didn't mean we were cowboys: we implemented tests, we implemented JSDoc docs and type annotations, we implemented object schema validation.

We cared about the same things that TS cares about. We only said no to the compulation step and all the problems that may arrise from that sub-system.

# views

I don't believe that TS should be tech that is blindly implented for all types of apps.

I also can wager that most people don't need type safety enough to face some of the random issues caused by the compilation step of TS.

The reality is that TS adds type safety into a language ecosystem that is not built for it. We've made serious serious strides towards full support, but not enough to make it clean sailing.

Type-safety in Haskell or Rust is an entirely different story.

Weirdly I'm not alone in this view with big profile pundits like Rich Harris (SvelteJS) prefering JSDocs over TS because there's less friction when using a non-standard language.

For the tin hat owners out there there's also problem of TS being largely driven by a corporate sponsor, and like React, this setup produces a roadmap that can be at odds with the needs of smaller companies that use the project (breaking changes, fast major version api changes, deprecation of features, adding of new features that increase compilation, hurt performance etc)

# recent job hunting experience

Each time I've mentioned these views in recent interviews I've been labeled as not technical enough to work on TS projects.

It seems to me like there might be some dogmatic views at play here: - a) if you dont use/support TS you hate type safety - b) if you dont favour TS you dont understand TS enough to work with it

I'm very confused by how these events have played out and I wanted to share that with others.

I welcome any and all pro/cons comments on this.

As for me going forward? I'm going to keep my TS views to myself because I'd rather get a job than be right.

codegeek · 2 years ago
I believe in "Pay your dues". Firmly. In an interview, you shouldn't argue on JSDocs vs Typescript. Your job is to determine if this is a good team/company for you to work with and you are getting the money/benefits that you are ok with. That's it.

Get the job first if the basics check out. Then "pay your dues". Show that you are a good team member who is not just complaining but actually getting things done with the resources given. You may be right in your argument but make that point once you have the trust of the team. Not before that.

Also, there is a reason why things are done in a certain way at a certain company/team. It may not be perfect or ideal but you need to first understand the background/why. Then if you feel that you have a case to make, make it.

But first, Pay your dues.

al_borland · 2 years ago
There is a lot of value in being a team player.

A guy on my team is in love with FastAPI, yet a big project we need to integrate with uses Flask. Instead of just using Flask, he ranted on it until the lead architect on the project built a FastAPI implementation just for him... and then he never used it. This was probably for the best, as having random sections in FastAPI for no good reason would just make the code base harder to work with for every other dev who was familiar with Flask, but probably hadn't worked with FastAPI.

If a company is using TS, use TS. Being the lone hold out makes it harder on everyone. Consistency is more important than minor differences of opinion.

verdverm · 2 years ago
Don't speak ill-will of anything or anyone in an interview, it's not going to bode well for you. At a minimum, people don't want to work with people who focus on the negative
threecheese · 2 years ago
I have the same opinion. I don’t see the value in having this discussion in an interview - save it for your blog. That being said, there definitely is value in being capable of discussing type safety as a tradeoff when making architecture decisions, I don’t think anyone competent would argue that there are zero scenarios where type safety is part of constraints/worthy of discussion. And OP has some great opinions about this, given they have actual experience in a project where that had to be addressed, which gives them context about a problem their colleagues might not have (which is why we hire people).
Someone · 2 years ago
Depends on how hard you need the job and how you tell it.

If you see the interview as on equal footing (they want to learn whether you fit the job and company, you want to learn whether the company and job fit you), you can be a bit critical.

You can do that without being negative, though. Knowing of a rough corner in their startup, you can ask “How did you avoid running into Foo?” or “how did you find time to move to 100% TypeScript?”.

subsection1h · 2 years ago
> people don't want to work with people who focus on the negative

This is true. And yet, those who focus on the negative are the ones who are responsible for the most significant improvements because of their lack of complacency. But in the context of corporate software engineering, who cares about significant improvements? Not me!

verdverm · 2 years ago
I would counter that those that make the most significant improvements can see the gaps, but focus on, and communicate effectively, the opportunity rather than being complainer. I think we will all agree the workplace is as much politics as it is technical prowess
tanseydavid · 2 years ago
I tell every person that I interview both that I want to hear their true opinions on technologies and tools that have worked favorably for them as well as technologies and tools that they were disappointed by.

Anyone who has ONLY favorably opinions of the tools and technologies they have been exposed to probably has not been working in technology for very long at all -- or they are afraid the interviewer will think poorly of them, which is regrettable in my opinion).

roenxi · 2 years ago
People also ask "what is your greatest weakness?" - good luck to anyone thoughtful enough to know a real answer and thoughtless enough to tell it honestly. That interview question is fair but there is a decent chance here that it selects for people who are good at answering hard-to-answer questions more than anything else. It pushes for someone who can fabricate inoffensive but plausible answers.

Selecting people with high verbal and social intelligence isn't a bad interview strategy though.

wdb · 2 years ago
Personally, if I would be interviewing you for a job and you say the above then I get the feeling it might be struggle to work with you due to your strong views about the usefulness of TypeScript.

Especially, when there is a company wide agreement to use TypeScript. No one, wants to keep having discussions with a new colleague about why not to use jsdocs for type annotations. Time better spend on other things.

wilsonnb3 · 2 years ago
Obviously I am just guessing since I was not in any of these interviews but this sounds like a case of how you say something mattering more than what you say.

Maybe try to do some practice interviews with someone you know to see how it comes across from their perspective?

fy20 · 2 years ago
Right, I'd imagine this comes up when OP mention JSDoc and the interviewer asks "Why didn't you use TypeScript?".

Instead of going into an 10 minute rant about how you are holier-than-thou, just say "Oh the framework was a few years old and we had issues getting it to work with TypeScript, so we used JSDoc instead".

As others say, an interview is not the place to express your contrarian viewpoints. You will just come across as someone who is hard to work with.

ActorNightly · 2 years ago
The issue is this:

For all the developers out there, there are extremely few who understand CS concepts well enough to build things correctly.

For most of them, their knowledge is in a form of map, where they just remember how to do certain things and when they need to do that, they just follow the template that they remember.

As such, to make use of those developers, you basically need to provide handholding for them as much as possible. This is pretty much the reason for things like OOP, frameworks like React, Type safety, e.t.c. All of these basically restrict what the developer can write in order to match the defined "API" as provided by those language features.

And because things need to move forward, the optimal setup from a business perspective is to adopt a strict framework and make use of the developers, rather than focus on hiring the very few talented developers.

MeetingsBrowser · 2 years ago
> As such, to make use of those developers, you basically need to provide handholding for them as much as possible. This is pretty much the reason for things like OOP, frameworks like React, Type safety, e.t.c.

It’s rare to see the “C is great, it’s the developers who are the problem” opinion in 2024

danjl · 2 years ago
I cannot imagine every giving a thumbs-up to hire a programmer who "just follow[s] the template they remember" and doesn't understand CS.
AnimalMuppet · 2 years ago
Yes, but would you rather get a job at that kind of place? A place that thinks either a) or b) dogmatically enough that it won't hire people on that basis? It won't be just the hiring process - that kind of dogmatic mindset is going to affect working there too.
chatmasta · 2 years ago
If you’re basing your preference on hard earned experience, then it could be a valuable thing to talk about. There are plenty of valid and nuanced tradeoffs you can talk about, and even use as demonstrable evidence of your hard-earned experience.

But you’ve got to tread the line carefully, treating it more as an academic discussion than a sermon. If you can’t strike that balance, then don’t bring it up (and if you’re so dogmatic about it anyway, then don’t work there).

It’s perhaps revealing that you consider the interviewers to be dogmatic. Are you sure that you aren’t the one coming off as dogmatic?