For HN, I get the impression that they don't really want to be all that optimized for Google, so it probably hits their goals just fine, but it probably does hurt them a little bit. But since the words are in an H1 right at the top, probably not all that much.
Edit: The code in case anyone is interested:
It's easy to code
Is there an SEO impact?
Probably, but as SEO is search engine optimization, if a site doesn't care about search engines, then it also probably doesn't care about optimization of those searches.
And in this case its actually a good thing. If you scroll through the /new pages as I do you will see that a lot of people try to use HN like Reddit as an SEO tool to get more views to their web site. That can be facilitated by a link baity headline cum URI which gets indexed with the keywords of interest of the day.
By simply putting 'itemid' in the link text HN gives very little "link love" to keywords and so is not as easily exploited by "digital presence" folks (aka people who try to SEO their client's sites or products).
My impression is that this would be a simple way to produce a RESTful interface. When the resource is a file on disk, how complex does application layer routing have to be?
Anyway, my guess is that general SEO is not particularly high on the list of features to implement. On the other hand, if adding Algolia and the API then it's another story. That was also a substantial improvement to the feature set. It might even turn up the aforementioned discussion about the file system hierarchy [I think PG wrote the post].
What is the reasoning behind only an itemid in the URL for HN?
Like someone previously mentioned, easier to code, less thought required around site architecture and optimization
Is there an SEO impact?Yes, from a basic standpoint, descriptive URLs are easier to crawl, index, and rank accordingly. They help readers find info better when searching for questions + answers
From a more highlevel standpoint, descriptive URLs and an optimized site structure helps in many ways including SEO, analytics, accessibility, and more. Reddit does it well
However, if your overall site structure is one that has topics and subtopics or categories and subcategories, it would help the user see that site structure. For example, in the reddit example above, users can get directly to the askscience subreddit by removing part of the URL and going directly to https://www.reddit.com/r/askscience/. Setting up URLs like this is a good practice, the URL would then follow the site's breadcrumb trail.
For H/N, I don't really see any benefit, at this point, for using keywords in the URLs. There's just no SEO benefit.
- Shorter urls are easier to copy and share.
+ Keywords in the url may increase search engine rank.
+ Full title in the url helps readers know what they're clicking.
There are advantages to having the full title in the url for both SEM and readers. However, as others mention, HN wasn't designed for SEM and contains no ads to profit from it.
It's well know that pg doesn't want this site to have mainstream appeal, so having HN articles list high in search engines would probably be a problem they would want to avoid, but also, submitters shouldn't have an incentive to use this site to boost their own SEO by submitting low-quality linkspam.
If it were me, I would go even further and route every link through a dereferring proxy just to mess with their analytics as well, and block everyone except maybe IA through robots.txt. For a site which is meant to be about discussion and thought-provoking stories and not content aggregation for the sake of ad revenue, I think SEO is a cancer.
So is PHP more powerful than Lisp? (/s) His logic suggests so (given the relative performance of Viaweb vs Facebook).
Having great programmers matters more than using any specific tool.
 from http://www.paulgraham.com/avg.html
"It must have seemed to our competitors that we had some kind of secret weapon-- that we were decoding their Enigma traffic or something. In fact we did have a secret weapon, but it was simpler than they realized. No one was leaking news of their features to us. We were just able to develop software faster than anyone thought possible."
EDIT: Added (/s) since sarcasm was apparently nonobvious
> Another figured something else must be going on: Could this bea lie? To throw off competition? Its not as though Paul Graham hasnt hinted at this tactic in his essays
That being said, "right" is very different from pg's "powerful", especially as he says:
> Lisp is so great not because of some magic quality visible only to devotees, but because it is simply the most powerful language available.
In my opinion (and this person's), Lisp is "powerful" in that it lets you express anything quickly and easily in a way that makes sense to you.
That doesn't mean it makes sense to anyone, nor does that mean it's compatible with anything else.
And where he says:
> What's less often understood is that there is a more general principle here: that if you have a choice of several languages, it is, all other things being equal, a mistake to program in anything but the most powerful one.
I feel he is sorely mistaken. The best programming language for the job is the one that most easily and quickly fits the requirements, given your experience level and the intrinsic attributes of the languages in question. That may be less true when you're working on a personal project rather than one for work... but from an engineering standpoint, development speed is very important.
PHP may be near-universally reviled as a language, but I won't contest the fact that it runs anywhere, quickly. If you needed to quickly put up a blog at least some time ago, the answer was almost always "use Wordpress and PHP".
Python is slow. Painfully slow. Slow as in "it stores the entire AST at runtime and lets you modify it while the program runs" slow. But it's also great at numerical computation with numpy. And it's enormously flexible (which is what makes it slow). And it's clean. It writes really well. For a quick mathematical processing program or website whose code needs to be legible, it's great.
This goes on for just about any language. There are reasons to, and not to, use a programming language. It's not just "power" that's important, it's a number of factors. I hate many languages with a passion, but I'll agree that those languages still have their uses. So I disagree with pg here.
Look at some of the largest tech companies and what languages they used to get big:
- Facebook: PHP - Twitter: Ruby - Dropbox: Python - Box: PHP - Github: Ruby - AirBnB: Ruby
If you move away from his objective claim about Lisp's "power" to a subjective metric based on "the right tool for the job", then sure. (Though reading e.g. Hackers and Painters, his argument around Lisp was specific to the power of that language.)
PHP perfectly fits the "move fast and break things" mantra of early Facebook. Ruby allowed for quick iteration at early Twitter.
Note that Facebook built a PHP-to-C++ compiler called HipHop, while Twitter switched largely to Scala. Box (to the best of my knowledge) has supplemented PHP with Java and Scala. Github maintained a custom fork of Rails for a long time to achieve the performance it needed.
So no, it doesn't appear that Lisp-flavoured companies have an advantage.
I think it's fair to say they are based on PG's early experiences, but it didn't appear to generalize.
You'll note he stopped writing about it, and YC funded plenty of companies that used many, many different languages.
A bad programmer using Lisp will be less successful than a good programmer using PHP.
And startups almost universally (regardless of the back-justifications they come up with) choose programming languages based on fashion: Rsum driven development.
The successful programming language for a startup is one that the product can be built in -- and that investors will not be alarmed by. PHP would not be alarming at all to many investors -- so PHP is a decent choice if you intend to sell your company off anyway.
 at a cost, you'd need high end machines to enjoy the benefits without the memory/gc issues.
I, like many in this thread, think that good people are more important than a particular programming language.
I'd kind of guess the most succinct language for startups to write in would tend to be Ruby as there is so much existing code to do things - Rails, gems and all that. It also seems associated with successful startups like Twitter, Github etc so maybe there's a correlation there?
(Disclaimer - I'm not a Rails programmer - kinda guessing there).
In other words, use the best tool for the job. LLVM IR also deserves mention for its role as a kind of ur-language that can express all others in many modern applications. The ability to easily design and dynamically compile purpose-built languages is proving to be useful in many contexts.
I think there are two valid reasons for choosing non-mainstream language.
First, you know the language and want to work in it. A.f.a.i.k that was the main reason why PG chose it to build his company.
Second, if you know the technology is a good fit for your product, for example WhatsApp and Erlang seem to be good example for this.
The gist of the post was to correlate technologies listed on companies' AngelList profiles with those companies' Signal scores. Signal scores are a bit of a black box, but I was told by an AngelList employee that they're roughly like PageRank over the graph of startups, founders, and investors. That is, a startup's Signal score will be higher if the people affiliated with that startup have high Signal scores.
There were some correlations between higher Signal scores and lower usage of PHP, higher usage of languages like Go and Scala, etc. That supports PG's point, but probably lacks the statistical rigor that you'd want.
I believe the founder of Facebook previously said that the company's early over-reliance on HTML5 was his biggest regret. The tradeoff paid off in terms of speed and agility. The use of the color blue was also quite smart.
Note: My hidden agenda with this post is to increase my karma points.
PG says that Lisp is at the top of the power curve, looking down at all other languages. And Lisp practitioners are sure they're looking down, and they'll tell you why. "How can you get anything done in Haskell? It doesn't even have macros."
But Haskell programmers are sure that they're at the top of the power curve, and that when they look at other languages (including Lisp!) that they're looking down. And they know why they're looking down. "How can you get anything done in Lisp? It doesn't even have a decent type system!"
I have in fact heard almost the exact argument of PG's essay before, from proponents of a heavyweight CASE tool.
This fact - that proponents of two languages are both sure that they're looking down when they look at the other language - tells us that something is very wrong with PG's idea. The problem is the idea that all languages can be ranked on a one-dimensional axis labeled "power".
To see what's wrong with this idea, look at hardware. We know what "power" means there - it's MIPS. Until you think a bit more. Then you realize "Well, we've got that floating-point code, so we have think about FLOPS, too. And there's that one data set that won't fit into cache, so we need to worry about memory bandwidth... unless we can trade off some clock speed for cache size..." Suddenly "power" has at least four dimensions: MIPS, FLOPS, cache size, and memory bandwidth.
Then some joker comes along and says, "What I mean by "power" is the ability to run for eight hours without having to charge the battery"; that is, "power" is something like the reciprocal of watts consumed.
Back to software. It isn't just power of the language, it's power to do something - to write the program you're trying to write. What language is going to make that easiest, all things considered - the language itself, libraries, ecosystem, familiarity of team-members, ease of learning? Pick that language, because that language is "the most powerful" - for your situation.
More powerful language is the driver behind many advances and is generally considered to be the primary difference between humans and animals.
However, focusing on lisp is pointless because of its low adoption commercially.
(If you want me to provide stats for your class homework, sorry.)
If the former, high commissions are motivating. Anything the rep sells at this point is a sale you wouldn't otherwise have. If you're worried about the "wrong" kind of sale, you can put bounds on what you'll pay commission on, like "nothing below $X dollars" or "nothing if the company doesn't fit the definition of 'good fit'".
If you're looking for a cofounder, then give them a meaningful equity chunk of the company, vested over 4 years.
Sales is hard enough -- don't try to come up with a comp plan that adds a bunch of complexity to a rep's decisionmaking. When a customer is ready to buy, you want in clear in the reps head whether they should push for a longer contract, or a higher per-month rate, or a strategic fit for product development.
What does your company need right now?
Vest his equity over 4 years with a one-year cliff.This way you have a full year to evaluate if you want him as co-founder/salesperson.If he is not happy to be under this performance-based scheme then that's a huge red flag.After all, you have already proved you can hold your side of the bargain but he has not.
If you are already incorporated then you will have to setup a stock option pool with similar terms.
In terms of fairness of compensation, this depends on the competitive landscape. You should probably try to source a few more potential salespeople to get a feeling of what that landscape looks like.
So I'd try and set your sales guy up for success, get him off to a positive start, and be generous with commission. Agree targets that should be achievable.
If he's amazing, you'll want to agree something attractive to both of you. Possibly involving equity. If he can't sell your stuff, then you'll probably want to try someone else. So you'll need the ability to "undo.
Is the focus of business operations to produce recurring cash flow for the owners or is it to produce capital gains via growth of the underlying equity?
What is the vesting period for your equity?
Sales person psychology:
1. Sales people are always enthusiastic.
2. Commission based sales incentivize closing deals that don't advance a company's general interests.
3. A milestone based contract can help align interests.
If you shall require help with sales at your startup, please do let me know. I don't require anything in return but may not be able to devote a lot of time, but would try to do my best.
I have more than 15 years of hardcore sales experience across 7 different industries, this includes working on my own startups for 52 months.
Don't let them sell you on vesting based on time - they're not adding value if they're not selling.
never forget that sales people are good at selling things, which includes their own value, whereas traditionally software developers are not.
you may be particularly talented in this area for all i know, but be aware of this.
making reward results based to avoid becoming a victim of their superior ability to convince you they are worth more than they are. commission is a classic approach... its hard to argue with getting paid better if you do good work... but it does incentivise bad work if not done carefully.
... on the other hand, if you get legal advice to draw up paperwork for sharing equity the default position is to make it very difficult to cash in on, so offering equity might be safer... but i'm not sure the recipient will enjoy having to learn the lesson of how difficulty equity can be to turn into cash.
what kind of product is it? do you really need sales? usually its a way to sell more, not sell at all...
all of that said, why not discuss it with them and see what they expect too? that might be an easy way to rule them out or bring them onboard because what they might want might be either completely unrealistic, or undervaluing themselves.
Learning Redux from the get go means you can skip a lot of React's internal state management / lifecycle methods.
The tutorial also covers a bunch of relevant topics like TDD with React, immutable.js, and socket.io.
Building Your First React App:https://medium.com/learning-new-stuff/building-your-first-re...
Building Your Second React App:https://medium.com/learning-new-stuff/building-your-second-r...
React.JS in 8 minutes:https://medium.com/learning-new-stuff/learn-react-js-in-7-mi...
Other than that, I always recommend the official tutorial:https://facebook.github.io/react/docs/tutorial.html
... and Egghead.io's videos:https://egghead.io/series/react-fundamentals
I've had 4500 people take it so far and have had tons of positive feedback - take a look!
Full-Stack Redux Tutorial: http://teropa.info/blog/2015/09/10/full-stack-redux-tutorial...
I'm the author of http://buildwithreact.com/tutorial, which Andrew says "is by far the shortest tutorial and the easiest read" :) Happy to answer any questions on twitter.
And then you can always look at awesome-react. 
 https://github.com/petehunt/react-howto https://github.com/enaqx/awesome-react
And, of course, people are choosing different paths to fill in the rest of the stack. All of which pull your specific 'style' of using react in slightly different directions.
will help you to get started with react. I'm following this blog post to learn react myself.
Full of graphics and nice examples - it covers a lot of the reasons folks find react so fun to work with.
As a pro-tip: there is a lot of tooling, and things move quickly so a lot of examples on the web get outdated FAST. Don't be discouraged - it can be rough.
There is a video at https://www.youtube.com/watch?v=NSeurgO39Hk if you are interested.
I would highly recommend that you do NOT start from learning react. React is a line in a very long story that the JS community has been living. Please strive to understand how that story started, and where react fits in, and what methodologies are being used in the libraries/frameworks that are popular today.
Rather than starting with and binding yourself to react, I'd suggest you start with the minimum you need, and progress to different libraries as you need them, and realizing the actual need/niche for frameworks.
A progression might look like this:
1) HTML+CSS+JS - Basic static, well designed pages
2) HTML+CSS+JS+jQuery - 1) + simple interactions on the page, note that too much jquery will quickly become hard to reason about
2) HTML+CSS+JS+Databinding - 1) + declarative databinding (with a framework like Knockout) will introduce some structure into DOM updates over the jquery approach
3) HTML+CSS+JS+Databinding+Routing - 2) + a realization that knockout generally aims to work on one page at a time, but obviously sites have many pages, and SPAs can be beneficial in delivering instant-feeling user experience.
4) HTML+CSS+JS+Databinding+Routing+Components - 3) + realizing the need for separation and isolation between components to keep your sanity (both knockout.js and react offer components)
5) HTML+CSS+JS+Databinding+Routing+Components+Data - 3) Handling data from the server is obviously important, backbone has an oft-praised model system, and you could also flux pattern since you're interested in react.
5) Framework ? At this point, including x libraries to do all the things that you have found make your life easier may be less preferable to using a framework. Of course, this means you'll have to deal with the cognitive overhead of a framework but at this point, you should know exactly WHY you are using a framework, and start to distinguish the difference between how different frameworks bundle the parts.
Ex. the distinction between how knockout.js does databinding, how react does it, and how angular1 does it.
Ex. The difference between react's rendering methodology and backbone's (they both use a render function to determine what will be shown -- how is react different?)
I might suggest redoing a small app like TodoMVC with all these options (you can change it up by styling the frontend differently every time or something), I think a process like that leads to a more well-balanced understanding of frontend JS.
React.js By Example [http://reactkungfu.com/react-by-example/] was enormously helpful in showing how to structure various different real-world apps. So if you find yourself beyond the basic CommentBox examples, but not sure how to build your own components then this might help.
> Hi there! LVE is an awesome framework you can use to make 2D games in Lua. It's free, open-source, and works on Windows, Mac OS X, Linux, Android and iOS.
I haven't been in this situation, but I believe very strongly that you should consult an attorney before going to HR. There are attorneys who specialize in employment law. They will tell you what to do as far as recordkeeping, the legality of recording these incidents in your jurisdiction, etc.
The thing to keep in mind is that HR's job is to protect the company, not you. They're not "teacher", exactly, and you can't necessarily trust them.
Personally, I think the behavior you're describing is abominable -- besides being highly illegal -- and I hope you sue their asses for a big pile of money. But, whether to litigate or not will be up to you.
If you talk with HR, phrases that will catch their attention are "hostile environment" and "discrimination based on sexual orientation."
If you go the HR/EEOC route, know your rights concerning anti-retaliation. (HR may not tell you about them. Their job is to protect the company, and not necessarily give you information beyond the minimum to do that.) Start at https://www.eeoc.gov/laws/types/facts-retal.cfm . In short, complaining about harassment in good faith, even if it eventually is not judged to be harassment, is a protected activity. The company is not allowed to conduct adverse actions against you, nor allow employees to do so.
That doesn't mean things will get better if you go that route. I have no experience with it. I mention it only so you know some about what the law says.
If you don't have people to talk about this, I invite you to join GPSGAY and further discuss.
If you do go to HR, document /everything/ -- names and dates when the harassment started, exactly who has been involved, who you talk to and when in HR, and what they said. HR isn't there to protect you; they're there to protect the company from liability. Generally, in these sort of situations, the liability is best resolved by disciplining those bothering you, but it can swing the other way often enough that it's best to have your ducks in a row.
I would consult an employment lawyer. Here is the sad truth of the matter: you are probably going to be on the losing end of this. You will likely be passed over for promotions and will likely face increased harassment. HR tends to be a leaky sieve so do not trust that they will do their job.
So, stand for your principles and take no prisoners or nurture your career and grow a much thicker skin than anyone would have to. Or leave.
If you want to stay, maybe talk to the people involved, or not, and possibly your manager or his manager. But definitely go to HR, and take notes or make them later, in a notebook not owned by the company. And be prepared to be officially harrassed or fired. The notes may help the employment suit, or the application for unemployment.
Either way, start testing the waters, even to the point of an interview.
Caveat: I have no direct experience with this problem.
So it's more like "send an email to HR people you've never seen or heard of", and with how impersonal that is, it's easier said than done.
Still, in this current political context, big tech companies don't want to be seen as unsupportive of these issues, so it's still probably the best bet. Contact HR :)
Who do you have to talk to? Do you have a solid support network of people who know you're bi and support you unconditionally??
I ask because the next steps are potentially hard, especially if you're surrounded by the type of prep school types who tend to stick together in groups.
I need to edit this in response to an excellent comment by mtviewdave, who suggested that depending on where you live, surreptitiously recording a conversation may be illegal. Look into the law first!!(Source - https://news.ycombinator.com/item?id=11468484)
That said, the next time that you hear them talking about you, try to record the conversation. This prevents a you versus them situation where their own best witnesses are the co-accused. Their defense could (and likely will) be that you misheard them...
Once you have it recorded, I wouldn't bother trying to tell them to grow up and knock it off. Simply walk into HR and make a formal complaint.
I understand that you've never been the type to go to the teacher, but seriously dude, someone sitting two seats down from you may be in a deep closet and their closet could be deepening (and get more lonely) with each of their barbs.
I'm sorry that you're going through this and I wish I could do more. Best of luck and good on you for coming here to talk about this.
They'll shut up in no time.
It just occurred to me that my brother had this too. He was certain that people would talk about him being gay. It wasn't actually happening. He was starting to get schizophrenia.
If this is happening to you, you won't want to believe it. Prove it: get checked.
There are the reasons why I paid:
1. The course is awesome and I want to support the authors.
2. The course I paid is new learning area I never use professionally during job but I wish to use at my job (or new job). Instead of say "I interested in XYZ", I said "I interested in XYZ so I took online course to learn" at my interview. This is to partially solve chicken and egg problem.
3. For serious courses, I pay so I can have pressure and motivation to complete it.
Courses I have taken (and reviewed):
Previously, you could do novel things like limit the number of times students could re-take exams and assign different point values to different questions. No longer!
All a Coursera completion tells me is that you were persistent enough to go back and re-take the (multiple choice) exams enough times to get a passing grade.
The $49 for most courses was something which I could afford and it helped in serving as additional motivation. The reward at the end of it all felt good as well!
Is it worth paying for a course so that you complete it?
Yes. Paying for something hits us hard in the accountability checkbook. The more you pay (and the harder it is to get out of), the more you are committed.
Is it worth paying for a course and telling your friends, significant other, random strangers that you are going to learn X, even if that course is only part of learning X, so that you cannot quit because of pride and accountability?
My experience may not generalize, but I'm not sure I'd worry about it.
Note: I also had an undergrad degree (math and philosophy, and graduate degree in philosophy, but no school CS experience. No idea how this changes if you don't have any degree).
If you feel the need to pay for anything I suggest you go for Edx Micromasters program or Udacity's Nanodegree. I think you'll derive a lot more from that.
Coincidentally at my old job I was the cyber-security expert for my domain (HW), which only meant that I would be assigned to security relevant programs if we got any (we didn't), and they paid to send me to Defcon. They didn't even know I was taking the specialization, just that I like to talk about security.
*I say paid because I just got a refund since apparently there are some issues with migrating courses to a new format and not offering enough of them this year.
As soon as you have a formal price for a certificate, it shifts the conversation to how much personal value I'm getting from the certificate specifically as opposed to doing my small part to keep this sort of educational material available.
Is a certification worth it. Personally, not likely, but I know people that live and die by the certs they hold. So to each their own. Is it going to get you in the door of an employer? Maybe if you have little or no experience and the guy/gal applying with you is similar it might give you a leg up. Otherwise, what you do and how you present yourself is more important than any certification you pass.
When I was actively hiring, I cared far more about what you have done, what you can explain to/show me, then any piece of paper you could present.
Put the skills you learned in your resume or start working on projects which demonstrates those skills. List out the courses you completed under the 'Trainings' section of the resume and Mention MOOCs under your hobbies (If you have such a section a resume).
I was very interested in MOOCs (ai-class was awesome!) but unfortunately most of them seem to have gone the 'pay XX to get this certificate you can to print out!' route to make money.
The fact that you're interested in MOOCs says many positive things about you and shows that you're interested in learning and improving your skill-set, and at this point in time, I would be very surprised if anyone gave two shits about the certificate, because who the hell lies about taking a MOOC?
And in the case of coursera - many of the courses are actually poor quality. Udacity and Edx (especially EdX) seem to take quality much more seriously.
I made it a point to meet all the deadlines and assignments, which kept me honest and forced me to be timely. It was free when I did it, but I'm not sure if that's changed since looking at other courses I don't seem able to receive a certificate or weekly grades if not paying... Point being it may be worth it to pay just so you feel incentivized to finish the course with a passing grade :)
It removes a suffocating constraint on the structure of the education system: finding instructors X capable of teaching some advanced/esoteric subject to students Y, in a sufficiently small geographic space. Under this constraint, sometimes the only solution has been a dumbed-down, cookie-cutter curriculum. Once online learning has matured, this will no longer be the case.
Can it be a plus on a CV the anwser is yes as it show you're willing to learn new techs/ skills continuously.
Coursera has great courses, no question, but clearly their certs offer very little value compared to official diplomas.
So far I thought it was good, the content is not super deep but I kinda like it that way because it could fit in my busy schedule easier while also allowing me to practice writing. That's really my motivation to take the course, if I can start thinking like a game designer for 250, that's awesome enough. Personally I've 'outgrown'video games but taking the course has reignited that interest and I'm seriously considering a game idea :D
My assessments aren't multiple choice tests though, I had to submit written work every week which is then reviewed by at least two other classmates. I thought that system's pretty good. The forums are useless I find, as it's easy to have so many 'heyy nice to meet you' threads that I don't bother checking anymore. I do wish that we can have access to the tutors themselves though, it's not practical i guess but that would definitely enhance the course experience.
Ultimately it's just like any other certification, certificate, diploma, etc... the value is in the eye of the beholder. If you're applying for some jobs, I'm about 100% certain there are some people who would snicker and laugh at a Coursera cert and refuse to give it any weight whatsoever. OTOH, I am absolutely 100% certain that some people will give it at least a moderate amount of weight (I can say that, as I know I would do so).
Like other certifications like, say, being a Sun Certified Java Programmer or something, you usually don't want to be in a position where you're trying to stand on that as your only credential, unless you are very young and early in your career. But if you had, for example, just graduated high-school and already gained a SCJP and a Data Science certification from Coursera, I'd be darn impressed and would probably want to hire you.
Similarly, if you've been programming for 10 years, in, say, Python and Java, and you're trying to transition away from "plain" programming and move more into data science, then complementing your existing skills and knowledge by gaining some data science / machine learning certifications from Coursera (or Edx, or whatever) could, in some situations, give you the leverage to start bridging from one career track to another.
Ultimately, it's a judgment call. Myself, given how inexpensive the paid Coursera classes are (most of them seem to be around $50), I've chosen to go the paid route for a number of the ones I've taken. I've also done a bunch where I was literally in it for the knowledge alone and didn't bother with the certification. I wish I could tell you some strictly deterministic algorithm for figuring out when/if it makes sense to pay for a given class, but I honestly don't know. All I can tell you is that I think it does make sense in at least some situations.
I personally don't care about the effect of the certificate. I paid simply because what instructor taught me worth more than it cost.
Long story short the courses I happened to pick were of low quality and never completed. Four years later I still cringe when I hear the word eclipse (even though I'm getting into mobile development now after a few years in webdev land). While I'm sure there are a number of very good courses, and quite a few people capable of completing them and benefiting from them in their lives, I believe I was at the time not only the prime demographic for the product but also in the majority of their users.
TLDR; you can make any learning opportunity beneficial. Is courser and similar products worth the effort to make productive? Maybe, maybe not. There are other alternatives that should always be researched.
For some people, but not others, the certificate holds value independent of the learning experience. That also can motivate the learner to completion or increase esteem for an applicant to an academic or commercial solicitation.
I have a bunch of the free unverified certificates from a few years ago. I found the certification process motivating and a useful time management tool.
(Which is one of the challenges for MOOCs. On the one hand, most adults aren't going to pay a lot of money just for a learning experience. On the other hand, there doesn't seem to be a lot of value in the MOOC certification process. I suppose that a specialization from a good school might be worth something in the absence of other relevant background that you could point to, but I have to believe it's marginal.)
Which courses are worth taking?
As a hobby I'd say its pretty cheap per hour. I've paid for some of the data science classes.
Its easy to form some really bad habits when you sit in a position of power to judge the potential of a person, a team, an idea and their executionbelieving that you know better and focusing your time on finding weakness.
The best investors dont spend a lot of time on what can go wrong. They already know the odds are against every startup that ever comes into existence. They already know every startup is a shit show. Those will be the reasons why all the other investors will miss out on an unpredictable opportunity. The best investors try to figure out what can go right. They dream a little with the startup and they then sell that vision back to the founders.
Remember that the big wins in startups come from the margins. For you to find what no one else could have predicted, know that it will take the shape of something that isnt obvious.
Being nice gives you a good foundation for being open and optimistic, which is what we strive for when we read applications here at YC.
Thanks again for trying this out with us. I'm really excited about what we discover together.
Quick poll for the community here: I run Hacker News Daily (http://www.daemonology.net/hn-daily/) which many people know about; but also Ask HN Weekly (http://www.daemonology.net/hn-weekly-ask/) and Show HN Weekly (http://www.daemonology.net/hn-weekly-show/). In each case the methodology is the same: The 10 highest-scoring items which (a) appeared on relevant "front page" in the day/week in question, (b) and haven't appeared on a previous Daily/Weekly.
Would people be interested in having an "Apply HN Weekly" set up along similar lines? It's straightforward for me to copy the scripts and edit a few paths (once the HN link appears) but there's no point if nobody would want to read it.
EDIT: I'm seeing lots of upvotes to this comment, which I'm going to assume is an indication that people would like to see me implement this. If you were upvoting simply because you wanted to make more people aware that I had a really lousy idea, please add a comment to disambiguate.
1. There is possibly several ways to game the upvote system. HN community is not anonymous, and there are people who have more friends here than others. A lot of very good founders would probably not have enough friends here. That might create bias once an Apply HN post reaches first page vs. another.
2. Participating startups risk facing public bashing while hoping to get priceless feedback. This happens often here, even unintentionally sometimes. This also poses a risk that a lot of startups would not be 100% honest in one way or another to minimize bashing. This is commonplace on Reddit. But this is not Reddit and any founder cannot forever escape people here. This is an ecosystem forum which is extremely civil in Show HN (with a few exceptions) but might not be so when competing for a resource -- the 2 YCF spots. Maybe Reddit is the way it is because everyone is competing for points.
3. Publicly applying for funding might step on private financing laws of several states and nations? It might also be against some by-laws. Would this constitute a public offer?
Maybe this could be helped better by doing one or more of these:
1. Apply HN posts should not make it to homepage and should be a separate section.
2. The heuristic should not be known publicly of what YC partners are looking for.
3. Companies should still be required to fill a YC app before posting. Then it's a public contest rather than a public offer to sell shares.
This would be interesting for sure!
A) There are many external factors that can implicitly cap the number of upvotes/comments. (time submitted, amount of competition, etc.) HN has repost rules to alleviate this problem: would Apply HN posts be able to repost too?
B) Not to mention that it encourages sockpuppet voting/commenting, especially since there is a high reward for doing so.
Product Hunt, for example, thrives on "how can I get exposure for my startup submission outside of the intrinsic quality of the startup itself?" and it would be an improper fit for HN.
The best way to do the scoring for the applications is to actually make it into somewhat of a game. Each application should be given a starting elo of 1200. Every time a user wants to go and review applications they will be presented with two separate applications with a similar elo and then will be asked to vote on which one they think is better. Elo will then be added/subtracted with normal conditions based on the vote. This system would very quickly and accurately identify the best applications. I've seen this done before for other things and it's been proven to be very effective and prevent almost any sort of bias.
I think part of my reaction is because I'm not seeing a useful goal: "interesting things" is certainly a goal, but strikes me as being too vague from which to extract useful information. What are interesting things? If you don't know what they are, how will you know if they happened? Are you set up to measure interesting things? If so, can you quantify them, and what sort of sensitivity/specificity, dynamic range, etc. do you expect your instrumentation to provide? What is the duration/endpoints of the experiment? Does the experimental design support the objective, and with what power does the experiment have to inform?
I think that the other part of my reaction is that, as an experimental scientist, I am specifically trained against doing something so unstructured. Practical considerations like safety and budgetary waste aside, I am the person I trust least: it's very easy to fool oneself about the significance of a result with an ongoing experiment that one is conducting. Experimental discipline, like planning ahead (and preregistration) and blinding and good controls, serve to promote objectivity and help reduce bias.
I have no doubt that this experiment would produce "interesting things". I am very skeptical that, as presented, you would know why it produced interesting things.
Of course, I'm just a dog on the internet. Best of luck!
Putting your idea right there in front of some pretty fast moving programmers has to be something people would think twice about.
Having said that, it's hard to imagine an idea being sufficiently compelling to start writing code to implement it immediately. The only ideas that really blow me away are my own and they usually turn out to be silly anyway, after I've spent six months building them to crickets.
I don't think ideas are worth nothing by the way. Just ask the Facebook twins.
It turns out it was essentially random, and although every one of the posts were decent enough to make it to the front page 2 or 3 times sometimes it received zero votes, sometimes 10.
It seems somewhat unfair to use the standard ranking system with this being the case, since it's essentially random. I think there would need to be a way to randomly show them to users and have users vote. Similar to /r/starups
BTW I eventually received an email from the YC staff, thank you for not banning me :) No one should do this.
The HN community might just be a better barometer, hope to see this experiment work out and bring attention to worthy and unnoticed startups.
A question: What are the situations where you think it will benefit people more to go the open route than applying directly?
One way of thinking about it is
advantages of "Apply HN": getting significant calibration and feedback on an idea that improves it whether or not it is selected, a chance for a partial team to begin discussions with other potential co-founders, and the (small) chance of having an idea selected because of overwhelming support when it wouldn't have been chosen through the normal process
disadvantage: exposing the idea in a very early state to thousands of smart motivated people who are then have the time to come up with better variations on it
Obviously the tradeoffs are different for different teams and ideas ... and there certainly might be some advantages and disadvantages I missed. In any case, I'm curious about who you think might benefit most from this.
Even though many of the YC partners have mentioned the importance of this, I could feel the pain of reading through the first paragraph and not being able to picture anything about the company in my head. Might be a good strategy to stick in a summary of your startup in the apply hn corpus and ask close friends to see if they understand and get excited by the idea before applying to YC.
Another thing I noticed was how biased I was towards ideas which addressed problems I have had. So hopefully Apply HN will help YC look into companies which are catering to completely different industries and sets of problems which they haven't experienced.
This is a great experiment !
Whether successful or not, you guys (and your machines?) will learn something valuable about your process vs. the wisdom of crowds. Really commend your approach to experimentation.
If upvotes are the most important metric, then vote counts should be hidden to viewers at least prior to their voting. This prevents the situation we have here with news articles where an initial small/fast scurry of upvotes is the only way to capture the attention of the larger audience. In this situation the first few votes likely have far more influence than they should.
I would be wary however of learning very much with a one time experiment with only two funded companies. That would be similar to giving a prospective angel investor the advice to invest in two companies in the next thirty days and then no more.
I think it would be really cool if you did the experiment blind. E.g the startup applys to YC, if they want to participate they also do HN. you have your interview make what would be your decision, then do the HN piece. that way you can gauge the delta between how the community thinks & how you would've decided without our input.
Either way, this is pretty great idea. As you flesh it out a more, an in depth write up would be great!
But I'd emphasize the qualitative side of the evaluation process -- it should be based on a somewhat opaque mix of upvotes, thoroughness of discussion, and thoughtfulness of answers.
I'd almost treat the various 'Apply HN' threads as open source interviews. Upvoted and the like should be a ROUGH filter, but I'd hope that the YC partners will look at the answers in the threads as a crowdsourced interview and select on the merits more than anything else.
Anyway, excited to see how this experiment plays out.
The commentship of HN is not exactly a representative cross-section of the unwashed masses, but it is filled with amazingly knowledgeable and intelligent people. A startup that generates thoughtful and helpful discussion may well be a stronger signal of success than crude up votes.
Edit. arg! I see Dan already had this idea.
The upvote/commentary is likely going to be highly problematic:
A) I'm pretty sure Dang can't list all 9 accounts I've used on HN over the past few years. I'm also pretty sure 9 accounts in good standing [1500+ karma] would be enough to seed an initial vote if handled carefully. The ones he'd be able to name are the 3 most recent. This being the case...yeah. The danger of sock puppetry is way too high, particularly when combined with strategic downvotes and VPNs.
B) Anyone with control of an existing community/following can use it as a targeted campaign.
C) The reward from bypassing these functions is substantially higher ($20,000 + professional advice from YC) than previously existed for YC.
D) If you want to stick with a vote-based system, I'd offer a larger bounty [say, $50k for manipulating a post to the top of the pile for Apply HN] for finding a way to bypass the vote brigading and other countermeasures. This it is really the only countermeasure I can think of to counter manipulation problems.
E) All the other external factors (time of submission, competition around that time period, repost rules, etc.) are likely to bias the process in unexpected ways but that is probably less problematic than direct manipulation.
> I think we're on the same page to some extent. What I meant by 'ranking by comments' is that we want the ranking to depend on the quality of the discussion. That's the one thing that can't be gamed.
Put a bounty on that to test that theory.
I'm pretty sure someone could create a network of socket puppets that had "quality" discussions between them if the reward was $20k.
Kudos for the 'be nice' rule - rejections really really hurt, and if they are in public, even more so. Anyone who is willing to put themselves out there like that deserves to be treated with kindness - even if the actual feedback is critical. Snark is very easy.
If I had an idea, which I knew would never likely grow beyond $1M in revenue, just because the market is so niche. B2C, but the entire consumer group is probably only in the region of 10,000.
I'd imagine the company would probably max out at 4 or 5 employees.
I have little to no interest in building a product out to $100M or aiming at an IPO.
The YC Fellowship rules indicate that the $20k funding, for convertible security, at least assumes the goal is $100M or IPO.
I'd very happily offer 1.5% right up front for $20k, no need to worry about convertible security, as long as it was clear my aim was never to hit $100M or IPO.
Would such a view exclude me from a YC Fellowship grant and thus Apply HN?
1 upvote = 1 + (Account Age In Years / 2)
Or some metric discounting (but not eliminating) new accounts while proportionately weighing soneones contribution/participation in the community.
while to some extent everyone should be represented, but some members of the community have been here much longer, are much more knowledgeable, and participate a lot more. they helped shape the community, etc and may have gone to YC in early days.
ive been here for ~2 years, i know a little bit about tech and startups, however(and this doesnt map 1:1) some people helped build this community and are core contributors, there votes (as their advice) is worth some percentage more.
P.S have submitted my idea here: https://news.ycombinator.com/item?id=11461008
1. Would I use this product? - Only for projects I have a lot of traction with and wouldn't mind competition for, or a project I am not sure/serious about (toss and see if it sticks). Anything in between would be risky if we're serious about the "What do you know that competition doesn't" question.
2. Would I join this team? - hard to learn about team without much research on HN
3. Would I fund/work on this problem? - Yes - a low friction way to vet and support startups is needed. I've worked on other iterations to find a way. I've thought about it a lot, reply/ping me if you want to discuss.
4. What would I improve: For start, add a scorecard, so the founders can use brainpower to iterate instead of trying to interpret why they were not up-voted by strangers with different motives.
5. Any concerns: A ton can go wrong here, but what matters is what can go right - what parts of the HN experience are conducive to solving this problem, and what tweaks will finish the job of solving it. If this works, you will see a rich data set of problems that people are attempting to solve, votes that show the demand for each problem, solutions who get to see traction by potential users, and VC analysts who are trying to crunch the data to direct their own funding/sourcing, competitors taking notes, etc.
Then there are also the projects that are just poor fit with the HN subset, would you reject those in YC if you see them down-voted here?
Basically average crowd > individuals. 160 people guess # of jelly beans in a jar. Few are close, but averaging all the guesses leads to 4 away from actual.
Would be fascinating if applied to this as well...
Remember, you're dealing with hackers here. I worked my YC application from every angle and tried to get every possible edge and advantage. Not necessarily because I wanted to game the system, but because I'm a hacker, and it's my nature .
On the whole, this is a really good idea. It's kind of mind blowing that YC would seriously try this. The concept itself is a brilliant hack on the idea of startup funding. Maybe they'll find the next AirBnb/Cruise/Dropbox, but probably not. Either way it's a great example of pushing the envelope to find new ideas, which sama has been all about lately.
Edit: Added comma.
Since it's under the umbrella of the Fellowship, is YC looking for anything well beyond the idea stage?
Also, it would be useful to have some kind of simple submission process after making a post on HN so its easier to track and view all of the applications.
That is a totally different approach then the "cloud apps" that get funded through YC or other investors, yet it supports the same "sort/type of apps".
It should require some technical experience ( i believe HN in it's core is still for technical people)
It would be interesting to see what reselling does for bootstrapping a startup ( faster sales because more brands/people can resell it ?)
Benefits, we can hack our way through the code :)
Are you planning on compensating the people who participate in this experiment in any way.
Here's the point: YC will be receiving a massive amount of help in filtering and vetting dozens or hundreds of potential companies to fund. Once funded, they might fail but they can also be huge successes. YC stands to make millions, tens or hundreds of millions (or better if the starts align).
So, you got a bunch of smart people to use their time and intellect to act as filters for your investment. What do they get in return?
The fair approach would be to give them some ownership. Even a single share would have meaning.
Since YC Fellowship is intended for startups at the idea stage/prototype stage, is ApplyHN a catch all for businesses at the idea stage looking for feedback from the HN community?
Can you do an ApplyHN twice? Presumably once you get feedback from your initial ApplyHN idea post, you might flesh it out more and have a stronger application the second time.
If you're at the prototype stage normally you might do a ShowHN, should you create a separate post for an ApplyHN if you want to apply?
Then the feedback and comments would be open for say another week.
Putting time restraints would help give applicants approximately the same amount of attention. And also allow members take out time and ask all questions they want.
In addition, can the submission be restricted too so we do not see 400 words submissions? I'll go for a maximum 2 mins video pitch alongside a link to a website.
Finally, great idea!
Can a group or an individual submit more then one application?
Could you add an Apply HN endpoint to the Firebase API in the same style of ask and show too?
We never had time to even spend with family we just slept four to six hours and focused on what we wanted to built.
We never had any social accounts and never socialised in Internet not went to do networking.
We thought let's built a great product and enjoy doing it.
A Story of How Two Childhood Friends from Village has built their startup up from Zero to a million dollars
Only time we spent time is registering and applying for YC.
Coming from a small town with no business background, learning all things ourselves and with self motivation and dream if we were able to do this much.
Joining hands with YC we can do a lot more faster and quicker to change the world.
This is the reason we applied for YC. Even our employees are from rural they can't even communicate good in English but they code like hell.
If you ask a guy how to built an ap. A may tell a good story but not actually do it. B may do an excellent app but not tell it in an effective way. A May have more friends but B may not.
So founders we play as a team. George does the coding and he has no social accounts. I do the design idea and also communicate and be active to know what's happening in the world.
This is a good initiative let's see how it goes.
Here is my submission:PaySQR - the new secure way to pay!https://news.ycombinator.com/item?id=11444053
I'm not affiliated though.
If your goal is making money and/or securing a partnership you have to put yourself into a position of strength. The best way to do this is to launch an actual Chinese competitor yourself. This should cost no more than 10k USD per month assuming you can leverage your existing code, which makes it much cheaper than going the legal route. Feel free to contact me (contact info in profile) if you need help or introductions to people who can actually make this a reality for you in a week or two. I'm in Beijing and have done three startups in China and can put you in touch with people here who can actually help you.
A live product from you poses an existential threat to your competitors and keeps the big IT company from delaying in perpetuity (the typical modus operandi for big players here is to have middle management rush to agreement on the general principles of possible cooperation and then stalling and never doing anything more substantial -- the delay means they aren't sure if it is worth their while to clone you yet). But the threat of your getting actual traction matters because growth puts a deadline on your willingness to accept other people stalling, and your presence starts imposing actual costs on the startup. Those guys will need to change their branding at a minimum since they can't build an independent brand with you in the market, and once they know you will play hardball you will find them a lot more amenable to compromise if you want to go that route. With that said, if your market reception is good you may not even want to continue talking with them, since most Chinese startups are really inefficient and you can probably blow them out of the market anyway.
State Intellectual Property Office of China http://english.sipo.gov.cn/lxfs/
China Internet Network Information Center http://www1.cnnic.cn/PublicS/hyzl/
You can send them emails or even better call them. They all should have people who can communicate in English effectively. Getting in contact with them will help you put pressure on the offender, and also gather info for next move.
The best move is to hire someone from China to do some leg work for you, if that's necessary. No need for lawyers at first. There are many Chinese freelancers active in various international elance type sites. Also, http://www.witmart.com/ is reputable, operating from China.
China, at least the central government, is trying hard to implement tougher policies on protecting intellectual properties. The problems are mostly at the local level. If you know how to get the offenders' attention with effective threats on legal action, they are actually _very_ afraid of being caught. The cut-throat business competitions in China force them to avoid legal trouble and damage to their company's reputations, if they are legit startup trying to make it big, not some college students just playing around (in this case then you don't need to worry too much anyway).
Also wholesale copying western ideas is a widespread popular practice, I feel you are fighting the wrong battle. There is no way you can prevent somebody else (meaning hundreds if the idea is really good) in China doing the same cloning shit. Also conquering the China market needs many many other types of fighting, and preventing cloning is the least you need to worry about.
Why do you feel entitled to do something relatively copy-able and not be copied? Because you're European?
Patents and that sort of legal protection apply to discoveries and inventions (and even then, the rules change with the Chinese). To be blunt, you're making a website for people to organize around video games. I'm not trying to belittle what you're doing (admittedly a huge former fan of competitive Starcraft on ICCup, CS and Halo PC on Xfire, etc) but come on you're not splitting the atom in any sense.
Compete and beat the clones. They're not going to go away, that's reality. Did you know that Facebook has the exact same problem you do with Renren?
So how can you compete? Understand your users better to offer superior customer service; stay on top of new features; build a network effect into your product. Though I'm thinking it already has one, since tournaments need people, and people will congregate on the best platform. I know e-sports is huge (and growing) in Europe, and I'd find it quite surprising if eventually the winning platform for these people to organize tournaments is on a Chinese site!
Best of luck Benjamin, I do wish you the best. I don't think there's an easy answer for you, just stay pragmatic given the realities of what you're up against.
If what I've read about doing business in China holds a sliver of truth - both from stories linked here and elsewhere - it's not a chance they will pass on you but almost a given they will pass on you. I'm almost so suspicious of business practices in that market that I'd be willing to wager a small sum that maybe somebody in the very large Chinese IT company actually prompted another entity to get the clone up and running, or at least is aware of the situation.
If there's a way to take your idea and leave you nothing, I get the feeling that is exactly the path that will be taken. Unfortunately I can't help with direct advice to address, but I do wish you the best in your efforts to stamp out that terribly dishonest approach.
So we changed the domain name, moved the site.
We then replaced the assets under the domain name they were using with assets that might offend folks when looked at.
Not everyone can change the domain though.
Honestly, the chances you are going to get decent cash from e-sports here are 1 in a million. Every wangba (internet cafe) has pirated titles. Few pay for games. Lots of servers are openly running hacked. New TVs here come with built in pirated content Netflix clones. Nobody cares.
Take it from me, there just isn't have a legal or commercial environment here that is likely to favor your business model.
Maybe the most efficient measure you can do with your scarce startup resources is to treat them as a competitor and enter the chinese market earlier if it's practical. If someone makes their own VRBO or AirBNB website for china and choose to make their own logo and standard web design, are they an AirBNB clone or competitor?
Note the which means non-commercial.
Pretty equivalent to a blog, or basic homepage.
Were they to try to commercialise what they/you plan to do, they'd need to apply for an ICP license via a different route, for online gaming (and as you alluded to, potentially betting). That would be a route paved in hell for any small startup.
Dismiss this as a non-threat, both as a commercially viable startup and/or as a ruse of the large company you're currently talking to. Don't waste your time with it.
What is the background functionality? Are you competing in the same market?
If you are worried about looking similar to other sites then spend some time on a more distinctive design than Bootstrap.
You've got plenty of competition on your side of the world. Stop looking for competition else where.
I mean sure, it might look like an affront on the work you've put in your site, but in the end, you've also found another group doing what you're also doing, probably just as dedicated as you are. Depending on the mutual language skills (maybe even consider using a telephone interpreter service https://en.wikipedia.org/wiki/Telephone_interpreting), you might be able to find common ground and work together towards a collaboration agreement or outright acquisition -- whatever it is, just make sure to have it in writing that your company came up with the concept and design. Win-win for both sides, and that contract is then legally binding.
Even more, if you're in talks with a very large Chinese company, having Chinese collaborators might actually work in your favor.
TL;DR: You might have more to gain by working on a collaboration deal first. Just never lose sight of the fact that, in the end, they were stealing.
I empathize - I was a bit annoyed by the first version of UMeng, which was a pretty close copy of Flurry's web design and feature set. But if your situation is anything like ours was, you'll see the companies evolve away from each other over time as you each adapt to your respective markets - and you probably didn't have the staff and cultural knowledge to support the Chinese market anyway.
Take kev6168 advice and do your paperwork: trademark and copyright registrations, company registration. With that in hand, or at least started, you can then contact their service providers, like aliyun, and advise of your intended legal action against that clone and their providers.
Above all dont lose focus on your own product. Defending can be a vacuum of time and energy and your own product gets lost in the process. Yes you have to defend, but best defense is a better product and brand awareness.
Cloning/knockoffs is an issue globally and happens in lots of industries. Get over it. Ignore commenters/ppl with vitriolic rhetoric and emotional responses (i.e. the trolls) - you need a clear head to get thru this unscathed.
Edit: just to clarify - I personally wouldn't do this, because it is possibly illegal and absolutely unethical. But very large companies (in China and elsewhere) are not known for being ethical.
I feel like you're better off building out your core product and finding user traction in your markets instead of worrying about the plethora of competitors that exist out there. I imagine that if I found one, there are probably many more.
You probably won't be able to gain them as a Chinese subsidiary, they'll think you're delusional, hell, that sounds delusional to me.
Them having investors (if they do), doesn't mean much if anything. C2Cs of startups with traction are generally seen as a safe bet by investors, hell, there's teams specializing on it. Money is sloshing around, the silliest things are getting funded.
Litigating is probably pointless. Best case they get scared, drop the thing and another C2C gets sent the code they have.
Clones are to be expected, and as other comments have said, it might even be the Chinese IT company you're dealing with that started the thing, or maybe they've started building something internally. They're probably looking to screw you over as well.
Really, if you're looking to compete in China, you break out your copy of Sun Tsu and leaf through your Machiavelli. Out-engineer them, get some boots on the ground, find some Chinese to work with, lob some nuisances their way, grow in China and squash them. That'll put you in a stronger negotiation position with Tencent/Baidu/Ali/Whoever as well. Your advantage is that whilst chinese coders are cheap, and they can throw 20 engineers at the problem, most of them aren't very good. If you don't allow them to grow more than you do, and you're pushing features whilst they're accruing tech debt, they will loose that war of attrition eventually. Especially if you go for things that are hard.
Good luck man.
PS: If your business plan looks like the work of a paranoid madman, you're on the right track to compete in the land far east.
He's bluffing. The activity could be paid for.
He wants to look strong, either to dissuade you from competing in the same market, or for you start negotiating with him, giving him the advantage.
But it's not like you can sit on your hands either.
Go right ahead and add Chinese translation to your website, I say. You can then use the same i18n infrastructure and hire Vietnamese, Indonesian, Tagalog translators and expand to the rest of South East Asia. Do Traditional Chinese as well, and get into Taiwan and Hong Kong. Translators from upwork.com should be quite cheap. Be careful to only send the translatable message files, though, don't send the code - I've heard of people getting their code ripped this way.
Try do that in a month.
Then you have them surrounded, and you can negotiate with them from a position of strength.
You can send them a grateful email thanking them for introducing you to the Asian market.
Send a bottle of European wine as your regards.
I can replicate your business 100% and I'm not in China. What are you going to do?
At first it would seem like a very bad thing, but if you think about it, they are merely reinforcing your idea. I say give them the finger and just focus on making the best of your idea no matter what those guys are doing.
I wish you all the best for that!
"Lions aren't concerned about the opinions of sheep"
1. Find some reputable investors active in China. Start talks with them.
2. Contact the CEO and say "Thanks for pointing out to us the value of the Chinese market. We will now 1. move into the Chinese market (mention your talks to investors) and 2. proceed to sue you and your investors (who our legal team is contacting now). The alternative is that we set up a licensing deal (or that you pay us a 1-time fee to make this go away).
Long term though my guess is that you should focus on your market and forget about China.
(It is possible I've watched too much House of Cards lately ;)
Focus should primarily remain on product and users.
The thing is that they created the site from scratch but it is exactly like our site only directly aimed at Chinese users.
Our website is www.strivewire.com, and they use www.haogegebisai.com
They are not hotlinking anything, and we're shying away from an open confrontation. Just wanted to know if you know of some good strategies to approach this issue.
It's not like they will be able to do much about it. If they do, you can use it as a bargining chip and go after them for infringing on your copyright.
Parasite companies in China think that they have an advantage by not having to follow US laws, but what they don't realize is that it can also work against them.
-If you only get canned questions, run.
-If questions are machine gunned without any followups, run.
-If the hiring/interview process is needlessly complicated, run.
-If they give you an IQ test or similar, run.
-If they're not paying attention , run.
-If a pattern exists of mistakes (forgot to call, etc), run.
-If, when discussing pay, HR says "Yeah, sometimes we hire people knowing they won't last and only fit a political agenda."..... run. True story.
-If the recruiter tells you, "The path you're going down will lead to failure unless you do a startup. Frankly, I don't see you doing a startup"... run. Also true story.
..Ultimately, it comes down to gauging how "human" they are towards you. If the interviewer[s] lacks empathy, it's a sign somewhere up the chain that something's not right. Mind you, that's not to say that the interviewer doesn't necessarily have empathy.
 Seriously, this happens at about 20% of my interviews. Put away your fucking laptop and just listen, interviewers!
The low hanging fruit here is:
* ALWAYS spend time with your future boss prior to accepting. Ideally try to spend as much time as you reasonably can. If this isn't possible push back pretty hard about why. Your direct manager is usually the biggest reason for your unhappiness at a job. "People don't leave jobs, they leave bosses" is a cliche for a reason.
* If people seem unhappy when you interview, don't assume it's just how they feel that day.
* Make sure you get a sense for the culture and whether you want to be part of it. If you're not into constant group activity, make sure you're not joining a hyper-intense "everyone hangs out with each other all the time" sort of place. Conversely if you're new in town, don't join a company where everyone is focused on working hyper efficiently and bouncing to go home to their families. Neither is right or wrong, but they can definitely be right or wrong for you.
* If you're connected, track down people who left the company and ask about your future boss. Were they hard to work with? Do people like them? If you have friends at the company (ideally, not reporting to your potential boss) ask about how your boss (and the department) is perceived by the rest of the company.
* Hit up linkedin and track down ex employees, ideally in the same job role. See where they ended up, and hit them up and ask why.
2. When they negatively recruit ("Oh that other company sucks, you don't want to work for them!"), run.
3. When you look around the work environment and see everybody on 15 inch monitors, run.
4. When they have an applicant tracking system and they don't respond to you after an interview, run.
5. If they ask "What are you weaknesses?", run.
6. When they ask "How much are you making now?", run.
7. When their Glassdoor reviews are below a 3.0, run.
"If you could wave a wand and instantly change one thing about this company/job/team, what would it be?"
This is similar to "what is wrong" but frames it in a positive light, so people are more open and creative.
If the answer is anything about people "I wish communication was better", "It would help if more people were on board for this project", "A change in management wouldn't hurt, haha j/k" etc. That's a red flag.
If it's about non-people "I wish we didn't have so much legacy code", "I would love it if we could get our testing setup better", "There are no good places to get coffee around" that's a good sign that aren't major people problems.
If they can't think of one, that's a real cause for concern!
This is one of my favorite questions in general because what people wish for tells a lot in many ways about the major problems, but without people begin guarded. They're fantasizing not venting.
Another way is to ask how decisions get made. Again, the specific answer is going to probably be something pretty non-controversial, so look for the subtleties.
Sometimes it's just obvious that it's too risky. I had one interview where the hiring manager's boss managed to freeze him out of his own loop. I ran from that one.
Also, you should be very skeptical if you felt like your interviews with individual contributors were lukewarm or poor but you still get the offer. That's very possibly a boss overriding flags from his team, or a team that's deadened enough to not throw flags in the first place. If you don't feel the interview went well, trust your gut--might not be just your fault.
I never met any of my future team members. I asked the hiring manager during the interview to introduce me to the team, but he said this wasn't going to be necessary.
Now, a few months into the job, I must say that I've never worked on any team composed of such antisocial people. Pretty much no one here communicates effectively. Cliques are demarcated along racial lines; there Chinese and Indian groups don't really talk to each other, and don't "accept new members" that don't speak their language.
This is the loneliest place I'd ever worked. What's surprising is that I never thought I could be so lonely at work of all places.
So, lesson learned: if you aren't allowed to do a meet-and-greet with the team before accepting an offer, don't even think about taking it!
- Do the others on the team seem happy? Did you get to meet any during the interview process? Do they seem to be happy to work there and comfortable in the environment?
- Does everyone seem to get quiet or smile officiously around the boss? That's a big warning sign. It probably means the boss is a bit of a tyrant or maintains an unhealthy power differential with the team. There is absolutely no room for this kind of posturing in a startup.
- Do you witness anyone coming to the boss for help with something? If so, and if the boss responds in a positive way, it's a great sign. A good boss is someone who is there to help everyone succeed and lend expertise when asked.
- Does the boss say anything disparaging about the other team members during the interview? Look out for indignant, judgy sorts of comments that indicate that the boss feels shortchanged by the team he/she has (unless you are explicitly being hired to single-handedly turn the team around).
- Is the hiring manager, founder, etc., transparent about runway, the cap table, and turnover rates? Playing it close to the vest about any of the three is a very bad sign.
- Do you see any VCs or investors stopping by uninvited and just hanging out? If so that's a good sign and means there is transparency with investors (which doesn't happen in all startups).
- Are there "big company sounding" organizational titles like "Senior Director", "Senior VP of x", "Senior Engineer", etc? If the company has fewer than 200 employees, titles like these indicate a wide array of culture problems, usually starting at the top.
When you are interviewing somewhere, treat it as if they are trying to convince you and you need to ask a ton of questions to figure out if they are a good fit or not.
Frame these questions in positive, generous light so you seem like you genuinely want to work for them and are just trying to get all the details.
"What is the thing that most pleasantly surprised you when you started working here?"
1. Do you like working here? You should get an impression that the person genuinely likes working there. If you have to drag enthusiasm out of them that's not a good sign.
2. What's your management philosophy? They should have one, or at least be able to sound like they've given it some thought.
3. Tell me about a time you disagreed with your manager or somebody senior, what did you do, what did they do? What ended up happening? What your looking for is a manager who is willing to admit some degree of political prowess. You DO NOT want to report to someone who cannot stand up to their seniors, it can be just as bad or worse than the overly political managers (the overly political managers at least get somewhere sometimes, you and your team will get resources, project wins, etc).
More like this. Whatever question you'd like a direct answer on. Ask it, most likely you'll never get the whole truth, but the way these questions get answered matters.
Over time I have reduced paying attention to what they are dangling in front of me, be it compensation or interesting stuff I want to work on.
I now mostly pay attention to the people. Specifically the quality AND loyalty of people to the firm\manager\founder etc. The AND is critical. If its just one or the other I walk. So for example, if its a 3 year old team and there is no one "smart" who has lasted atleast 2 years its a good sign to walk. If its a 6 year old firm and there is no one who has lasted atleast 2 years it's a great sign to walk. If there are people who have lasted and aren't "quality" its also not worth it. My definition of quality is they are smarter than me, or have done something I have respect for.
If its a new company I don't work with them unless I personally know the people involved.
Why these rules?
Cause if the people are "right" the interesting work and adequate compensation follows. Doesn't matter if the project fails your time with such folk is never wasted.
Your first job out of college has a high probability of being a bad fit and this is especially true if you're desperate to just get hired. So, it didn't work out... happens a lot. The important thing to do is to figure out what YOU want out of a job/workplace and to assess what that potential job can do for your career.
I think its a waste of time to try to figure out some minimal set of "red flags" to use for future interviews. Just look at the big picture, there's no single red-flag that will tell you definitively that a place is miserable (nor is there a single observation that signals an awesome place-- foozball and snacks won't make up for asshole-driven management).
Perhaps even more important than what you observe during an interview is to really examine your own needs and expectations. SOoooo many people are unhappy WHEREVER they go and always blame it on management, co-workers, the industry or whatever. This kind of serial discontent is a sign that the there's something wrong with the individual rather than their workplace(s).
"If you could change one thing without veto, what would it be?"
If the person describes a technical problem, that's usually a good sign. Long silence is usually good (but can also be a very bad sign if they just can't pick one thing). Trivial nitpicks are a good sign. Any complaints about communication are a very big red flag. Also any complaints about leadership. Obviously, if the problem your interviewer describes is repeated by any other interviewers, that is a big, red flag.
Piece of advice when firing this atomic weapon at your interviewer: Do not fill the silence while they think with any talk. Let them think. Let the silence hang. That makes people more likely to dig deep for something they really don't like.
So how do you prevent this from happening? I personally avoid a company where I don't know someone in it, or know someone that knows someone.
Additionally, there's a nice hidden feature of LinkedIn. You can search for people who used to work there. At one company I interviewed at, I searched and found that those who used to work there...the majority left within a year. It tells you something. I had a sense during the interview that the turnover was high, and again they would BS me about their wonderful culture. Then I spoke to someone who used to work there and he confirmed my thoughts. Oh yeah, the fact they were going to throw a lot of money at me raised a red flag too (the toxic company I was at threw a lot of money at people too).
- What do you hate about your job?
- How unlimited is unlimited vacation?
- What's the mean/median number of vacation days taken last year?
- How have you shown that you value your employees?
- How do you handle disagreements with potential hires?
- If the team is split on a technical issue, how would this be resolved?
Company bullshit (bad signs):
- "We want people who want to work here. If salary is important we aren't for you."
Uncomfortable answers to any of the questions, run!
I too just got out of college and tried to find my first job out of school and took the first offer. These are the signs that I picked up on.
- Arrived to interview to find that what I applied for was not what I was interviewing for ... RUN!- When trying to get a straight answer about benefits or how long individual training may be and getting a lot of "I'll get back to you" and no one does... RUN
- When waiting for your interviewers and recruitment has to come in and ask you if you have already spoken to your interviewers (i.e. their late or no show) ... RUN either they are way to up their own ass or just terrible at time management which if it's your future boss means they will have no time for you
- Last one promise, when interviewing and you get asked questions that you know the answer you gave to be 100% and they say it's wrong and tell you an answer that isn't correct. Run!
That interviewer or interviewers indirectly just told you that they dont follow or are going against what the documentation stateted.(in my case how elasticsearch is configured)
I.e. you will work in an environment that will leave you with knowledge that is incorrect and useless to use in another interview.
I think a lot of programmers are the same, so I'd ask the non managers interviewing me what's the place is like to work at.
But... it's easy to "fight the last war" about things like this. So if for your next job, you're 100% focused on finding a boss that's a decent human, you'll probably succeed. But something other major will be wrong.
1) What is your leadership style?
2) How do you resolve conflicts on the team?
3) Tell me about the communication style of the team.
If you get a chance to talk to team members without the boss being present, ask similar questions - conflict resolution, communication, collaboration styles, etc. This should give you enough information to judge for yourself if it is a healthy team environment, or not.
For example: within the company, IT is a second class citizen compared to production, so as a new developer you would start at the bottom of the bottom with no valid career perspectives. Low budget, bad offices, low pay, appearance of overwork are clear signs.
For example: aberrant company culture. Excessive secrecy and/or security measures (who do they think they are?), extravagant recreational resources (are they actually working?), excessive luxury (not bad by itself, but you want them to spend that money on your salary), excessive conviviality, etc.
There is a meta-warning sign about company culture: refusal to show working conditions and procedures to you because of conscious "discretion" and subconscious shame.Also, you could like, accept as normal, or justify because they make sense in context some of the bad attitudes you are aware of, failing to see they are a problem.
First off, protect yourself, ask to see the contract, guarantee any agreements for future pay/bonuses are in there, the contract must specify working hours, time off and notice period etc. Ask to see the resume's of the team you would be working with.
Orange flags come to equipment, books, resources. A good company will give you whatever you need.
Red flags are arrogance, delusion, recklessness, bullying.
Ask tough technical questions, see if they admit they don't know it or rubbish the question.
Ask about ventures, projects things that went wrong, do they blame everyone but themselves? How many people have left in the last 12 months? Ask to speak to them.
How much runway do they have left? less than 3 months is a massive no. Has anyone ever been paid late?
Honestly, if they're smart enough you can't tell until you're knee deep.
I always try to go out of my way to meet the team and shake their hands (even if the interviewer didn't plan for me to meet anyone). You can gauge a lot from just a brief interaction with people.
If I'm talking to other programmers and not management, I generally ask:
- Are you happy here? Why?
- Every job has little annoyances (important preface). What are some of the things you wish you could change?
- Do you believe your leadership is interested in your feedback?
I also REALLY try to observe the body language of the employees interacting with each other. Even if I can't hear what's being said outside the interview room, it can tell you a lot about the company culture.
I have had bosses who I thought were horrible and many others around me liked them. I have had bosses that I would go to the ends of the earth with and my co-workers thought I was crazy. A lot of times it is personality and confidence (in yourself and in your manager) which dictate how well you will get along.
How to find the right match when you are interviewing? Well, how many dates does it take for you to decide who you'd like to marry? Do you marry everyone you date? In this business, I think it's best to not get too emotionally tied down. You're going to move, and that's ok.
I know the ways in which I work best and I'm not afraid to let people know. That confidence makes a big difference not only in who I choose to work with, but also in how I work with others.
When gauging a new employer or coworker I decide mostly on feel. It's easy to recognize a matching relationship once you know yourself. That doesn't mean it's easy to find one.
It might not be true for everyone. In my experience, knowing myself helped a ton, and I was the only one who could figure that out. I was always told this growing up and had no idea what it meant. People telling me to "be yourself" made little sense to me until I learned more about myself.
When it's not done in malice, that can be an interesting indicator. It means that the people on the team trust each other - trust that they can say such things and have it received in the right spirit, and trust that the one saying it isn't saying it in malice.
I wouldn't make this the only indicator, but it's an interesting data point...
We all end up in situations we don't expect. While bad leadership is hard to overcome, it's a great learning opportunity. Now that you are there focus on improving yourself.
- improve your coding, on your own time or not
- help your boss not be an asshole. or go above them. or manage them. That's a skill too.
- enjoy your paycheck, but save money
Hope that adds a slightly different perspective.
My first job fresh out of uni was in a corporate environment and while I appreciated the professionalism that came with it ("Keep an activity tracker" etc ... might horrify some people but I love making lists haha) but in the end I only stayed for 6 months. It got too corporate and suddenly I realised that a lot of people were actually feigning cheeriness when underneath they were under mighty pressure from politics. I decided quite firmly never to work for corps (that activity tracker should have warned me after all) and for a few months I freelanced until I got broke. I thought I'd give big organisations another chance and I'm glad I did. When I had the interview, it was typically based on a set of questions but the interviewers were relaxed and made warm-but-not-wacky jokes. I also remember the time when I had a sudden mind blank during a presentation and they were really amiable with it and said that it's probably better if I spend a day with the team and see if we're a match. That was probably the moment when I knew that this workplace could be a nice place to work in, because they seemed to recognise and appreciate humanness and that the interview is not just about testing me but also vice versa. So if it's possible, asking to meet your future team and seeing what the reaction to that is like could be a nice indicator of the type of culture there. And of course the actual team meeting.
I don't think there's a proper list of how to detect toxicity, so I guess you just need to keep an open eye and ear on everything which is why it's important to spend some time in the workplace. Keep alert but at the same time keep an open mind. Interestingly, a week after I joined my new workplace, the organisation did some ruthless restructuring, but which top management was very organised and empathical about it, for example there was an emphasis that we could talk about it, and comfort those who are leaving etc. It was unpleasant and initially I panicked thinking that I picked the wrong workplace again, but in the end it was educational - a couple of weeks later, the emotional negativity dissipated. I'm still new but 1.5 months later and I'm still chirpy ... well I'll take that as a good sign.
No seriously, if you have a bad/weird/odd/sketchy feeling when interviewing, that's all you need. Your subconscious picks up on WAY more than your conscious does and it notifies you through that "gut feeling".
So don't listen to what others in this thread are saying. Their advice comes from their experiences, which may not match yours. Only you truly know what you want.
So what I do, outside of tiny startups (where I'd not go regardless, as you are in for years, and chances are you'll just be underpaid for the duration) is to go look for former employees, and ask them why they left the place, what sucks, what doesn't, and how generalized the problems are. People that have left might overestimate how bad the place is, but better an overestimation that you can temper than talking to someone that is still in love with the place, right?
This mechanism has been pretty good for me, and you can show you are a well prepared candidate by asking pointed questions about what the people that left considered the place's most glaring weaknesses.
I have been fortunate enough to be able to do this a few times in my career: In some cases, talking to my would be predecessor. It's helped me dodge big bullets, either by avoiding employers altogether, or by letting me ask for a different department/team in advance, avoiding terrible managers.
I don't have much advice to offer with your main question, after all I'm only a few years out of uni so I'm barely a step or two ahead of you on the same road. But I have this to say: you're not "pretty average"; you're just starting out. You'll get a lot better and then things will get a lot better for you.
I also valued myself pretty low when I started out so I ended up with jerks for bosses a couple of times, but eventually I built up the skills to have a bit more choice on the teams I was working for. At that point I found a team with a senior engineer who became a true mentor to me and taught me a metric ton of shit I'll be using to the end of my working days.
I think folks in this industry make the mistake of valuing innate talent above hard work. It's true there's people who have that sort of magical talent and godspeed to them. The vast majority of us though have to slog it out, and learn as much as we can on the job and as we go. What "pretty average engineer" really means is "bursting at the seams with potential to be a great engineer with strong skills" a few years down the line.
Also: good luck out there. It gets better :)
I've had ~10 jobs and 4 of them had intolerable environments. In the past few years I started vetting the companies I wanted to work at by getting in touch with current and past employees. This can give you some insight on how the place functions. I also request to visit the headquarters/office. Most companies will accommodate this. If they don't, I end the recruitment process because it's a big red flag for me.
bpchaps's bullet list is pretty good too. I've run into each of the line items in interviews. Particularly bad for me was Twilio, where the pre-screen phone interview consisted of two developers asking me trivia questions about various technologies. After the first 10 minutes I wanted to hang up. I was glad to not get an onsite. Right before Digg went under I interviewed there. There was no receptionist when I showed up, so the first interviewer (lead dev) didn't even know I was there. We started the interview 15 minutes late, and the interviewer took phone calls during the interview. I was extremely irritated, but I kept my cool.
Just remember, if you are treated in a way you don't like during the recruitment process, then you'll probably be treated in a similar manner if you become an employee.
-if they do scrum use jira have an open plan office or talk about estimates then those are big contra-indicators. if you get freedom about work times that's good.
-scrum is there to have better control over you aka big brother is watching you. same for an open plan office (especially if the entire team sits together). this makes for an environment where you feel watched all the time.
- if they want you to come in at a specific time that's also because they want to watch your entire work-day.
- if they talk about estimates this often means a focus on efficiency and a lot of pressure.
- if they use jira then you won't have a say about what you will do and are probably just a code monkey.
- on the other hand, if they give everyone their own office, let people work from home or give you more freedom about which time you come in then this means they trust their employees and are a good choice.
- if they ask you your opinion about things that matter then this is good too (it means they are not just hiring you as a code monkey).
It's really hard to pull out the truth sometimes. Those that aren't looking through rose-colored glasses are outright lying to you. No company sends disgruntled employees to interview.
It's important to figure out if the company has a plan for you. If the plan seems like "Change everything, but without any power to do it", book it outta there. It's totally OK to ask folks what they think about management. Again, rose glasses, but folks usually don't have a cached answer for this one so you could catch them by surprise.
I find one of the biggest indicators of "Do I like this place" is how disagreements are resolved. Ask about those. Press for details, don't take sweeping statements for an answer. Actual examples are best.
Finally, lots of folks make bad decisions right out of college. I certainly did. Very few folks will hold it against you if your first job is a short one (~six months).
If you've got any further questions, contact info is in my profile. I can run a mock interview if you're up for it. Hope I helped!
1. Find out as much about them as possible before they show up. Look them up on Github, LinkedIn, etc.
2. Target questions that are appropriate and related to the job. If the candidate offers any sort personal info about interests follow-up with questions and find out what they are really interested in, you should already have a clue from point 1. If their primary love is talking about airplanes or something else then writing code is not their first love.
3. Make the candidate feel at ease as much as possible. Offer Water, coffee, comfortable chair, etc.
4. Have someone on their level take them to lunch. They can find out what their potential future co-workers think of you and you can get some valuable feed back from your devs.
If the person interviewing you doesn't do most of these things then you probably want to run the other way. Remember your managers job is partially to help you be successful and if he can't help you have a successful interview then he most likely can't help you have a successful career. When you leave the interview you should feel that this person has your back and will help you out if you ever need it.
- If I'm asked a question, or asked to offer an opinion, do they seem really interested in my response? Do they challenge politely/with an intent to gain more info, or do they dismiss it?
- Whats' the average tenure on the team? How long have people been there?
- When asked the negatives or the challenges with the job, do they offer substantive responses, or platitudes?
- Are they interested in me as a person? Or is it just my skills and background?
- For the rest of the team, are they engaged? Do they seem to care about what they're doing? Do their concerns/negatives about the job match what their boss said?
- What's the ratio of leadership to worker bees? Are there lots of VPs for no apparent reason? Red flag.
It's largely qualitative, but I like to see consistency in temperament, enthusiasm, understanding of the challenges.
Example: I interviewed at a company a number of years ago for an executive leadership position. I met with four different execs, each of whom had a different cagey answer as to why business wasn't doing as well as it could. I opted not to join, as it "felt weird". Later I ran into someone I knew who happened to have taken a job there who confirmed my suspicion that it was a disorganized organization with a toxic atmosphere.
Trust your gut. If something feels wrong, it probably is, and don't let desire to get the job override your instincts if you can avoid it.
My current company I could tell that when the team lead talked about it being Agile and using latest tech that he really believed it.
Because he believed it I joined, but now I realise he was willfully deluded. So don't forget to watch out for this and verify what their practices are with questions.
The good news is that now you'll know what to look for when you interview at new companies. Some things I look for:1. A well organized and well run recruiting process. If they can't communicate, schedule and work with you during recruiting it's unlikely they can do so when you work there. 2. Great employee retention. People don't stick around for a long while at companies they hate. Look for places where people stay for the long haul (at least 3 years). 3. Personal connections. Talk to the people you know in the industry and learn about where they work. At this point I would have a hard time joining a company where I didn't know anyone since there is so much risk involved.
Good luck with your next adventure! It only gets better.
2 things I've found that work:
1 - If it's a backfill for an existing role, find out if the person is still is with the company.
1a - If the person who had it is still in the company, it's generally a good sign, but ask to talk to them anyway. You may not get full information, but you'll get some. (If they're just doing something else for the same boss, also a good sign.)
1b - If the person who previously had the job left the company, reach out to them and ask about the role. They'll usually be more honest.
2 - Find a friend, or a friend-of-a-friend who works there, and ask them. This will get easier the more you work, as your network will expand. It's also a good reason to keep in contact with everyone you meet. (LinkedIn helps a lot on this, despite all the bad press that it receives)
Also just realized my question has a typo. :facepalm: Looks like isuckatgrammar too.
So this suggests a strategy to screen out obvious mismatches, sign on, then abandon or confirm when you have enough information after a month or so. This is one of the advantages of freelancing or starting under contract: both parties have a chance to see how the other performs in the real world instead of the artificial job interview setting.
So extract what clues you can from the hiring process but don't attach too much confidence in their relevance to your ability to enjoy your work, to perform well, or to advance your career.
Is there another developer in the interview besides the hiring manager? Do they seem engaged and are trying to sell the job to you (a good sign), or are they kind of disinterested (a bad sign)?
Are the interview questions adversarial? ("Solve this problem. Ha ha, that's not right" - bad) Or are they asking about you and your experiences and trying to relate them to what you'll be working on. (good)
What specific aspects of your current workplace do you view as toxic?
One manager felt insulted and got angry. I took the job for other reasons but he turned out to be petty.
Smiling people are a good sign. People that come to greet you and talk to you (even if you are not yet hired) are also a good sign.
Refusal of that tour is a bad sign. People that seem grumpy, tired, or angry is a bad sign as well.
You could also find a developer in the company cafeteria (or something similar) after the interview finishes and ask him/her about the company
- Lazily using "full-stack development" for every position as a means of avoiding the hard work of actually managing people, providing meaningful job descriptions, and respecting specialties. A company with a huge army of undifferentiated full-stack positions is a major red flag.
- Unwillingness to negotiate regarding private offices or remote / work from home options for people who are not compatible with the noise & productivity loss caused by open-plan offices.
- Hyper focus on your salary expectations early in the process without reciprocal willingness to share the budgeted salary range. This extends to hyper focus on relocation costs or other compensation items too.
- Jobs that don't provide relocation. Sometimes there are good reasons, but many times it's because of cliquish culture and/or extreme cheapness.
- Paternalism: does the management act like your vacation time, your pay, other forms of compensation, or other perks are "generous gifts" doled out by the company? Do they act like the company "is a family" and have weird workplace cultural norms about key management "principles"?
- Are all of the recent Glassdoor reviews 5-stars with unrealistically glowing reviews that sound like they were written by a PR firm, and all of the bad reviews are buried at the end and sound like what an actual human would write?
- Any unreasonable demands for access to private data about you, such as statements about past income or addresses, test results for things like IQ or personality tests. I agree with other comments that even asking for test results is a bad sign, but even if the test results were legitimately useful for hiring (they aren't), there's still the issue of distrusting some random company with private data about you, or being skeptical of their network security.
- If anyone tries to talk you out of your financial requirements with lame excuses, it's a red flag. For example, when I've countered lowball offers before, I've had HR reps debate with me exactly which apartment buildings and locations nearby I could live in at the wage they countered with. Anybody prying into your private life like that ("hey I know where you should choose to afford to live") is nuts, and you should run away.
If speaking to other employees is not an option you will really have to lean on the questions you ask during the interview. I would encourage you to have standard questions for the people interviewing you, that way you have a consistent way to rank a company or team.
Hope that helps!Lisa
Ask to talk to people in the group you're going to be working in. What do they think of the company, their boss, team lead, other team members? Are they often asked to do more than should be expected of them? Do they love their position?
If they don't offer or won't let you meet with the future team, this indicates they really don't care whether the team likes each other personally, OR that they're so busy they have no time to meet you - which is not good either. It should also be face to face; nobody gets to know someone over the phone.
Finally, you can use probing questions to see how your future boss reacts. Make a joke and watch their body language. Ask them both professional and personal questions. Ask them how they would handle different work scenarios - would they throw a direct report under the bus, or try to cover for them? Do they micro-manage or are they hands-off? How responsive are they to communication, and in what forms? Do they work with many teams or just the one? Are they customer-focused or task-focused? Is their primary motivation to get ahead in the company, or merely to be helpful?
Sometimes there's no way to know if a boss is going to be a jerk. But 9 times out of 10, either someone else working there has noticed it, or they'll act like a jerk to you with the right prompting.
If they act aggitated, aggressive, nervous, rushed, etc... Thats most likely either their true personality or a real problem of their workplace.
When you ask to meet your coworkers are they nervous or friendly. Does their boss say anything nice about them... Etc...
Like Rate my Employer (http://www.ratemyemployer.ca/Home), Job Advisor (https://www.jobadvisor.com.au/), Kununu (https://www.kununu.com/) and The Job Crowd (http://www.thejobcrowd.com/). Yes, all these sites can be gamed if the company is persistant enough and floods them with fake or coerced reviews, but they can also give some impressions on what working there might be like.
You should also check social media sites (LinkedIn and Twitter might be good places to find people's opinions on this stuff), as well as general mentions of the company's name in general. After all, if a bunch of articles start talking about how terrible the environment is on Medium, then that's probably a giant red flag right there.
If you can find out, knowing the general level of staff turnover might be a useful metric too. Does the company often get people who work there for a couple of months and then quickly move on? That's a pretty good sign it's not a great place to work. If you see a bit of talk online about how a large amount of the team quit at once, or that staff turnover is high in general, it often means something has gone pretty wrong in recent weeks.
As for what to see in the interview... well, I guess pay attention to the working environment, the behaviour of the staff, etc. If it looks chaotic or the employees look utterly miserable, then those could be warning signs in of themselves. Of course, you might not be able to tell this (if a company is very careful about their interview process), but that's pretty rare for startups and small businesses.
Hearing a lot about 'culture'or 'company fit' might be a warning too, given how often it means 'acts like the boss/other staff and shares views/background'. As might the usual complicated interview procedures, suspiciously low pay, the office being in the middle of nowhere, etc.And
I would look at the following:
(1) How has the company communicated with you since you applied to the position? Has it been a single person communicating to you, or several, or an automated process?
(2) How did you find it personal or completely anonymous?
(3) Was there a telephone screening interview with HR?
(4) How were you tested technically? Were you sufficiently tested?
(5) Did you have to write code as part of your interview process? If not, this is a major failing. If the company doesnt know if you can code or not, what is the point hiring you?
(6) How large was the interview panel? This is most visible way of assessing how important a company views recruiting developers.
The interview itself:
(7) Were the questions asked relevant to the work you believe you will be doing?
(8) Did the questions asked match the advertised job? If it doesnt, it is likely that the job advertised wont be the job you will actually be doing.
(9) The interviewers personality and behaviour. Were you treated with respect?
(10) Would you like to work with these people? Remember, in an interview, people are on their best behaviour on both sides of the table. If you come out of an interview thinking that one of the interviewers was a pain, then they will be most likely be a complete bastard to work with. You need to trust your gut instinct about people.
(11) How was the outcome communicated to you?
I've blogged about this previously at http://www.andyparkhill.co.uk/2015/04/the-software-developer...
Took me a while to find a good formulation for these questions - during an interview I now say something like "Facebook, Apple, Microsoft and the like still miss deadlines, so it's a given that smaller outfits will, too. How do you deal with missed deadlines, and how are teams affected by that?"
I look for more occurrences of "we" and "us", and fewer of "I", "he", "she" and "you".
This is culturally and geographically dependent though. In a tech hub kind if area, holding a job less than a couple of years isn't strange, in my home town where an average tech employee is 45 and not 25, I'd run if the average employment was lower than 5 or 10 years. So it depends.
If a third of the team quits quit last year that's a pretty good sign that the environment is toxic. And it becomes only more toxic since usually the talent leaves first.
Oh: also if you have kids - the killer question is "does everyone in management have kids"?
Then my situation took a dive. New managers usually don't like non-super-star employees already there when they are brought in from outside. They didn't hire you themselves. And they are under pressure to do better. So if you are an average worker, you have a big fat target on your back.
All points on this thread were great. But you never know about life, what will happen tomorrow.
So don't feel too secure or cocky when things are going well. And don't feel too down when everything seems to be going against you.
- If during the interview, they ask you if you have 'firing skills' and how you motivate unmotivated staff, that's a strong indicator also. The company was based 20 seconds from the edge of a airport runway. Repeatedly during the interview, we had to stop talking as the noise from jet engines wouldn't allow normal conversation.
1) know your requirements2) use behavioral questions instead of hypothetical3) trust your intuition4) hold a high bar
If you have a doubt, there is no doubt.
During my first engineering job out of college, I had a crazy angry boss whom you could hear yelling at people all the way across the building. I used to dread having to meet with her (at least) once a week. I literally had to remind myself that "no matter what, she cannot take my life". Yes, this was ACTUALLY a recurring thought.
It didn't take long after I had already left that job, that I realized how good she made me. Among my peers, I'm the top engineer, and she's the reason for that.
Check out my company: www.evolutionarynetworks.com
What you need to learn is:
(1) How to deal with difficult people. It's very likely that you'll have to deal with personalities and egos like this at some point no matter how carefully you attempt to situate yourself.
(2) How to make yourself marketable enough that you can easily walk from uncomfortable workplace cultures. At some point you're going to work with a colleague or in a company that you cannot stand, so be ready for this.
I'm looking again to escape my current abyss but am just so paranoid that I'll end up in another mess due to simply liking my boss & coworkers during interviewing.
"Boss" is just another word for Manager, so look in the mirror and make sure you're using the right vocabulary to find what you seek.
How do you tell if the person you're "dating" is crappy/toxic? That judgment is very subjective, by definition. e.g. I've had my fair share of people I've found "crappy/toxic", that others have not. And vice-versa. You want to find the person/manager that you get along with.
The only way for you to truly tell, is to
1. Spend more time with them at the right time:
- The best time to do so, is when the offer is made, but before you've accepted it. That is your best time; most companies will do pretty much everything they reasonably can, to keep you interested in that phase. Make use of that time, to ask for more conversations with the potential manager/team.
I used to work in engineering at Box for several years. Box is very thoughtful about their interview process. We used to invite candidates we liked, for dinner with the team and multiple conversations with the manager. They were also very selective about promoting people to management positions.
2. Do backchannel references:
- Hit up past employees on linked-in. Especially the ones who stayed at the company for a long time. They'd likely know your potential manager and will be able to correlate them with the culture.
Don't feel shy in doing so; it's routine. Of course, BNBR with their time.
Generally speaking, in interviews, you have to optimize for "fit" with "you". Do the best you can in the time that you have, and then leave the rest to chance. There are many good people and strong teams out there.
[I make these observations based on my past life as an early engineer at a couple of companies, as engineer and Director of Engineering at Box and as someone keenly interested in interviewing as a topic. These days, I pour myself into running a bootcamp for technical interview preparation: http://Interviewkickstart.com. We believe that all good engineers deserve a chance to work for best companies of their time, and interview preparation should not stand in their way]
Before you walk into an interview or even have a telephone interview decide for yourself what kind of company, culture and environment you want to work in for a lengthy period of time.
Its the best tool. I had a certain feeling about my curemt boss (like this, don't like this) and its right on the money 4 months later. Just get a sense from what they focus on (and what they gloss over), how they talk, their body language, and more.
Next time ask how excited you are to join that person's team
This has lead to me mostly working for bosses with good people skills which is rare to find in tech. I hate working for socially obvlivious robot programmers who can't solve people problems.
There is no shame in taking a first job out of college and realizing it wasn't meant to be.
Working at your age should be akin to dating...you should have no guilt or issue with realizing you acted without having complete information and perhaps jumped into something that wasn't, in the end, right for you.
Why not start actively shopping a resume and talking to colleagues your age to see where you could possibly land next?
Good luck, and keep moving towards a better tomorrow.
2) how the interviewers treat you when you are trying hard to answer tough questions? If you see sympathy, it is a good sign; if they play bad cop and good cop, run.
3) if they dont ask you any personal questions it means they will not care about you.
Once I got in the door I found out all the code was originally produced from outsourcing in Russia. So it had no comments and it had layer after layer after layer of unneeded abstraction. So figuring out the behavior on an error in the BLE back end communicating with a fitness tracker required tracing through half a dozen unneeded classes like screen config beans, screen states, the fragment state generators, to to error codes, to error messages, to fragment subclasses, to flow subclasses, to activity subclasses. All with if/else's for special conditions jammed everywhere even in things that should be mindless DTOs and many parts never actually used and deep inheritance hierarchies. It could all have been easily done with 40 classes instead of 120, with much simpler, more reliable code.
Lesson: ask the company about outsourcing history and plans.
Software engineering has known for a long time that abstraction over composition really hurts maintainability and reliability, but clearly this company never heard of that. Normally this sort of thing is fixable, but the couple staff developers they had brought in tended to just write whatever they thought would work, shove it into the app, then call it a day, not even smoke testing, let alone writing unit tests. Developers frequently pushed code that didn't even work in real testing on a device then left for vacation for a week leaving others to deal with their mess. If you sent them an email with logs or even fix commits, they'd call a meeting with management to try to discredit you and block the fixes rather than working to fix the problems. And their stuff simply didn't work on the devices, so there was no possible end goal to their politics that would leave the app functional. It made no sense.
Even ignoring things that could be considered "style" they didn't have much technical ability either. They thought changes to variables would be visible on all threads as long as they used an Android Handler class on a background Looper, but that's only true if both threads where it is read block on the underlying event queue, which wasn't happening in their code. But they fought the synchronization blocks that would make the value changes visible to their UI logic despite logs proving their code was blowing by changed values without seeing them.
Lesson: their developers will give you a technical interview, but be sure to ask your own questions and determine their level as well.
OK, outsourcing, we can clean it up. Clueless junior developers, we can train them and pair code with them and clean up up their messes. But management was completely screwed up as well which kind of prevented any fixes. My manager left at 4PM every day to go ride his bicycle and never came back. Meanwhile, I took a 45 minute bicycle ride midday and worked until 8PM to finish a project for the company during a month we were encouraged to exercise and be healthy - he fought to get me in trouble for "long lunches".
Similarly, my wife drove two hours once to get me in without standing an hour on the BART, so my back wouldn't hurt. She did everything properly, got a guest badge, stayed out of restricted areas where we were working on unreleased products, and got kicked out by the manager for talking quietly at my desk with me and a coworker. He was panting heavily and claimed she was too distracting for him to work. She left and never came back to the company ever again, but he went right back to harassing me about her week after week, talking about her and making up new rules despite the fact that she never came back. Meanwhile he had reserved an entire conference room for his friend's family to visit the entire day.
Lesson: not sure how to avoid this one.
The manager said all the right things during the interview, that management is supposed to help employees get things done and get along with their team, but he spent what little time he was on site harassing people. I guess because the company had just IPO'ed the management was basically rich from their options and didn't give a damn about actually working. I put in a transfer request with HR who immediately fired me instead of looking into it. They claimed all their managers were the same, which was a lie, since I walked around and asked. So no clue of the right lesson for that one. Sometimes you just end up with a bad company despite doing everything right.
This isn't always available, but it's worth a lot if you can get it.
>However, a few months into the job I realized my boss was a complete and utter asshole.
well, that is view from your side. Are you sure that you aren't the one too? It is just a frequent situation that people are defensive in response to your [as perceived by them] "offenses". It is one of the most important skills if you're going to develop your career as corporate drone is to get used to work with different people around you.
We detached this subthread from https://news.ycombinator.com/item?id=11450021 and marked it off-topic.
3.)always ask about possibilities of TRANSFERS andother departments, even contractors.
4.)give email address with I LOVE TO GET ANONYMOUS MAIL.
5.)sometimes you have to visit the bars and party placeswhere the employees hang out for some 'human tips'-- know what i mean
6.)over age 54 or was it 49? first career out of a fewwas electric - gas grid.FIRST YEAR IN FIELD, about three persons GOT KILLED or?? and what waz intereesting was they were not necessarilyaccident prone.
7.)look up the govbuerment stats. electric - like afterthe hurricane out is up there next to coal mining.
8.)the CRAPPY boss is part of the overall package. defineyour framework - ecosystem, QUANTITATIVE assessment offactors, etc. You are an A student in Math, for topuniversity, right??? sure??
9.)it's gonna sound real harsh. insert quote by Nitzzzkieche. the responsibility AND THE ATTITUDE isyours alone. I've been amazed at how bad and evenhow out of date SME subject matter expertise - greatcoding skills in Microsoft VB - the crpola-boss getsand they rotate and TAG TEAM YOU.
sometimes, Its a 'sisten-in-law' who married the keycustomer VP so BOSS is 'royalty' YOU CANNOT TELL.
rule #10 - be really suspicous, if the 'secretary - admin assistant, receptionist? doesn't give you theREAL RULES and culture of the company? It's UP TO YOUto ge the truth out of them as in the book Disrupted.
oh st, no rules that are too easy to say.
buy the management books. Find out what the CRAPPPITO lordis reading. Only then, plan your strategy.
-If they give you an IQ test or similar, run.no dumpkofff, I used to practice IQ tests and I go toMensa, but no real good lookers there - if you know whatI mean.THE NEW AGE is the PSYCMETRIC babble test. if you arenot a 'quality focus PERFECTIONIST' then maybe U SHULD gibup 'developer position'?
Conclusion - Sadists?, possible racists?, sexists?been there done that - both employee, consultant, manager,no I am not 'racist'... I think ahole, since I ama minoarity and used toSTICKING OUT LIKE A SORE THUMB rolling with da punches, mon! don't let them knowyou have been hurt. Sometimes, it helps to suggest otherpossible VICTEMS for the Mr. CARPPY-hole to attack.
the best books seem to be FBI related as to open questionsand sniffing for dirty dirties. The CODE is the companyand the code smells?according to book reviews on internet, the KGB usesthe medieval tortures; the CIA uses the outsource orrendition to other a-hole tortures like fine democracyEgypt; the DEA uses the highly reliable informants paidfor in cash.
the local sheriff grew up in the same high school, sohe knows the ART-holes as kids and has not changed hismind in 20 years, while he tries to get rich on thefracking boomlet.
please refer to Fred Reed, lew rock well *comfor useful travel and adventure writings as old timejournalists? used to bounce around quite a bit.
hey, I like writing - code only in hh aa ss kk ee llor give advice to 'nephews like you' or virtual sonsmaking all the same mistakes I did when I was young
loooooong time ago. fellow Art-hole in training!
remember, it 10% personal. U have been selected by fate.it is ALWAYS, THAT IS THE RULE, 90% not personal.55% divorce rate in USA. it still is 90% NOT personal,its the system....
PS. Research is ongoing. I LOVE DATING BAR-MAIDS becausethey tell such interesting stories.
PS. If you work in Wall Street, NYC, why are thego-go dancer bar close-by?
PPS. sure, I'm just an old, kinda introverted consultant.did startups, and did part-time startups - sure I failedbut some friends did succeed. IT AINT PERSONAL, I justdid the best I could. with the crabby bosses i got.
But that is me. Pick something that interests you!
By the way, for six months, you had better pick something very focused. I would try to err on the side of modest. If all you have right now is a broad topic, see if you can pull at one loose thread---some annoyance or nagging question---and see where it takes you. Probably you will find hundreds of articles to read, and more complexity than you expected. Grad school is a rare chance to "go down the rabbit hole", but you should expect that your six months will fly by. Research is like reading Wikipedia: it constantly branches and takes you into new things you "need" to know.
Code sniffers and linters and style checkers are tools that detect that a bad smell is present.
An architectural bad smell is violation of the architecture. IE the view modifies data, the controller is too fat, etc.
Hence it is required to have a Code sniffer for architectural bad smells.
However considering that there are so many architectural patterns, so many frameworks that implement them it is herculean task.
So could it be possible to use Machine Learning to detect them hence the thesis:
"Automatic detection of architectural bad smells with Neural Networks"
Ideally, do something related to your true interests in software engineering. 6 months is not a long time. You definitely want a deliverable code product, even if just a minimum-viable implementation.
If you are having trouble remembering, go back through your bookmarks/upvoted HN posts (if this a throwaway)/read laters.
Suggestions:Take what ImTalking said and apply it. Find an industry that could benefit from software improvements/modeling/automation. Find the pain points. https://news.ycombinator.com/item?id=11444451
Combine data visualization with something of interest to the HN community that could go "viral" on HN once you publish it.
Write an interesting niche chat bot (this is a really emerging field). Perhaps with machine learning.
Write something that your future employers might use as a hireability signal
Start a blog. Post it on HN. Document your process of researching and writing the thesis. Show us what it is like to be researching something in depth. I think many at HN (even those who openly eschew the idea of going back to school - or even going to college in the first place) would find it interesting.
I just made a more detailed description here: https://news.ycombinator.com/item?id=11461985 .
For what my opinion is worth, I don't think there's much to be afraid of here. There's a pretty big gulf between mouthing Amazon's cant and actually becoming that sort of Darwinian hell workplace. Amazon is the way it is because Jeff Bezos wants it to be so.
I've been through several different episodes where the PHBs decide to adopt some philosophy that doesn't really affect daily work life.
My current workplace has hired some senior Amazon management and beyond adopting their sort of product definition (the infamous PR/FAQ), has had no other effects. We're still dreadful incompetents with or without them, but seemingly no more cruel.
Graphics / CV: VR Gaming (Oculus, HTC Vive, etc), self-driving vehicles, computational photography (Lytro)
HCI: Leap, Kinect, VR Gaming again
Architecture / performance / networking / databases are tools, not applications in and of themselves - find a problem that demands extremely high performing systems, and there will be work done in those areas. Example: the PX 2 system for self-driving racecars that Nvidia announced a few days ago at GTC hits six of your bullets points by itself (architecture, performance, computer vision, networking, parallel systems, computational science).
There's also Diffbot, https://www.diffbot.com/, you this could count under "computer vision" (as AI/machine learning).
Think this https://streamium.io/ might tick the "Concurrent/Parallel/Distributed systems" and "Networking" boxes.
* Timetabling or scheduling apps like Doodle.com - subjects pertaining to Graph Theory * Travel comparison sites that can find you the fastest flight route from A to B (and/or cheapest or some other type of constraints) - Graph Theory * LinkedIn network analysis apps such as Socilab.com - Graph Theory
Edit: Another application is PCB design. The circuit to be printed is the graph itself, it should not allow edge crossings that would result in a short circuit.
For databases, there are quite a few columnar database startups.
A bunch of these topics are basically only relevant at large scale since they're R&D intensive. I think it's easy to say that Facebook, Google, and Microsoft have big groups of people dedicated to most of these problem domains. Search their engineering blogs or look at white papers and you can find a bunch of examples.
For distributed storage, Carnegie-Mellon had solutions like AFS, which large DS organizations used. Google needed a different solution and made Google File System and MapReduce. Inspired by this, a project like Hadoop is started.
Insofar as graphics and computer vision, the first non-dev Oculus Rift just started shipping a few days ago, and Oculus is already working on an improved version of it. HTC and Valve's Vive was just released a few days ago. So a lot of innovation is happening in graphics and computer vision right now.
AI/ML is important to (or visa versa):
- Graphics/Vision (my research is largely in this field)
- Scientific/computational science
Crypto is important to:
- Distributed Systems
And I'm sure the above lists are not exhaustive. I think learning ML and optimization is important because you can apply it to literally almost any other field. One of my favorite things to see is when people apply ML/optimization in new ways to other disciplines. The field of Computational Fabrication is very interesting, IMO. All these things are not so different as they might seem.
The thing with PL is that it's something of a meta-field, even within CS: the programs you write help you write other programs. So while user-facing products based on PL ideas are rare (ie just development tools), many companies have surprising numbers of PL people in house who use these tools and techniques internally.
Computer vision: Important for most VR tracking systems, body tracking systems like Leap Motion, as well as augmented reality systems like Project Tango and Vuforia.
Perhaps they can add a "graycolor" field, that is somewhat related to the score.
I use a red pen to mark things:A star for action items. More stars = more urgent.A ! for points of interest, important facts.A ? for questions.
As I go over my notes, I cross out the stars, !s and ?s as I address them. That way I'm not confused later.
I do the marking regardless of whether I mindmap. One thing about mindmaps is that they take up a lot of paper real estate, and 8.5x11 quickly gets used up. So it depends on the nature of session.
It is a personal organizer, is something like really fast mind maps but (currently) keyboard-driven and handles very large amounts of interlinked data, different topics at once or mixed etc: the beginning of a platform to change how individuals (or mankind) manage knowledge overall. Future features involve much more than note-taking, but exploiting the internals for collaboration, anki-like repetition, to-do reminders, and more.
For current org-mode or evernote users: The app has export (& import) features to convert anything to (or from) an indented plain-text outline. The FAQs have links to a discussion of a more detailed comparison with org-mode that seemed somewhat well-received at the time (link is on this page which discusses evernote: http://onemodel.org/1/e-9223372036854614741.html ).
Feedback would be much appreciated. If one has any interest at all, I suggest signing up for the (~monthly?) announcements list, and participating in discussions on the general list, for suggestions & input on things going forward.
(Ps: in the next week or less I hope to have a demo version available to play with easily, without having to install anything first but the .jar.)
Having tried a lot of tools including paper notebooks, mapping, personal wikis (ex. TiddlyWiki), tagged note-taking apps (ex. Evernote, Day One journal), blogging platforms, ... I've come to the conclusion that nothing does everything that I want as well as good old markdown.
My solution is a simple but flexible git repo . So far I've logged notes on 50+ items over about a year, including books, courses, videos, magazines, podcasts, etc.
Some of the best examples are Show Your Work!  and Cities and Ambition .
P.S. One recent development is GitBook (https://www.gitbook.com/). It's a little more than I need personally, but incredibly cool software nonetheless.
What works for you is what works for you. And what works for you well in one subject might not be as optimal for you in another subject. We all love the idea of one-size fits all (in fact, this is marketed to all of us all the time).
In fact, I am going to go off on a tangent here and expand to not just taking notes - but how you learn new things.
I am assuming that you are optimizing for short-term usage and recall. For rote memorization, if you have not already encountered it, try Anki (http://ankisrs.net/). To simulate a test (for those tests requiring essay answers), get a group of study friends together and just do what Toastmasters does - ask them a question related to the subject and have them speak for 1-2 minutes off the cuff about it. This closely approximates a short (or longer) essay question. For subjects like physics, optimize your method of problem solving. For example, don't solve problems line by line in the textbook. But on a whiteboard or a blank sheet of paper, ideally with friends, solve that problem at a high level. What is the process that you will need to do to solve it? Where can you get lost? (VERY IMPORTANT)
As for longer-term recall and usage, it is all about day by day actions, not binging. Just an hour or two a day consistently. Active not passive. I'm currently studying a new language (Spanish). I used to have a giant Google doc where I just copied and pasted in in translations of single words. Later, it evolved to include example sentences. Finally, it became blocks of writing from native speakers.
It didn't do anything for studying. What works is actively trying to use the words/phrases. I can only handle maybe 5 or 10 a day. And by actively using them all day (even if just in my head, sometimes with headphones in public - no one knows you aren't talking to someone but yourself) they become gradually more medium-term and eventually permanent.
I've seen a few of these ask HN's and have payed very close attention.
I like workflowy  but dislike that is is cloud based. I wanted to host whatever I use.
after giving org-mode  a a few hours of tinkering, I am now completely in love. I host it from an ssh server and manage it from a terminal and can honestly say ythe few hours of tinkering were completely worth it. try it out. I typically use lists/todo's and tables.
 https://workflowy.com/ http://orgmode.org/manual/
The goal would be to make my textbooks/articles the single source of study-material when midterms/finals came around. Rather than sift through stacks of notes, I'd just have to re-read the textbook including my annotations, and I'd usually be fine.
I started doing this sometime in like middle school and have stuck with it, it's perfect for me but ymmv.
And even in college I usually didn't take notes at all. I learned by borrowing notes from several people, and then meticulously created a cheat-sheet.
$ git clone https://github.com/rofrol/m1ndmap
$ cd m1ndmap
$ npm i
$ npm run watch
Scrap paper, big post its for longer ideas, phone calls, notes while reading.
Both of those create physical baggage for me forcing the next function: drop, file, delegate, share, etc.
Posts about netdata:https://github.com/firehol/netdata/issues/148
Our inspection firewall logs and dumps unknown x-'s like yours does. We meet once a month to go through them and either deny or clear them. Like your admins, if someone says "Astroscript" isn't working someone will dig into it.
X-headers are not the way to do data passing. There are other ways to make that happen other than creating new headers.
Feature, not a bug.
BTW, some of the statements on this thread that "fellows are used as poster children for Thiel's vision of society" and equating taking the fellowship to becoming a "living cog in his anti-education political statement" are just downright false.
I actually assumed going in that we would need to do press or something; after all, I've always heard "there's no free lunch." However, in reality I found the fellowship never pressured me to do media if it wasn't helpful for Figma. In fact, Figma was in stealth mode for the entire two year fellowship. There's literally no downside other than not attending school for two years. (And you can quit at any time to go back.)
If anyone has specific questions about the fellowship, feel free to reply and I'll try to answer later today.
I had already dropped out when I took it so it was a no brainer for me. If you've already dropped out or decided to I don't even know why you're asking - at worst it's free money.
If you're asking whether or not you should drop out, that's a pretty opinionated thing and depends entirely on your circumstances, but I'd recommend you go for it (fellowship or not). As morgante said, you can always go back to college. 10 years from now sillicon valley might not be so friendly to us tadpoles
You can do startups later and will work for the rest of your life. Does the Thiel Fellowship really reject the same person if they happen to have a college degree? They must forgo college?
Alternatively, look at outcomes of the companies from (recent) batches, but be careful -- that can lead to attributing too much to the program vs. innate qualities of those founders.
If you can't find a connection to someone who went through it personally, try a cold email.
Many founders will give you a short call or respond to a well-written email that briefly and directly asks about their experience and recommendation if you can prove (briefly) your qualifications. If you're going to take this approach, expect to be very open with sharing details of your idea.
With the Thiel Fellowship specifically, you may consider reaching out to the founders of Sprayable Energy. They ran a successful Kickstarter campaign [I was a backer], and are pretty cool dudes.
I would imagine if you'd been accepted, you could always go to University once your startup is 'done', either finished or acquired, and you would likely have your pick.
That said, you get a different sort of social capital from going to a top-tier school and graduate school, and of course, in a good technical degree program you will learn a bunch of useful things, largely around rigor of thought, how to learn, how to work with peer groups and just how much smarter than you many people are.
Peter says those things don't matter, and in a way he's right; for the indomitable, driven hard-working, socially skilled, lucky entrepreneur, college is bullshit. Seriously, a total waste of working years. For the rest of us, there are benefits, especially at a top-tier school.
I'm too old for it, but it's basically free money. You can always return to college later if you really want to.
Not really, in the sense that fellows are used as poster children for Thiel's vision of society. If you don't agree with the seasteader movement, you probably won't appreciate being a spokesperson for that worldview. If a different organization you disagreed with offered you a big check to drop out of college and act like a true believer, would you do it?
I'm sure many of these failed fellows will go to college and resume where they left off.
- Incredible peer group
- Access to the best professional network on the planet
- Help to make things happen
- Introductions to investors
The price you pay.
- Part of billionaire's PR effort. Personal consequences for mistakes that might lead to negative PR
- Pressure on fund raising. Big raise == success
You go to college not to build your dreams, but to build someone else's.
If you want to go and work for someone else, you need a college education.
I wrote about this here: https://news.ycombinator.com/item?id=8767092 and here: https://news.ycombinator.com/item?id=9433316
Long story short, the biggest mistake I see people making is not actually rolling up their sleeves and learning the math.
People are often content to watch hour after hour of Udacity, Khan academy and Coursera videos but the applied follow up is where most people drop off. At the very least any course work should be followed up by something practical like a kaggle exercise to prove that you can apply the technique you just learned. Consider the benefit of just watching videos vs doing actual applied work.
On one hand if you just watch videos you might learn alot but how do you prove that to someone hiring you? On the other hand if you sit down and spend a week attaching a Kaggle excise then at the very least you have something to point people to, to show that you can apply machine learning techniques.
My recommendation has always been to read the first 5 chapters of Introduction to statistical learning: http://www-bcf.usc.edu/~gareth/ISL/
and if you fly through it then sample Elements of statistical learning http://statweb.stanford.edu/~tibs/ElemStatLearn/ for the topics that you want to learn.
If intro to statistical learning is too advanced, then go to Khan academy and work your way through their statistics videos.From my experience you can bucket people into skill level by looking at how they attack a new problem.
Beginners tend to start by saying they'll need a hadoop cluster and spend the next week setting up a pipeline.
Intermediate people tend to jump into R or scikit and try to model the problem with a small subset of data and the library and technique they know best.The advanced people tend to flesh out their hypothesis first and then work out the math and then jump to modelling with a small set of data and finally move to a cluster.
A short master's (3-4 semesters) is about enough to have all the math background + some application classes.
An Introduction to Statistical Learning
You may be able to make some use of existing ML models and libraries without a deep understanding of the methods however.
I don't think you can go from PHP to Rust and expect to work on the same kind of projects! Are there any jobs in Rust for webdev currently?
Are you sure Rust is a great lang for webdev (meaning, is it worth it?)?
Regarding revolutionary tech:
1. Bootstrap is just a theme. 2. Backbone/Angular are js libs and can be used with whatever backed lang. 3.Node IS NOT revolutionary. 4. Nosql should be used ONLY when needed (ex: elasticsearch when you want good search, redis when you want really good performance, cassandra/hbase/etc when you have more data than you can fit in a server with 1TB RAM). 5. I guess you can use HHVM with php. 6. Hadoop, is the same as 4. 7. Spark is the same as 4. 8.Go, is at most meh. 9. React:see 2. 10.Graphql I don't think php is blocking here. 11. Rust is like, a better c++/c. Are you doing any c++/c/java/low-level ? 11. Swift is not revolutionary, just a lighter objective c.
If you want a language to do everything, I'm afraid only c/java/c++ can do that. But even though the language can, doesn't mean you client will like you using c for your webdev project. What is this "didn't have a change to learn python"?.
So your dream is what ? To move off PHP? And to work on what kind of projects ?
I would recommend python (since it can do daemons etc) and is easier and there are more jobs and then go/try Rust . If you think you'll learn Rust-lang and then either find webdev jobs in rust, or find a job hacking databases/low-levely-stuff in it, you will find it's a little hard. (because there's no rust-web-dev and doing low-levely-stuff is hard, you need to know data-structures,algos,caches etc).
I've most definitely become a better all around coder since picking up Python about 18 months ago - I was previously 100% PHP.
If you really insist on limiting yourself to a single language, PHP is just fine, big market, not going out of business anytime soon, lil ugly, sure, but pays your bills and has the great advantage of you already knowing it. Do not jump ship based on hype, try stuff out, see if it's actually better.
Also, you don't need to learn python, you already know how to program. You can probably just start writing python code and just use google if you get stuck, start with python3 tho, saves you some trouble.
I've developed my first php website when I was around 12, worked with it for many years, tried out lots of different languages and my conclusion is php has some unique advantages. It's not my go-to language, but I wouldn't mind using it.
About rust, I'm not really into low level stuff so it's one language I haven't tried out yet, but by all means, try it out, will only make you a better programmer, just don't marry it before the first date (:
It seems to be effective in the sense that I don't recall anyone getting hired and then quickly fired, and my coworkers are all very smart, capable people.
OTOH, it's ineffective in the sense that we probably need to hire at twice the rate we actually are.
I'm not sure what I'd do to improve the process, honestly. Every approach I've ever seen or thought about has significant disadvantages.
Some think that code-while-on-the-phone interviews are bad (too much pressure for some candidates), while others think that take-home interviews bring all kinds of issues (e.g. candidates copy pasting code from Stackoverflow).
Some think that white-boarding is important (insights into the thinking process versus syntactic correctness), while others think that it's not a true evaluation of what the candidate will actually be doing at work.
Some think that asking pure algorithmic questions are bad (does anybody even implement their own hashmaps at work?) while others think that it's a reflection of how much a candidate explores the depth of a subject.
Some swear by HackerRank/Codility based automated tests to "filter" unqualified candidates, while others think that looking at Github for their code samples would be a better evaluation.
Some want generalists, while others want specialists.
Some people reject candidates on arbitrary "culture-fit" reasons.
Personally, here's my ideal interview process based on all these conversations and my own 100+ interviews in various places I have worked:
* Minimum reliance on resume - some people are just bad at writing about their achievements
* Have an initial 30-min call to learn about the projects that the candidate has worked on (especially if you are hiring a specialist). This should not be a filtering round unless you see something totally off target.
* Send the candidate a take-at-home coding assignment. This should ideally take only 2-3 hours and should be directly related to the kind of work she will be doing at work.
* Have another 30-60 min follow-up call to ask the candidate about the approach taken, alternate options, and possible extensions. This will help one ensure that the candidate had not merely copy pasted the code from the Internet.
* If everything looks good, bring the candidate onsite for face-to-face interviews.
* I prefer 2 rounds of face-to-face - the first round asking questions around the candidate's areas of strengths, and projects previously worked on by her. On the second round, I prefer asking questions that are from the domain I am working on. This will allow me to find out how the person attempts to understand a new domain, and whether the person listens/asks questions etc.
At the end of the day, interviews are subjective, and I have made peace with the fact that you're always going to miss out on people who might have just had a bad day.
Any time the user interacts with the data on one line (among hundreds or thousands) calculations are redone at four different levels so we don't have to keep going back to the back-end to update the data, instead we can keep working with the data we already have.
So... With all that said, how did it work with Redux. Eh. Not so bad. I don't love it the way I loved AngularJS after I used it for the first time, but it's OK. The results are complicated but given how we're using it and what we're doing, I don't know how it wouldn't be complicated. I dislike that there's going to be a significant learning curve for anyone who encounters this page in the future, but the previous version of the page was a total trainwreck. At least this time I can do a lot of stuff and envision changes to the calculations and how it all updates and I don't break out in a sweat.
The biggest area I ran into problems was that a lot of the data we need to keep up-to-date is derived data (for example, an array of data for Angular UI Grid which has to use a heavily modified version of data in the state). Redux doesn't really do anything to help you update that as needed.
There are a lot of reasons there are so many plugins and add-ons for Redux, I think you might find it interesting to go over those so you can learn some of the themes they have and see what problems they try to solve. Actually, I think that's a worthwhile thing to do with any new technology. Go look at all the software which has sprung up to fill in the holes and you'll learn a lot.
There may be a general solution for this out there, or at least an approach that makes it workable for some cases, but I haven't come across it yet. And of course it really depends on how demanding your performance needs are. You might be able to get away with using Redux for animations despite the above.
It would be great to see something like Redux that gives you debugging precision all the way down to the animation frame, but which avoids the garbage problem.
Maybe your application is simpler to model as a mutable assembly of little pieces, where the protocols between those pieces are more important than managing their arrangement. (Maybe like in a modular synth?)
Maybe an existing team or project already has a good thing going without using Flux.
However, all of these are pretty thin and narrow. Getting rigorous control of the state of your program is actually super useful, as is treating events like immutable facts that build upon each other.
In contrast an MVC application encourages modulization of discrete components of an app. Which could lead to situations in which state could be duplicated. To get around this, singletons can be used to avoid duplication. This involves a central store. Much like a single state tree.
They identified a niche, bootstrapped their company, solved a real pain point for their customers, and spread through word of mouth from their satisfied customers to become the dominant player in their space.
Slightly related movie suggestions, based on their interruptive theme: "Field of Dreams", "Moneyball", "The Wolfs of Wall Street"
The bell idea was great.
Traditionally (from my experience), speakers are invited or apply based on a topic and are not asked to pay any fees. The conference costs are covered by the conference attendees, sponsors and booth fees.
If you don't know why certain kinds of companies gladly participate in this fairly obvious type of grift, you have no business playing the game.
See also: Paying money to be in some kind of dog-and-pony show or hackathon in the hope that investors attending the event get interested in maybe setting something up to discuss who else is funding you and whether they might want to follow-on.
I expect any conference I speak at to provide at least free entry, if not travel expenses. This expectation appears to be the norm in several industries.
In most conferences that are not marketing-oriented, the speakers are the product being sold to the attendees. Many conferences pay the speaker's expenses for travel, and may even pay them some speaking fee.
If you are a speaker being offered a fee to speak, however, be very careful about overseas conferences. People have been turned away at the border because the officials may see the money being paid as a job.
To me, a tech industry conference isn't really a scientific symposium. A lot of content is infotaiment.
I don't like it but could care less what they choose to do. I just don't participate.
I think that's a very bad deal.
My post to reddit:https://www.reddit.com/r/linux/comments/4dyqdj/realtime_moni...
The article at the netdata wiki:https://github.com/firehol/netdata/wiki/Monitoring-SYNPROXY (and my response to the attackers)
direct link to the second attack:http://netdata.firehol.org/?force_before_ms=1460226227000&fo...
An Erlang based AWS client that intends to be a thin wrapper for httpc. What makes it different than other Erlang based AWS clients is configuration and credentialing. Config and credentials can be set in the app config, OS environment variables, AWS CLI configuration files, or by accessing the AWS EC2 Instance Metadata API.
A website to search for League Of Legends builds from challenger games. I had a lot of ideas, that's the one who made it because it's small enough so I can do it all by myself and I can keep it alive for a long time spending very little on it.
* How to position myself
* What specific service I'd offer instead of just plain old commodity coding. I'm thinking about perhaps working with non technical business owners.
* How to reach the people I'd like to work with
I'm in the research phase at the moment.
If you want to know why, check out this blog post (part 1 & 2 are the why, part 3 is the what): https://cscrunch.com/blog/corey-pennycuff/its-2016-and-youre...
And I also launched my first startup, upperhound.com, this morning - eyes bloodshot just before I went to bed. I decided I don't want to be a wantrepreneur any longer. Procrastination is such a killer. I mainly negotiate 50% + SaaS membership discounts for interested subscribers.
Btw, asimuvPR, what are you working on currently?
https://alpha.highwayapp.co - Alpha for... you know alpha.
Companies will achieve concrete results, greater knowledge, efficient strategy and develop a better functioning team within 5 days.
A webapp to create journals for the plants you're growing. It is using elixir/phoenix.Always looking for contributors :-)
One selection bit (car on reverse) to multiplex two inputs (video from car control unit and video from rear view camera) to one output (car screen).
Startup founders sit down with corp dev folks at a larger company.
They've had a dance with them before even setting foot onsite, now they'll dance again in this meeting and similar meets for several months.
A number will be proposed to the founders by the corp dev folks after they've done a fair bit of wooing, the founders can choose to push back or take it. They'll hash out details of the acquisition, such as finances, logistics, long term strategy, etc.
But long story short, yes, they ask for really high numbers. It's not so much "gumption" as it is "you know what you're worth and you don't want to leave money on the table."
Edit: Gitlab-CI runners run on kubernetes as well using the dind images. Ingress nodes will soon be given public IP's. Public IP's are currently on CARP failover. After the gitlab-ci-multi-runner 1.1.1 release (allowing shared artifacts) and Kubernetes Deployment resources (providing a way easier deployment workflow and orchestration of pods), CI/CD is a breeze. We have dedicated nodes for MySQL (PXC) and ZooKeeper because these don't play well in the Kubernetes network environment - don't ask me to look at the examples ;) Currently running with Flannel for the overlay, but we're evaluating Calico and waiting on new Docker features to pull the trigger on something else... Multicast, isolated namespaces, VLAN's would be awesome :)
Edit2: I don't know why I keep saying "we" ... I've built and run this thing solo on top of programming... Not enough hours in a day...
Disclosure: I work at Google on Kubernetes.
Internal adoption seems to be going well so hopefully this grows.
AWS with kubernetes 1.2.1 and calico as the overlay network. We have all our web apps in kubernetes and working on our background job apps next.