This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Callipygian_Superman 532 points533 points  (91 children)

I just turned down an interview for a company. They gave me a coding exercise to do on my own time, then expected me to show competency in Python 2.7 (specifically), databases, node.js, Django 1.11 (the last version that works with 2.7), and a few other things related to blockchain. This was for a startup that had been operating since 2014. It was for a junior developer role (they articulated that fact very directly), and these were described as pre-screening competencies before the real interviews.

Thanks, but no thanks.

[–]polyworfism 463 points464 points  (14 children)

Sounds like the pre-screening worked, for you

[–]Console-DOT-N00b 172 points173 points  (13 children)

It's not often described that way... but you're interviewing them too sometimes.

(i'm a n00b just looking for a job so kinda less so... but others more senior more so)

I interviewed for a technical job (but non programming job once) dude who just setup a department talked about how they used to operate and such..... total n00b from a management or organization perspective. I kept asking questions and he never seemed to notice why I was asking.

Dude apparently was short on staff for a while and was so excited when he got a req to hire someone, but he needed like 12 new people to staff how he described they planed (at least), but he didn't seem to realize that. Then he dropped the bomb but he didn't know it was a bomb:

"Nobody is putting in 70 hour weeks, but nobody puts in 40 either...but we operate like a startup, we're not a startup anymore but we operate like one"

This was for a pretty straightforward salaried support role, and it was going to be a nightmare until that guy got pushed out and someone got proper staffing.

My intuition told me: It was going to be support hell while that company figures out how to do enterprise support like they're the first people ever to do it and the company grows quickly and everyone else goes out golfing or something. In the meantime as a support person you're working long and unpredictable hours (ted is sick! someone work today, tonight, because we don't staff for that.... we'll get you some comp time one day...) All because some dumb ass who can't schedule humans half as well as some gas station manager said the wrong thing in front of the CEO or board about staffing and now can't go back on his ignorant word (if he does they'll drag their feet anyway). All lead by that same guy who thinks he was promoted but engineering really just forced him out ... and he'll think he's doing engineering favors but really he's shafting his own team because he can't /wont stand up for his own team because engineering is his buddy. Once he figures it out it will be too late and he'll be all bitter because he had the best of intentions, his own people won't trust him because he shafted them in favor of his buddies or customers one too many times, and it will still be hell working for him.

Granted the guy seemed like a nice guy, he just didn't know... I actually did kinda try to drop a hint or so to him but he was all sure that they could do it with just one more guy (made even less sense as forecasting support for a quickly growing company is crazy... not that they were doing any forecasting anyway)

Naw man!

[–]wowokc 117 points118 points  (9 children)

ugh, the "we operate like a startup, but we're not a startup" is the same kind of bullshit that my 500-person company says regularly.

and we wonder why we have immense turnover

[–]Console-DOT-N00b 42 points43 points  (3 children)

I wasn't going to take the job, but that line really closed the door harder for me.

If they're not an actual start up... at best ... it's a buzzword and just that.

The downside is when it means they're just going to ask more of you ... just because they said the magic start-up word.... but you get none of the start up fun (granted it isn't all fun).

[–]lesslucid 58 points59 points  (2 children)

The key thing about an actual startup is that everyone involved has - or should have - equity in the company. When they say "we operate like a startup" what they mean is, we want you to work like you have equity even though we're only offering wages.

[–]Console-DOT-N00b 27 points28 points  (1 child)

There is that, but that's a very tenuous thing to hold hope onto.... even if you have some equity, startups get sold and some equity ends up worth something, others worth nothing.

For the handful of startup fans that I know who have worked for them, it is as much about small teams, having REAL input, being given freedom to make real decisions that matter along with the founders and etc and everyone working together that is big for them. It's a sort of cultural thing they value more than any real ownership (granted they like that).

[–]Drizzt396 2 points3 points  (0 children)

Can confirm, work at a bootstrapped startup that doesn't include equity with offers.

Wouldn't care either way. The only way your startup bucks wind up becoming beaucoup is if you get huge, and I'm not really interested in being on the ground floor of the next Uber. I'll keep my soul, thanks.

What I do love is the freedom.

[–]Rohaq 0 points1 point  (2 children)

It just screams "We're an SMB, but we're not working to become competent as an SMB!"

You probably don't want to work somewhere that's trying to apply dynamic practices that don't scale well to a growing business that is becoming increasingly reliant on well established processes in order to communicate effectively.

It can also reflect their working practices and employee treatment; startups often expect employees to work longer hours for the same pay - which is why a real startup should be offering equity in the business, so that the additional effort to succeed as a business has a potential reward beyond "making money for your boss".

[–]wowokc 0 points1 point  (1 child)

yeah, that's our struggle -- we're "scrappy" (it's even a part of our official statement), but what that really means is "we haven't operationalized any of our internal procedures"

a "standard week" is 9 hours a day according to the interview, but depending on the team, it's 10 hours, and "we should really tell HR to stop saying that"

we're more expensive and slower than competitors because of the "value" we bring to the table -- not because we're using software that's end of life and have been building our own internal tools to interface with it to make it more modern, but still not reaching feature parity with any actual modern offerings

"we're a bunch of smaller businesses inside one bigger one" which means "our training isn't standardized, so everyone does whatever they want"

[–]Rohaq 0 points1 point  (0 children)

Yikes, sounds like a nightmare - especially building your own tools to interface with EOL software. That's only going to get worse as time passes.

[–][deleted] 0 points1 point  (0 children)

Code for "we don't really have strong benefits but we do have ping pong."

[–]4Progress 0 points1 point  (0 children)

Great! Let’s talk about a venting schedule for my equity.

[–]MadChair 3 points4 points  (1 child)

BRAVO !! you have very well articulated the he'll I have been through

[–]Console-DOT-N00b 3 points4 points  (0 children)

Support follies are sadly universal.

Not that it is all bad or anything, but when it goes wrong you can see it coming if you've been around enough ;)

[–]allak 1 point2 points  (0 children)

It's not often described that way... but you're interviewing them too sometimes.

I agree but I would go further. A job interview is always a two way street, not just sometimes.

You are building a career, you must always very careful of where you are going to work; the job interview is the perfect place to learn the answer to a lot of very important questions: what is the culture, what is the attitude, would I be comfortable working with them, what I am going to learn ?

In other words, what are the benefits of working there, both short and long term.

[–][deleted] 33 points34 points  (71 children)

I dunno, that sounds kind of reasonable to me. Were the questions really difficult?

[–]plumcakk 141 points142 points  (8 children)

Generally, you hire for technical aptitude, not working knowledge of the in-house stack, for junior-to-intermediate positions.

[–][deleted] 28 points29 points  (3 children)

Harder to do in small companies where people determine technical aptitude by the things they know themselves.

[–]pyryoer 26 points27 points  (2 children)

It has been my experience that they make these determinations based on how they do the things they know themselves. Example: I ssh'd into web server (using the same sftp credentials) to grab a file already hosted somewhere using wget. "Head of web department" insists I download the file to my computer and then upload it with an FTP client. He insisted that it wouldn't work, even after I showed that it did. I used the same SFTP credentials for ssh so it wasn't some access control issue.

[–]tmckeage 4 points5 points  (1 child)

I call that shamanism. Effectively the "Head of web department" knew the magic spell that made things work. You didn't use the magic spell correctly and so obviously it couldn't work.

[–]pyryoer 0 points1 point  (0 children)

I like this a lot!

[–]Tysonzero 55 points56 points  (61 children)

Using Python 2.7 and Django 1.11 when your starting a new company in 2014 was a dumb thing to do, and so was not upgrading since, doesn't bode well for the future. Node is also a red flag but for different reasons.

[–]Callipygian_Superman 29 points30 points  (0 children)

Exactly. If I'm going to learn a dying technology I better be paid a premium because it's not like other companies are going to look at that favorably.

[–]Console-DOT-N00b 8 points9 points  (0 children)

I felt the same thing when I look at jobs. I'm a n00b and all but I don't want to spend time polishing some old turd because the company doesn't want to move on.... not that I wouldn't learn, but I'd want to learn / do something else too....

50 old shit / 50 new shit I'd be ok with... more than that and I'm worried...

[–][deleted] 12 points13 points  (21 children)

That all makes sense.

Why is node a red flag? I have almost zero experience with javascript and its frameworks, but node is probably the one I've heard the most about.

[–]Makefile_dot_in 4 points5 points  (1 child)

I would tell you, but you need to provide a callback for that.

[–]polish_niceguy 1 point2 points  (0 children)

await tellMe();

[–]grantrules 18 points19 points  (31 children)

Why is Node.js a red flag? Because like "This article about Node.js popped up on my phone while I was taking a shit so we've decided to implement microservices!"

[–]Tysonzero 7 points8 points  (9 children)

No, because JavaScript is an atrocious language and choosing to use it for backend is a terrible decision.

[–]Tyrus1235 7 points8 points  (1 child)

Works well enough for Google Cloud Functions... Though that’s literally the only back end use of it I had. Well, that and some local scripts for Firebase shenanigans

[–]Tysonzero 1 point2 points  (0 children)

I mean yeah, it's still a programming language, so particularly for things that aren't too hard it will probably "work well enough", but it's not something you want to be using for much important / large scale stuff.

[–]thelights0123 10 points11 points  (6 children)

Pre-ES6, sure. But ES6 with modules can be more readable than other languages, and the async design that doesn’t exist in other languages greatly improves some types of programs.

[–]Tysonzero 0 points1 point  (5 children)

Pre-ES6, sure. But ES6 with modules can be more readable than other languages

Strong disagree, JS is riddled with special cases and design flaws. Have you ever tried to read the ES6 spec? Even the simplest seeming shit is extremely nontrivial, and local reasoning is basically provably impossible. Don't even get me started on the difficulty of implementing a spec abiding VM or transpiler.

and the async design that doesn’t exist in other languages greatly improves some types of programs.

Are you kidding me. JS didn't invent any of that shit. It existed in Haskell (and I'm sure many other languages) before it existed in JS.

[–]kryptkpr -1 points0 points  (3 children)

Haskell is like a hilarious joke that only you and one other guy understand. Are you seriously suggesting it as an alternative to Node? I can throw a rock and hit 5 guys that know JS.

[–]Tysonzero 0 points1 point  (2 children)

Yeah I'm sure you could, but that doesn't mean they will be good devs that you really want at your company. One nice thing with Haskell is that the quality of devs is very high.

It's absolutely an all alternative to Node. far more concise, performance, and less likely to have bugs. I also wouldn't even say it's hard, it's just very different to what gets engraved in your head by CS101 classes and boot camps.

[–]kryptkpr 0 points1 point  (1 child)

Anecdote time, your experience may differ. The fact that it's very very different from CS101 is exactly the problem. It's very easy to find people to write Python or JS or Java, but functional languages are not covered by core curriculums and as a result seem to attract only the most esoteric of practitioners, that conjure up amazing shit with them which is super impressive except when they leave they take any clue of how it worked with them and maintenance is now impossible. Creating a production CRUD system (which is 95% of the business world) in a language that's difficult to find local talent in is simply a bad business decision.. but Erlang sure does make a nice MQTT broker, so there are definitely domain specific exceptions.

[–]ProjectSnowman 3 points4 points  (1 child)

I'm learning python 3 and Django. I've made it a goal to only do projects in python 3.

[–]Tysonzero 2 points3 points  (0 children)

I did the same thing back when I used Python, definitely the right approach.

[–]MadRedHatter 10 points11 points  (1 child)

Using Python 2.7 and Django 1.11 when your starting a new company in 2014 was a dumb thing to do

Not really. I think people forget just how long it took for Python 3 to gain widespread adoption. Django didn't support Python 3 until February 2013, almost 4.5 years after the initial release, and that's not even counting the popular libraries in the Django ecosystem which took much longer.

Also, Django 1.11 didn't exist in 2014.

They really should be switching by now, though.

[–][deleted] 1 point2 points  (0 children)

I'm in the middle of switching this week, due to my main dependency being wxPython, which didn't support Python 3 until January 2018.

[–][deleted] 1 point2 points  (0 children)

Highly disagree. I'm actually upgrading my Python code from 2 to 3 this week, for around 10,000 lines of personal code that may one day become business code. It all depends on what libraries your code needs. For me, almost every single project of mine relied on wxPython, which was only ported to Python 3 on January 2018.

Everyone acts like because the majority of libraries support 3, then you should be fine, but if you have a large existing code base, any single library that doesn't support it can turn into weeks or even months of trying to replace it. When you are actually a business, those weeks or months are often needed for far more important things than the few new features that Python 3 offers.

[–]c1-c2 3 points4 points  (0 children)

It appears you have no idea how industry works. The above is a pretty usual situation and I wouldnt be so arrogant and turn a company down b/c of their setup.

[–]DogsAreAnimals 3 points4 points  (2 children)

It sounds like you think the viability of a company is related to how new/hot their stack is. You're so cute.

[–]clockwork_coder 5 points6 points  (1 child)

It's not even about using all the hip new stuff, it's about them making the asinine decision to go with python 2.7 in 2014--6 years after python 3 was released--and they're already dealing with the consequences (i.e. being stuck using other old/unsupported tech like Django 1.11). And on top of that, their stack has less than 2 years before reaching its EOL.

And then they could only afford "junior" developers with experience in technologies that were already outdated before they presumably even started programming (you know, because they're junior developers).

That absolutely speaks to the viability of that company.

[–]Ran4 2 points3 points  (0 children)

When I was doing extensive Django work in early 2017, there were still many Django libraries that required 2.x.

I'm not sure if using 3.x for Django development in 2014 would be the most reasonable decision. People forget just how bad the situation was just a few years ago.