I think that part of human nature is that people like people who are like themselves, so you sometimes get these insular / discriminatory sub cultures that judge people on superficial traits instead of the quality of their minds. From both this article and the tales of many friends, San Francisco strikes as one of these low-tolerance / high-discrimination places.
I live in NH, on a farm and work (mostly) remotely. I've got a network of contacts, I get pinged w requests for contracting work, I do the job, I get paid. No one asks me about my age (45) or judges me because of it.
Personally, I dislike places where people are provincial and close-minded, so I'll stick to the rural countryside and leave SF to the bigots.
The rapidity with which people flip the idiot bit on you, due to puddle-shallow signalling in the Bay Area really takes my breath away.
- The sound of keys clicking in a phone interview automatically means you are Googling the answer in an interview. Never mind that you are a dynamic language programmer and you are writing a 10 second scriptlet to answer the question.
- The mention of anything that sounds "audiophile" automatically means you are a terrible douche who naively believes in all of Monster Cable's woo. No need to actually evaluate what you are saying through knowledge of physics.
- You must subscribe to the magical powers of [insert paradigm/language here] or you are a dirty mudblood who's simply too dim to appreciate the magic. (Don't say anything like, "Soft factors, like how well your team works together, swamps the effect...")
- You must be able to mad-libs complete the paraphrase of recent CS textbooks, or you obviously never covered the topic.
This isn't even to mention weird prejudices and half-baked knowledge about older technologies. It's as if people didn't understand that https://news.ycombinator.com/item?id=5695816 is also a parody of programmers misunderstanding of technology.
This kind of thing is the worst in interviews. Like getting asked some fill-in-the-blanks question on the pillars of OOP or to define some random bit of jargon or what-have-you. That coupled with the "have you seen this question before" interviewing is just infuriating.
Quite frankly understated.
When I interview someone, I will usually ask if they've seen the question before, so that I can skip it -- is there something wrong with that?
I suspect that this was meant to refer to interview questions with an "Aha!" answer, that are unlikely to be answered correctly by people who don't already know the answer.
For example, I think, "How would you detect a cycle in a linked list?" is a bad question because, if the candidate implements Floyd's algorithm on the whiteboard, the likely assumption is that they remembered it, not that they came up with it on the spot.
In general I think there are two kinds of coding questions that are worth asking. Straightforward implementation based questions that should be solved basically as fast as the candidate can write, assuming they're familiar with the basic techniques. These are in the same vein as fizzbuzz and generally just give you a sense of the techniques the candidate has mastered (basic programming, bit-wise operations, recursion, etc.) The other kind are open ended questions that help show problem solving skills, knowledge of different algorithms and data structures, etc. These sorts of questions don't have the same variance as the secret puzzle questions. The amount of time to throw up a fizzbuzz implementation if you've seen the problem before should be about the same as if you haven't. And the same goes for open ended questions that are more about design, thinking, etc.
And of course you always want to factor in the problem of dealing with candidates who are nervous, in an unfamiliar and uncomfortable situation, and not operating at peak performance. You shouldn't expect production quality code for complex problems in those situations, you should be looking for code that gives you data.
1. If they're not aware of an existing algorithm, it's good to see what they come up with isn't terrible. It's insane the number of times I've seen unbounded time shuffle algorithms in production code. (Repeatedly pick a random element from src, linear scan of dst, and append to dst if not found.)
2. If they know a few famous algorithms, it's much more likely they're aware of the existence of lots of algorithms and are much more likely to Google for the pre-existing algorithm instead of making up something terrible on the spot.
3. A lot of these famous algorithms aren't as difficult to come up with as you'd think. When I first heard of the key schedule biases in RC-4, I thought about it for half an hour and came up with something identical to Fischer-Yates, using the unbalanced Feistel cipher at the core of MD5 (unfortunately, killing the speed advantages of RC4). Years later, when I heard there was a name for the algorithm, I checked Google to see if they had included the back-to-front optimization, and sure enough, what I had come up with was identical to Fischer-Yates.
This area has a high density of people who conflate academic computer science with software engineering, or who think the latter is some easily learned demi-skill to be looked down on, etc.
Which is mind boggling. I took an introductory "software engineering" class in (a reasonably prestigious) university ~15 yrs ago which was ostensibly about learning how to use the right tool for the right job, and one of the assignments was to build a web application in C++!
Perhaps the intent of that assignment was to show that it wasn't the right tool, but that was certainly never communicated by the professor.
I didn't really learn any software engineering until I got my first job and had to build software, with a team, that people actually used.
As an aside, we were doing this in the mid-late 90s (NSAPI) and we were running rings around Perl/CGI shops. Why? Because what took them a whole rack of machines took us a single box, and we simply skipped all the issues of syncing data, accessing a shared database with locking etc etc etc that they had to deal with.
Right tool for the job ;-)
Edit - There a quite a few frameworks out there. This one seemed quite nice: https://github.com/ipkn/crow
1. There isn't a low-level performance bottleneck within most web-dev code. It's almost all occurring at levels slightly above that(disk access, network bandwidth, database queries, horizontal scaling). The stuff that needs to eke out another 50% in an inner loop through optimizing cache access or careful use of hardware parallelism tends to be a single algorithm or batch process that can be developed independently of the larger application.
2. For eliminating whole categories of errors, there is a bounty of options out there that can claim to improve on C++ through better tools, type systems, and compiler technologies. Even Java, as maligned as it is, can constitute a credible step forward.
3. Good C++ developers aren't that common. There are plenty of junior developers who are eager and ignorant of the potential dangers, though - they will make a mess in any environment, but they'll make a bigger one when given power tools. (This is the argument for Go, and w/r to the case of low-pass-filtering junior devs it definitely makes sense.)
1. There are a number of reasons one might choose C++ that aren't related to low-level performance in almost any application. For a particular web application it may or may not be a good choice, but I wouldn't categorically reject it, even for a class project or assignment web app.
2. Any language or suite of them has whole categories of errors, deficiencies in tooling and other issues that can make it suitable or not in the hands of a given team. C++ has more or fewer of these than other languages depending on the context.
3. This seems to be hurling a pretty broad insult at many C++ developers, and "good" requires context.
The requirements were specifically to build a game, any game, and as long as it was playable (and your code was readable) you'd get an A.
So, annoyed as I was at the requirement that the backend be built in C++, I decided go above and beyond the requirements and built a single page Othello game, complete with a strong and fast AI (I happened to take this class much later in my studies than the standard curriculum called for, so I had already taken an AI class and had learned how to build a minimax tree with alpha beta pruning, though up until that point I'd only ever done it in Lisp).
So, by changing the actual requirements of the project, I actually made C++ a more appropriate choice of tools for this project and was able to build a very responsive single page Othello game with a strong AI capable of running pretty fast on the hardware we were tasked with using.
I was the only one who used Ajax to make it a single page app, and the only person to build an AI. Needless to say, I got the best grade in the class, but I suppose I had an unfair advantage.
I've often wondered about this. c++ has a tendency to fail fast and hard whereas higher level languages can lead to a false sense of security/understanding. Blowing your foot off isn't necessarily a bad thing.
Only recently a friend of mine narrated an interview tale. I don't exactly remember the precise question, but apparently he was asked to solve a problem in 30 mins(Two problems is what interviewer expected him to solve in an hour). One of such problem apparently he couldn't solve it in the time complexity the interviewer expected him to. Though he got some solution working in an hour.
He later on went and googled it and apparently the algorithm couldn't be solved unless you knew about Suffix Automata(http://codeforces.com/blog/entry/20861)
Long story short, these days apparently without everyday exposure competitive programming exercises(spending hours every day on sites like codeforces, SPOJ and hackerrank) there is no way you can clear interviews.
Reminds me of the Aho-Corasick string-matching algorithm.
Edit: in a further comment, you assert an unspoken insult being communicated in a perfectly neutral sentence. I guess what I'm saying is I bet you bring quite a bit of the negativity you experience to your interactions.
I am not convinced that your assumption about his negativity is any more valid than his interpretation of his experience.
My own experiences in SF has been positive. I've found people are generally very excited about what they are doing in life, optimistic about the future and most importantly, willing to lend a hand. (This is in huge contrast to the cut throat image of the valley in the media; while individual startups and industries within tech may be cut throat, I wouldn't describe SF tech world as "generally cut throat")
One thing to keep in mind is SF has a fair share of folks who move here for their first job. These people are just entering the workforce and are maturing more, not less, each day. I've seen some pretty radical transformations of the same people over 1-3 years. A lot of the portrayal of the Valley in the media is of a fixed non-evolving mindset, which again, is the opposite of my experience.
It was entirely certain that he did not understand that he repeated the 2nd option I gave him. Furthermore, when I tried to correct him, he behaved as if I was lying to him.
I take it you're not familiar with the wonder that is Yes, Minister?
(More broadly, and to explain the joke for the benefit of HN, a large amount of British oblique humor and especially political and civil service culture relies on the art of the indirect insult.)
I like that quote. Copied it to my notes for future reference.
To expand more on the topic, I wonder if remote workers are a good way to bring some revival for smaller rural communities.
I visit some of those places and many have a beautiful setting, everyone knows each other, there is a sense of a community. It is quiet.
There is probably a tipping point where if enough companies would hire remote workers, people won't be afraid to move to such communities. Currently many (including me) even if they do remote work, would probably be hesitant to move, because if they have to jump ship, they know there is a smaller chance of getting remote work again. So staying closer to a tech center seems like a better option.
The advantages I've had by moving from Arkansas to here have been numerous, and mainly this is due to human nature causing companies with enough co-located employees to leave remote workers out of the loop.
The OP is right though: I find the "herd effect" that occurs from a bunch of very similar people especially potent in SF. What's funny is how diverse they think they are based on superficial traits like maybe ethnicity, but the reality is they tend to be very uniform in socio-economic background, age, and education.
But for a developer working from home the company can't tell the difference between a bug that took three days of plugging away to find and one that you knocked out in twenty minutes before binge watching House of Cards on company time.
Most professionals have enough personal integrity to work when they say they're working, but the ones that don't can be very corrosive to morale and a big drag on productivity. I got the impression that's why Marissa Meyer forced everyone at Yahoo back into the office.
I'm more productive this way. Having something like House of Cards on in the background provides enough distraction that I don't get distracted by other things, like HN. But if I were to do this in the office I doubt it would go over well.
I can damn well see when a issue has been entered in a bug tracker and when the bug has finally been marked fixed with the commit listed in the bug tracker..
So can everyone else including managers
Relying too much on commits / tracking tools is a red flag of poor management.
If any of my team reported "still working on bug X" in the standup 3 days in row, without any significantly interesting details, I'd have assigned a few more people to help out.
Something as simple as a software review board, which places time estimates on a problem agreed on by a panel of at least 2 developers and then a process to check those estimations against actual results to find how far their estimation deviate from actuality across all developers, gives a fairly accurate picture of how long something should take and becomes more accurate over time. Further automation like linking the ticketing system to the SCM, so that when a branch is created for the issue the clock starts ticking and stops at checkin/smoke test, gives a pretty accurate picture of time spent on a task. Any developer that is deviating far below the low threshold is potentially wasting time and his/her work should be reviewed, as it is only an indicator that there may be a problem not conclusive proof.
I have worked remote for over 7 years, and currently reside in a very remote area for developers (Key West) and have no issue with remote development. Either a company has these process in place or I quickly put them in place. That or find other remote work as my only bad experiences have been with companies that do not have such measured in place. It's not a hard problem to solve one just needs to know the problem domain, most managers don't, so they just resort to the butts in seats management style and honestly without similar controls the same kind of time wasting can be employed, it just manifests itself differently but incompetent managers figure well they are here so work must be getting done.
I can easily check the code in at the end of my television spree.
The presumption is that remote means lower value or productivity as a default in classic companies. It's not necessarily a matter of luxury either; your C levels don't work from their yachts in a marina normally. Some are just too rigid in approach to change how they work even if it's demonstrably negligible. I had a client before that had a mostly distributed team and wouldn't let us increase the hourly rate unless we relocated to an office - few people even at the offices ever talked that often and we hardly ever met in person with the client ourselves even for those five miles down the road.
The usual tech company reasoning now is that the tools for remote work do not facilitate creative, spontaneous insights that are critical for competitive companies.
The cheapest house I've seen in Boulder has been around $450K. If you want a condo or town home in Boulder, you're looking at about $270K and that's probably going to be on the out skirts of town and built in the early 90s.
There's also permanently affordable housing. They are subsidized properties that you have to qualify to purchase, but you can't re-sell them for more than you bought them for. I've always made too much money to qualify, even right out of undergrad with a BS.
However, like all programs like this that are a stupid fucking band-aid for NIMBY assholes interfering with the free market, they are neverr enough. It's an incredibly long line of people trying to get each home, and might as well be a lottery. These programs don't help the people they claim to. They are nothing more than ways for rich hippies to feel a little better after they vote for policies that set de-facto financial segregation firmly into place.
People aren't buying houses to flip in six months, they are buying them to hold onto long-term. It's pretty clear that public policy isn't going to shift towards affordable housing any time soon. So the only options are: continue to pay high rents and wait for people to lose their jobs/homes so they can be bought cheaper, or buy now and hope you don't become one of the former.
If we start seeing houses sold multiple times in the same year, or people starting buying homes that they clearly can't afford, then we have a problem. But I don't see evidence that is where the US is. The housing shortage is ensuring that only those top earners are competing. Price are driven up by the fact that the top 20% of buyers can afford to outspend the bottom 80% on housing by a factor of 5 or more.
An additional $500/mo can cover another 100k for a 30 year mortgage. A couple making around $10k/mo after taxes can spend $5k/mo on a mortgage and still live comfortably while a median income couple earning maybe $4k/mo can only spend $2k/mo before things get tight. So, the high income couple can easily afford a million dollar mortgage, but could stretch that to $1.2MM if they really had to while the median earner can only spend $400k MAX.
Boulder itself has ALWAYS been expensive (even when I was in college in the early 90s) for housing. If you're serious about relocating, look at some less insane, but very close communities that the majority of the "Boulderites" live in:
You can have a "reasonable" commute, and a less insane house price in those areas. They are all bedroom communities for the area... Personally, I lived in Louisville and Lafayette at least half of my time in the county (the other in Boulder proper, renting, always).
There are always options.
Check out Gunbarrel, it's about 7 minutes away from Boulder and is still somewhat reasonable. Although my SO bought her 30yr old condo for $165K in the Fall of 2014 and Zillow is now saying 302K, LOL.
We were supposed to get a modern "rural electrification project" in the 90s for broadband, but cable companies stole the money, aided and abetted by Congress.
Depends, REI has better internet for ND than anything I've seen elsewhere. Some of the rural telephone companies do quite well. Its really luck of the draw.
> We were supposed to get a modern "rural electrification project" in the 90s for broadband, but cable companies stole the money, aided and abetted by Congress.
The key part of the last bill that killed it was the requirement that "broadband speeds" were not available in an area. The bill didn't specify a minimum price or that its was universal to the area. So, it pretty much killed a lot of attempts because broadband is available for $1,000 a month.
My parents are just about to install an 80' tower on their rural property, because a local WISP is the only unmetered option available.
I feel like the cellular revolution has really crippled itself by virtue of nearly all "cellular wifi hot spot" plans being data capped to some number of GB per month. There's just so much culture I can't share with my parents if they can't spare the data to watch online video.
This situation becomes only more frustrating each time you hear about a provider upgrading their network to an even faster technology. "Cool, so now I can exhaust my monthly data plan in... 10 minutes?".
(Somewhat similar to the frustration of seeing Apple make thinner and thinner devices, rather than throwing in a bigger battery -- is this really what your customers want?)
I was told 8mbs down and 2mbs up. That worked great for about 6 months and then it started to degrade month by month. I assume as more people subscribed to the service. By the end of 3 years I was only getting about 2mbs down and 700kbs up. (at 3am I might get 5/1). Worked ok for browsing facebook, but the main issue was really bad packet loss on the upstream end.
Through reading many of the administrator manuals for the antennas I found online, I came to the conclusion that it was just bad technology and exacerbated by inappropriate default settings. The gist of the way the canopy protocol works is that it is very easy for the AP to transmit data to an end point. The problem is how the data is transmitted to the AP from the customer end point device.
It must first send a request to send (RTS) and then wait for the OK. By default the AP's are set to 10 miles line of sight, which adds in even more delay for the timings. The end result is for a busy AP, most of the RTS requests will be ignored. Which works ok for browsing the net, but I was getting 5-20% packet loss on upstream, which basically meant talking to people on my voip office phone sounded fine to me, but people on the other end only heard bits and pieces of what I was saying. Trying to VPN into work was very painful too.
I dealt with that for 3 years before I finally realized that ATT had 6mbs dsl for $60 a month. I switched and was so happy.
IME when correctly configured Canopy is one of the most robust last mile fixed-wireless systems on the market (though LTE may change that), but it has to be configured correctly.
The main feature of Canopy is GPS synchronization of tx/rx timeslots so you can reuse spectrum. A lot of WISPs bought it for that and then never changed settings because they didn't understand how the sync worked and didn't want to change a setting that alters timeslots and break sync. Never mind that there is a built-in calculator to help you figure that out...
Getting 5-20% packet loss upstream indicated they were doing something terribly wrong. Perhaps they screwed up timeslots and the AP received interference from other APs causing errors when listening for your SM, perhaps they didn't add control frames after their subscriber count significantly increased, or they simply oversubscribed the AP. The most widely deployed Canopy version (gen2 PMP100, came out in 2004 and still widely deployed) could handle up to 10Mbps down & 4Mbps up. Selling 8M/2M plans on that platform is a bit ambitious but unfortunately all too common.
Try rural Sweden.
This is sad but not unexpected since politics and big companies play in this space.
>I visit some of those places and many have a beautiful setting, everyone knows each other, there is a sense of a community. It is quiet.
Depending on what part of the country you're talking about, many of those beautiful small communities are very bigoted also -- and not just in the South.
There are absolutely small towns where open discrimination is a problem. And there are absolutely small minded jerks that have a problem with people of color.
But what I've observed personally living in the south and travelling the country is that the south is often less functionally segregated than other areas of the country. It's sheer demographics if nothing else; when the population of many major southern cities are majority minority, then it's difficult for people to avoid living and working next to each other.
Where the dynamic gets really interesting because of all this is with people that want to fight inequality, but don't realize that they have a massive blindspot when it comes to what functional racism looks like because they don't actually live in functionally diverse environments.
>But what I've observed personally living in the south and travelling the country is that the south is often less functionally segregated than other areas of the country. It's sheer demographics if nothing else; when the population of many major southern cities are majority minority, then it's difficult for people to avoid living and working next to each other.
Functional racism (or any other "ism" tends to follow groups with enough wealth to insulate themselves from people who are different and people who have so little that they need to be reassured that no matter how little they have they're always better than someone.
>Where the dynamic gets really interesting because of all this is with people that want to fight inequality, but don't realize that they have a massive blindspot when it comes to what functional racism looks like because they don't actually live in functionally diverse environments.
This. It's like a bunch of 5th graders debating foreign policy.
Only if there was some sort of a "survey" on people's attitudes in different parts of the country. Perhaps people with competing ideologies would represent one side or another and then the general public would decide to pick one of those choices to represent the majority view from that area. This way we'd actually know what a majority of the population in a given state/region believes.
Of course it would suck for the reputation of a certain part of the country where bigoted, white supremacist people keep getting the majority votes year after year, decade after decade. But I guess that reputation would be well deserved if those representatives keep winning so consistently for so long a time.
It's a mix that requires. A different lense that most don't have.
I grew up in liberal DC, and then went to texas. I'm now up north again, but my view of the south has changed dramatically.
From the responses I've gotten, I feel like people think I'm saying the south doesn't have very real problems with race. It does. But the daily reality is much closer to what you're describing.
I wish I could 1984 myself this throughly. My life will get so much easier.
I explicitly acknowledged that there are absolutely still real problems with race in the south. Things like the state of Alabama implementing voter ID laws and then shutting down DMV offices in poor black counties absolutely happen.
But what I was talking about was functional racism in terms of daily life. While many southerners absolutely say and support shitty things, it's not on the level of mid 20th century Jim Crow and other parts of the country aren't the relative panacea they perceive themselves to be. In completely functional terms, many of those areas are more racially segregated and/or isolated than the south.
Again, when demographically many cities are majority minority, there's more of an intermixing by necessity. That leads to blindspot in perspective of people that don't live in those environments that they don't even realize they have.
It's not limited to race; there's a similar very real problem in the media business where there's an inherent bias toward jobs going to the children of already affluent families that academically understand poverty, but don't fully understand how poverty functionally affects people because it's never been an inherent part of their lives.
"But what I was talking about was functional racism in terms of daily life"
I think you're the one missing the point here. If disenfranchising a large part of the population based on their race, by politicians who more or less campaign on this sort of platform (though in coded language) and win elections repeatedly is not "functional racism", I don't know what is.
And of course you know very well that voting rights is not an isolated case of the racism exhibited by southern states.
That is not to say that only the southern states have racist people but what this sort of blatant, racist policy-making at the highest level is signalling to people of minority races is to stay away from those states altogether if you can. There's a reason immigrant communities are strongest in states like California and NewYork and not Alabama or Mississippi.
Is it "assuming" when you base your opinion on things said by federal courts?
This is based on living in other countries, mostly in US though, in both poor and rich communities, some were diverse poor and diverse rich.
Edit: It looks like Nex-Tech now offers gigabit internet. It's around $200 a month with cable and phone but to be fair it's rural Kansas. I use to pay $65 for their 10/5 when that was the mid-tier Internet only package. So they've really improved their service.
the recent trend in insane housing prices has definitely accelerated it, just from my circle of anecdotes.
I think a lot of the startup failures of really early stage startups might be due to the entire team being exactly the same age and right out of college. So they make mistakes that have been made many times before. Put another way there are many mistakes that can kill you and the more experience you have on your team the better you are at identifying them-- but you have to have innovation and new ideas too.
Which is not to say that any of these sets of characteristics are exclusive to a specific age -- this is just generalizations.
It's the older women who rock both architecture and quick execution. :) ("I'm sorry, but you opened the door, counselor")
Age does not immediately confer advantages or disadvantages - we just often use it as a proxy for "experienced", "more methodical", "slower", "inflexible", "good mentor". (Your pick here)
All of those are independent of age. Please don't compose a team by age. (Speaking as an older person. I bring a lot of things to the table, but my birthdate isn't one of them)
Like I said, you want diversity of ages. I'm in my late 40s, I work with 20 year olds and 30 year olds and a guy whose even a fair bit older than me.
Hire the best people first, then make your team diverse, both across thinking and across ages and across everything else.
But there's a synergy I've noticed more than once when pairing a 40ish with a 20ish. OR even a 20ish, 30ish and 40ish three person team.
I'm obviously not (and it should be clear in the above message) calling for quotas, but it's a good goal.
Homogenity reduces ingenuity.
You can't have 15 years of experience in [whatever thing] when [whatever thing] didn't exist 15 years ago.
Note: 15 years ago = 56k internet, paying by the hour, for the 0.xyz% of select few people on the planet
Some of the details have changed, the languages, the size of the databases, the devices involved, and a million frameworks for front end have come and gone.
Some of the time 20 years experience feels like 4 years experience repeated 5 times with different buzzwords. The same screw ups, the same lack of understanding from missing the same point, the same management wish to do SEO and security later. Or to budget 2 weeks for bug fixing.
Now you know 5-10 languages all with good and bad points so tune out most of the zealotry of the latest fashion to try and get to real distinguishing points.
All that experience can help a lot. It's far from dead. We can even have the same emacs vs vim argument that happened in 1990.
To quote the other comment: "20 years experience feels like 4 years experience repeated 5 times with different buzzwords".
There are two things which come to mind and that I'd like to point out.
- Each 4 year cycle is bringing less and less experience. The guy who is starting now is going to work for at least 45 years. We could say that it will be a tremendous amount of experience, but it's more likely than he will not be able to sell > 30 years of experience. [it's challenging and not specific to tech work]
- There exist no people with > 30 years of experience. That's not to negate the handful of these guys in the SV and a couple of research centers across the world. Relatively speaking, the amount of people with 30 years of experience is roundable to zero.
- Corollary: It's difficult to know what it's like to have 30 years of experience in the current market.
- Final word: Shiny technologies are only affecting the 20 years old bro coders in the 70 hours web startups. The bunch of the jobs are still in old school industries like medical/aerospace/finance/government/contracting who stick to old school tech and never upgrade.
You couldn't pay me enough to live in a place like SF.
I'm curious; where in rural Arizona are you based off ?
I get paid less at this job than I would if I was willing to commute to the city where my office is located. But I consider the mental and emotional benefit of not having that daily grind to be worth more than the wage gap.
I greatly prefer to slow pace of country life after a day working, whether at home or in the office. The technology industry is stressful enough without the added stress of city dwelling, in my opinion.
* be an excellent communicator
* be high bandwidth. F2F, skype, etc.
* be a whole stack developer
* manage "up". Think of things before your manager does, alert the manager to dangers and problems, give expert advice, avoid the problems. Managers love people who solve the total problem; they hate people who solve one very very narrow niche problem and then leave them (the manager) dealing with a leaky bag of shit. Saying "well, that wasn't in scope!" does not make them happier about holding the leaky bag.
I guarantee you that no one bidding $5/hr and working on a timezone 12 hours away delivers this.
So, to recap:
1) work in a city when young
2) make contacts
3) be good at what you do
4) manage up ; solve the REAL problem
Do that and you'll have lots of work and make good money.
I agree, and I hate it. What happened to the days when I could just be productive? Now, I have to spend hours "working as a team" (ie, socializing) on Slack. I hate it so much that I've dramatically cut down on the work I do. It's not that I'm asocial, it's just that I don't want to be exchanging memes when there's work to be done. I want to do the work, and do it well, so I can spend time with my wife and kids. Work for work, socializing for after work.
Even with IRC, it didn't use to be like this. What happened?
For the record, I'm not talking about being responsive, or good communications. That's critical. I've always responded to client emails within 2-3 hours (I break up my day into 3 email checks). But I find it impossible to get much done with teams that expect me to hang out in Slack or Hipchat all day long. But the younger kids love it. Maybe they code and chat at the same time, I don't know. I can't do it.
Doesn't anyone just hire people to do a job anymore? Are even contractors doomed to spending their days "meshing"?
What I'm talking about now is working as a contractor/freelancer for short-term projects, like even as short as 3-4 week projects. Most of the good freelance jobs expect you to be on Slack coordinating with their team in Eastern European country X. It really didn't use to be like this, I used to be able to make good money as a freelancer just coordinating with other freelancers and the contracting company/individual a few times a day. And in my opinion, it worked a lot better. Yeah, the irresponsible devs can't screw around as much if someone's keeping tabs on Slack, but the productive ones are significantly less productive this way. And why would you hire a remote freelancer you didn't trust to do the work?
And jobs that are paid per job and not per hour aren't any better, in my experience. Everyone has to be online, checking in, chatting, exchanging memes.
Maybe I've just had a streak of bad luck this year, but it definitely seems to be a significant trend.
I don't know, maybe I need to make a concerted effort just to work for small businesses, and not start-ups or mid-sized companies.
You work with people. Those people know people. They know other people. Someone says 'I need a good PHP guy' and a guy in the network replies 'I know a guy, SadWebDeveloper - here is his email address'. Boom: you have made contact with someone who wants to hire you.
Join the Whatever User Group in your area. Go to the meetings - introduce yourself. Be a presence on their mail list. Boom: more networking contacts.
This is a really good example. TJIC and I have talked on the internet for -years- via email and twitter and blog. A customer of mine mentioned she was looking for a local developer (Los Angeles) but couldn't find anyone who met even her minimal standards.
I said 'Hey, I know a guy', he lives 8,000 miles away, he's about a hermit and a half, and he knows his sh*t' and a few weeks later TJIC got some months of work and everyone was happy.
And now, here we are, talking. Maybe I can be converted to a networking contact. You never know, hunh?
No they don't. And your solution to not being stuck with closed and insular groups is join some closed and insular groups so that your name can be passed around as one of the group.
All you have to do is set your mind to it.
...and you're doing a great job so far!
* I emailed a band I liked whose song was featured as Demo Of The Month in a magazine, asking to buy all their CDs. We kept in touch, and months later they asked me for some (free) advice about setting up their website. Later again, one of their friends was looking to hire someone & they recommended me - I worked remotely for them for 10 years.
* I wrote a script in PHP and made both a free version & a paid version, then mentioned it on a forum. I got a handful of sales, but one of those customers liked the code quality so much they asked if they could hire me for contract work. That work was done remotely too.
* I went to a blogger conference overseas & before I went I made a Twitter list of all the attendees, read their tweets and made online friends with a few who I found interesting. I met some of them at the conference, and one of them I kept in touch with for a year after the conference. We grabbed some coffee when they visited my city, I mentioned I was having a slow work period, they mentioned they needed someone technical, and we worked together for a couple of years. Again, mostly remote work (though I did fly to their offices every few months).
Instead of being negative, plant the seeds now. Start making friends, keep those friendships alive, keep letting people know what you do, keep creating proof that you're good at what you do (even if it's your own projects). It's a long process and it still won't guarantee you work, but it will give you a much better chance of offers coming your way. That's what worked for me anyway.
Therefore it works for everyone.
There are lots of people that do not make friends easily. There are lots of people that do not have friends in the industry that they work in. There are lots of people that have moved very far away from any friends once or many times in the past few years and have either completely lost contact or don't have friends that would be in any position to throw other contacts your way.
So no, it is not just go make friends and everything will be great.
> No they don't.
Could be you are a deaf and mute yak herder in Outer Mongolia and suffer the heartbreak of psoriasis. Your situation is unique and you have my pity.
For those of us in the mart of competitive commerce there is no possible way a person can exist in this economy without knowing people.
> join some closed and insular groups
You have no idea what you are talking about.
You have my pity.
It may very well be that the best way to kick start your career is to move to SF or some other big city. So be it. I did the first 20 years of my career in the Boston area.
I have no idea what you mean about websites being racist. For picking lower cost developers? It seems odd to call people who give work to people in other countries "racist". Isn't doing that exactly the opposite of racism?
I'm telling you not to use those websites.
Move to the city, make contacts, do good work.
Or establish relationships with people instead of lowest common denominator platforms and let the quality of your work sell itself?
Word of mouth and personal recommendations are worth more than how many stars you are on a platform.
Just so your communication skills improve, discrimination is not the same as racism.
I got a lot more relaxed about language after reading numerous books by linguists (because that is their attitude, they just watch what is going on). In this context, I think the train has left the station (as we Germans say, "der Zug ist abgefahren") and "racist" now indeed has a new much wider meaning in public discourse contexts. It now seems to include "being different", in not necessarily clearly defined ways, the exact nature of the differences are to be taken from context.
I could just yesterday or today read about "racism" in a Guardian article about an attack on a Polish immigrant somewhere in Britain, who certainly wasn't of a different race . However, I'm very relaxed about it - everybody knows what is meant. Also, a shift in meaning in some context does not mean the stricter meaning of the word is lost! The exact same people who may use a word loosely in one context use it with its strict meaning in a different one. If you start talking about biology this will happen. Words and language are extreme flexible, and such a change is not the end of the world.
I think their is some justification: When the word is used in such wider meaning it's more about the effect, not the cause.
My motto for language is the same as in programming: Be as lenient as possible with input - but be strict about output. In the language context that means I won't criticize when I actually clearly understand the meaning, but I myself try to use the right expressions, grammar, punctuation, etc.
 https://www.theguardian.com/uk-news/2016/sep/12/polish-man-a... (sub-headline: "...they are treating incident ... as racially aggravated")
