Andrew here. Connor, thanks for releasing this on the orange site.
This story is also more fun from my position. I've been applying to internships and interviewing every week. They're mostly rejections. They're the same questions over and over with minor variation (sorry to top comment for "impersonating" your comment style). My days are deteriorating from a colorful sphere down to two points. In fact, down to two pointers, left and right, iterating over a list of heights to find how much rain water it can trap.
I'm about to repeat the experience for the 10th time and I'm 100% on autopilot. But suddenly, a man reaches out to me on email and offers me up to $80/hr to be his senior engineer. This feels sketchy, my girlfriend tells me, "you're good but let's be honest here...". Anyways, I proceed, it might just be the start of a beautiful thing. I'm asked to interview as one of our developers because English is not their best language. I'm a little bothered, but I was fine with it. But then I see the developer name: Connor Tumbleson. My laughter bursts and so does my suspicion: With a name like that, no way the guy doesn't speak good English. I look up Connor Tumbleson on linkedin, and my suspicions were proved correct. I detail everything to Connor, and now this is on the top of HN. I lost a opprotunity but gained a story of the lifetime.
Messages are only editable within 2 hrs so I write another message expressing my additional thoughts and thanks:
As important as having integrity is a community that prioritizes and fosters integrity. The HN community skipped the fostering part and went straight to giving me referrals and interviews. I'm grateful, and I'll carry on the spirit when I'm in the position to do so. The opportunities I've derived are nothing but amazing, but the most important thing I've learned is to internalize integrity as one of my greatest strengths: In the face of adversity and unfairness, I'll stand up for myself and others.
Also, thanks for those telling me internship finding is going to get better. I am not pessimistic about it at all, but I was trying to be funny by "impersonating" the previous top comment, it fits the theme. I find myself maniacally focused when practice algorithms, and I enjoy focusing.
This whole time of writing this I have that one scene from Scent of A Woman repeating in my head: "And I have seen boys like these, younger than these, their arms torn out, their legs ripped off. But there isn't nothin' like the sight of an amputated spirit; there is no prosthetic for that."
BTW, why are you applying just for internships? I checked out your (non-forked) github repos and you're definitely better than I was as an intern. It's not senior engineer level, but you could definitely go for at least a junior eng position for sure. God knows we hire much worse junior FE engineers than that. Or are you interviewing for FAANG(-like) positions only?
edit: small tip though, I would rename the App2.js etc. files to something else, having multiple files named the same but with a number difference says a lot about experience level.
That is truly a piece of modern techno art, appreciated by a choice few (that'd be us). Thanks for reminding me. Also, pro tip to people who haven't seen it: the "best" answer is not at the top, so remember to scroll down. :)
Ha! You're good. I'm still in uni, so I am interviewing for internships (mainly for big tech companies right now since I had a taste at a IoT startup last year). Perhaps I am underestimating myself, but I'm in no rush.
Thank you reminding me about that diagramming and xml-parsing repos. Regarding the diagramming repo, that was honestly some of worst code I've written (2000 lined React class with 15 states). It's so bad that I put a warning in the repo and haven't gone back to it since. And regarding the xml parsing repo, wow, you really looked carefully! I however added a funny warning regarding this in the readme (https://github.com/BlastWind/xml-leaf-highlighter#design-dec...). I wanted to use regex since it was just a school project. Going to add an additional warning, thanks.
All the luck to you! You seem to have all the qualities needed to succeed in our industry, and some on top: not many engineers are this good at speaking. If you can wrestle with the technical problems well enough you'll find soft skills to be such a force multiplier it's ridiculous.
My kid chose this approach. He had a mix of startup and bigger (not mega-) company experience and chose FAANG internship because they have the infrastructure to make an internship productive. This was from some advice he received.
By "infrastructure" it's not just code (CI, tools, etc) but personnel, how they come up with projects, etc. New grads or still-undergrads may have a lot of programming experience but none on working as part of a team.
I've supervised a ton of internships, and was an academic before that.
The success of internships is largely preordained by the quality of the mentor. Specifically: careful project selection, good advising particularly in the first few weeks, and political/social capital to translate internships into offers (both at the company and elsewhere). Interns can screw things up, and in rare cases heroically rescue an internship, but the liklihood of a good outcome for the average intern is often preordained.
So the real advice is to find an excellent mentor. But that's really hard because you rarely know who the mentor is when applying. In lieu of better information, FAANGs and Better-than-FAANG (eg Jane Street) are a good proxy because they disproportionately pull individual contributors with significant experience mentoring juniors: PhDs, people who TA'd during undergraduate, etc.
Out of curiosity, which companies other than Jane Street would you consider "Better-than-FAANG"? I am asking because I am interested in internships, too, as I am currently an undergrad (in math).
> By "infrastructure" it's not just code (CI, tools, etc) but personnel, how they come up with projects, etc. New grads or still-undergrads may have a lot of programming experience but none on working as part of a team.
Fully agreed, the code part of the job is really only 20%. The rest is learning to do so in a team and business environment, which is actually much harder than programming.
I learned this in a startup however and would definitely recommend it to others. You learn less "the correct approach", but more or less get shoved into doing bigger things earlier since all the big guns are focused on some ungodly hard problem. So all the medium-hard problems get shoved to the juniors and interns. It's not the healthiest environment sure (I was doing 40hr/wks as part-time frequently), but if you can survive in it for a while you gain tenacity and a lot of skills that are hard to normally deepen until later.
Shout out to you for wading through the literal torrent of bullshit without the foresight of a blog post to expose context and with little professional experience to help inform you. You'll be a great asset to the industry but it can take a minute to find your footing. Be persistent and definitely keep this story around for beer Friday.
I remember being asked this during my interview at Google. It was the first time I heard it and I gave an answer that iterated over the list twice. The interviewer said that it wasn't good enough and I am only allowed to iterate over it once. He didn't let me write my O(2n) solution down so he returned a strong no as feedback.
This type of interviewing style is bullshit. It means the interviewer knows a better solution that is "clever" and expects you to either have the same cleverness epiphany on the spot or to have studied this question. Neither is actually very useful as a hiring criterion.
Guy Steele gave an incredibly interesting guest talk[1] at google about four different ways to solve this exact problem, and the fact that it's an interesting enough topic for an hour long google talk should probably be a clue that you shouldn't be expected to invent the best solution on the whiteboard in 40 minutes.
with comment that it could "be fully parallelizable and run fast on the GPU, as it's based on a couple scan (generalized prefix sum) operations". Some explanation in my reply there.
I have interviewed hundreds of scientists-engineers-developers, and I never use esoteric quiz questions or logic riddles.
I want to screen people for the skills that they will really need in their daily lives, so that's where I draw my pool of questions from. For example, processing data in the most simple ways (sorting, searching, extracting) quickly reveals if the candidates have actually _done_ what they claim they did. You'd be surprised how many Oxford PhDs struggle to write done a pipeline for extracting a simple word frequency list.
Now you might say "Maybe they're Windows people, or prefer Python." and my response is "I don't mind what tools you use - but you need to demonstrate that you can solve easy/common tasks on the spot, without wasting have a calendar day to re-invent the wheel."
Thanks for the link, that made for entertaining watching!
Curious that he gave that talk about parallelism in the end of 2015, and talked about how we'll engineer more systems to enable parallelism.
First question at the end was actually whether we can get this into existing languages because new languages are "notoriously hard to get accepted."
I'm currently learning Rust and now I'm wondering how the iterator map() and other "accumulation style" functions are implemented and whether there's a way to make these parallel, since the map() call treats things independently and a sum() could be done in the proposed tree style way.
Guess I have a piece of code to look up in the standard library :)
Not sure if there's anything in the standard library, but I recall this as the definitive library for data parallelism in Rust: https://github.com/rayon-rs/rayon
this could be a good question. There’s nothing wrong with a candidate giving some less effluent answer and then progressing up to a better solution with some small hints or discussions
If I'm giving this sort of question, I expect you to solve it in an obvious way, write the code for it, then talk about potential improvements. Writing it twice while having an epiphany between the first and second is simply not reasonable. And selecting for candidates who have studied these problems well enough to already know the optimal solutions is not going to get you good developers, it's going to get you leetcode champs. If you're building a competitive leetcode team, then great. If not, you're just focusing on the wrong hiring bar.
It happens… I’ve chastised an interviewer before. Their job was to identify:
1) Can the candidate do the job?
2) Will the candidate do the job?
3) Will the candidate work well the team?
Their job was not to emulate FAANG, intimidate the candidate, or see if the candidate studied Leetcode.
I know it probably feels a bit hopeless now but trust me.
If you learn to build things, provide value, you will have 100s of recruiters reaching out to you and you will mostly be rejecting offers for a change :)
I have no doubt reading about you and seeing this comment in a few years you will be more than set!
Andrew - you the sort of person I would love to have on my team. Alas I more hardware engineering than software. I hope the community here can give you some good leads and tips.
Shoutout to you sir for being honest and reaching out your fellow peer!!! I am sure you will have a great career and now you have an epic story to tell over beers with friends!
Hey Andrew, I am sure your integrity in this situation will be rightfully rewarded. You come across as a great hire not just in the matter of integrity, but also in the humble/honest description of your skill level and experience. I can see you finding that internship entirely on your own, by simply walking into the next interview confident of how valuable someone like you would be to any organization.
<sarcasm> Plot twist. The same organization is pretending to be Andrew to get some work opportunities </sarcasm>. But seriously, its a breath of fresh air to see someone displaying strong ethics in the face of adversity (losing a job albeit a fake one pays real $$). Trending on HN first page will open a world of new opportunities. Good luck.
I wonder how many people in your position smell something rotten, but instead of trying to contact the "real Connor" just delete/ignore all the messages because they don't want to be part of even a bigger scam. (What if everyone is in on it, and they're trying to scam you somehow?).
drop me an email if you are still looking for an internship breck@pldb.com. we usually use the rainwater question for our interviews but will have to try something else since you already had it
Low. Much too low. Going rate starts in the low 100s and has no super hard cap.
80/hr overseas, or in less urban parts of the US is pretty standard. I’d question the reason for staying, though, since finding higher paying remote work is pretty easy these days…
Email me at my HN username at protonmail dot com for a referral to Dropbox's internship. Love the integrity and drive to get to the bottom of a strange situation.
This story is also more fun from my position. I've been applying to internships and interviewing every week. They're mostly rejections. They're the same questions over and over with minor variation (sorry to top comment for "impersonating" your comment style). My days are deteriorating from a colorful sphere down to two points. In fact, down to two pointers, left and right, iterating over a list of heights to find how much rain water it can trap.
I'm about to repeat the experience for the 10th time and I'm 100% on autopilot. But suddenly, a man reaches out to me on email and offers me up to $80/hr to be his senior engineer. This feels sketchy, my girlfriend tells me, "you're good but let's be honest here...". Anyways, I proceed, it might just be the start of a beautiful thing. I'm asked to interview as one of our developers because English is not their best language. I'm a little bothered, but I was fine with it. But then I see the developer name: Connor Tumbleson. My laughter bursts and so does my suspicion: With a name like that, no way the guy doesn't speak good English. I look up Connor Tumbleson on linkedin, and my suspicions were proved correct. I detail everything to Connor, and now this is on the top of HN. I lost a opprotunity but gained a story of the lifetime.