What I learned from spending 3 months applying to jobs after a coding bootcamp
medium.freecodecamp.com
medium.freecodecamp.com
Is this some kind of a joke?
> Otherwise, companies automatically categorize us into junior developer roles or tag us as “not enough experience.”
??? What do you think you are after a TWELVE WEEK coding seminar (no matter how intense it was)? It looks frightening to me that he doesn't even know what "junior developer" really means. How ignorant can someone be to NOT think to be a junior dev right after "graduation". Like: I am taking a first aid course - but you have to call me doctor afterwards - otherwise I am pissed off!
> A study by Triplebyte has found that bootcamp grads are weaker in these areas than computer science grads.
Really? No... This must be a lie!
No personal offence here, but honestly, I just can't imagine how a serious company with a certain degree of professionalism is going to hire people like him for a serious software engineering job (or similiar). But actually, if I think back, at my last job a couple of years ago we had a guy similar to him - it ended up giving him all the shitty work that wasn't too complicated and hadn't to much impact on the success of a project (some HTML & CSS stuff for the frontend) but nobody wanted to do (because it sucked). It took him hours and days to finish stuff someone of the rest of the team would have done in maybe half an hour.
I am also wondering about the reactions in the comments - also here on HN - interesting to see what kind if audience is hanging around here.
Anyway. Coding camps seems to be a good way to make money - for the organizers.
That all said, if your goal is to get the highest paying job possible, this seems like useful advice.
Yup. Which is exactly the mindset that the current interview culture most strongly rewards.
This single sentence terrifies me:
"At Hack Reactor, we’re trained to mask our inexperience. In our personal narratives, we purposely omit our bootcamp education."
$120k+ offer for 12 weeks experience - ridiculous, I hope he lasts 2 weeks
I on the other hand got taught to be able humble and make compromises especially when still being a junior. Looking back at my early days, when I wanted a position that I knew would change my career, I purposely asked for a lower salary in the beginning to compensate for my junior level or other skills (language for example when I moved into a country where I wasn't fluent yet), with a clause to bump it up to the level of other people when I can prove that I am on par with them and my lacking skills aren't a problem. It also showed the company that I was serious about wanting to work with them.
But man, 120k for 12 weeks of experience is insane. Sign me up for whatever bootcamp that was
It wasn't the bootcamp -- it was the self-study, and more to the point, his ability to reverse-engineer the interview process which got him that offer.
Which probably says a lot more about the current gold standard, "let's see how many hoops you can jump through" interview process than about the merits of bootcamps, per se.
It's a hack to get around HR auto-filters. The hiring people can then make further assessment.
What world do you live in where you'd not have more than one filter on hiring?
The alarms here are astounding given the other hoops that are likely to exist passed the first marker.
Pretty shocking the response to some advice that is really only "step 1" to getting the job anyway
Well. Gotta do that when people comes with a degree from the MIT, a degree from their local university and at the same time an internship at Facebook. All in the same year, from the 3 different cities.
Now what about CS grads? We've interviewed plenty of people with master's degrees in CS who don't know how to code a binary tree because "you know, I wasn't that into the data structures course..." Or if they have lots of experience they demand more money than the manager makes because, apparently, every company has to compete with Google salaries.
I remember my classmates and I staying after class because there was a guest speaker coming in to talk about quad-trees and b-trees and we were SO EXCITED to learn about these things. We've taken more candidates from Hack Reactor than not because they show this passion for their work that I have personally rarely seen in CS majors. They generally require a few months of ramp-up time, but I think it's worth it, and since they are usually coming over from a different field they bring a lot to the table from their other experiences.
On the other hand, I do advise the bootcamp graduates I know to drop it from their resume after their first dev job. Programmer with 1 dev job is a much better profile than bootcamp graduate with 1 dev job.
The reality, I find, is that (if properly motivated, and possessed of sufficient native intellect) once you get your foot in the door, you can learn the ins and outs of any programming role pretty darn quickly. OK, maybe you won't be able to design a compiler or anything like that. But for most of the standard web development $foobar stuff... you can pretty much pick it up as you go.
The people to be wary for (and weed out) are the outright imposters (those who blatantly lie about their capabilities), or the chronic attitude cases (which includes a great many experienced and ostensibly highly qualified people).
Not the inexperienced.
The article is about hacking the system for networking purposes. He's not saying HR is "wrong" to apply those labels. Just that code camp graduates should watch out for that.
Given that this site has used up many cycles discussing how HR filtering sucks, these hacks are interesting to consider.
As for your specific concerns, calm down. You're giving off a superior tone. There is a lot of shit software out there. A lot of it coming from big companies. This notion that it's only for experts of a given status is elitist.
By your admission you're a smart coder so you have little to be upset about. Everyone works with people that aren't as good. My managers an idiot. Yadda yadda.
I'd work on my propensity for flying off the handle at trivial snippets taken out of context from larger stories. I'd rather work to help bring up a green coder with promise than alongside an elitist asshole
He needs an entry-level position.
By that, I mean that I make a distinction between a Junior dev (who may have a degree and professional experiences through a work and/or internships) and an entry-level/breaking-into-programming dev who's got nothing (no theory, no practise, zero real world experience).
> ...cannot stand this whole world of bootcamp-grads making six-figures after a 3-months training.
Hmm... Why not just get rid of all these annoying CS courses at University? I mean - who needs them anyway if you could just spend 3 months to reach such a badass salary?
By the way: Mark Zuckerberg was a huge geek in is earliest years already and in no way he had "0 work experience". Have a read through the "Early Years" in his Wikipedia article and you may find http://www.letsintern.com/blog/4-thing-mark-zuckerberg/ interesting. He didn't start Facebook with 0 experience right after taking a 12 weeks seminar because he wanted to "change career".
I'm not saying that I was stronger on the data structures and algorithm side than top students who spent four years staying up coding during their nights and weekends but I was definitely ahead of most fresh grads I encountered. I don't know how that is, given what a typical CS curriculum (at least what I saw later on Open Courseware) but my guess is that a lot of CS grads don't actually practice what they're learning enough so that it sticks.
One thing it appears a lot of people on this thread are missing is that it's not a school for complete beginners. There are prep courses for people looking to enter the school. I had been programming simple things for my blog for years before I went. About 1/3 of my class already had CS degrees before entering.
The other factor is that intensity really does matter. The reason focusing on duration of 12 (well actually 13 weeks) is wrong isn't because nearly 1000 hours of instruction and work are packed into those 12 weeks. It's even more wrong because working at double the intensity leads to more than double the progress. I saw the same phenomenon with language learners when I was living in Taiwan. It's very common for someone who did a full four year degree in Chinese to speak poorly compared to someone else who did a much shorter, more intensive study at a top immersion program like ICLP.
Anyway, the degree of animosity here is a little surprising, even considering the cognitive biases that might come from having spent a fortune on a university credential. Large numbers of my peers from Hack Reactor went on to do well at YC companies and/or large companies like Google. One I remember well did both (was an early engineering hire at a YC company that got acquired by Google). I still consider the tuition I paid to HR one of the better investments I've ever made (and one that I easily recouped within the year.
Thank you Marcus and thank you, Shawn. You guys were fantastic instructors and project mentors!
Having been to school and coded for most of my life, there is no possible way you know as much after bootcamp as someone from a decent 4 year school. It was probably over 1000 hours of just studying alone. Code camps are comparable to an associate's degree or certificate.
First of all, your characterization of Taiwan is both laughable and offensive. It's a developed democracy of 23 million, a stronger economy than many EU countries and a better transit/medical/internet infrastructure than I've seen in any western country. In terms of educational attainment, Taiwan is world-class.
Secondly, it looks like you misread my comment. I wasn't even comparing a boot camp to "random schools in developing countries". I was comparing one of the very best programming immersion schools, Hack Reactor, with one of the very best language immersion schools for Mandarin, ICLP (which was started by Stanford FWIW).
>"Code camps are comparable to an associate's degree or certificate."
No. It's not about credentialing. It's about what you can do. I got no credential whatsoever and I wouldn't have respected it if I had. Nobody had ever graduated when I started and when I finished, my prospective employers had never heard of the school. It's about the education, not some stamp of approval.
At least in my own opinion, there is no evidence whatsoever that our centuries-old model of higher education (or our k-12 educational system based on Prussia's model) are the pinnacle of efficiency. There are many ways to learn more quickly, ranging from working through OCW on one's own to getting help from experts while studying in an immersive school.
> work that wasn't too complicated
"complicated" is subjective. There are many talents and somebody could be better in for example JavaScript (and not HTML/CSS).
If we did make the distinction, the place of these bootcamps would be much clearer. They train technicians. Specifically software technicians. Their graduates can build things and fix problems using current technology, but they don't have the deep theory and sophisticated understanding of the field that lets them solve really hard problems (at least until they considerably augment their skills.)
The job that most closely fits those is usually called Software Engineer, as distinguished from Senior Software Engineer or Staff Software Engineer. Did the writer really land a job at the Senior level on the strength of ten weeks of instruction and three months of personal study? Sounds weird.
The only situation where I'd hire someone like that into such a position is if they brought a LOT more to the table, meaning probably domain experience. If someone spent ten years as a petroleum engineer and I am hiring a software developer to work on software for the oil industry, then yes, I might be willing to hire them at Senior despite a dodgy background in software.
There is "some kind of joke" going on, but it isn't that guy. Its the rest of the industry that turns out script-mungers and form-fillers and calls them 'software engineers'.
In London, probably the biggest/richest market outside of USA, that sort of salary is beyond what most experienced developers get, even some very good ones.
I must be missing something here (some sort of bubble?) because I can't see how businesses can be profitable paying those sort of salaries to people who know almost nothing about professional programming. Either that or businesses in America are just waaaay ahead of Europe at turning code into cash.
In my experience $120k is in line with a developer with a 4-year CS degree and 1-2 years of work experience and maybe some OSS work.
I hear back upwards of 60% when I send resumes to positions I am a good match for on job boards.
If it matters, I was hired through a Who's Hiring post with no personal connections.
The biggest justification for it is probably the idea that you hire people based on their ability to learn rather than their current knowledge. This sort of makes sense if you consider how fast tech tends to change and believe that you'll be able to hold on to an engineer long enough for them to grow into competence. Of course, it also leaves you with the huge problem of trying to evaluate "ability to learn" through a few hours of interviews.
The other thing to consider is that hiring is necessarily an ecosystem. An entry level job at Facebook can net you something like 120k + reliable stock compensation + signing bonus, and a startup that doesn't at least try to compete with that is going to lose out big on engineering talent.
It all ends up having very little to do with "justifying" a 6-digit salary, and a lot more with scarce supply.
This is also why we've seen bootcamps and and online vocational learning (Udacity, Bloc, etc) gain a lot of traction. Paying $18k for 3 months at Hack Reactor might seem insane, but if it lands you a $100k job it very quickly becomes worth it.
The sad thing is devs who are out of school for 1-2 years think they have arrived at 6 figures, when they have many years of problem solving and result delivering to give to fully return the value of what they're being paid to their employers.
While those young devs may think they have hit pay dirt, quite often a higher starting salary is meant to keep them as lifers longer, while those who are willing to grind and hustle are adding more meaningful, sustainable, and measurable value.
It's also important to remember when times get tough the first group that are often let go are the overpaid people who add the least value.
In that spirit, I hope students continue to learn how to add value instead of just worrying about what value they receive. In a world where everyone's special, no one's special, except those who can add value.
Very true. As a new pilot, you have to pay/fight for flight time to build experience before moving up. As doctor/surgeon, you have to be in a certain situation with close supervision to practice your craft and gain experience, which is expensive.
In almost all tech, this is not a requirement, which is what I love about tech.
Because the National Health Service is generally considered to offer a decent-enough level of care, there's normally no private health insurance in most tech jobs -- so no extra costs there.
Admittedly my sample size is low (2), but some level of private health insurance was offered at all the places I've worked in the UK.
Taxable wage 55K Taxpaid 15.6k Tax Free 11k NI 5.1K Take home 45.26 Pension 24k Tax relief on pension 9.6K
And rember you also have CGT allowance of 11K and an Annual ISA allowance of 14.2k (20k next year) and property taxes are much much lower
The rule of thumb I heard for the cost of a FTE was 3x salary.
At its best, it often means "technical, business experienced, just transitioned into intensive software study", which is an enticing candidate. At its worst, it means something like "paid $50k to learn basic Javascript". Lumping those two together makes it really hard to draw any conclusions about experience.
* Other players in the space will likely make the industry look bad
* If you graduate the wrong people they can paint your company in a negative light
By and large, companies that get a bad university applicant who can't build a web app don't let it paint their experience of universities as a whole. But if the same applicant was from a bootcamp suddenly all bootcamps are terrible sources of any serious talent and they'll never be considered if they're in the applicant pool.
Without that, there's too much fear that you'll get someone who doesn't understand code reviews, writes unmaintainable horrors, or is generally inculcated into the write-once, read-never pattern of class assignments.
This exact thing happened in the late 1990s with Visual Basic/HTML schools. A bunch of unaccredited for-profit courses issuing certificates and promising jobs sprang up during the dot-com boom and were fairly popular. Everyone I had heard about that attended these things left the industry during the crash. I do not see any difference in the way the "bootcamps" are run or what they promise (the word "bootcamp" is new, though), and I think the outcome will be the same.
This was years ago and I don't know if the bar has slipped as coding bootcamps have gotten more popular, but the bar to entrance for my program seems pretty high in retrospect. None of the folks I knew and learned with there would I expect to go on into the corporate world and be one of those computer engineers who gets by in their career by doing hardly anything or being a net negative. They were to a man and woman very smart and voracious in their learning about programming best practices and languages. If you've got a person like that then does it really matter that they haven't been part of a real corporate project before? They will learn very quickly and likely be one of the most useful people on the team within a year. I'm not saying they should be made team lead without any experience but as a rank and file programmer, the salary is justified in that case, I believe.
As a developer in Philly, even that seems too high for someone with only bootcamp experience
1. Programmers have lower status in the UK relative to the US - UK is more status/class conscious in general whereas US is more about money/productivity/impact.
2. Due to a bigger entrepreneurship culture in the US the opportunity cost for programmers is higher and that drives salaries higher across the board.
Can you give an example of what this means? I'm a programmer and I have friends that are mechanics, lawyers, teachers, doctors, accountants, electricians, radio engineers, server-cpu designers, etc. Some of us live in McMansions while others of us live in 1 bedroom apartments or anything in between.
Would our jobs determine what status/class we belong to in the UK? Or is this based more on your family background (aristocracy)? In the UK would we not be as likely to be friends if we belong to different status/classes?
I do wonder about the positions that are at or below my salary that have higher status. Like the non-profit public policy lawyer I know, or medical students / doctoral residents, or the business-side people who get to _make decisions_ while I'm kind of just implementing their business decisions.
Last winter I dated a writer who has some local celebrity (definitely has some status), and she was getting down on herself about how little she's paid, and how she works a part-time job to make ends meet. I was also kind of depressed that winter, but more for reasons that I never make super impactful decisions where I'm at. I'm not steering the company's decisions much; the best I can do is be involved in architecture and be a faster/better coder. And the code I write is read by, at best, 6 other people. My PRs are usually just read by 1-2 other people. Whereas, what my ex was writing would be read by thousands of people easily.
I don't mind the idea of emptying out my own biases to try to absorb the craft as much as possible. But I do feel like, because engineers are in such high demand, it's not efficient for businesses to let engineers think about product/business decisions, even though engineers would have good intuition for those areas. Being at the end of a waterfall kinda sucks.
I can totally get why if little/no-exp devs are expecting six figure salaries.
The transit system is exploding, living in the commuter belt these days is a special kind of hell for a lot of people.
And don't think you're getting seats on the underground either.
If Europe can build a few companies that churn out revenue at the scale of Google / Intel/ MSFT, European developer salaries will skyrocket. US companies with offices in Europe have helped salary increases, but really the continent needs a few Googles to really skyrocket salaries.
Let's take a case study here. Rackspace, a company that was just taken private, and Google.
They have almost identical P/E ratios, and the market cap for Google is 125 times that of Rackspace.
From what I can search around for, Rackspace has 6200 employees. Google has 53,600. Google makes roughly 15 times per employee in profit (not revenue) than Rackspace does. If Google's headcount to profits were the same as Rackspace's, the market cap of Google would be about 35 billion.
That being the case, heck yeah Google will kick down an extra 40k a year to an engineer. Makes perfect sense for them.
I was once offered a role of Scala software engineer with £45000 starting salary. I assumed it was a joke, but it wasn't.
In my company we pay about 25% on top for social security, worker's benefits, health insurance, etc. This is without any company-provided benefits such as trainings, conference allowances, holidays, etc.
There's the official one which you would declare (pre-tax, or "on-paper"), the actual you get (post-tax, or "hands-on") and the one that shows your actual cost to the employer (pre-tax salary + 31% additional tax).
On top of the quoted figure, there is an equivalent of employer's FICA contributions. The rate is around 12.5%. Anyway, this is treated separately and you don't generally hear about it; employers factor it into their calculations before deciding on a salary range.
Exception: it's somewhat common for public sector employees to have the employer's contribution quoted on their payslips, perhaps to make them feel like they're paying into the system.
50%~ overhead sounds about right.
Or maybe there is too much supply and not enough demand in London. Maybe it's cultural. But I've noticed that salaries in London are pretty terrible. It's even worse than New Zealand, which doesn't (didn't?) have a lot tech jobs.
I can't speak to a lot of programs, but HR is roughly 800 hours of cultivating people with "enough experience to write higher order functions" into - specifically - web developers. These students implemented a binary tree in their first week, wrote relatively secure chat apps in their third, know React and Angular by the sixth, and have 4 side-projects (one of which over a full month) by the end. Meanwhile, CS grads have been taught that JavaScript is a toy language that can't solve a problem of any reasonable complexity and are instead competing for enterprise Java positions amongst themselves.
Is there a bubble? Probably. But there's also a market for individuals with a set of skills that isn't being met by our university system.
If you want to adjust it with some extra notes: winner of worldwide NASA competition; degree in Industrial Engineering in Spain with final year project on Neural Networks in Tokyo University; organizer of one of the biggest Maker community in Spain (Makers UPV); 2 years work experience (besides non-profit)
My wife is from the UK and has worked in London and NYC and she makes quite a bit more money in NYC. She has told me there's no way she'd make her salary in London and it would probably be quite a bit less. She doesn't work in software either; she works in finance.
I think part of it is it simply costs a whole lot more to employ someone in the UK. All those social benefits have a cost and companies have to pay them. It's also much harder to fire someone in the UK than the USA where you can be fired on the spot for no reason at all. The benefits the company has to pay out are technically none except for some unemployment insurance for a few months which is quite small all things considered.
We've talked about moving to the UK but our lifestyle would change for the negative we believe due to the low salaries and the very high cost of living anywhere near London. Especially with the beating the Pound has taken recently when we convert our dollars to Pounds there's no way we'd get close to our current income.
To be honest I'm not sure how you folks do it. The UK is expensive and people simply do with less in general. That's not such a bad thing either.
It's possible to see a smaller paycheck and in fact receive a larger value transfer.
One of the main aspects of this that is very relevant to Americans is how easy or difficult it is to be fired and what programs are available for those who lose their job. Even if you are never fired, simply the threat of it can cause anxiety and stress that simply wouldn't exist in places where it is harder to be fired and which have better programs for people who are fired.
It looks like Square starts at about 100k for a new grad (uni degree). Seems high but it's more credible than $120k for a bootcamp grad.
Remember that median rent for a 1 bedroom in a non-trendy area is around $2900/month [2,3] and taxes should take about 39% of salary at that level of income. It is far more expensive to live in San Francisco than most of Europe.
1. http://h1bdata.info/index.php?em=&job=software&city=SAN+FRAN...
2. https://www.trulia.com/real_estate/San_Francisco-California/...
3. http://sf.curbed.com/2016/9/23/13034910/san-francisco-rent-a...
For instance, places around me in SoMa have 2BRs listed above $4,500.
That rate however; "it just ain't right".
Is that 39% as in marginal tax bracket, or 39% of the absolute total?
Obviously it all depends on the major and other factors, but I'd say simply getting into and graduating from UC Berkeley does mean something.
Of course lots of smart, hard working students simply go to local community colleges to save $ etc. But when a recruiter sees UC Berkeley on resume and they want someone with a degree, it give a good impression.
And let's not forget on HN survey, about half of the working programmers are self-taught.
And who knows, maybe he had side project(s) or examples of code to show.
And you're really just talking about the bay area where competition is STIFF for talent. The hardest thing is finding people who can actually do the job - degree, experience or side project aside.
I mean fair play to the guy for landing a salary like that with basically zero experience but it wont end well for him or the company if he is put into a position of responsibility where he has to make strategic decisions.
That's what I though as well until we offered £100k to 3 different guys in London.
They all refused saying it was a substantial drop. One actually standed up and left the room :D
I think the salary gap between US and UK programmers in the last decade has definitely increased.
One reason is exchange rate, only a few years ago GBP/USD is 1.5x, now it's 1.2x.
Another reason is that tech sector boomed in the US, big companies like google and Facebook are doing really well, there are also more successful small companies, fuelled by VC money. together they drive programmer salary up.
However, the UK economy is totally dominated by finance. And the banks are not doing particularly good after 2007.
I agree that 6 months living expenses is on the high side, but make sure to get at least >1 month of savings in ... make this a priority! I would argue to even do this before paying off your student loans. Why? Because this is such a 'small' sum of money which can really save your ass in the long run when something DOES go wrong. And if every month has a certain probability p of going down the shitters and you approach it like a geometric distribution then its a simple probabilistic (near) certainty.
Remember this: emergencies come unannounced (else they wouldn't be emergencies).
Get your emergency fund up and running !!
Example with made-up numbers: Suppose you spend $2000/mo, you have an unused line of credit of $10000 @ 10%, your student loans are at 5%, and you are taking home $4000/mo. If you have an emergency that costs $2000 that hits your line of credit, that ends up roughly being an extra month servicing $2000 of debt at 10% instead of 5%. If you keep $2000 in cash instead of paying down student loan debt, that ends up meaning you service $2000 of debt at 5% instead of paying it down. These are roughly the same thing, so you wind up ahead if the LoC is sitting empty ~50% of the time.
Granted, these are much more favorable numbers than typical use of credit card debt, but the point remains - if you have access to credit on good terms, and you won't need it often, and you have good illiquid returns on excess cash, you ought to take a look at using credit to handle emergencies instead of cash.
Make sure your emergency fund remains accessible if you get into an emergency.
The low yield on the emergency cash laying in a checking account is to compensate for its liquidity.
Not at all. Whatever causes the emergency is likely to come with unexpected costs of its own, so 6 months salary is more of a minimum in my opinion.
The problem with an absolute is its absoluteness.
It's just a classic retelling of The Ant and the Grasshopper https://en.wikipedia.org/wiki/The_Ant_and_the_Grasshopper
I've also found that the things you mentioned--- vacation, dates, hobbies, are actually more flexible than you think. Lift tickets make skiing an expensive hobby. But hiking or snowshoeing gives you a somewhat similar experience for much less. You can do some research on yelp and pretty easily control the cost of your dates, and once you're serious with someone, they don't/shouldn't care about you being frugal. Similarly, vacations can be done on the cheap. A vacation doesn't mean a trip to Europe, it could mean finding some cool small town nearby and enjoying it. (I feel pretty ashamed at how little I've explored the Western united states, despite having been to Europe & China.)
I'd also say-- you work as a programmer. If you have friends in their 20s/30s who are non-programmers, you should ask or estimate what they're making. They're probably having as much fun as you for much less.
Exactly. Every important decision is a risk and rewards assessment. A high risk is obviated by a high enough reward, and vice versa.
If you're hit by a financial emergency, those things are exactly what you won't have the money to do anyway. At least now you can make decisions about what to cut while not under stress and the impeding deadline of bills coming due.
Pay out now or pay out much more later; it's your choice.
People seem so comfortable carrying a massive amount of debt.
I'm currently on the best paying job I've ever had, and although the financial planners around would say that I'm holding too much liquid assets (I'm not sure what to invest in), it certainly makes me sleep well at night knowing that I could survive frugally but comfortably for probably 2 or more years without a job.
For the first 2 years, live on 50% of your income. Eat Ramen, coupons, live like a begger, and save up 1 year of income.
Then divide that by 12 and use that as a salary for a year while collecting another year. Repeat. Steady income, always a year behind.
Of course this was back when I was trying to go into film. A bit more unstable than software development.
It's unsexy, but one doesn't have to live in the hottest part of town, or go to the newest restaurants every weekend.
But the problem is that people are to led to believe that programming == tech money == big living, when it's really decent middle-class living which means one should still budget, which may mean not keeping up with the Joneses.
That being said, 50% is really a stretch these days. 25% would be more realistic for most yuppies in America, and 33% for those more financial prudent.
Most new grads in San Francisco are likely eating up most of their income on taxes, rent, and repayment of student loans. After contributing the maximum of $18k to their retirement plan and some modest savings, they likely have enough for one night out per week.
100000 - 18000 # starting salary minus retirement contribution
=82000
82000 * 0.39 # tax before tax refund
=31980
82000 - 31980 # salary after taxes and retirement
=50020
1200 * 12 # annual rent for a bedroom in a shared house in untrendy area
# this $1200 figure is from other posters in this thread
# and an cursory look through craigslist
=14400
50020 - 14400 # disposable income minus rent
=35620
500 * 12 # annual student loan payment for $50k, 120 month loan
= 6000
35620 - 6000
=29620
29620 / 12 # remaining income per month
= 2468
$2468 per month to save, spend on food, transportation, et cetera is pretty damn good. I think it leaves about $1000 per month for savings, considering groceries, utilities, recreation, transportation, and miscellaneous expenses.10% savings sounds bad but the dollar amount is not too terrible. I'm assuming the retirement savings weren't part of the equation, since they can't be readily used for support during unemployment. Overall, the San Francisco Bay Area is not a good place to save money. I think the financially prudent step is to not move to it.
If anyone disagrees with my numbers, please speak up! I would love to be able to optimize my own spending or make suggestions to my new grad friends.
In regards to the 10% vs 25%, I believe most guidelines account for retirement saving. So with your numbers, we'd be at 28% which isn't too shabby. But yeah, in terms of getting six months worth of savings..
1200 # rent
500 # student loans
1200 # discretionary
=1900
1900 * 6
11400 / 1000
= 11.4
We'd need 12 months, which isn't unrealistic either. I figured one can easily live on $1200 for discretionary when unemployed. $300 for utilities, $600 for food ($20/day), $300 for whatever else. Just can't be blogging from Sightglass every day.Edit: easier to do
I've done it twice, and there's nothing like having that fund (and also being unsecured debt-free) backing you up. Each time I made my choice to leave my employer, I had a new job lined up within a couple of months - and I had negotiated a higher salary to boot.
The best way to go about getting such a savings set up is to first plan a realistic budget. Then, pay down any unsecured debt, starting with the smallest debt owed first. Roll that payment, once the debt is paid back, into the next debt, until you have all your debt paid off.
At that point, you should be left with no unsecured debt; a mortgage can be considered OK (as it is secured by your equity) - but if you can pay that off too, so much the better. Usually, though, it's better to keep it for tax deduction purposes.
Don't have a car payment - if you aren't paying cash for a used (but reliable) car, and paying for it in full - you are likely wasting your money.
There's more tips out there than just the above, but them's the basics - basically. Once you become "debt free" in this manner - a great burden will be lifted from your shoulders. I'm serious.
And once you get your FU savings set up (bank for at least 6 months to a year - but ultimately, just keep building the savings as you have available cash - you may never know when you'll need it) - you'll be free to do as you please with your career and goals.
Maybe that's just me being too old for that kinda' crap.
I quickly found out that nobody looks at your GitHub, maybe 10% max. didn't matter that I had code from two weeks ago that did complex segmented locking on a concurrent hashtable. still got asked "what is threading" level questions at every place.
After botching my first spate of interviews to stupid trivia I gave in and and read through a bunch of CSCI 100 course notes and "beginners guide to language x". My performance improved significantly.
Ironically the most useful tutorials were the most basic "write a string to a file", as I had forgotten the classes for opening raw files in my three languages of choice (since nobody in their right mind has any business using those classes in a well designed WebApp). Doesn't matter that I could look it up in 5 minutes, they want it on the whiteboard with no googling.
It's really easy to game such interviews as they require very little domain specific knowledge. If you say you know Cassandra or MVC, they'll just take your word for it... as long as you remember the classes for opening a raw file in r+w mode
I think it's just that they have a process built up over time like "interview process.doc" and the devs don't want to make any waves going off script
Bad hires inflict huge costs up front, in wasted interview opportunities and startup costs and lost training time and morale hits and a dozen other things. "Fire fast" is popular advice because it's better than firing slow, not because unsuccessful hires are a sustainable event.
A company, that advertised here on the last "Who's Hiring" sent me a code project.
Wasn't quite enough to be 'you're doing a sprint item for us', but merited decent effort:
- write a log monitoring console program that consumes an actively written to file
- parse out specific parts of the log and aggregate them every 15s, display summary data
- generate 'alert' notification when log messages/second (over the last two minutes rolling average) exceeds a threshold
- remove notification when fall back under this limit
- continue to generate stats while doing so
- develop some unit tests to demonstrate alert logic
This is, at least to me, _several_ hours of decent work. Certainly was nearly 500 lines of code.
Submitted.
"Thanks for this. We'll review."
Last I ever heard.
Thanks.
By all means, please do "out" this company. Preferably as a response their next "Who's Hiring?" posting.
You'll be doing not only your fellow developers a huge favor, but the guilty party as well. Being as they need to get their heads around the fact that it's not in their interest to keep pulling off bad behavior like this -- and if they need a good dose of public shaming for the message to sink in, then so be it.
Every CodingHorror post and list of hiring tips demands a GitHub profile, with the implication that it had better contain useful, quality code. (And with a bit of a threat that you'd better not put any hacked-together, one-off project in there, even though everyone has some.)
That's good, I see the value of it, and I also understand why interviewers don't want to read it. But new devs have every right to be annoyed when the industry-standard wisdom says that you have to have a thing which is never used.
(The real answer is probably "New devs, get ready for the interview gamut. Experienced devs, call a contact and have a GitHub profile." But somehow that never comes up.)
Get a relationship, however minimal, with an inside contact, who shows his boss your code or conference presentation or whatever, he calls you and schedules an interview, then HR is told to find two bodies off the street to interview to make the hiring decision look good.
Their code doesn't get read. I'm always kinda pissed when I'm brought in for that kind of interview and I figure out I'm just a placeholder. I've never said anything unpleasant but I have mostly politely walked out of interviews like that. Once its clear they just needed a checkbox and my showing up was the checkbox, theres no point in continuing. This is why sometimes you get callbacks for the craziest jobs you can imagine, like seriously, what in my carefully resume made you think I wanted to program FORTRAN exactly? You're hiring someone who's 90% of the time a graphics artist and all I know about photoshop is I'm familiar with the name? You need a .net programmer and what in my resume made you think that was me, let me know so I can burn it off the page with fire? Or there's a massive experience or salary mismatch, etc.
I'm usually giving the holistic system design question which the interviewee can take any direction they like they just have to go all the way down in one area.
Jr devs on my team give the algorithms question much of the time and I make sure they're looking for the right things. Problem solving not memorization... Comfort in a language not trivial knowledge or formatting issues... Etc. They get sent to the interview class if they ask anything that is a named algorithm... Like three sum, tortoise and hare, etc and expect a candidate to derive it in a 30 minute coding section of an interview. T&H for example took 10 years for industry to derive.
On a side note don't use a language you're not familiar with in an interview because you heard the company likes it. Use what you are solid in. Python and ruby and the like make most interview questions trivial. I cringe on the inside when people jump for c/cpp in an interview esp college hires as it seems to take longer to get fluent in these languages.
I mean what if I'm applying for jobs using someone else's resume? What's stopping me from having my coder buddy do the phone screen for me? Why don't I just list a bunch of experience at companies that went under... Unverifiable. Use a bunch of references that are actually my roommate and my dad with Google voice numbers.
At a certain point you just have to take things at face value. A GitHub is just as verifiable as every part of your resume that's not a school you went to or your identity
I do think the original article suggests that if employers put a lot of stock in github, the coding academy people would quickly have the "best" github pages.
"What is threading" actually doesn't bother me, because it's shockingly easy to find experienced backend devs who have no idea - even when they've used MapReduce!
The file I/O one is far more obnoxious, because low-level file interactions are so rarely a good idea in most languages. In general, the right way to handle that remains "scripting" right up until it becomes "framework". And if someone expects that file I/O as part of a larger problem, they should probably accept anything sensible-looking or offer you a couple of method names like "getTextLine" to avoid the whole issue.
The whole process is broken, certainly, but its broken on both ends.
I've been the guy to screen candidates before and the number of unqualified applicants is astounding. Like, barely more qualified than a random sample of the population. This is for a junior position that simply lists c#,MVC, 1 yr exp. Like a paragraph long job description with 3 requirements. Also listed that we would take Java exp with Jersey or spring boot instead. Over 80% of our applicants didn't meet those requirements. A good portion ~40% had never been to school or written code in their life.
Of the remaining 20%, we would call and ask basic questions relevant to the stack. Just to make sure they're not lying basically. Like for c#, I would ask "what is nuget?" Type questions. Same with maven type stuff for Java guys.
50% of remainder fail multiple questions that anyone who wrote a single app in that stack would know. We now have 10 people out of the 100 that applied.
Half of those aren't local, or lied about being local. 5 people. 2 of them didn't disclose that they need visa sponsorship. We pick 1-2 of the last three.
Rinse and repeat nearly that exact process every time we need to hire anyone. Finding people with experience was even more daunting.
Because of the startling amount of people unable to explain the code in their repositories, I've found code quality / problem complexity / stack similarity alone to be a worthless metric. On the other hand, I've found it to be invaluable to get candidates to explain their code and why they made the decision that they did. It's exactly how a practice assignment works, except candidates are much more passionate about the choices and have invested more time in the project overall.
This guy claims to have worked ~6 days a week for 3 months not to become a great full stack dev, but to become a great interviewee. Seems kinda backwards to me.
Sadly it's the reality of interviewing and I hate it but there is nothing you can do until you are an experienced dev and can leverage your power to say "I refuse to work or interview at companies with dumb interviewing processes."
This comment appears in every single interview/hiring thread for past decade. Only change I've seen is actually the opposite now there are 5-10 "rounds" of these quizzes even in a no name enterprise companies.
People ask the 'quiz' stuff, successfully throw out some bad candidates who talked a good game on experience/theory, and assume its a good way to go.
The ideal middle ground is probably to offer ultra-basic code problems, ideally before an onsite. It's awkward, but it really is necessary to filter the non-programming applicants. And by not trying to be clever, you don't create an incentive to memorize Rabin-Karp and generally acquire useless interview-only skills.
Even for those still doing testing interviews, that's a good rule of thumb: if it was a paper-worthy insight originally, it's a ridiculous thing to make someone derive in an interview.
So I studied a bunch of stuff. Anything and everything but fizzbuzz (not that I needed to study that). Then I decided to go for the test - which was timed - and...
...fizzbuzz.
I'm sitting there a bit dumbfounded - seriously? So I coded it up from memory; I could have easily pulled a solution down off the net, but I figured "what the hell - let's go old-school" on it. Also - if I just cut-n-pasted something in, and they saw "it took the candidate one minute to code it" - they might suspect something, then google search the plagiarized code. No good.
So - I coded it up; it was in PHP, but the job was supposed to be for javascript/node (???) - so I wrote it as a class, then I spent the remainder of the time optimizing it - making it the fastest FizzBuzz solver I could, complete with tests and demonstration code. I took up the entire available time, and submitted that. I made sure to add proper PHPdoc comments to everything.
...and I got an "in-person" interview as a result. At the end of that was an another "live coding" session - this one using javascript for a "single page" app. They left me to it, and I got everything coded up inside of 15 minutes or so (there was a paper document laying out what the challenges were in the example code). They were watching my progress via screen sharing.
Apparently I completed the task quicker than other applicants. I later learned that some applicants just sat there unable to do anything (not even google around for help!), or they would take convoluted paths to implementing the changes; not necessarily wrong answers, just not efficient ones - and would be sitting there doing this for a couple of hours (at which point the interview would be brought to a close).
At the end, I got the offer.
Ultimately - those are the kind of challenges I like - give me a real coding assignment, something close to what you are really working on. In this case, it was also in two different languages - so I could also help to "bridge gaps" between a PHP team and a javascript team as needed (added value for the employer).
I really dislike whiteboard coding - completely unrealistic, and while I gather why it is a widely used tool, I think there are better ways to gauge a developer's competence for the position - and actual coding challenges to solve problems seems like one of the best ways to do so (though I also understand that it is very time consuming - so an up-front online timed challenge might be a good pre-filter for on-site or further interviewing).
Really?! Who'da thunk?
> At Hack Reactor, we’re trained to mask our inexperience. In our personal narratives, we purposely omit our bootcamp education.
Hm...
> Why? Otherwise, companies automatically categorize us into junior developer roles or tag us as “not enough experience.”
And you think that after a few weeks of bootcamp "education" you're anything but?
As I have had 7 different jobs for 12 different employers (due to mergers/acquisitions, by the most generous count), and have needed to run the entire interview gauntlet all 7 times, my primary career goal is no longer to earn more money. It is to never have to do another effing software-industry interview, ever again.
But damn. For $120k/year, in the region where I now live, I might just put Expo2 to whiteboard one more time.
I get tired of justifying my own existence to people who are only pretending to care that I am not actually a human-form automaton to crank out code. In short, the software-industry interview has always been stupid, but it has also become increasingly arrogant and rude. Is it really worth it to put up with the crap-on-you parade for a few more measly dollars in the paycheck?
I feel exactly the same way, even though the existence of those interviews is probably the main reason I was able to get into kinds of companies I did.
Assuming most people who do bootcamps are changing careers, how do you explain suddenly becoming a developer after years of another career?
> companies automatically categorize us into junior developer roles
in other words, correctly categorized
I do realize I'm making an assumption that there was no prior CS experience before the bootcamp, but isn't that the crowd they're targeting?
I also don't mean to typecast anyone, but the author's profile on that site reads, "Full-stack dev @Radius, ex i-banker, @HackReactor grad, @UCBerkeley," so perhaps he thought his prior experience in an unrelated field or his alma mater should've helped him get a leg up over other entry-level devs.
Again, I don't mean to judge since my path to software development was also non-standard, but my first gig paid about $30k/year and I was grateful to even be given the opportunity with my inexperience.
I might be wrong, I don't have any direct experience with boot camps, but stripping dev skills down to just the minimal, core, practical skills needed to build a working prototype in the language-of-the-month seems like just the latest version of the same short-sightedness that has been plaguing businesses for years. Low-risk, long-term success will always come from building on experience, not "hacks" and short cuts. There will be exceptions/outliers, but they're just lucky, not a model to be copied.
To use an imperfect analogy, who would be better at actually building houses; a vocational school grad (who built houses all day as part of his education) or a college educated architect? A lot of programming these days is "hammering nails" not architectural design.
Boot camps might very well be better than college programs in terms of preparing someone to use development tools and methods as opposed to focusing on the theory behind them, but at the end of the day, you're still not doing "real" work where your choices have consequences in a boot camp as you would on the job.
Working constructively with other people in the field (including answering to and being able to discuss and defend projects with colleagues and superiors), completing projects within time or budget constraints, and being able to make your own informed decisions with regard to things like project scope, methods, and direction, with a proven history of success -- those are the skills that separate "junior" from whatever comes after that, at least in my opinion.
According to a quick Google search, the average program length for these boot camps in 2015 was 11 weeks. That is on par with a single semester at a university. Even if you take a heavy course load of only practical CS courses, one semester is not nearly enough to prepare someone fully for a full-time dev position at top-tier companies. Sure, they may be able to answer the interview questions...but then what? I'm pretty skeptical of this trend and don't see it ending well for most of the boot camp graduates or companies who hire a large number of them.
If bootcamps were vocational schools things would be great. As it is, how many are more like for-profit scam courses handing out unrecognized certificates with the main aim of teaching people how to game the programming interview process?
Our current education system isn't always the most efficient way to learn. Skip the unrelated to programming classes, the extra curricular things, make people basically sleep, eat, and code for a few months and it's doable.
This attitude is the reason why I am strongly in favor of expanding vocational schools and training in the United States and Canada. People who do not actually care about learning or thinking should be discouraged from attending university and wasting the time of other students and faculty.
I don't want to waste money in our poorly-ranked, expensive schools where professors aren't even paid enough to live on. I instead utilize the resources available to me online to learn it faster and cheaper, supporting education reform. It's not apathy towards "learning and thinking" to take a more direct path. My goal was to learn to code so I could get a job, I've done it, plenty of people have done it. Do some people bootcamps and suck? Yes. Do some self-taught people suck? Yes. Have I seen people with college degrees suck? Also yes.
Discourse in topics irrelevant to my career doesn't put food on my table (usually). I'd rather graduate from and pay for a shorter, more focused program than spend $50k/year to have topics I once enjoyed ruined by misdirection and absurd coursework I have no control over.
What do you think a university is supposed to be? Of course it is a place for real scholars doing real scholarship. Your attitude is exactly the problem. Stop treating universities as trade schools.
But in retrospect, I actually think those extracurriculars were more valuable than the classes I majored in and made me a more well-rounded, empathetic, and socially tolerable individual.
For example, I took a public speaking course that I credit with helping me be able to confidently teach an entire class of introductory physics students when I was in grad school (around 150 people), and currently present in front of my entire company without breaking a sweat (~70).
I learned Canadian history, which allows me to be a better global citizen and more fully understand our relationship with America's largest trade partner.
I learned basic economics which helps me follow the stock market and the way commerce works.
I learned (basic) Japanese, which in its own way is a unique learning experience. There's a reason why when something is confusing people say it "looks like it's written in Chinese," with the implication that it's so crazy to understand that it's impossible (remember, Japanese kanji are just repurposed Chinese characters, so the analogy fits). Tackling that sort of obstacle, even to an elementary level, is very rewarding.
Living in dorms all four years forced me to learn about and how to communicate with people from different lifestyles and cultures, both good and bad.
Yes, a liberal arts university education isn't for everyone. Yes, it's way too expensive (I know I'll be paying off loans for at least the next decade). And yes, it's not the best route to take if you just want to get qualified for a job. But if I'm being frank, a lot of people, especially in the IT and software development crowd, could benefit from being forced to take "the unrelated to programming classes, the extra curricular things," if only just to become better people.
I'm not saying college is bad. It can be a good experience despite it having some cons(like price and time). I'm just saying you can learn to code (and well) in less time if that is the only thing you are focusing on....and there's nothing wrong with that. Education is not just limited to school, and some people have that attitude about it.
Just because you were able to fool the company into hiring you doesn't mean you "passed the final" and everything will be fine from now on. If you had experience, you'd know that.
But the thought of spending thousands to attend a school and you're encouraged to hide said school from your resume looks really bad.
At first I thought I was screwed, but after 3 months I'd completed 3 vastly different projects and it showed in my interviews. I could speak intelligently about 5 or 6 different programming languages and a multitude of database technologies, libraries and had my college-years algo/OO knowledge in the background. I had done everything from front-end design to Machine Learning, low-level algorithms engineering to full scale apps. And then I got an awesome job. I doubled my yearly earnings. People may scoff at bootcamps, but it helped in my case - if nothing else I got half a year to mess around with computers instead of doing that after work like I had been for the last couple of years.
As far as interviewing goes: I got rejected a lot. I rejected a lot of companies, especially those who tried to sell themselves to me. I was picky about not working in a megapolis hell. I didn't bug people if they didn't get back to me. I turned down second interviews if the person who interviewed me was an asshole or was non-technical. And it all worked out.
Unsurprisingly, I landed at a company with a lot of views similar to mine. We all mock Silicon Valley. We don't work around the clock, we like having lives outside of work. Few of us are traditional tech people. All in all, a very life-affirming experience.
function getDevJob(studying, hardWork, luck){
return studying && hardWork && luck;
}
I know that it might not make the code readable to novice javaScripters, but it bothers me anyway..It's a rhetorical device. And some could argue that code is also a rhetorical device.
But the only argument an if else block that returns true or false based on a boolean makes is "I'm not very good at this"
On a similar note, another thing novice programmers do often is rewrite min and max using if-else.
Like others, I'm surprised offers north of 110 are possible given his experience, and can't help but bristle a bit at him being a self described "full stack" developer when it appears he's a front end developer (does rails really count as being a backend engineer?).
But he worked exceptionally hard at the process (guessing having applied to 10x the places a typical engineering grad does?), and also has a strong background in business from a reputable university. For some jobs, especially at startups, knowing how to understand the business problem and deliver results can be really important. The challenge isn't the tech, it's combining just enough tech [1] with essentially being a product manager too.
[1] learning that "just enough tech" is not easy, and it's clear he worked hard to master a lot of material. It's just that many of us have been working that hard for many years and likely have more expertise / ability to learn new tech fast than can be gained by anyone in the course of a few months or a year; hence the initial surprise
To me full stack means you are into the systems a bit too and would be capable of setting up the stack itself (and perhaps enhancing it, or setting up custom batch systems), not just working effectively within a larger space provided by the application frameworks.
But perhaps I just have the terminology wrong? Full stack developer = someone who works across the application stack, and I'm thinking more of "systems" or "backend" engineer?
When you are full stack there's usually an assumption that you are "better" on one side of the stack and won't be strong at everything. So a back-end focused full stack developer would be better at the things you are talking about while a front-end focused full stack developer would be much stronger in Javascript / CSS. The main thing is that you understand how an app works end to end and can contribute / fix bugs across the stack.
Of course, all bets are off if it's a small shop.
I do agree that when people use the term though they just mean "I can code in a backend and a frontend language".
That seems like an impossible definition to fulfill by most humans today, though. I mean, how "deep" do you take it? Pre-processed code? Assembly code? Object/Machine code?
Computers today (especially server-based systems) are so massively complex that I don't see anyone possessing working knowledge of "literally" the entire stack.
And then there's the question of the depth of one's knowledge. I'd argue that the more you spread it out, the thinner it gets at each level of the stack, just by virtue of the fact that one has only so much time to spend on learning, practicing and keeping their skills up-to-date.
I literally have enough breadth of knowledge to figure out a problem at any level of the stack from top to bottom with some help from google/books. And no, I don't mean finding it on stackoverflow/stackexchange and copying an answer :). This is what I define as working knowledge, that I know enough to be able to debug issues in the subject with help from resources which I also know how to access. Depending on my familiarity with the particular piece of technology and the difficulty of the problem this may take me anywhere from seconds to weeks. I don't just say this either, I have actively debugged issues at most "levels" of the linux application/OS stack throughout my relatively short career so far.
Basically, you give me a problem and I have the tools I need to figure out the solution or root cause without help from any other team members(though help can certainly speed things along). The only question is going to be time.
> And then there's the question of the depth of one's knowledge. I'd argue that the more you spread it out, the thinner it gets at each level of the stack, just by virtue of the fact that one has only so much time to spend on learning, practicing and keeping their skills up-to-date.
My depth of knowledge in each area shrinks and grows as I need to use it. As said above though, I have just enough depth in every area to "be dangerous" as they say. I certainly have more breadth than depth in most things but I match or beat my peers in depth on the technologies I deal with daily.
There is a lot of dumb jargon, misleading labels, and wrong analogies borrowed from other fields that are popular in tech right now. You can call yourself whatever you want, but if you have never used gdb and call yourself "full-stack," you are being pretentious.
I do think it would be nice if the term carried more meaning, but given most companies are running their systems on top IaaS/PaaS offerings from Amazon/Google/Microsoft/etc and tend not to care about things beneath the application layer until they're making more money than sin it's fine as-is for the time being.
So people who write operating systems and virtual machines are 'operations'? I don't think that makes sense.
Outside of web development I haven't heard about such distinctions like backend or frontend. There are application developer, system developer etc.
And part of me thinks that a full stack dev should be able to use a soldering iron.
function getDevJob(studying, hardwork, luck){
return study && hardwork && luck;
}
But more seriously - I actually really like point #2. I firmly believe that job interviews have a strong bias towards people with experience doing job interviews. Your "offer-ladder" seems to confirm that for me.It reminds me of that freakonomics article about how real estate agents get more for their houses because they wait longer for a higher offer. By getting the practise and being better at job interviews and NOT jumping at the first offer, you get a better overall rate.
Most big companies I applied at had about half of the grilling and the rest of the interview was "culture fit"
Running a company is a team activity. I think there are too many sports metaphors in business, but if you've ever played a team sport you realize that the best teams are usually the ones with the players who play best together, not the ones with the most talented players. I could run this metaphor in to the ground, but the point is that hiring only the "best-of-the-best" is neither a credible claim nor a good methodology for creating a successful business. You might be able to do that when your company is 5 people, but it's probably much better to have good role players who are a cultural fit for your organization in the long run.
This is going to be a black mark on my OCD coder's soul for the rest of time. A code typo immortalised next to my name.
/sigh.
There's a lesson for me... Never. Ever. Attempt to be clever on hackernews.
Thanks for pointing it out.
... I wonder if HN mods would be willing to spare me this suffering. Undoubtedly a waste of their time.
Seriously, the original code is not too bad and probably what most people would write if the inputs and functionality of that function are only complex enough. "Hm, what else goes into isPrepared? Do I have to consider anything else before returning true or false?"
> For most small companies or C-level executives, the email format is usually firstName@dreamCompany.com. For larger companies, it may be firstName.lastName@dreamCompany.com.
This advice is horribly annoying, and I really wish people would stop recommending this awful email guesswork garbage.
I'm an engineer, and I once had a [firstname]@[company].com email address at a company. Later on, the company hired a recruiter with same first name, followed by a head of marketing with same first name.
Naturally I started getting tons of unsolicited mail, several times per day, from people who simply assumed my email address corresponds to one of the other people with the same first name. This included a lot of resumes from people who graduated from coding bootcamp.
Often the same person would email repeatedly, a few days apart. It definitely did not help their chance of getting hired.
There's no fool-proof filter for this. I can't safely filter out all email containing certain keywords, even from external email domains. I would get legitimate email containing those words from external domains -- legit candidates, people I met at conferences, etc.
I don't argue that it's good to contact a real person when trying to get a job. But at least take the effort to ensure you're actually emailing the person you intend, not some other person who happens to have the same first name!
Given that the OP applied to nearly three hundred companies, I can absolutely guarantee he just sent these out blindly based on guessing the first name. And seeing as he only got phone screens out of 11% of these companies, one would assume most recipients of these emails view them the same way I do: garbage.
These filters make mistakes and can hide something that you actually want to notice. It's a low probability mistake, but the price is too high to risk it.
How much time would that take?
Figure 15 minutes per company - 4,365 minutes, or 72 hours. And that's time just spent finding the company, changing around a cover letter, and then emailing it and responding etc.
32 phone screens? Let's say 30 minutes each, that's 960 minutes, or 16 hours of phone screens. Forget accounting for prep time, etc
16 technical screens, an hour or two, let's go 90 minutes. Again, not accounting for prep or anything else - 1440 minutes, or another 24 hours.
13 coding challenges. From experience companies want you spending no more than 1 day or 8 hours on a coding challenge, so 104 hours here.
11 on-sites. At least 2 hours each, 22 hours, not accounting for travel or anything like that.
Also, I would have targeted applications to a lot less than 291 companies. I guess if I was trying to get my first job I'd be a lot less picky, but the 'ideal' company to work at can be few and far between.
I haven't really applied for jobs since getting my first - just keeping communication open with recruiters generates more than I can keep up with all the time.
Regardless, I'm glad to see that developers who go to bootcamp can get phenomenal salaries. I have a few friends going through them now.
Finding the company: approximate amount of time spent here is 5 seconds. You have a spreadsheet, just go to the next one on the list.
Changing the cover letter: template it with variables. Should end up being a single bash command, most of the time is locating and properly formatting company name, person of contact, and filling out a couple sentences about why you're interested. 90 seconds when you're in the flow of things, tops.
Replying to emails and the like properly counts as part of the organization for the phone and technical screens.
There's time costs for when the application process includes forms that take a bunch of time to fill out. Not because you finish ~20 minute applications, though, but a certain percentage of the ones you look at you wind up having to abort due to those barriers, so you amortize the cost in there.
If you can handle really boring repetitive work, and you're not doing much else that day, you can wind up sending out a hundred applications in a day without too much fuss. For scheduling phone screens, set up a Google Calendar and/or a youcanbook.me and let the other party pick a time that works for them. Prep for phone and technical screening has little marginal cost - mostly it'll be spending a few minutes grabbing notes on business models and tech stacks so you can look good, along with jotting down notes afterwards about follow-up and ideas to improve on.
On-site basically counts as a full day.
>Also, I would have targeted applications to a lot less than 291 companies. I guess if I was trying to get my first job I'd be a lot less picky, but the 'ideal' company to work at can be few and far between.
It's a numbers game. You want to look at as many as possible, so you can pick after you have information about them. Basically, it's probably easier to filter out companies based off of actually talking to people there, rather than going down the rabbit hole of figuring out your desiderata and researching how companies fit it.
tl;dr - the actual application process looks like it could've been done over 5 weeks, given prep work was complete. One week sending out a giant pile of applications, one week doing phone screens, technical screens, coding challenges, then just over two weeks of doing on-site interviews.
Applications can be more than just sending out resumes. The worst is when you have to deal with some crappy web site, upload your resume, then fill out a bunch of web forms with your job history, take silly tests, fill out other pages of personal information...
Second: Wow, programming is becoming a commodity. This is literally 1) Learn the latest trendy framework and nothing else, 2) Study to the test, 3) Interview well. Either the market will be flooded and salaries for generic JS devs will crash, or strong programmers need to find a way to differentiate themselves that cannot be copied by anyone in 2 months.
That being said, we're currently in a time where most of the "development talent" that we have actively employed are working on little more than glorified CRUD applications. The few that are working on more specialized tasks tend to be safer from such commoditization.
they are already doing that with machine learning.
Ironically his lack of experience shows itself even in the first fancy function he writes on the blog post. Would not this unnecessary if block be a red flag in a coding interview?
I am sorry to see this type of people in the industry and I am sure I would do the best to not to let such people getting hired in my teams.
This sort of hard-won experience is how you get the high salaries, you know...
It's trivial to add the if statement if it's truly necessary in the future (like if you need to evaluate the variable beyond simply whether to return true or false).
I fail to see how they prepared this student for a career in software development. Sounds like they get a Masters in technobabble.
Kind of makes me think that the market is selecting people who have someone else supporting them so they can do all this interview research. Seems backward in my opinion.
I keep hearing "interviewing is a skill too." Sure it is, but should it be? I mean, why are hiring managers looking for people who are good at pretending to know things rather than people who demonstrate real aptitude through getting things done?
I take it you've never heard of Dunning-Kruger effect.
https://en.wikipedia.org/wiki/Dunning–Kruger_effect
Or its opposite, Imposter Syndrome:
First noticed that I filtered based on salary. Most companies don't divulge salary ranges but recruiters know that up front.
Out of the 17: 2 - positions already filled before I started the process
1 - after further investigation, the technology stack didn't meet my requirements
1 - had qualification I didn't meet
10 - companies that wanted phone screens
8 - phone screens
3 - in person interviews
3 - offers
All of this in only 2-3 weeks. There is some overlap and no company out of the 17 stopped the process (submitted -> phone screen -> in person -> offer). I either stopped the process after accepting an offer, the job req was put on hold, or the position was filled when the recruiter submitted it.
Two points. First, none of the submitted resumes disappeared into a black hole because I was using a recruiter. I knew my status for each job. The second point is that I'm no one special, I know plenty of developers that had the same experience.
Someone else asked how do you keep up with all of the applications - a spreadsheet.
As for the company side, I have directly heard from many a company that they don't like dealing with recruiters because of the cost involved. But then, it seems it has become necessary to many job seekers because experience suggests that if you want a response from a company about a position you must go through a recruiter.
I've found a few recruiting "companies" that just put up a WordPress blog and the footer even says "powered by WordPress". I don't respond to those at all.
I have 26 local recruiters all from different companies in my contacts. My shortest time from starting the process to having an offer is 4 days - from a Fortune 10 company. My longest is three weeks when I was being very picky about what technology I wanted to use.
I think the most phone screens a single recruiter ever got me is two in a single week....maaaaybe three. And only one in-person interview at a time. It took a lot longer than 2-3 weeks to find the next job through them.
Also, they had many companies that were just plain old slow to schedule interviews. One in particular took two months to get around to scheduling an in-person, and I had found another job in the meantime.
Getting interviews is as much politics as it is being qualified. At the place I worked, recruiters owned their job listings and their applicants. You get paid more if you fill your jobs with your own applicants, for what I think are obvious reasons. Recruiters would only ask around for applicants if they didn't have anyone qualified for the role. So if the recruiter who interviewed you doesn't have a lot of job openings, and you are a pretty average candidate, you might not get sent out to a lot of companies, even if you are more qualified than other applicants.
On the other hand, if you have a candidate who has a great resume, you probably want to keep them for one of your own jobs as well. The candidates who got the most offers were generally candidates who had an uncommon background (and therefore would be difficult to place yourself) or who were liable to get hired before you could match them with one of your own openings. In that case you'd send an email to the other recruiters with a brief overview of the candidate (background, salary expectation, etc) and ask them if they had any openings for them.
In my experience, recruiters engaged in illegal hiring practices as well. For instance, if a company did/didn't want older individuals, you'd talk about whether they were interested in "seasoned" individuals (seasoned ostensibly being a reference to their experience) or set the experience required since college at [x] number of years, where [x] + 22 = the age of individual you were looking for. It was also well known which hiring managers wouldn't look at the resumes of women, or of individuals with "urban" names, etc.
Companies that were terrible places to work were always looking for "plodders" -- people who spent a lot of time between switching roles (4 or more years). The expectation being that they would be less likely to quit. Other companies really want people who are "climbers" -- people who tend to switch jobs or get a promotion every 18-36 months.
The candidates who got the most interviews were white males who went to a prestigious university, did internships, worked in a big-4 consulting firm for a few years, and then spent 1.5 - 3.5 years at each job after that point. They were referred to as "extremely presentable," in the sense that they almost always would interview well. Their recruiters would often send to interviews where the the hiring manager was asking for an amount below what the person was looking for though as a way of making the applicants available at a given salary look terrible in comparison. This would allow them to drive up the amount they were willing to spend and get some of the higher priced "average" candidates hired.
If you want a job, the best advice I have is to call/send emails to hiring managers at places you'd want to work, and ask them if they would be interested in a person with your background, or if they had any advice for you. Even good recruiters are mostly useful for negotiating salary (since the more money you make, the more they make), trimming the irrelevant parts out of your resume, and coaching you on how to do an interview. If you need help with the second and third points, you are probably better off paying for a career counselor, since they will have your best interests at heart. I suppose a recruiter might be a good choice if you have specific salary/benefits requirements and you aren't great at negotiating, though I've never really thought about that point since negotiation is probably my strongest skill.
[1] Recruiting accountants was the worst job I ever had. I knew nothing about accounting going in to it. Turns out I hate accounting, and talking to accountants all day was hell for me.
When you're juggling 17 job opportunities knowing that you have a good shot at a least 10 offers, you really don't have to negotiate. Between the salary offers and the recruiters willingness to throw in a signing bonus, you can let the system work for you.
No matter how good you are negotiating, if the company has a budget of $90,000 and you are looking for $130,000, you can't square that circle and you won't know a lot of the time until after you've wasted time going through the process.
Also over the past 9 years I've had four jobs. I made a mistake and contacted a recruiter from the same company where I was already working with another recruiter and she told me that I was already working with one of her coworkers. Another recruiter mentioned their "morning meetings" where they all get together to share candidates and jobs. It's in the recruiters best interest to find a candidate a job even if they aren't the account manager for a specific company, knowing that a good developer can find a job in less than two weeks.
That being said, I've always been good at writing tech resumes and I am a good interviewer.
That's not a mistake, or certainly not yours. You're not paying the recruiter, you're not they're client, and you definitely aren't beholden to them.
Sign an agreement to the contrary, that's different.
That being said, there are a lot of things to negotiate other than salary. You can negotiate vacation days, flex schedules, etc. They are all effectively forms of compensation, but companies are more firm on salary than they are on other forms of compensation.
I find it very unlikely the person interviewing you would "see the errors in his ways" and go "ok you are right, dumb question".
It is a human flaw that when we interview, we project. If we are really good at X, we want to deep dive on that topic. Perhaps it is important for the job. Perhaps we are just trying to show off to a candidate. Who knows.
I know I am a fullstack guy, but light on React. If the interview before me was a webdev and asked you a bunch of React questions, I could not add anything of value there. So I would poke around algos and linux and testing and CD and all of the other things I know about, to see where you fall. Not really to show off how leet my algos knowledge is... but I personally would rather hire a guy who knows big O, all things else equal.
I do doubt most jobs are so specialized you only need 1-2 frameworks, and nothing else. Knowing what memory is isn't a terrible thing to understand for any programming job...
I say as much when people try to pull that stuff on me now. There's a copy of TAOCP on the shelf for a reason, if I need to know a good algorithm, Mr. Knuth's are certainly better than mine.
If I were being interviewed I would have no problem taking advantage of any standard APIs I would expect to have available to me, which includes browser APIs if it were a front-end role. Why waste valuable interview time writing a sorting algorithm instead of just using .sort()?
I'd rather have this vs. the 'where did you go school' bias that finance strongly has.
"Most important"? Have fun with that. Life is too short to spend time memorizing the answers to over-the-top tech questions for some chance to work for a company no one has heard of (and isn't producing tech near the scale of interview knowledge they require).
The only part that I hesitated with was the part about getting through to real people.
After reading a post like this, not sure how hiring managers (or their team) are going to feel about getting inundated with emails from candidates. After all, that exact use case is why we have recruiting departments to begin with.
I would tweak it and say use your network to get in touch with real people. The effects of getting a million emails from candidates might be blunted a bit if they are coming from someone you actually know.
[0]: http://www.askamanager.org/2013/06/a-job-applicant-stopped-b...
If anything, assuming most companies have an 'employee referral' program, emailing a random non-recruiter may have the additional advantage that, for no cost to you, someone at that company becomes incentivized for several thousand dollars to lobby for you.
We're all "kind of" in it for the money. I have to support a full-time teacher salary for three months, administrative overhead, software/hardware licensing, curriculum development, and have enough left over to make it worthwhile to continue teaching these classes in the future. But we're all driven to fill a need that we see in the market (not enough engineers/devs available) and most of us perceive the shortcomings of traditional formal education and think we have an approach that can improve things.
As an example, I've been the lead engineer / director of engineering for the past five years and have realized that all of the junior engineers that we hire out of college generally take 2-4 months to get spun up on regular software development practices. We've got to teach them version control, team work habits, peer reviews, requirement solicitation, design document writing, etc. And all of those skills are on top of our industry-specific requirements.
I'd much rather hire someone that was passionate enough to pay for a bootcamp, wants to be an engineer, and has learned enough to start contributing fairly quickly.
And while we're going to be coaching our students on how to kick ass in interviews, we're certainly not going to advocate lying. We're going to focus on confidence, proper responses for things they don't already know about, and even get in to the "submitting your resume" process.
Don't be so cynical. Computers have only been an integral part of everyone's lives for the past 15 years or so. The entire world is trying to figure out how to train people how to be productive members of a post-labor society.
(That's a slight exaggeration to make a cynical point, but not far from the truth.)
"A less-talked about part of the bootcamper’s journey is what happens after you graduate — when you’re searching for that six-figure developer position."
"As I got more experience, I effectively “leveled up.” I became capable of completing interviews at companies with higher hiring bars. This is illustrated below as a linear correlation between the number of weeks I was into the process and the base salary I was offered."
At the same time, if I imagine the author as a (highly organized) co-worker, seeking a better salary, I have a bit more respect for the legwork he has put in (although it is highly unlikely anyone with a full time gig would have the time for it).
It remains unclear whether salary was the author's only reason to become a developer; there is only the absence of counterevidence. I would definitely feel uncomfortable hiring or working with a junior employee who attempts to "mask (their) inexperience", even during the hiring process.
I like some of your points like get through to real people. That's an incredibly important part of landing a job. However I do have an issue with the graphic at the beginning. I think it's misleading, because you shouldn't really be applying to 200+ companies. When you take that kind of approach its like you're selling yourself short (not putting your best foot forward). Its like saying "I'll take anything, just please give me a job". It's also more difficult to actually show interest in whatever company you're talking to, which is a key part of performing well and ultimately obtaining an offer. So you end up showing 8 offers from 291 applications, but I would argue that by making so many applications, you are decreasing the rate at which the applications turn into offers. I can offer a contrasting viewpoint to this job search thing. When I was in school for Physics I taught myself how to program and started focusing on Web Dev. I ended up dropping out of school and decided to become a programmer. In that initial job search I applied to three companies in SF. (Companies that I was familiar with and legitimately interested in) and got offers from all three. That was two years ago and I've since applied to two other companies in Mountain View (I'm trying to move to an ML engineer position) and received offers from both as well. And like I said I think the difference between what our bar graphs would look like is due to the fact that my applications were much more targeted and my interest and motivation in the companies was much more apparent.
The fallacy that "programming" is just learning tools and syntax and processes has unsurprisingly led to an expectation that, in continuing fashion, one can just run through a defined routine and get a solution.
In short, the whole thing is misunderstood, and thus the approach is all wrong.
Whether in IT or business (or life in general), opportunity is more easily gained through human interaction - networking (but substantive, not superficial).
Go to meetups on a particular language or stack or tool. Become involved in open source projects or communities that are centered around some shared interest. Get to know people, and let them see who you are. Then the jobs will come to you.
Do you just walk in and say "Yeah, I don't think this is going to work but I came here just for the hell and experience of it." This feels like a shitty thing to do, it feels even more shitty to walk in like you really want the job when you're mostly there for the practice.
More seriously, most people are scared of changing jobs and hate the application process, to their own peril. If you could really own this whole process you'd win on every level.
It's been a while since I looked at it, but I've recommended it to people as one of the better sources of actually free content, and not just upsells, and would like to know if that's not the case anymore.
I'd be dealing with business acquisition people instead of a role-mailbox in HR that's piped to /dev/null anyway.
I don't really want to move to CA and certainly can't afford it without a huge hit in the standard of living. However... if someone bought goofy-idea-by-vlm.com for two or three million bucks and an aquihire job in CA, then I still don't want to move there, but at least I could afford it if I absolutely had to.
Err.. Ultimately you need to be able to DO the job...
:|
I don't care if you're from a dev bootcamp or an Ivy League school. I care if you care about your craft.
Experience is really hard to quantify, hence the programming tests. They are a crude way to standardized the measurements.
But care for your craft comes through right away. I'd ask them about the stuff they are interested in within their domain, then dig a little deeper to see if they have a strong grasp of what they are talking about. Sometimes I'd debate with them.
I also find that the best engineers I've ever met came from a variety of countries. They turned out to be amazing team members to work with as well. Once you're no longer just looking at US schools and US dev bootcamps, you get amazing selection.
Speaking from an applicant's perspective:
Heck yea, study up no matter how trivial you think it is or how it belittles your years of experience. Remember that this crude method is not an accurate measure of the hiring company's potential or yours. It's just a filtering mechanism for both sides to start a dialog.
Making scads of money in SF is (or can be) kind of like getting constant blood transfusions so you don't bleed out. It doesn't necessarily translate to a great quality of life.
1) free healthcare
2) free education for you and your children
3) better work/life balance*
4) better overall life quality*
Sum that up and you shouldn't feel that bad after all.
*unless you live in London or other overcrowded city, but you've mentioned you live in your own house, so that's probably not the case.
I hate being used for interview practice. Don't apply to work for me unless you're intending to accept an offer.
Managing the process wasn't too hard. I simply kept a spreadsheet updated with contacts as rows, and columns with dates for every step of the process including first contact, second contact, phone interview (s), coding challenges, on-site interviews.
However, you're right when you say "once you hit the 20 applications mark, it's impossible to know to which companies you applied for." Early on in my application process, I wasn't applying to nearly enough places, because I wanted to hear back from someone before moving on to the next. A good friend of mine gave me the advice "You should be reaching out to so many people, that when you get a response, you'll need to go back to research who it was from." It's a weird mode to operate in, but once you realize that as a new-ish dev the process of getting a job is very much a funnel like the one in this post, it's a strategy that makes a lot of sense.
I would highly recommend anyone looking for a job to follow the advice in this article, it matches very closely with my experience. Especially resonant were the points about making contact with real humans, and also to push tons of companies into the pipeline.
No seriously, that's what they were using at HR when I graduated.
That being said, tech interviewing in almost all current forms sucks and we need a better method. As has been said for years now.
To your point, any small typing mistake or mouse movements shouldn't be judged. Interviewers know you will be nervous during the interview. If they are discrediting candidates over that, they shouldn't be interviewing.
I was rejected with almost no feedback from a company this month. I feel I solved their live coding thing correctly using a recursive approach. However, I was told they didn't like my coding style, so they didn't move me forward. They also said I moved the mouse too much.
Mark Baum: I don't get it. Why are they confessing? Danny Moses: They're not confessing. Porter Collins: They're bragging.