23 ms·
Lessons from a Silicon Valley job search
- osipovas 13y agoI'm currently performing the same job search but as a future new graduate from a Computer Engineering program in Canada. So far the biggest parallel with your experience is gaining the confidence to even begin applying for jobs. I came to the conclusion that I have almost nothing to lose by applying for jobs and it's really difficult to burn bridges by just sending in a resume or a quick email saying I'm interested in your company. Some of the interviews so far have been excellent and left me really excited about following up with a take-home coding exercise. On the other hand some have left a really bad taste in my mouth. I found it surprising how much I can get a feel for the type of person a CEO/CTO is over the phone. One of my biggest complaints is when interviewers want me to do spec work[1] for their app. That's a big red flag for me. My biggest successes so far have come from downloading/signing up for the product or service and spending some time using it. So far interviewers have really enjoyed that and it has led into great discussions about the product and how I would improve it. Furthermore, in remote coding interviews, being honest and saying, "I don't know, could you please show me." is really appreciated and demonstrates character. [1] http://www.nospec.com/faq http://www.nospec.com/faq
- mathattack 13y agoI like the negotiation comments. It is always ok to say, "If you love me, and I love the firm, I'm sure we'll find a way to make a deal." The best way to have leverage to have another opportunity in hand. Then you can say, "I will be fully transparent, and won't play any games with you, but I do want you know I'm talking to someone else too." That lets them know that you are valued. You just have to be polite, and not turn it into a multi-stage bidding war. But it does give you the ability to say, "I love your firm. I don't want to start a 2 week cycle of bidding, but if you could at least close 2/3 of the gap in offers, I won't have to worry about paying rent."
- nappy-doo 13y agosigh Unless your nomenclature is all screwed up, and you're confusing arrays and lists, finding an element in a sorted list takes O(N) time -- binary search doesn't work on lists. I do a lot of interviewing (at my company). Here's other common misconceptions lots of candidates have: * Quicksort is O(N^2) -- don't make that mistake. * There are plenty of "faster than O(NlogN) sorting algorithms, but they're all special cases. (Radix, Merge on multiple processors, etc.) * Hashing is not a panacea. Collisions are always worth mentioning.
- cubancigar11 13y agoMerge is indeed faster on multiple processors than, say, heap sort. Though it will still be nlogn. Regarding hashes - it is not clear if you want the cadidate to mention collisions or not.
- davidddavidson 13y agoI think you are confusing your nomenclature. The term "list" does not necessarily imply that it is a linked list.
- tbrownaw 13y agoBinary search requires random access. Things that support random access can be used as lists, but not all lists support random access.
- auvrw 13y agofirst of all, it's all nomenclature, and i don't want to make a whole thing out of this, but binary search requires that you can randomly go left or right every time you subdivide the (linear) ordering, not that you can randomly index to any element. EDIT also, perhaps against better judgment, i'm going to throw a possibly inflammatory remark out there and say that the big-O thing is really not that difficult or important (although i suppose that it's important that it not be difficult). what i can see taking some skill/experience (which i totally don't have) is knowing a bunch of algorithms and being able to consider the time/space tradeoffs of the algorithms you already know quickly. being able to prove the time-complexity of some new algorithm is good, but, sadly, perhaps, i don't think most companies hire people to do that.
- auvrw 13y agoi wish people would comment when they downvote. i made the final comment already knowing (and stating!) that it might rub someone the wrong way but hoping that it might provoke discussion. it's a reasoned and reasonably-informed comment, not just noise-making or an attempt to troll. downvoting without comment in that situation doesn't really further the discussion.
- petenixey 13y ago(sorry for sidetracking the excellent piece but...) When I examine the ~13,000 hours I've spent programming I find it hilarious that interviews should centre around algorithmic problems. I've been guilty of it myself and failing FizzBuzz is definitely a true negative but it's so little of a true positive it's not even funny. What I would really love to know about you as a candidate is: - do you know how to actually name functions and variables well (unbelievably important) - do you know your chosen languages and frameworks well enough to avoid cack-handedly reinventing them on paid time - do you understand how to code an application that someone else (possibly just you) will quickly understand on coming to it cold in 18 months time - do you understand the trade-offs between features and maintenance, the technical debt that features, designs and toys incur and when to invest in them and when to avoid them - are you diligent and careful and do you check and re-check your code or just chuck it in the mix for other people to fix - do you actually do real work for at least four hours each day - do you take the time to write up the things you've done and share decisions and architecture with the rest of the team - does your addition to the team on average make your team mates become better or worse coders - do you understand the exquisite balance between too much testing and too little In 13,000 hours I have had to wrestle with the consequences of O(n) complexity or binary tree search algorithms approximately NO TIMES. I did not mean to sidetrack Rob's excellent, excellent piece on finding a job in Silicon Valley however I did want to take the opportunity to state the things that I have empirically found as a professional developer to actually matter.
- sergiotapia 13y agoIf you work at Google or Facebook or any other of the tech giants, you need to know your algorithm-type questions. For the other 98% of companies, there's just no need. I've also never ever had to do strange things with binary trees.
- mpeg 13y agoWhy? Do Google or Facebook engineers live in a magical world in which they need to know off the top of their heads the big-O complexity of every possible sort function ever mentioned in an academic paper? I see this argument used time and time again, but it makes no sense to me. Surely they can just search for it when they need it too :)
- deleted 13y ago[deleted]
- michaelochurch 13y agoGetting a job in Silicon Valley, as an outsider, isn't hard. Getting a good job is hard. Many offers will come through at a lower level just because, whatever you did, you didn't do it in the Valley. That's Cali arrogance for ya. Hedge fund interviews are a lot more intense and technically difficult (and you feel good when you pass) but don't come with the VC-fueled, youthful arrogance of a proper Valley company. Hedge funds also don't try to lowball you with insulting junior positions because you're not from California or you don't know the five 3-year-old technologies in their stack in detail. If you pass their interviews, the hedgies take you seriously. Most of these VC-funded companies, on the other hand, don't really respect most of the people they hire. They sell aggressively, but the options offers turn out to be ridiculous (sub 0.1%), relocation pay is nonexistent, and, if you're not a Valley insider, the positions are often pretty terrible, as you discover if you ask the right questions. If you can deal with arrogance, you can probably get a good job in the Valley after enough time. But you'll have plenty of experiences that leave you thinking, "How is this company alive?"
- Patient0 13y agoYou sound like you just got a job offer from a hedge fund...
- steven2012 13y agoEvery time startups are mentioned, you have a lengthy diatribe over how Silicon Valley sucks. Yet, you've admitted that you've never worked in Silicon Valley. I'm sorry you are so butthurt over being screwed over by a NYC startup, but it's not that bad out here. Every place has assholes and arrogant pricks, but some of the best team members I've worked with are out here as well.
- michaelochurch 13y agoI've interviewed with plenty of SV startups and know what I'm talking about.
- deleted 13y ago[deleted]
- bluejet 13y agoI recently went through the same process and didn't have quite the same luck. Background: London. Comp Sci. from top 10 worldwide college. 2 years C++, Python, iOS experience in well known company on high profile project. Internship at start up with VC funding before that. Github profile with open-source projects, own projects etc. Started blog etc...basically everything that is recommended. Studied for 5 months (up to and including interview time) and did projects whenever I could. Applied to 40 companies in San Francisco. Got 12 straight no thank you, 2 interviews and the rest ignored. Started process on Jan 1st 2014. Had interviews at Yahoo! and Palantir. Former, pulled the plug when the H1-B deadline was looming and they felt it wouldn't be done in time. They suggested a workaround to work out of London and try next year and then they pulled that idea a few days later when they didn't have the team in place to support it. The latter, I did 1 telephone interview which went fine, then on-site where I was quizzed for 1 hour in functional programming (never done any before and job is in Java) and had to code not on paper, or a whiteboard, but the glass conference wall... Will have to wait another year.
- boothead 13y agoWhy SF? From what I've seen the London tech scene is really kicking off now. Some of the better funded start ups here are even starting to compete with finance jobs salary wise. And on finance: There are loads of jobs that industry in London, C++ and python make the world go round in hedge funds and investment banks!
- tharshan09 13y agoCould you share what companies you are referring to? Which finance companies use Python? I am soon to graduate and I would like to find something in London that is using Python or C/C++.
- Fenicio 13y ago> Comp Sci. from top 10 worldwide college Hogwarts?
- jaredsohn 13y ago
- baby 13y ago> “Design the infrastructure for a link-shortener.” I'm wondering how to answer that? * Get a short and memorizable url. * When you enter an URL hash it, put it in a hash table and use the hash for the link. > “If I type https://google.com https://google.com into my browser and press enter, what happens?” How would you guys answer this one? I'm not sure I've enough knowledge to do that. I'd say: * first TLS handshake thanks to RSA to share a key * then a GET * then the server sends a cache version of Google according to location/cookies/etc... * then the html gets displayed in the client's browser
- tbrownaw 13y agoThere's also the DNS lookup and the CRL lookup (or is there a newer replacement to CRLs?).
- mercurial 13y agoNo DNS resolution? As for the link shortener infrastructure, I'd ask for more context to get a better idea of the scope. If there is not more context than that, define the scope at which you're operating (eg, "I understand 'infrastructure' as 'the structure of the service' and not as 'the physical infrastructure'" and define yourself what the URL shortener does (going with "a web service with a single endpoint" sounds reasonable to me). It's really important to understand what you're trying to achieve first, especially when faced with a real problem.
- deleted 13y ago[deleted]
- deleted 13y ago[deleted]
- patio11 13y agoI'm wondering how to answer that? If you gave that response at an interview, you'd be praised for knowing what a URL shortener is, then asked to drill into more detail. For example, what data store would you use for your hash table? What technology do you use for your web tier? Are those physically on the same box? OK, that's fine. Twitter just bought you and you have 48 hours until you're receiving 100,000 requests per second. What needs to change about your architecture? OK, good answer, good answer. We recently discovered that people are abusing our infrastructure to cloak links to pages delivering malware. We need to be able to ban a domain and yank all their links retroactively. How can you accommodate that? etc, etc How would you guys answer this one? Start by saying that you're capable of approaching that problem at multiple different levels of the stack, from the browser chrome to the networking layer to HTTPS to HTTP to Google's (presumed) infrastructure to the browser again. Ask where they want you to drill down. Networking? OK. Evince some knowledge of what DNS is. Mention that Google controls the records for google.com on a nameserver somewhere. Maybe talk about bind a little bit. Mention in a wee bit of detail how the A record propagates out to the rest of the network, including to the user's DNS server. Observe that since it is google.com it is certainly cached there (and is probably already in the OS's DNS cache to boot, you might add). Ask if the interviewer would like to hear about TCP/IP or SSL handshakes or what have you next.
- donretag 13y ago"Flying out to interview with a single company is easy - they pay for the flights and hotel and you use them. Interviewing with 7 companies made for a surprisingly stressful round of negotiation before I’d even arrived, as I tried to spread the cost according to who could most afford it and who was getting the most time with me." When I last was searching for an out-of-state (albeit not California) job, every company was adamant about arranging all the flight arrangements. It was very clear they did not want me to interview at other companies during the time. Even after I agreed to pay my own way, they still insisted on paying and have me fly out immediately after the interview. The stress of multiple flights during my short interview period definitely affected my performance.
- kevincrane 13y agoI had the opposite impression. I tried to cram 4 interviews into a week so I wasn't constantly flying away from school and every company was more than happy to pay less to fly me out. One company paid for my flight there, one for the return trip, and two lucky places got off paying nothing at all (I had places already lined up with friends nearby to crash at so no one insisted on buying hotel rooms).
- beachstartup 13y agowhy didn't you just skip the flight out they paid for, and go on a flight you paid for? you don't have to use a ticket that someone else paid for. why deny yourself agency in this situation? i guess i'm missing something here. and if you're concerned they follow up and spied on you afterward, then you dodged a bullet.
- scottm01 13y agoWhen relocating from NYC to San Francisco a couple years ago I similarly tried to minimize the number of trips. I tried to be very thorough in phone screens to make sure that they were intersted in me and I was interested in them. After the first 24 hour trip (leave at night east coast time, fly to SFO, drive south, interview all day, drive back to SFO and fly home) I knew that wasn't going to work (I certainly didn't perform as well on that interview as others). My next trip was arranged by me with costs split as fairly as I could. I found companies were happy to be flexible and reimbursed me very promptly for their share, but as the article suggests it was a little out of the norms for them and probably harder to arrange then HR or their travel agent doing the "standard package". I had two companies split the airfare, and others pay for a night hotel each. I didn't chase meal or transportation expenses, though nearly all of them offered to cover them (and generally lunch was part of an interview each day anyways).
- yukichan 13y ago> the fact that Hashes have O(1) lookup time is often a great way to speed up an algorithm. In practice I have learned that being CPU bound will turn things around faster than paging and thus for things that involve a sufficiently high number for n I prefer to avoid hashes and O(1) "speed ups." The less I store in memory the better, especially on servers that handle lots of requests simultaneously, at least for servers that aren't meant to be a memory store like memcache or redis.
- spenuke 13y agoCan you explain more what you mean? I'd say hashes aren't going to make everything faster, but they will always be faster than disk lookup. But more to the point that I understand you to be making - hashes are excellent when you have large amounts of _repeated_ calculations. For instance, counting word occurrences in a large body of text. Rather than run through the body N times for N words, you run through it only once and increment a word's tally every time you come across an occurrence. Do you mean that a cpu-bound process could improve on this? To be fair, he refers to the strength of lookup time in the quote you cite, which is not exactly the property that improves the algorithm I just mentioned (which is that the use of a hash completely restructures the algorithm). I'm curious to know more about situations in which you find writing cpu bound code to work better. Including - what sort of N are you dealing with when you make this choice? I can imagine that generating HTML on the fly is a simple enough computation to outweigh the benefits of caching every possible view - which is to say, the N of each rendering is small enough not to be truly cpu bound. But even then, that ignores the fact that we'd be reading from disk anyway, and so I don't see how that's worse than paging. These are my thoughts. Not gotchas. I just want to know what I'm missing.
- stephencanon 13y agoO(N) brute force algorithms (almost) never beat hashing. O(log(N)) tree-based algorithms sometimes do, because it’s easier to get good data locality out of them when the queries have some temporal relation.
- MichaelTieso 13y agoI never really know what to do during negotiation time. During the first interview, I'm usually asked how much. I'm told that I should always try to push it back for the other person to make the first offer. However in matter how hard I try, they demand that I make the first offer. I don't want to aim too high or too low in fear that I'd lose out on the opportunity.
- beagle90 13y agoAlways go for the highest they offer. E.g. If you apply for a job 25,000 - 35,000 go for 35k. My thinking behind this is that it shows you're confident in your ability. Remember a lot of companies are big enough to incur an extra 5k of salary in order to get the very best candidate. I'd say the above becomes more true the bigger the company gets... Small companies <10 employees this theory could well breakdown.
- JabavuAdams 13y agoNot good advice. This is a noob mistake. Where did that 25-35k range come from? From the other side of the negotiation. So, they've just anchored you to think that 35k is high. What if they would go up to 50? You'd never discover this unless you start outside their starting range.
- steven2012 13y agoAs I said above, I've been in Silicon Valley for almost 20 years, I've never been "forced" to make the first offer. Maybe it's different here, but I find that unusual. The most I get from the recruiter is "How much do you currently make", and "What are your salary expectations." As I said above, when asked about salary expectations, I always say "market rate", and have never been asked for something more specific than that.
- rwallace 13y agoYou have the first part right. You try to get them to be the first to name a number, but obviously if both sides are following that advice, something is going to have to give; sometimes you have to name a number. The key is, you should want to aim too high! They're not going to say 'no, and never darken our door again' (or if they do, then you had a lucky escape - if they're that nasty and irrational at negotiation time, what would they be like to work for after they had you in the door??) They'll say some variant of no - 'that's a little higher than we were thinking of' or 'ha ha, very funny' or 'well we were looking at something closer to typical market salary' or 'I'm afraid there's no way our budget would cover that' or however they want to put it, the point is, they're not willing to go as high as the number you named, which is good - if they were, that would probably have meant you were leaving money on the table. Then you say 'okay, what sort of figure were you thinking of?' Now you're negotiating.
- steven2012 13y agoHow is your H1B still valid after you lost(?) your job and left the country? H1B is tied to an employer and a specific job, so I don't know how it's still active. Are you sure that your H1B hasn't expired yet? If you try to enter on an expired H1B, you might get banned from entering for 10 years (this happened to my friend 6 months ago) so make sure your immigration status is rock solid.
- ark15 13y agoH1B Transfers don't count against the H1B quota. If you still have time left on your H1B (i.e. approved I797 petiton) and have not violated the 'leave immediately if out of job' rule, it is possible to have a new employer file a petition for transfer of the I797 (H1B) In fact, in such cases, you don't even need a new visa stamp for the transferred H1B. As long old H1B stamp has not expired, you can present this H1B along with the approved transfer petition and they will let you in. This is just my understanding of the process and does not constitute legal advice. I am not an immigration attorney or any such. Just a technology guy -:)
- steven2012 13y agoThis doesn't appear to be an H1B transfer. Even if it were some sort of H1B transfer, I believe by leaving the US he might have abandoned his H1B. So I think the OP better get his immigration status verified by his new employer, because the last thing he wants to do is get a 10 year ban at the border.
- pbiggar 13y agoThere isn't a H1B transfer, but people often refer to it as a transfer, including immigration lawyers. Basically, you must get a brand spanking new H1B to start a new job. However, if you have already recently gotten a H1B, then you can skip the quota, and get it approved pretty much immediately. This is commonly referred to as a "transfer" even though it is not technically a transfer.
- 13y ago
- void-star 13y agoThis may very well have been an excellent piece. But, the author lost me no later than 2 sentences in with his immature and sexist "nerdy girl" analogy. I just didn't even bother to read the rest. Working in silicon valley myself, I already waste enough time on people who think this kind of immature male mindset is okay.
- joshbert 13y agoThat is a shallow and inaccurate assessment of what's one the best articles that's been posted in the past month.
- philangist 13y agoSexism is a problem in the tech world, but I think some people also just love to be offended. Bill Burr calls it being 'professionally outraged'.
- crassus 13y agoHow do you know sexism is a particular problem in the tech world? Unequal representation of some particular demographic group is not sufficient evidence for discrimination.
- GFK_of_xmaspast 13y agoHow about "by paying attention."
- void-star 13y agoActually, like I said, I didn't even read the rest... so it wasn't an assessment on the article at all. It was an assessment of the author. But here's a job tip: Don't talk about women like this. If you get a job, you will actually have to work with some. Also this level of immaturity will make your job search that much harder.
- 100k 13y ago
- at-fates-hands 13y ago>> You want to start negotiating at your strongest point - when they have said “we love you, let’s make a deal.” One simple practice is at the end of the interview when you get the, "So what's the salary range you're looking at?" question, I always give them about 5-10K higher than what I'm currently making with the caveat, "But I'm always open to negotiating." which keeps the door open for the company/agency to get creative with incentives or other valuable options to bring you on. You shouldn't feel bad about asking for extra stuff. 95% of the developers companies are hiring are just taking what they offer them. If you negotiate, companies are more likely to give you some additional extras. You just have to ask for them.
- steven2012 13y agoNever, ever, ever pin yourself down with a number. This weakens your ability to negotiate tremendously. Not giving a number forces the other side to present what they believe to be a good offer, as opposed to what you already mentioned as a desired number, which might be a lot lower than what they were thinking of. I always say "I'm fine with a market-rate salary. I'm open to a salary cut from my current salary if the position has a great opportunity."
- kevinastone 13y agoThis routinely great advise (never make the first move!) just doesn't work in practice. Those making the hiring decisions are going to want to identify a range of possible salaries before continuing the recruiting process. Otherwise, if the candidate later demands an extremely high price, we both wasted a lot of time and resources. Here's what I recommend and have used successfully: A) Offer a range B) Offer your last salary (with some expectation of a bump) The key is that this gets you in the door for consideration without being committal. Once the employer begins to really sell themselves on you, then you have the leverage. Other offers can justify increasing your ask and now they're more hooked on you as the right candidate.
- steven2012 13y agoI've always used this very common tactic successfully in my almost 20 years living in Silicon Valley. If they take offense to this, then they're probably not a good employer. The thing is, what you believe is a fair rate could be vastly below market rate. As a salaried employee, you don't have any real insight into what they are paying people. For example, I've heard from a friend at Apple $170,000/yr + 250k in RSUs over 4 years. He said a co-worker accepted a job at Google for 180k + 400k in RSUs over 4 years. I would never have known these, and if I gave what I believed to be a fair rate, I might have underbid myself.
- mac1175 13y ago"Some places like Matasano, Stripe, Github and I’m sure many others are aware of this and are equally aware that it has the potential to harm their company a great deal." I actually had the pleasure interviewing with Matasano. I thought their process was fun and really enlightening in regards to what they do. Everyone I met during the process were really cool (and extremely smart).
- tptacek 13y agoThank you! But: I'm sure we did some things wrong or sucky. If you can think of any, I'd love to hear them; you can reply here if you like. :)
- rpicard 13y agoHeading out to Mountain View for an on-site interview with Matasano next week. So far the process has been great for me too. It has been challenging but they (tptacek and co.) still manage to do a great job of moving things along quickly. Hopefully I don't scare them off after they've flown me out (and I've spent 16 hours on planes and in airports).
- mac1175 13y agoHonestly, there were none. I think giving someone a challenge to do a their own pace was a perfect idea. I interview candidates in a discussion format so I can attempt to gauge passion, competency, and potential. I have been interviewed by startups where the guy on the other end of the phone seems annoyed to even have the call. The fact someone in your position in the company does direct phone calls to engage your candidates is EXTREMELY positive because you are showing care for your company by being that involved to know your candidate.
- alandarev 13y agoI haven't noticed anyone expressing their thanks for sharing helpful information on getting a job in SF. Your post is directly applicable to my current situation, and has reassured that I am not "average outsider" and should continue pushing my dreams, despite of being recent graduate in UK. Huge thanks for sharing your experience and giving advices to obstacles :)
- utnick 13y agoWhy is summing a list of numbers 1 to N O(N^2) instead of O(N), don't you just iterate through the set of numbers once? EDIT: Nevermind, I think it means the value of the sum is on the order of n^2
- gregors 13y agoThe size of the number (result) is (N(N + 1))/2, the computation of the algorithm is constant. I've never heard anyone discuss the result of the algorithm using Big O.
- gvb 13y agoI think he meant factorial rather than sum. The sum of the numbers is O(1) - you can calculate it algorithmically. N*(N+1)/2 Ref: http://www.wikihow.com/Sum-the-Integers-from-1-to-N http://www.wikihow.com/Sum-the-Integers-from-1-to-N
- gregors 13y agohttps://math.stackexchange.com/questions/195924/proving-a-factorial-is-not-a-certain-complexity https://math.stackexchange.com/questions/195924/proving-a-fa...
- peter303 13y agoStarry eye programmers from outside the Bay Area should be forced to watch the Office Space movie for an idea of what Silicon Valley is really like: a gindingly dull suburb.
- trustfundbaby 13y ago... ironic since most of that movie was shot in Austin :)
- gregors 13y ago"sum of the numbers from 1 to N is O(N^2)" Maybe I'm misunderstanding you, but no it isn't. it's O(N) if you have to traverse a list of numbers it's actually constant time if the numbers are sequential.
- aboveandbeyond 13y agoIt's actually O(1). It's (N * (N+1))/2
- gregors 13y agothat's what I said "constant time"
- Terr_ 13y agoYour post is missing some required punctuation which would've made that easier to see.
- randomthought 13y agowhat about (n(n+1)/2)< 1000 n^2 ? .
- thedufer 13y agoHe interpreted it as "the time complexity of computing the sum of the numbers from 1 to n", which using the formula you just gave takes O(1) time.
- ipince 13y agoNote that "sum of the numbers from 1 to N" is not the same as "summing the numbers from 1 to N".
- Dewie 13y agoThe fastest algorithm for computing the sum 1 + 2 + 3 + .. + n is constant. But the result of the sum is O(n^2). You can use that result to conclude that algorithms like for example bubble sort has a worst case running time of O(n^2), since it does (n-1) + (n-2) + ... + 1 swaps in the worst case during the whole sorting.
- jpsim 13y agoIf you're Mexican/Canadian, a TN Visa might be a better option than H1B since there's no annual limit. I'm currently in Silicon Valley from Canada on a 2.5 day trip, with 4 interviews in that timeframe, and it's quite fun yet intense. I'd also say that if you're a self-taught programmer (I'm an EE), it's worthwhile to read a book like Intro to Algorithms[1] cover to cover before you start doing technical interviews. There are just too many CS101 concepts that you'll never run into even after years of programming. [1]: http://www.amazon.com/Introduction-Algorithms-Thomas-H-Cormen/dp/0262033844 http://www.amazon.com/Introduction-Algorithms-Thomas-H-Corme...
- GuiA 13y agoI may be wrong, but I believe that interviewing in the US while you're on a tourist visa/ESTA (presumably your case?) constitutes "seeking immigrant status" and is unlawful. You may want to avoid posting about it in public forums where your identity can be easily traced.
- gatehouse 13y agoI am really, really not a lawyer, but he says he is seeking a job offer for a TN visa, which is non-immigrant status, so I don't think this is a case of seeking immigrant status.
- m11324996 13y agoI was thinking the same thing !
- goodcanadian 13y agoYou are (mostly) wrong. A job interview is a perfectly legitimate activity to undertake on a B-1 (business) status. I have done it more than once. At immigration, they ask the purpose of your trip; you say, "job interview;" and they stamp your passport with B-1 (business) rather than B-2 (tourist). It really is as simple as that.
- vladgur 13y agoWhat this doesnt say is whether the salary was on par with BayArea market or London Market. He did go through the Developer Auction/Hired so that gave him some idea of what companies offer. I remember when Buffer "open sourced" their salaries and revealed that they were below the market rates in the Bay area(for Buffer's bay area employees).
- hostess 13y agoI tried Hired and got quite a few offers in this range: 120k-140k 0.10% to .20% Not really competitive with Google/Apple/FB/Amzn or even a mid-size tech firm.
- hzay 13y agoMy age, work experience and expertise are similar to the OP's. I just interviewed with Google, FB and Amazon, and found myself nodding my head at several points in the article. Something I learned after the whole process was that people apparently take a month or two to prepare intensively and specifically for interviews with these 3 companies. Luckily I came out of the ordeal with an offer, but I wish I had known that tidbit before.
- crassus 13y ago"""Far too many offers come through as: $Xk/year 10,000 options This is literally equivalent to: $Xk/year $100bn in monopoly money and bingly bongly bangly boo""" It is incredibly dishonest and disrespectful when startups job offers hide information about the value of their equity. I know some investors are encouraging this behavior, but please have the courage to stand up to them. Employees have a right to know the fair market value of the compensation they will receive for trading away their time and labor.
- medell 13y ago"Funemployment". Love it.
- moapi 13y agoOne thing that I always see in these threads is how these interviews are not really a good indicator. I work for a company that does these interviews, and most of us acknowledge that the interviews result in sizable false negatives, but the ones that do come through the process are usually very competent ones. Also, complexity analysis/algorithm questions that are asked in the interview setting is not rocket science...
- sturadnidge 13y agoI built an app for tracking job applications... amazing how many people just do this on a spreadsheet (as per point 2.3 of the post), which is fine, but I needed an excuse to build something, so http://applyee.com http://applyee.com
- auvrw 13y agonice... i recoil at spreadsheets for similar tasks too but must confess that i usually find a text file with a couple special delimiters sufficient / am lazy enough to convince myself that such a text file is sufficient. both could just as well be imported into a database/app later, but i find that text is more free-form and easier to work with than spreadsheets. decided not to open source it?
- jarek 13y agoCurious what you find wrong about using a spreadsheet for this? I've used it a couple of times in the past when I had lots of applications and interviews going and found it worked rather well. It doesn't really use spreadsheet capabilities (except for adding up number of interviews or success rate maybe) but I didn't find anything wrong with it.
- auvrw 13y agoi don't find it "wrong." i just find it "wrong for me." the real (and very subjective) answer is that all the spreadsheet uis i'm familiar with are very clicky (as in you wind up using the mouse a lot). when i'm at a computer rather than a touchscreen, i prefer to use a tiling wm and programs with keybindings. perhaps i just haven't taken as much time getting proficient with spreadsheets as i have with text editors. also, some people prefer using a mouse, and there's certainly nothing objectively wrong about that. also, as i said in the previous comment -- and this is more objective, i think -- text files are more flexible than spreadsheets in that they don't impose any particular structure on the data you're entering. if you're populating a relational database, you're going to wind up having to put things in table format eventually, but perhaps you don't want to have to decide exactly what data you'll be entering from the moment you start entering it. in that case -- and perhaps this is going back to personal preference again -- i find it easier to rearrange a text file than a spreadsheet.
- capkutay 13y agoAs someone who has both looked for engineering jobs and also staffed engineers on my team in silicon valley, I'd suggest people to be a little less shallow about their employers. Yes, you can work somewhere with free lunches/perks/nerf gun wars. However, you should always ask yourself 'Will working here make me a better person?'. This could mean providing more financial stability or a huge boost to your resume via gaining expertise in a sought-after area. I hate the argument that 'If I work at Google, I'll be more marketable to future employers'. No...as someone who's hiring, I don't care if you were some guy/girl at google. If you worked on BigTable, awesome you're probably well-qualified for any job in that area and will be paid as much as you want. If you're employee number 70,001 and worked on designing icons for 'Google Trends', you shouldn't expect a huge payout at your next job for being 'Ex-Googler'
- jarjoura 13y agoI call bullshit on this one. Having a big-tech company on my resume has done nothing but send an endless stream of recruiters knocking on my door. Doesn't make getting a final offer any easier, but it has definitely improved my chances of getting the interview I want vs. just any old interview. I always hear "Well if Google/Apple/FB are willing to hire you..."
- capkutay 13y ago"Having a big-tech company on my resume has done nothing but send an endless stream of recruiters knocking on my door" I know plenty of people who didn't work at a Google/Apple/Facebook with an endless stream of recruiters chasing them. Maybe you have the type of background they're being paid to chase after. "I always hear 'Well if Google/Apple/FB are willing to hire you...'" If I hired the wrong person, 'well they worked at google' is a poor explanation for the hiring mistake. I'm sure working at Google can play to your advantage for higher level career goals and some people have done amazing things at Google. I just think people are over-estimating it.
- thedufer 13y agoWorking at a big-name tech company definitely makes you more marketable. It won't help you much, if at all, in the interview, but it will absolutely help you get your foot in the door. "If Google hired him, he's worth an interview" is a fairly rational thing to say, and a lot of employers say it. So if your resume is lacking, that's not a bad reason to take a job. If your resume is already getting you interviews regularly, a job at Google might not help you much in your next job search.
- VLTyree 13y ago3 19 2014 Dear Mr. Heaton, In my humble opinion,a thoughtful post, and funny too! All the best, safe journey to the Valley. Be well and happy. Cordially, Virginia
- hughdbrown 13y ago> If a company is currently worth $10m, options for 0.1% are worth $10k. This isn't really accurate. The company is not giving you 0.1% of the company. It is giving you the option to buy the gain on 0.1% of the company above that value at the time you start. If the company never gains in value, your options are not worth anything.
- gatehouse 13y agoI also think that an individual employee needs to put a discount on options because you don't have the ability to diversify, your risk profile is vastly different than the investors, and the founders presumably have effective veto over exits which allows them to capture more of the value in a middle of the road outcome like a acquihire. I personally think that options should just be used to mitigate the career "risk" of the instability of the company and maybe having to move down-market into some less valuable skills if that's what the company needs.
- jarjoura 13y agoNot to take away from this post but I wanted to share a little bit about my own job search. Hopefully engineers who regularly interview candidates have some interesting feedback to share. There was a post I actually just hearted on Secret this morning where someone equated "hard algorithm" questions to "hazing." That may be a little dramatic sounding, but I do think there is some truth to that. So much of the early 2000s tech interviews were full of brain teasers that either through sheer luck of the candidate or someone who read the popular book "How would you move Mt. Fuji?" would ever have a shot at solving them. Microsoft pioneered it apparently and Google took it to the next level. They even went so far as to post them on billboards for anyone "clever" enough to figure them out. At some point they went out of favor and the new favorites became these multi-step dynamic programming questions, or quad-trie/kd-tree disguised problems. The unfortunate truth is, if you want to get a job in the valley beyond your first out of school job, you're going to need to study and refresh your brain on those last chapter algorithms. Make sure to practice doing them recursively as well because with 45-60 min interviews you won't have time to do it iteratively. Just like the OP mentioned too, it also couldn't hurt to practice writing code on paper in front of a friend. The biggest thing I found writing code on a white-board vs. a laptop is that you lose all the things that make coding in an editor so much faster. You can't just erase a line if you need to insert something above it. You need to be extremely thoughtful of your order of operations from line #1. Usually what I found worked for me was writing a checklist of how to solve the problem in English, so as not to confuse the interviewer that I'm writing code/pseudocode. Then I rearrange the steps until I get a solution that works. From there I can quickly write out the actual code that then becomes the easiest part of the interview. So the BIGGEST tip I can add when doing white-board coding, write as polished as you can. Interviewers always seem to proclaim they won't judge your chicken scratch, but I've never been in a feedback session where someone joked "his handwriting was so messy, but I was very impressed." In fact I've always heard the opposite, "wow, they wrote crap all over the place, even though they figured it out it was very unorganized, so I dunno, it's a maaayybe from me." Also, when asked one of these questions, DO NOT take your time trying to be clever upfront. Get the worst case on the board, 1) it will give you and the interviewer a chance to to talk about it and 2) they will want to ask you how to optimize it anyway.
- jw2013 13y agoThanks for the great article and congrats on your Stripe offer. Great company to work for. Despite the great story of your general interview process, I am quite interested in the hiring process of Stripe. What is its interview like? What do you think probably make you got the offer?
- danielweber 13y agoSome links are here https://news.ycombinator.com/item?id=7325545 https://news.ycombinator.com/item?id=7325545 I really wish I had had a chance to read that before my interview. Knowing what the interviewer is going for when you are coding helps tremendously.
- jw2013 13y agoThanks so much! That really helps.
- robheaton 13y agoObviously I would say this, but the Stripe process was really enjoyable, rapid and well thought through. It was clear that everyone really cared about making sure that you were able to really show your true skills and abilities. The team is great (and obviously just got 5.8% more great when I joined) and really happy to answer any and every question you might have. So I strongly recommend. Although I would say that.
- jw2013 13y agowow, just upvoted your helpful reply. Can I ask what/how to prepare for the Stripe interview? Looks like cramming algorithm questions is not going to work. And it looks like, through your and OP's experience, Stripe is looking for people that are cool to work and hang-out with, self-motivated, and can write clean code. I will really appreciate your reply.
- robheaton 13y agoThat sounds about right! Greg's Quora answer pretty much covers everything, and I'd say that there's not much you should particularly do to prepare other than to keep getting better at what it is you do anyway and to chill out. pc specifically said to me that the primary thing he cared about was that people were able to show how good they actually are, and that everyone feels they got a good crack at the whip and didn't get screwed over by a weird question or not preparing some specific thing or anything like that. I am actually the OP :), my email address is in my HN profile and feel free to email me with any more questions!
- deleted 13y ago[deleted]
- druska 13y agoThe article mentions to practice code-oriented challenges. Are there are good resources out there to help with this?
- MichaelDickens 13y agoYou applied to 25 companies and got responses from 17? That seems like an extraordinarily high response rate. Your process sounds pretty normal, but my understanding is that most people who follow a similar process get a much lower response rate. Why do you think this is?
- robheaton 13y agoIf I was guessing, I'd say that I very consciously made my CV/cover letter/blog "intriguing". I'm an OK programmer, but at the moment my strength is probably that I have a diverse list of fairly wacky and mostly unrelated other stuff that I've done. I think this meant that a lot of companies who would otherwise have passed straightaway were at least curious enough about the guy on the other end of this application to talk. I should point out that after a Skype or 2, most of said speculative companies did realise that whilst founding a clothing company that makes sweatshirts with pictures of fruit on them is cool, it doesn't really help you write Clojure when you don't have any functional programming experience ;) Of course, it could just be something boring like the fact that companies really need Ruby guys at the moment.
- melindajb 13y agoI'm not a programmer, but...I would want to work with this programmer in a heart beat. Smart, respectful, strong boundaries but not a jerk. A lot to learn from him for everyone on Hacker News, not just the devs. Congrats to him on the new job and the H1B visa and to Stripe for hiring him. He seems to really deserve it.
- anonymouse64 13y agoI actually have an interview with Google in a week or so, and I'm absolutely terrified. After some reflection, I realized that I'm not afraid of not getting the job - I like my current job and wouldn't mind staying. I'm fundamentally afraid of failure - of being unable to do well on the problems and having the interviewers think I'm stupid. It's so silly, because I'll likely never see these people again, and I should be confident enough in myself and my abilities to not let their opinions affect me at all, but there it is. What if I can't make heads or tails of the weird binary search problem they give me? What if I get confused (I ALWAYS get confused) trying to manipulate a linked list? What if I get sent home after the first one or two interviewers? What if this reflects poorly on the Googler who recommended me? I feel like a coward for being afraid of this stuff. Anyways, I just wanted to get that off my chest.
- skolter1 13y agoI was in an identical position 3 weeks ago and I shared some of your concerns as well. I can tell you that it seems scarier than it really is once you're in it. You shouldn't be worried about getting 'stuck', I did a number of times and quite often would get hints and directions from the interviewer. Never give up, even if what you know you don't know the answer right away, let the interviewer see that you're thinking and try to engage a discussion. And really just try to take it easy. I was also under a bit of pressure, but think of it like an experience, even if you end up not passing. It's just another company and the feedback of 5 random people.
- kalimatas 13y agoThanks for sharing. Helpful reading.
- weishigoname 13y agoit is really a good lesson to learn.