The term is used because the person being attacked was thought of as being of a different "race" by their racist attackers (and because that's the reason he was attacked; bot for being non-heterosexual, or for being a fan of the wrong football team). Not because one is in agreeance with the alleged "racial" distinctions (in the mind of the racist).
der Zug ist abgefahren
In English one would say "the horse has left the barn."
At least in my native English speaking world, we also say "that train has left the station". It's even listed as a cliche on a MetaFilter page on cliches and hackneyed sayings.
We also say "that ship has sailed".
But the cat's out of the bag now, so what can I do?
> Not because one is in agreeance with the alleged "racial" distinctions
> (in the mind of the racist)
That's the thing -- "race" doesn't really have a biological meaning. If anything it's just a vague suspicion that certain people are inferior or "alien" because of their DNA, the breeding, or simply their cultural upbringing. Of course it's all invented tripe, and biologically speaking it's equally untenable (from a biological point of view) to think of Poles, Anglo-Saxons and Italians as being of different "races" than it to think of Africans or East Asians in those terms.
But racists aren't the smartest bunch, you know, so in fact that's pretty much exactly what they think.
> "race" doesn't really have a biological meaning
And now the meaning of that word has shifted. That is all I said.
The idea of having to give up working on my startup goals after 20 years of continuous failure is in itself terrifying enough - But combine that with the fact that I might be penniless; forced to join a mega-corporation to become corporate cattle.
... In a company filled with arrogant lucky people in their 20s bossing me around. I couldn't take it.
I fear the next generation. I think MY generation is already so arrogant - We severely underestimate the value of experience.
I was one of the few people lucky enough to learn that lesson early though.
I once worked with a lady (a software engineer) who was in her early 40s and she always said that she never really cared much about her work. She always left work on the dot.
I was 21 at the time and I had been working like crazy since I was 14 but even back then it was clear that she was a much better software engineer than I was. For me, my career was the center of my life; for her, it was just a way to pay the mortgage.
In spite of what the media tries to tell us; 7 years of obsessive, passionate labour is not more valuable 22 years of 'bare minimum' labour. That's how valuable time is.
You hate where people are close-minded so you're _sticking_ with the countryside..? It's possible that NH countryside is different than the other small towns I've visited, but I have zero data points on that. Another discussion, another day.
I lived in SF for five years and performed a couple of hundred interviews for the companies I consulted with. Software engineers have the capability to produce millions of dollars in profits with the right product. People can quickly get over prejudices if they think you will be able to produce that million dollar product.
Keeping up with the startup Jones's is about relevancy. No one wants a senior engineer barking at them babbling about how "Smalltalk did the same thing 20 years ago and now we're just reinventing the wheel!".
Do yourself a favor in the interview; do a bake off of old style vs new stack implementations. Compare and contrast. It shows your vast knowledge. And it quickly graduates you from grumpy old programmer to a mentor for the entire team.
New web/mobile based companies start all the time in SF, and with each new fresh start comes the chance to wipe the slate clean and choose a newer stack that may provide a competitive advantage. Reactjs with redux right now, but probably something different in a year. New companies. New choice of stacks, all the time. The tides change quickly in SF.
If you've been turned down by a Bay Area startup, I guarantee it's much less to do with your lack of skinny jeans or because you have some grey hairs..
P.S. Also, you're a consultant. You obviously have an understanding of client relationships. Understand that your clients in SF are going to skew younger. One of my best friends was the CTO of a startup where the founder was 20. He was 45.
You may have a team of fresh-out-of-Berkley-engineers and that's it. If you're not comfortable in a mentor setting, you may also get rejected. At a later stage in your career and with a young team, you're expected to contribute more than code.
This is only true for startups and other companies that have small budgets or need cheap labor. If you are going after the high paying contracts you'll quickly learn that being 45 or older is often an advantage if you have the necessary experience. (not just technical skill but also social skill)
These corporations aren't going to allow a 25 year old consulter to come in and take lead of a team or a product. (except if the person shows truly remarkable skill)
If they hire young consulters it usually means they want someone that is cheap to hire and easy to fire.
Naturally that's just the most extreme example; far more commonplace was casual ignorant small-talk generalizing about "the blacks"/"the coloreds"/"the hispanics" in gas stations/convenience stores/the barber/etc. And the soft bigotry of low expectations absolutely permeated an area where people could and did go months, years without seeing a nonwhite individual in person.
You don't have to think I am funny any more than either one of us thought the idiot with the car was funny, but the purposeful, obvious misunderstanding of hate-speak accompanied by finger-pointing and laughter is a valid method of calling out idiots. And I think we can agree that the dude with the car was an idiot.
Anyway, I don't think anyone is saying that it's 100% impossible to find tech work if you're 45. I'm sure there is work, and I'm also sure it's the case that Bay area tech is different from elsewhere. But one of those differences is what gets produced- nobody is designing the iPhone outside of SF Bay, to put it bluntly. And it's important that work at that level is not age-discriminatory.
I'm 35, just started at a Bay area company, one that makes really nice products and has some of the best designers anywhere. And I can already see it coming, so many of the people I work with are 25-27. The people who founded this company are a good bit younger than me. The grey hairs are people like the general counsel. Sure, nobody asked my age, and I look younger than I am anyway. But still, I see it coming.
There's a real irony that tech in "liberal cities" is provincial and close minded and you are avoiding that by being in the country on a farm.
Also: I have never had trouble getting jobs in the Bay Area, though I moved before I turned 45. I did however work with people who were late 40s/early 50s and engineers, so I didn't see a huge age prejudice.