hacker news with inline top comments    .. more ..    25 Jun 2014 Ask
home   ask   best   4 years ago   
Ask HN: Hitting a wall with Twitter
7 points by mittermayr  2 hours ago   4 comments top 4
stevejalim 14 minutes ago 0 replies      
Naive/obvious questions:

Have you

a) done everything listed at https://dev.twitter.com/docs/streaming-apis/streams/site#App... ?

b) considered getting on a plane to SF, spending a few weeks there, and network like hell, in an attempt to meet face-to-face with someone at Twitter? You said you're desperate, so all options are on the table, though I suspect I'll get shot down for suggesting this.

jvvlimme 3 minutes ago 0 replies      
Have you considered using services like Gnip or Datashift who resell Twitter's firehose?

It would mean rewriting your service but it would offer long term viability.

hcho 34 minutes ago 0 replies      
Take up your clients' offer, who want to pay more. Cull the ones who don't want to. You'll end up with less clients but be much more profitable.
mittermayr 2 hours ago 0 replies      
And, before someone suggests the obvious, yes, I've considered reaching out to some users of my service that are active investors, founders or business partners of Twitter. But I want to respect their privacy if at all possible and knowing the story behind Twitter, most of the original folks have moved on, it's a different business up there now (great background info in Biz's latest book, worth the read).
Ask HN: Dev promoted to more strategic role in startup. What literature?
164 points by rodh  1 day ago   77 comments top 41
kator 1 day ago 4 replies      
Honestly I would get a mentor. Find someone either in your org or out of your org that has the skills and career you would like to work towards and start talking to them. If you hit it off you may have found someone who can help you through the bumpy parts of your career and help you plan your next steps. Some people charge for this as career coaching and that can also have some value but it's challenging to sort out the best ones. Every place I've gone I've looked for a mentor to bounce ideas off of and generally double check my thinking and how I'm approaching problems and my career. You can go to industry events and start reaching out or just look for people you admire and reach out and start a dialog.

I personally think the concept of apprenticeship is lacking in the technology industry and we loose out on what other older professions have with clearer career paths because of their established practices of guiding people though their careers. That said I've seen it abused too so there always needs to be balance in these things.

I personally coach about five people (for free) in my current company and they come from all areas of the org not just my group. I was very lucky in the early days to have several great mentors in my life who helped me and I feel it's my job to pay that back now in the latter years of my career.

Books are wonderful but nothing beats interacting with successful people.

mindcrime 16 hours ago 0 replies      
Wow, lots of good recommendations in this thread already... I skimmed them, but apologies in advance for any dupes:

I'd suggest some general "business strategy" works that will help you understand the context of how/why the very highest level business decisions are made, as well as some works that deal with tying together strategy and tactical execution (which includes technical initiatives).

1. Understanding Michael Porter - John Magretta. http://www.amazon.com/Understanding-Michael-Porter-Essential...

Porter's framework is VERY influential in the business world, and having at least a passing familiarity with his work is important at the higher levels. Going straight to the primary sources (Porter's books) can be a bit daunting as they are big, dry, and academic and not exactly what you'd call "page turners". This book is a fairly solid overview of the key elements of Porter's approach, and a good read before diving into the meat of Porter's works.

2. Competitive Strategy - Michael Porter. http://www.amazon.com/Competitive-Strategy-Techniques-Indust...

3. Competitive Advantage - Michael Porter. http://www.amazon.com/Competitive-Advantage-Creating-Sustain...

4. On Competition - Michael Porter. http://www.amazon.com/On-Competition-Updated-Expanded-Editio...

5. Good Strategy, Bad Strategy - Richard Rumelt. http://www.amazon.com/Good-Strategy-Bad-Difference-Matters/d...

6. Blue Ocean Strategy - W. Chan Kim, Renee Mauborgne. http://www.amazon.com/Blue-Ocean-Strategy-Uncontested-Compet... This book has its critics, but I think it's a worthwhile read. Some people argue against the whole idea of a "blu e ocean" market, but even if the authors aren't 100% right about everything, I think the lines of thinking this book fosters are valuable in a general sense.

7. The Discipline of Market Leaders. http://www.amazon.com/Discipline-Market-Leaders-Customers-Do... I think very highly of this book and the author's approach to strategy. It's not radically different from the Porterian approach in some ways, but I'd say it's narrower in focus and simpler. The big takeway is the idea (which should be obvious, but often isn't) that "you can't be everything to everyone". The authors push a model of choosing a market discipline to appeal to a certain type of customer, and making that discipline the core of your business.

8. The Machine That Changed The World. http://www.amazon.com/Machine-That-Changed-World-Revolutioni... Have you ever wondered what this "lean" stuff is all about? Or why Toyota is so revered by business leaders? Here's a good place to find the answer to those questions.

9. Working Knowledge- Davenport and Prusak. http://www.amazon.com/Working-Knowledge-Thomas-H-Davenport/d... Perhaps the seminal book on Knowledge Management, or at least one of them. If you want to understand the importance of knowledge in an organization, this is a very valuable read.

10. Outside Innovation - Patricia Seybold. http://www.amazon.com/Outside-Innovation-Customers-Co-Design...

11. The Future of Competition. http://www.amazon.com/Future-Competition-Co-Creating-Unique-...

12. The Balanced Scorecard. http://www.amazon.com/Balanced-Scorecard-Translating-Strateg...

13. Strategy Maps. http://www.amazon.com/Strategy-Maps-Converting-Intangible-Ta...

14. The Strategy Focused Organization. http://www.amazon.com/Strategy-Focused-Organization-Scorecar...

15. If Only We Knew What We Know. http://www.amazon.com/Only-Knew-What-Know-Knowledge/dp/14516... Another seminal title in the Knowledge Management world.

16. Common Knowledge - Nancy Dixon. http://www.amazon.com/Common-Knowledge-Companies-Thrive-Shar... Another seminal title in the Knowledge Management world.

17. Winning The Knowledge Transfer Race. http://www.amazon.com/Winning-Knowledge-Transfer-Michael-Eng...

anarchitect 23 hours ago 3 replies      
In the last five years moved from development, to leading the development team to more of a product management role. Fully agree with that DanielBMarkham it's "the people part of things is where you'll screw up", so I'd focus on communication and team-building as much as processes.

I've found a few books really useful:

* The Checklist Manifesto: How to Get Things Right (https://www.goodreads.com/book/show/6667514-the-checklist-ma...)

* Drive: The Surprising Truth About What Motivates Us (https://www.goodreads.com/book/show/6452796-drive)

* Making Ideas Happen: Overcoming the Obstacles Between Vision and Reality (https://www.goodreads.com/book/show/7696135-making-ideas-hap...)

* Delivering Happiness: A Path to Profits, Passion, and Purpose (https://www.goodreads.com/book/show/6828896-delivering-happi...)

* Rework (https://www.goodreads.com/book/show/6732019-rework)

These days I get the most value from articles and videos. Here is a list of my recommended articles on Medium, which might be useful - https://medium.com/@nickboyce/has-recommended. Some great stuff in the list recommended by ravivyas too.

Edit: Something else I have been experimenting with is buying executive summaries of major books, in order to familiarise myself with as many perspectives as possible.

matrix 20 hours ago 1 reply      
It sounds like you've taken the most important step, which is appreciating that "what got you here won't get you there".

One of my favorite books when stepping into a new role is M. Watkins, "The First 90 Days", which is very helpful in formalizing an effective approach to succeeding quickly when in a new management role.

It is worth trying to get some education in people management. While much of it is common-sense, it's worthwhile covering the basics -- the applicable laws, managing conflicts, that sort of thing. I have yet to find a good, practical book on organizational engineering (if anyone has a suggestion, please post it), but this is an area that I feel someone in your role should seek to understand well, because it has a big impact on the success of a business.

One of the most important, fundamental skills for a senior level manager is understanding finance. I recommend B. Knight, "Financial Intelligence" as a primer.

My favorite book on business strategy is M. Porter "Competitive Strategy", however, this book and all other business strategy books should be taken with a large grain of salt. They often suffer from survivorship bias, being applicable only to certain industries and times, and in at least one famous case, allegedly faking the data used to draw their conclusions. I treat business strategy books as leisure reading that simply provides another perspective.

vellum 1 day ago 2 replies      
If you're looking for a book on strategy, you can't go wrong with Peter Drucker.



chwolfe 23 hours ago 0 replies      

When it comes to Management, I have to second vellum's advice and go with Drucker:


Classic (Mad Men era) of Marketing is ruled by Ogilvy:


However, I cannot stress enough the role of analytics in modern business strategy/marketing and Kaushik's book is the best:


Su-Shee 17 hours ago 2 replies      
Start with the "classics" like "mystical man month" (Brooks) for example, then get many of the books by Tom de Marco and possibly read Richard Gabriel's "Patterns of Software". The book about the "Chandler" project (forgot it's title) is also a particular good read. Those two in particular are interesting reads about why things fail.

Go on to reading the Toyota management style in itself, there's a couple of books about it, that's what many IT techiques are getting their ideas from.

It's mostly about finding your values so to speak and pinpoint what you really think makes up a good software development company - maybe your focus will be on organization, maybe on other things, so get an overview first.

These two articles are hopefully also an interesting nudge to think about many things:



O'Reilly has a very interesting book with analysis which practices actually work and why/how - sadly I also forget the title. There's for example a chapter about when and why pair programming works and when and why not.

Also, just watch carefully and learn to notice "good organization" - happens in surprising corners and niches and try to see WHY it's good.

thruflo 23 hours ago 3 replies      
In a senior role, effective communication becomes more important. One of the best books I've read about how to communicate effectively is http://www.amazon.com/The-Pyramid-Principle-Writing-Thinking...

It introduces a specific method to write concise, effective business documents. Then it shows how you can use the method to critique your own thinking.

swombat 1 day ago 2 replies      
The best book bar none that I've read about strategy is "Good Strategy, Bad Strategy" by Richard Rumelt: http://goodbadstrategy.com/

I highly recommend it. It's clear, intelligent, properly defines what strategy is (which most other books fail to do) and isn't, and how to go about designing and implementing it. It's very low on bullshit and very high on examples and insights from both history and business.

nl 1 day ago 0 replies      
The number one thing I'd suggest it learning to communicate effectively. Since you have been promoted already I assume you have some skills in this area - that's good! But it can be worth deliberately focusing on improving both your written and oral communication skills.
redtexture 7 hours ago 0 replies      
One aspect of strategy, crucially important, is actively, and continually deciding what not to do.

It is necessary to not do great projects and not pursue great ideas, because of scarcity of resources: the organization cannot undertake all of the good and great ideas it encounters.

There is nearly no organization that is not over-committed in its operations. This is constant, challenging, and avoidable problem.

Actively deciding not to do a project, or not follow a particular line of effort...instead of failing, by default to give enough resources or effort to an idea or project aids the organization to focus and excel in particular well-chosen areas. And avoid being mediocre in multiple areas and spread thin as an organization, by actively choosing to do less. What great project will you abandon, to focus on the other great projects you're already doing?

Mission statements fail to inform about what the organization will NOT do. A strategy does.

* Stuck: Why Its So Hard to Do New Things in Old Organizations (recorded lecture, December 6, 2007)

By Rebecca M. Henderson, (now at Harvard Business School) formerly Eastman Kodak LFM Professor of Management, Sloan School of Management, Massachusetts Institute of Technology

Video lecture (skip the first 15 minutes) (total time one hour)http://video.mit.edu/watch/stuck-why-its-so-hard-to-do-new-t...

tsondermann 22 hours ago 1 reply      
I don't think there's anyone writing better, more actionable advice on this particular transition than Michael Lopp at http://randsinrepose.com

I'd read everything on that site.

ravivyas 1 day ago 1 reply      
Here is what I did when I moved from development to product & Marketing

1. Follow people in the same field2. Ready up on blogs and posts : I use Zite, Flipboard and medium3. A book that helped me to a large extent is Good to great by Jim Collins (http://www.amazon.com/Good-Great-Companies-Leap-Others/dp/00...)

Also The Personal MBA by Josh Kaufman http://www.amazon.com/Personal-MBA-World-Class-Business-Educ...

4. Video from people in the same field.5. This article https://medium.com/@noah_weiss/50-articles-and-books-that-wi...

Some great tools:

1. Trello - Project/product and pretty much manage any thing2. Qlikview - Data Analysis : Excel on Steroids

It's a very short list, but I am learning on the job :)

eitally 23 hours ago 0 replies      
I recommend the http://www.manager-tools.com site for lots of really great content on practical leadership & management. As for process ... yes, you can read all you want, but at the end of the day your success will be defined by your ability to sell a good idea (SDLC/ALM processes) to your team, not the pure quality of the processes themselves. If people don't want to or can get around process, they will.

I've never worked in a startup, but I run my teams as if they were small, fairly-independent-but-often-symbiotic entities. I started as a dev back in '99 and am one step below CIO in a 45,000 employee large corporation. If you'd ever like to chat about your problems or bounce ideas off someone, I'd be happy to.

chiph 21 hours ago 0 replies      
Take a look at the concept of servant leadership. I've worked at one business that used it, and it was phenomenal. The crux of it is that bosses are only as successful as the people doing the actual work, so the boss should focus on what is needed for them to be successful.


webmaven 16 hours ago 0 replies      
From a technical perspective, I have found 'The Mature Optimization Handbook' invaluable: https://www.facebook.com/notes/facebook-engineering/the-matu... HN discussion here: https://news.ycombinator.com/item?id=6763683)

'Team Geek' is a great primer on technical leadership: http://shop.oreilly.com/product/0636920018025.do

Another recommended book is 'Shipping Greatness': http://shippinggreatness.com

Assuming you're already familiar with 'The Lean Startup', there has been a series of excellent 'sequels' on many more specific disciplines that you will likely find useful: http://theleanstartup.com/the-lean-series

A recent addition (that I am still digesting) on Agile processes beyond Scrum is 'Unblock!': http://www.continuousagile.com/unblock/ Posted to HN a few days ago: https://news.ycombinator.com/item?id=7921200)

ChuckMcM 20 hours ago 0 replies      
Getting a mentor will help, usually someone outside the company that you trust enough to question them honestly (too many people try to get mentored by people they think of as infallible and then fail to ask questions when their understanding is incomplete).

If you are looking for reading material, consider putting the books "Execution" and "Facing Reality" (by Larry Bossidy with Ram Charan) on your list. I found these to be a good concise description of some of the more 'meta' aspects of senior leadership.

franze 1 day ago 0 replies      
1st "Thinking in Systems" http://www.amazon.com/Thinking-Systems-Donella-H-Meadows/dp/...

2nd Article "Leverage Points" http://www.donellameadows.org/archives/leverage-points-place...

after these two you will have enough know-how on how to identify and manage systems (i.e.: your growing company)

then the only thing between you and success is reality, for how to influence the company reality you live in please read

3rd "Seeing Systems" http://www.amazon.com/Seeing-Systems-Unlocking-Mysteries-Org...

good luck and have fun (with the books, with your new responsibilities)

_xzu 22 hours ago 0 replies      
There are lot's of good advice already but I'd like to add few more. You need to make a mind shift from dev/manager role to strategic senior manager. My recommendation is to read:Good to Great ( http://www.goodreads.com/book/show/76865.Good_to_Great ) On War ( https://www.goodreads.com/book/show/117031.On_War_Indexed_Ed... ( I'm not sure which English translation is the best )

and try to see how practical tips both give for decision making. Art of War is also good, but I'd prefer Clausewitz since it's much more straightforward.

And read this masterpiecehttp://www.ikea.com/ms/en_US/pdf/reports-downloads/the-testa...

pjmorris 20 hours ago 0 replies      
Consider the book 'Becoming a Technical Leader' [1], by Jerry Weinberg. He and his students (e.g. Johanna Rothman, Esther Derby) have a whole host of excellent books and courses in the space you describe. They're also very approachable, if you want to discuss these matters.

[1] http://www.geraldmweinberg.com/Site/Technical_Leader.html

jonstewart 18 hours ago 0 replies      
If you're under 50 people, you're still too small for many processes. Read every book you can lay your hands on about people-management (not project management, not product management, not strategy) and remember to over-communicate. The best lever you have at this point is to become a great manager of people--you'll motivate them to do good work and help turn some of them into great managers as the company grows.
polskibus 1 day ago 1 reply      
Understand Lean paradigm as a way of delivering business value: http://www.amazon.co.uk/This-Lean-Resolving-Efficiency-Parad...

In terms of agile - I believe that scrum and related are too operational-related and not really strategic. You can skip that and delegate crunching it to others.

Master delegation - 1 minute manager, etc. - read at least one short book about it. Don't fall into micromanagement trap.

stanchiang23 21 hours ago 0 replies      
Developing strategy, relies on understanding the patterns evident in the mechanics of doing business, (startups and mature corps alike).

To that end, I strongly recommend Michael Porter, who literally wrote the book on modern "Competitive Strategy". There is no other single source of strategic theory that is better than this. Anybody that has taken a b-school class on strategy worth their tuition will recall concepts like Porter's 5-forces.

Other answers seem to offer more recently offered books and some might dare to argue his frameworks are dated but really it's in a robust, tried-and-true-kind of way. Other books that try to cover defining strategy, value chain, industry analysis are often derivative of his work.

If you don't end up reading it at least get a list of his key concepts and google the shit out of them. They all seem like a "duh, i knew that" on paper, but you should have these theories in your back pocket whenever you need to formulate a battleplan.



DanielBMarkham 1 day ago 1 reply      
Disclaimer: my day job is helping companies continue to operate at scale the same as they did when there were only 5 of them. Turns out this is not a trivial thing to do.

Agile/XP practices are a good starting place in-between cowboy programming and micro-management hell -- as long as you don't take them as a recipe book. They're simply best practices that you can and should learn. Then prune/modify as necessary. There are really too many books to list separately. I'd advise joining a local Agile User's Group and noticing who has their shit in one sock. Then find out what they're doing. You can also bring in external coaches.

You need a couple of good books on the people part of things. I can guarantee you that the people part of things is where you'll screw up. "Drive" is really good. http://amzn.to/1qtZdEd So is PeopleWare http://amzn.to/1iBnasO

For strategic stuff, especially in a growing company, you're going to have to master large work queues without having them eat you alive. If you'll allow me to self-promote, my Backlogs series is geared exactly towards this problem. http://tiny-giant-books.com/backlogs.htm

One observation: as you grow, it's not enough that you pay extremely careful attention to whom you hire. You also need to create an on-boarding system where new hires can learn and adopt the culture -- things like pair programming, how the build works, good coding etiquette, and so on. Setting the table for strategy to work is actually more important than whatever the strategy is.

Second observation: I imagine you're going to be swimming in business book recommendations. Business books are like dieting books: everybody has a few favorites. (I imagine this is because the material inside matches how they already feel). Better to identify specific areas, like Agile Requirements Modeling, and find books targeting those areas. Then look for practical advice. Otherwise you'll just have a ton of books that you'll spend hundreds of hours reading and not really have much to show for it at the end of the process.

ckluis 1 day ago 0 replies      
The Heart of Change - best book I read in the MBA

Six Thinking Hats - best way to think like an analyst (and to lead meetings that are effective)

Both of these are killer and quick and easy books.

hyperliner 16 hours ago 0 replies      
Just learn how to think. The best way to learn to think is to solve many problems. Solve many problems many times. Don't just solve the ones you already know how to solve.

I am not sure you can learn how to think from a book, but the recommendations here can be good to "know what you don't know."

Maybe the best question you should be asking is not what to read, but what problems you can solve you have not solved before. Here is one constraint: if you can solve it yourself, and not through others, then it is not a very interesting problem.

tim333 19 hours ago 0 replies      
I'd recommend, if you have not already read them, reading the relevant seeming articles off the front page of joelonsoftware.com and possibly Dharmesh Shah at onstartups.com and Paul Graham's essays. There's a lot of good stuff there.
iandanforth 22 hours ago 0 replies      
[Meta] I really wish I could see upvote counts for this post. Answers here are reviews and each vote for a review matters. If only 10 people have voted for anarchitect's list of sources, that means there is very little consensus here which could mean that there are no truly good books on this somewhat ephemeral topic.
SloopJon 19 hours ago 1 reply      
Foundations of Business Strategy started last week on Coursera:


Probably not too late to catch up.

attheodo 1 day ago 0 replies      
"Strategic Management" Fred David, http://amzn.com/0132664232

Some people find it too academic but it covers pretty much all of the essentials of strategy and business policy practices.

cscharenberg 18 hours ago 0 replies      
The book Understanding Michael Porter was a good introduction to strategy for me. I used it in my EMBA program when I was struggling to grasp business strategy. That gave me a solid grounding in how to think about it and some of the basic concepts. From there I was able to branch out to other books on strategy. But that one was a good starting point for me and some classmates.
dandare 16 hours ago 0 replies      
Mobile MBA by Jo Owen - less empty words, more practical advice. My absolutely favourite management book.


hemantv 11 hours ago 0 replies      
One of the best book I found in similar situation is High Output Management and Only Paranoid Will Survive by Andy Grove.
spektom 21 hours ago 0 replies      
I warmly recommend you to read Peopleware: http://www.amazon.com/gp/product/0321934113/
illumen 21 hours ago 0 replies      
Karate kid learned from a book in the beginning.

Wax on. Wax off.

Obviously a book won't do. You need a training montage.

eigenrick 22 hours ago 0 replies      
How to Measure Anything -- By Douglas Hubbard

The successful role models in my life have a keen ability to at least relatively measure large, nebulous things. For thinking in probabilities and ways to gauge intangibles like "effectiveness" I think this book is excellent.

amirnathoo 19 hours ago 0 replies      
I'd suggest reading Four Steps to Epiphany to learn about customer development.
wurzelgogerer 21 hours ago 0 replies      
If you are in the bay area then we should go grab coffee some time. I was in your position a year ago and I'm more than happy to share my experiences and struggles.Send me an email and we can connect.
quarterconfig 18 hours ago 0 replies      
If you are looking for an intellectual discussion around management (helpful for some people) I'd recommend checking out Henry Mintzberg.

He's been writing on Management for 4 decades and he's opened my eyes to what management is about. http://www.amazon.com/Managing-Henry-Mintzberg/dp/1605098744

The power of reddit
6 points by nergal  5 hours ago   6 comments top 2
chatmasta 5 hours ago 2 replies      
Congrats. But you might want to consider the possibility of survivorship bias here. A lot of reddit posts (or HN posts for that matter) link to quality original content like yours, but never see the front page of any subreddit. And because of duplicate link penalties or prohibition, you can't try again.

Submitting to reddit/HN when you launch a product is a decision you need to be careful with. You need to time it right to get enough upvotes, you need to target your audience, you need to be ready to handle the traffic, and your product needs to be in a state that's ready for criticism.

This is an encouraging story, but to others out there: be careful! In the words of Eminem, "you only get one shot."

(Of course there are a million other ways to promote other than "Show HN" or reddit posts.)

rvinay88 1 hour ago 1 reply      
Congratulations on your game's success.

I use reddit a lot to promote my blog posts but I've realized what @chatmasta mentioned to be true.

If you want to publicize your startup or project on launch day, its better to get it published on some famous blog for that stream.

Need not necessarily be techcrunch or mashable. Can also be CSS tricks or Paul Irish's blog. Equally valuable. And the HN / Reddit takes care of itself.

Sauce: https://hacks.mozilla.org/2014/05/open-source-marketing-with...

Ask HN: What could we human do with more computing power?
2 points by ugdev  3 hours ago   discuss
Ask HN: SaaS/VPS server security
11 points by tonteldoos  11 hours ago   3 comments top 2
quesera 7 hours ago 1 reply      
On a VPS, you are compressing your entire network architecture down to a single OS instance. Still, the basic rules apply:

- Do not run unnecessary services. You probably don't need to run ntpd, for example.

- Choose your necessary service packages carefully, and learn how to configure them securely. qmail or Postfix over sendmail.

- Bind all non-public services to internal addresses or sockets only.

- Enable your host packet filter, write good rules.

- Separate services as much as practical. Jails, zones, etc, whatever your OS provides.

- Configure sshd properly. Consider blocking connections from untrusted IP addresses. Consider port knocking.

- Minimize user accounts.

- Follow security announce lists for the few public-facing servers you run.

- If you're running your own software (web app or whatever), make sure you learn how to avoid common mistakes.

- If you find you must run something with a poor security history, do it on a sacrificial host/jail/zone/etc that can be recreated with minimal effort. Make the public facing server a content-clone of some other protected instance.

That's pretty much the minimum for a standard random-acts-of-violence threat model, in my estimation. If you have more pernicious attackers, this will not be adequate. If it sounds like too much work, keep good backups and hope for the best -- but remember, recovering from a breach is a heck of a lot of work too. Time spent now saves multiples later.

If you're handling sensitive user data, hire someone who can do all of the above in his or her sleep. Or reconsider your choice to handle sensitive user data.

There is always a balance to be struck, but this is the baseline because it accomplishes two things: it prevents all known and most expected vectors of attack, and it contains the damage if you are ever surprised.

cweagans 6 hours ago 0 replies      
Specifically with SSH, I always recommend this:

No passwords. Ever. Turn off PasswordAuthentication in sshd_config. Use SSH keys instead.

Personally, I think if you're running SSH in this mode, it's safe to run it on the default port and not really worry about locking access down to certain IP addresses/ranges.

Ask HN: Who are the engineers that don't get hired?
25 points by jparker165  18 hours ago   18 comments top 10
x0x0 14 hours ago 1 reply      
This is interesting.

I screen a lot of ML researchers and engineers.

The process typically starts with a 30-90 minute phone screen (it ends faster if I don't like you). I start by discussing the company and the position, in as much depth as the candidate wants. Then we discuss one project of the candidate's in depth, both for some technical expertise but also to suss out what the candidate, as opposed to a team, actually did. Good candidates should be able to discuss what the project did, why, implementation, challenges, problems overcome, tools used, etc. Then we do a quick survey of general ML technologies; we're hiring senior people so they should have a pretty good breadth of experiences. So they should know their way around regression, trees, forests, boosting, svm, linear algebra techniques, plus optimization tricks for all of the above. It's ok if a candidate hasn't used any one specific thing, but they should have a rough knowledge of which tool to use when, plusses and minuses of tools, and the typical ways one improves results (hold-out testing, k-folds, l1 and l2 penalties, etc etc.) If you've actually used most of these tools you should easily pass the phone screen.

Then we bring people in or fly them out. Here, we go more into depth in several tools. You should know the math and the practical use of several ml techniques really well. We'll also make sure you can write enough code that you don't have to be handheld. That is, you need to be able to do some data processing and string together data pipelines to get your work done.

common resume failings include (NB: this is for an ML engineer / data scientist):

* (very common) no academic prep and no demonstrable experience. ie a potential junior person applying for a senior position. If he or she has no degree but spent 4 years at netflix or somewhere good, we'll definitely at minimum talk on the phone. Demonstrable experience definitely means education barely matters.

* you live abroad, thus requiring sponsorship and a move, and aren't a really strong candidate

* (surprisingly common) you spammed all our different jobs, making us believe you just want a job, any job, and paid no attention to what we're looking for

Common failings from a phone screen or interview include:

* (weird, but happens) don't make the agreed upon phone screen time without an email before (or even an email after, if an emergency occurred)

* (really weird, but happens) you have no idea what the company does. I'm looking for you to have spent at least 5 minutes reading our site and have a 1 sentence summary of what the company does. If you haven't done even that much research, why on earth is the candidate applying to us? A perfectly fine example would be, for example, if I worked at google: You build a search engine and you want ML people to improve search results. At, say, square, a great response would be "you're handling monetary transactions and therefore have fraud problems from card holders and probably want to build risk management tools to protect yourself from bad merchants." I find it really weird many people don't even know that much. This isn't an instant fail, but it's a negative sign.

* he or she wasted his or her phd. They may (or may not) have a very deep understanding of one tiny piece, but lack a decent understanding of the breadth of the field. We need breadth. And yes, they may be able to learn, but the question is then what the hell did they spend a 6 year phd learning? Also, we're hiring senior people. And again, anyone with a good ms in ml should do fine (not just a theory; we've hired them from stanford and ga tech).

* They don't know deeply at least one or two techniques and tools. Whether its hadoop, vowpal wabbit, R, sklearn, weka, whatever, you should have become an expert in at least one tool and know it inside and out.

* (very common) an inability to program enough. Obviously most ml people aren't engineers, but they have to be able to do data processing, data cleaning, run ml tools, build their own ml tools if necessary, etc. Senior people in yahoo or google's research labs may not need to program, but for us you do.

* (somewhat common) bad communication skills. We speak english; you need to be able to speak reasonably clear english so that we can discuss technical topics clearly. How people can finish a long stretch in an american university without this escapes me. And to be clear, about 1/2 the employees here are foreign born, so we're pretty good with different accents and the typical indian and chinese esl idiosyncrasies.

The last thing I can say about job seekers is we're talking because I have a problem. That is, I really want you to succeed if there's a good chance this will work.

aidenn0 3 hours ago 0 replies      
Some points:

* As far as graduating seniors, when you post a job offer, you get maybe 10% of the resumes from people with either a CS/CE major or minor. That's not to say they can't code (in my experience a resume from a non-CS major with good experience is a much better bet than a resume from a CS major with little or poor experience). But we literally get people whose experience totals up to "took a 'How to write HTML' class once freshman year as an elective" applying to jobs involving low-level C

* Actual on-site interviews are very expensive; unless you are really hurting for people, you need a cheaper (and potentially less precise) way of weeding things out.

* With the exception of graduating seniors, there really are relatively few good candidates actively seeking work; most of the good ones have jobs (and you can hire them, but that usually isn't counted in the X% of resumes get offers, which usually refers to responses to a job posting; hiring people away from their current jobs usually starts in a different manner).

* On the other hand huge numbers of people who are desperate for work send in resumes. The less harmful of these are the ones who obviously are unqualified and clearly just spammed every job offer listed regardless of the requirements. Since we aren't talking about graduating seniors (see above) the majority of the not-obviously-unqualified often even have relevant work experience, but that's just because it takes time for people to fire you.

I am talking about people with 2-5 years of experience working in language X who are barely able to (or sometimes even completely unable to) write FizzBuzz in language X.

Another example was someone with over 5 years of OS kernel development, who in the interview was unable to describe what exactly they did in those 5 years and they didn't seem to know a much about any of the various OS topics we tried asking them about: scheduling, interrupts, DMA, filesystems, memory paging, IPC.

These people are particularly harmful, since there are very few tells at all on their resumes (and no reliable ones), you would have to interview all of them, which gets expensive. The majority can't get past a phone-interview, but when you are talking about

This leads to a lot of companies not even bothering to interview people (again ignoring those graduating from school) without referrals from current employees, or some other way of weeding out the massive numbers of "good resume, but bad candidate" submission that also will, as a side effect, weed out some of the "good resume, good candidate". It also means that if you are looking for work, and can't find it, then either you are unqualified, or need to get referrals from friends who have jobs at companies that are hiring.

nostrademons 17 hours ago 0 replies      

From what I've seen, the other 99% of resumes are people trying to break into the field but with no actual programming experience. Competent developers with a track record get snapped up really quickly, while newbies without a track record go on to apply to 100 more jobs.

JSeymourATL 16 hours ago 1 reply      
>can these companies really not get productive work of a slightly broader group?

Relative to the 1/100 resumes-- if your friend took the time to dig deeper, he'd likely spot 2-3 diamonds in the rough, a moneyball misfit.

If your friend is like most senior managers, he'll scoff at the idea-- 'I'm too busy to read 100 resumes' he'll likely say, or 'that's HRs job!'

Finding & attracting talent is a mission critical competency that senior leadership must drive. Too often it's delegated to mid-tier management that don't share the same sense of urgency.

It takes an exceptionally rare manager who can assess and train-up mediocre talent into A-Player status. Fewer still, who have the guts to make a trial hire. A bad hire can be costly on a variety of levels.

But most guys would rather play it safe-- blame HR, lack of bandwidth, or the market. Meanwhile, the guys who figure it out manage to scale.

gregcohn 13 hours ago 0 replies      
It's very common that companies have adverse candidate flow -- in other words, the ratio of 99:1 is not necessarily representative of the market; it's simply representative of the median candidate a particular company is attracting into its hiring pipeline.

Invest more in getting the right kinds of candidates.

aguynamedben 17 hours ago 0 replies      
For me, it's difficult to hire an engineer that's not specifically interested in what my company is doing. A very common reason I've passed on engineers in the past is "they're okay... but they don't seem really excited about what we're doing here..."
blooberr 13 hours ago 0 replies      
Sometimes its not the developer.

You can also blame it on an unrefined interview process. I've probably turned down the right candidates accidentally while trying to work out an interviewing system. With a startup, its hard to get enough feedback because you can't hire enough people to verify if your assumptions were correct.

Another issue to consider is unrealistic expectations for a candidate (has to know X, Y, Z frameworks + machine learning + mobile) If this candidate exists, you probably can't afford them.

For the rest of us, I strongly believe you can train most developers to do the job. It's how much time you're willing to invest in them. I've taken inexperienced developers that are very interested in the company vision and given them a chance to grow in the roles. After a year, they're the "good" developers I've always wanted.

janbernhart 4 hours ago 0 replies      
I've recruited developers for dozens of companies so hope I can give valuable insights.First of all, there's nothing 'wrong' with the 99 developers that didn't get hired. And in my experience, they will find a job somewhere else. A job that suits them (even) better, hopefully

Thing is, companies and jobs differ, and so do people. I've seen top performers from company A fail in the interviews at company B, and vice versa. Leaving both companies under the impression that the other company employs 'bad' developers.

Whether or not your skills+potential can be used optimally by a company depends on so much details, like cultural fit, to which extend you agree on their paradigms (methodology, problem solving ideas, prioritization, etc).

Long story short; companies are usually looking for the most optimal choice for their job openings, and so are applicants. This results a way more complex matching strategy that just 'could do the job'.

Perhaps John Nash can help us with optimizing these strategies. Until than, I think 1:50 to 1:99 ratio's are here to stay.

alok-g 5 hours ago 1 reply      
Being on both sides, I feel interview processes are a part of the problem too. Every place I have interviewed assumes that the interviewers are good and by default, the candidate is bad. While it is probably statistically true, it makes things worse if a good candidate gets rejected because of an issue with the interviewer's own abilities.
fluxon 6 hours ago 0 replies      
jparker165, ask your friend if "Inside the Mirrortocracy" https://news.ycombinator.com/item?id=7930430 applies to his company.
Ask HN: How Do I Become A 'Good' Programmer... Like Everyone Else Here
50 points by zxlk21e  16 hours ago   55 comments top 30
mindcrime 15 hours ago 3 replies      
FWIW, I'm 40 and have been programming professionally for 15 years, and programming as a hobby for probably 8 years before that.

I still run across stuff I don't understand, all the time.

And I'm not one of those people who have "1 year of experience 15 times" instead of "15 years of experience". I'm pretty aggressive about learning new stuff and expanding my horizons. And yet the pace of change is so fast, there's always new stuff coming out, or areas of tech I'm discovering for the first time.

The moral of this little diatribe? Don't sweat it. Be curious, explore, learn, hack, and don't worry too much about comparing yourself to others. And don't assume everybody on HN is some uber-genius, super-brilliant "10x" programmer. I mean, sure, there probably are people like that here, but I'm pretty sure they are a small minority.

For another take, you might find esr's "How to become a hacker" essay useful:


Other than that, my only advice would be to start a project (open-source or not, whatever you think) that gives you a venue to challenge yourself. That is, start a project that you don't believe you're really competent to complete, and then go do it.

Also, "read a lot".

IgorPartola 15 hours ago 1 reply      
I will give you slightly different advice than most people here (that advice being "just keep programming, and experience will come on its own). First, figure out what it means to actually be a good programmer. For example, do you want to be a JavaScript ninja? Or do you want to know everything there is to know about how your OS works? Or do you want to be able to put together a mobile app that is cleanly architected and maintainable all by yourself? Or do you want to be a full stack developer, able to develop a backend service and a front-end UI all at the same time? Or do you want to be a good computer scientist and solve theoretical CS problems and reason about complex algorithms?

Once you have picked your definition of "good programmer" (your goal), write out a map of stuff you do and do not know. For example, I am a full stack developer, but I don't yet know CoffeeScript. It would probably be a good addition to my toolset as I do a fair amount of JavaScript programming for the frontend. Having this map will help you fill in the blanks of technologies and concepts you are missing. Take your time and learn these slowly, usually as a part of a project, and not just an exercise. As you learn, adjust your map. You will inevitably come across stuff you did not know existed or was important.

Remember, it's easy to run in many directions at once with this approach. Don't do that. If you already know Ruby, don't go learning Python (and vice versa). They fulfill a very similar role. Instead go learn how HTTP works. Or how to work with a different data store you haven't used before. Or how to use a frontend JavaScript framework. Or go learn C.

Here's my recommendation learning technologies to become a full stack developer (in order, when starting from scratch): HTML/CSS, Python, Django, PostgreSQL, JavaScript + jQuery, AngularJS, HTTP, networks/socket programming, C + data structures and basic algorithms, functioning of operating systems (libraries vs syscalls, toy operating systems), compilers (build a toy one), Lisp, Haskell, Erlang, networking again but this time thinking about distributed systems.

Good luck!

10098 14 hours ago 1 reply      
I noticed that when at work, I usually end up doing one of the following three things:

  1. Explain things - either to my co-workers or to the computer.  2. Explore - navigate the codebase figuring out how different pieces connect to each other, building an adequate mental model of the system.  3. Debug - search for the root cause of a problem by examining the state of a system in between steps.
Sometimes my mental model ends up being insufficient and I have to do 2 and 3 together to "update" it.

Thus, I think that to become a better programmer, you need to get better at these three things.

"Explanation", I think, is the most difficult one. I have found that studying math has improved my explanation skills dramatically, and it helps not only when talking to computers, but also when talking to people. Of course, not everyone has the opportunity or desire to study things like calculus or differential equations, but I think that reading computer science books is a nice way to exercise that math/logic muscle.

To get better at things like debugging, I had to tear down some mental barriers. Sometimes you'll have to go out of your comfort zone. Never think "oh, this is too hard for me". For example, if you're writing something in Python, you must be mentally prepared to dive into the internals of a 3rd party C module. The key is to approach it with a "we must get to the bottom of this!" mentality.

Don't worry too much about technology. Your "goodness" as a programmer isn't defined by how many languages you know. It's better to know a few very different languages than a lot of similar ones. For example, I think that knowing Java and Lisp is better than knowing Java and C#, because you can quickly pick up C# using your previous knowledge of Java, but knowing Lisp may teach you something you wouldn't know if you decided to stick only to enterprisey languages that give you higher employability.

gte910h 12 hours ago 0 replies      
1> Do you have a "Real" CS degree?

If not, doing a good portion of the exercises in some books on [compilers](http://www.amazon.com/Compilers-Principles-Techniques-Tools-...), [DFAs/State Machines](http://www.amazon.com/Introduction-Theory-Computation-Michae...), Algorithms (http://www.amazon.com/Introduction-Algorithms-Thomas-H-Corme...) and theoretical programming (https://mitpress.mit.edu/sicp/full-text/book/book.html) can give you some common foundational lenses with which to see these articles

2> Learning the history of your field

Nothing informs the current state of the field more than how we got here! Learn the foundation of your field from people who lived it. The podcast [Debug](http://www.imore.com/debug) is Guy English (Creator of Napkin and other apps) along with Rene Ritchie interviewing people about the history of Cocoa and CocoaTouch

I found [this episode about AutoLayout and Key Ferry illuminating](http://www.imore.com/debug-33-ken-ferry-auto-layout-passbook...).

3> Go through early versions. Few systems START complex. Look at OLD books for EARLY versions of systems, and why old php made such silly choices is obvious (hint, they weren't that silly for what it was doing). Read books and commentary through the timeline. Understand the history of what's happening to the language, then you'll understand why you are where you are.

4> Go DOWN the stack. Understand the bottom of Objective C by reading [the open source implementation of Core Foundation and more](http://www.gnustep.org/). Also available elsewhere (and I think somewhere on Apple's Site still).

5> Do what you shouldn't! Don't ship it, but really use those implementation details to do something awesome and amazing. You'll learn tons about what's happening.

PS: To the mods, those aren't affiliate links

jaegerpicker 14 hours ago 1 reply      
If you'll allow me the arrogance of saying that I'm pretty good in my genres (web-app, mobile, and I'm starting to come into my own in game programming but really I have a shit-ton to learn in these fields I know enough to sound smart but I'm FAR from a genius), I'll say that most of what you are seeing is a bunch of subject matter experts answering questions. For example I might be able to tell you the in depth ins and outs of using RabbitMQ as a messaging queue for async processing in a web application but I know next to nothing about how to write an audio driver for Linux, or the math principles behind the best cryptography algorithms. So to answer your question I'd need to rephrase it a bit and say how do I become really good at a subject. Here's what I did:- I have 15 years of professional experience, sorry I don't think there is any shortcut on this one. 15 years teaches you things and processes that you will never learn in 2. THIS DOES NOT MEAN that all programmers with 15 years are better than anyone less experienced just that there certain things that the years drill into your head that's impossible to give to someone with less experience. - I read A LOT. Like 3-4 technical books a month. Immersing myself in the my area of study helps my think naturally in those techs.- I write a lot of experimental code. - I go to meetups and talk to other good developers- I constantly try to learn something that I think is over my head.

Never stop learning and never stop pushing yourself. I'm driven to know everything I possibly can about my areas.

csallen 15 hours ago 0 replies      
Realize that programming is an incredibly broad field, so you're absolutely guaranteed to run into many areas in which you have no experience yet others have achieved expert status. Feeling inadequate is normal. As mindcrime said, don't sweat it. Nobody knows everything about every area of programming.

IMO you should decide what you want to do in more concrete terms. Being a "good" programmer can mean a lot of things. Do you want to become an expert in some specific area of computer science, i.e. machine learning? Do you want to design your own language? Or an OS? Or your own framework? Do you want to be the ideal super-productive jack-of-all-trades startup first-hire/tech founder? Do you want to strive for the broad knowledge, wealth of experience, and leadership + mentorship abilities of an effective CTO? The list goes on.

You can't have it all. Pick one, or pick a few. Then spend years challenging yourself, ideally working on real projects that are meaningful to you, alongside other great programmers who give you something to aspire to.

yodsanklai 15 hours ago 1 reply      
> like everyone else here

You need to realize that there are a lot of people commenting on hacker news (or for instance Stack Overflow). On any given topic, specialists of that field will show up and share their insight. For instance, on an article on technology X, it's not uncommon that someone that helped developing X shows up.

You also need to remember it's not the same person that knows everything :) it may be the case for instance that the distributed algorithms expert is clueless about PHP for instance.

jarrett 15 hours ago 1 reply      
Do you feel like your skills are steadily improving? Do you critically examine your code from a year ago, and have the urge to rewrite it because you could now do better? When you're coding, do you think "What's the best possible way to do this," instead of just "How can I get this code to run?"

If you answered yes to all of the above, then you're probably already a "good" programmer, and you'll only get better. If not, then let's maybe discuss why not. E.g. is there something about your job that's getting in the way of you improving as a coder?

zedshaw 14 hours ago 3 replies      
Like everyone else here? I hate to burst your bubble but the vast majority of the programmers here are not nearly even close to as good as you think they are. Mostly they're good at talking like they are and memorizing obscure facts about computer science. The reality is that everyone who codes pretty much sucks at it or they get lucky a couple times and do something significant.

The same goes for painters, musicians, poets, writers, anyone that you think is "good" is actually just someone who found their thing and hammered the hell out of it until they squeezed out a handful of really good works if they're lucky. What you don't see is the massive pile of absolute garbage most of these people produce and keep from the public's eye. I think the defining characteristic of someone who's actually good at a creative activity is whether they can admit this and get past it as just part of creating.

So, instead of saying how can you be like all of these guys, how about how can you just improve your own skills? Since everyone sucks at this to some degree or another, all that really matters is how you improve what you do and get better at it. Ultimately, that just takes hard work, study, and trying to find any tricks and hacks that are being kept from you.

As an example, I'm teaching myself to paint and I suck at it, but I don't give a shit if I suck at it, I enjoy it. So for the last almost month I have been painting the walls of a box over and over again until I learn how to do it right. It's fun, I like it, and I don't care if other people are better at it than me because I'm finding my thing and I keep improving because I keep working at it and failing until I get it right.

acemarke 15 hours ago 0 replies      
After my first quarter of procedural C++ in college, I thought I knew so much about programming. I was, obviously, under the influence of the Dunning-Kruger effect at the time (in other words, I was a clueless n00b).

Thirteen years later, I know vastly more than I did then. I've worked with a wide variety of languages, applications, and frameworks. I've spent untold hours reading blog posts, articles, code, and Reddit/HN discussions. Today, I still feel like I know a pretty good amount about programming, except now I also know (and accept) that there's effectively an infinite amount of possible programming-related knowledge out there, and I will only ever know a fraction of it.

Like you, I routinely see articles posted that make me once again feel clueless and inexperienced (such as raganwald's recent post on JS multiple dispatch, or anything involving Haskell / Lisp / assembly / cryptography). I sometimes worry about dealing with technical interviews if I ever move on from my current job. Ultimately, though, I know that I can get stuff done, and that while there's lots I don't know, I have the ability to research and learn.

The other posts give some pretty good advice. For me, it comes down to:

1) Learn by doing. No better incentive to learn how to do something than when you need that to make a project work right.

2) Keep reading technical discussions on sites like Reddit, HN, and tech blogs

3) Never be afraid to say "I don't know", and go research the subject.

nostrademons 15 hours ago 0 replies      
The best thing you can do is read & write a lot of programs, and pick them based on what is new and unfamiliar to you. Try writing programs from different domains (compilers, parsers, network protocols, distributed systems, data structure libraries, desktop GUIs, web GUIs, mobile GUIs, graphical visualizations, machine-learning, data storage engines, geo data, command-line scripts, testing, automation). Try writing programs in different languages (Haskell, C, Javascript, Erlang, Prolog, Go, Common Lisp, Python, etc.). Try writing programs of different scales (weekend hobby projects vs. Google Search), and try entering them at different points in their lifecycle (starting with a blank editor window vs. parachuting in when the company already has a million lines written and the original authors have long since left).

I'll second what mindcrime said about never really feeling like you know everything. The rate at which new CS knowledge is being created is far faster than the rate at which I can learn, so I've long since given up being able to learn it all. But what I can do is see patterns. I can see that the new single-page Javascript MVC frameworks are reinventing patterns that were common in desktop GUIs a decade ago, or that what Chrome's rendering engine is doing when it schedules JS execution isn't all that different from the Win32 message pump, or that Guice/Dagger are basically introducing data-flow programming to Java, or that Go's channels & goroutines are basically the same as Erlang messages and processes. Then I can apply what I already know about those other programming paradigms to the new technology, and only focus on learning the differences. That's a lot easier than picking up a new concept from scratch.

ambiate 15 hours ago 0 replies      
Whether you spend three years in continuous integration and test suites, service oriented design, embedded assembly, high/low level network stack, Javascript, Python, or even a PaaS, you just have to keep challenging yourself. Never settle and keep expanding your views. Bridge the gap by learning and engaging in things that interest you.

Just the amount of understanding required to comprehend the keyboard press to the letter appearing on the monitor is insane.

Remember, you're not useless and inexperienced. The stigma from those words alone are holding you back. I have a feeling you are bored. You have a thirst!

Also, recall that articles and comments are much like Facebook, a peek into someone's good life that makes you feel bad about yourself. The good always seems great, and the bad goes untold. I'm on revision 744 of a 10 page website/service layer right now with only 30% of the requirements met.

dccoolgai 14 hours ago 1 reply      
Pick better things to read... HN is super awesome for general interest stuff, but it will never make you better at anything. Google some deeper terms from whatever you are learning, and find 5 people that are good at it... read their stuff, try it yourself and get in touch with them if you get confused. You learn by failing as a developer...even some really smart people who did great coloring between the lines at school drop out because they can't handle that dynamic. That's how you go from "novice" to "good". The jump from "good" to "great" invloves some deeper understanding of architecture and algos/systems that comes with time, reading, education, etc..
thoughtsimple 15 hours ago 0 replies      
Being a programmer will definitely humble most people. It is probably impossible to know even a significant part of what makes up Computer Science. Add to that the requirements for knowing Software Engineering which generally bears little overlap with CS and you're probably always going to be behind.

The important thing is to keep learning hard things unrelated to your current development stack and methodologies. Don't get stuck on only doing tasks where you are already an expert.

codegeek 15 hours ago 0 replies      
" 'seriously' building fairly complex web and mobile apps"

You may already be "good". The thing is that there is something or someone better out there than you and this applies a lot more when it comes to HN. I feel like a loser when I browse HN because well, a lot of ppl are faaaar better than me at the things that I want to be good at. It is all relative. Stop sweating it and focus on what you want to achieve. If you get what you want, who cares whether you are good or xyz.

justanother 15 hours ago 1 reply      
"Yet, every day I run across articles here and comments that make me feel incredibly useless and inexperienced."

You're 'Good' now. When you stop getting that feeling, you're no longer good.

opendais 14 hours ago 0 replies      
FWIW, I suggest:Do hard things you don't know how to do until you know how to do them. ;)

Personally, I just am happy dicking around with programming and never being better than an average programmer. I'm more interested in money and other things. :/

davidgerard 14 hours ago 0 replies      
Imposter syndrome: you're clearly good enough to pay money, but you can see just how vast the area of stuff you don't know is.

Imposter syndrome is a good sign! It means you have some understanding what "good" actually is. It's the opposite of Dunning-Kruger. You can go forth and slowly learn the stuff you're missing.

Stay humble, but don't forget that you are some good.

BornInTheUSSR 15 hours ago 0 replies      
I'm sure if you wrote a technical post about something you have deep experience with in mobile or web dev, many people would probably feel the same way reading your article. There's too much for any one person to know.

Read those articles and take the time to research the parts you don't understand until you really grok it. Read and try to understand good code, take every opportunity to go a little bit deeper into the tools you use (web frameworks, libraries, etc) if they are open-source. Getting better sometimes means knowing more, but mostly it's about not being afraid to dive in.

mixmastamyk 14 hours ago 0 replies      
It's simply gained through study and experience.

However, the idea that you can keep up with the output of the computing industry (that employs tens/hundreds? of thousands of people) is an impossibly lost cause.

Instead specialize, while keeping an eye open for large shifts such as GUI, Web, and mobile have been in the past. I would avoid technologies such as php, that do not sufficiently encourage you to do the right thing.

WalterSear 15 hours ago 1 reply      
Pick something and get good at it.

If you aren't familiar with something that you see, look it up. If it looks useful to you, build something with it.

A group of people will always look smarter, more knowledgeable and more accomplished because you will see the acomplishments collectively, and compare them to your own, individual work.

tl;dr - Don't let it get to you, carve out your own niche.

azurelogic 15 hours ago 0 replies      
Reading other people's code can be hard, especially if you are used to a different coding standard. There's no promise that someone's article contains good clean code either.

Also, don't sell yourself short. Impostor syndrome is real. Just because everyone in the room is smart doesn't mean that you are not smart. Intellect is not zero sum.

ericraio 15 hours ago 0 replies      
Computer science is such a huge topic. It will humble the most experienced programmers.

It's possible that you right now today may know somethings that the person who made you feel like your underwater has no idea about.

I always feel like I don't know anything and that's a good thing, it keeps this subject interesting.

enterx 14 hours ago 0 replies      
It's simple... for any software you run into ask yourself:

How can it work?How does it work?How it should work?

And the most important thing:

Avoid involving yourself into code that is a mess before knowing how it should be written in the first place.

Also, if you're into OOP, think about access modifiers as:

private - if it's called from somewhere it has to be only in this class... (or im gonna slap someone!)

protected - only this class and its child classes...

public - does this really has to be part of an interface?

Once you start thinking this way you know you're on the right track.

...and read a lot. :)

_random_ 14 hours ago 0 replies      
Change jobs every 1-2 years (not just a salary bump, but a varied experience as well). Get a long-running side project, where you allow yourself to refactor as much as you want.
pyfish 15 hours ago 0 replies      
First define what "good programmer" means to you. Good programmer could mean having the skills to lead and code a functioning start up venture that can scale. For others "good programmer" could mean being an amazing architect - building products that are complex, yet in simple concise code and in a way that is easy to extend down the road. Yet for another person it can mean becoming a great hacker. What does "good programmer" mean to you?
andrewstuart 14 hours ago 0 replies      
Do extensive work within a code base that is recognised as being well written and design and architected. Try to be mentored by great programmers, ask their advice on specific questions about your code.
aosmith 13 hours ago 0 replies      
Keep banging your head against a proverbial wall until there is no wall.
Mz 14 hours ago 0 replies      
I suggest you learn a bit about perspective and human psychology, starting with The Imposter Syndrome: http://en.wikipedia.org/wiki/Impostor_syndrome

Sometimes, folks who think they know everything just don't know how little they know. Some of your smartest people sound not terribly confident because they know the limits of what they know and how many things are unanswered. Sometimes, really talented, amazing people feel like shams and really mediocre people feel like they have conquered everything and are The Bomb.

After that, you also need to find out some kind of objective measure of "good" for x thing. I don't know enough about programming to suggest what that might be for that domain.

ta56565 15 hours ago 0 replies      
[Teach Yourself Programming in Ten Years - Peter Norvig](http://norvig.com/21-days.html
Tell HN: I want out
192 points by canileaveplease  2 days ago   95 comments top 69
patio11 2 days ago 7 replies      
You're probably overestimating peoples' reactions to you leaving. Business owners manage to simultaneously believe the business is beyond their control and yet hanging on their every word. They can't both be true, right? If you left tomorrow, odds are a successful business continues, and it will be one which wouldn't have existed but for you.

That said: what stops you from having an all-hands meeting and saying "Is this REALLY what we want?" If it isn't, it is your business. Change it. Client needs to be able to text you at 8 PM? Client will be assisted in finding a more appropriate service provider. Employee feels that nobody can go home at 6? Employee gets told by his boss "Go home. It will be here tomorrow. There are companies that pull all-nighters every day. This is not one of them."

Also: raise your rates.

icambron 2 days ago 0 replies      
My guess from here is that it's not some sort of deep crisis, just a buildup of pain points that's gotten up to your neck. If you can get a few things sorted out, the picture might turn nice and sunny, and your "but I just want to RELAX!" ennui will vaporize. But if you don't sort them out, you'll burn out, let everyone down, and be miserable. Remember: having a lot of clients is supposed to be a problem you want, but you need to make sure you're equipped to handle it.

Here's my advice from having burned out terribly and repaired it:

Take tomorrow off. Send the email out right now: "Guys, I need a personal day. I'm sure you can handle it." Sleep in. Watch some TV for like half the day. Whatever.

The problem is likely that you've been hill-climbing. What's the next problem and how do I solve it? The hill gets steeper as you go up, but you haven't had the time to find a better path up, or maybe even a different hill. What you'll need to do is take a step back and ask, what's the problem with how we're solving problems, and to do that, you need to hit the pause button on everything. That's the real reason you just took tomorrow off. So after you're done with TV...

Part of your job is to create sustainability. Working like crazy just isn't sustainable and if you burn out, you're not likely to be the only one. Fuck toughness; it's not even a thing. And fuck the superheroics, because people just don't scale. You're not trying to lift a huge mountain yourself or even with a couple of your buddies; you're trying to build an organization that will systematically take apart the mountain and ship it off in modular containers. How do you turn "I need to make 1000 decisions today!" into that?

1. Delegation. Make a list: why does your phone blow up all day? "People need me to make decisions." What kind of decisions? "Feature decisions, customer-support decisions, technical decisions..." How can you delegate each of those? "Well, I can make Jill my lead engineer and direct technical..." You get it. Actually, just read this: http://sivers.org/delegate. You probably think only you can make the decisions. You're probably wrong and people will surprise you with their ability to take this stuff on, especially with your guidance. And if they can't, fire them (seriously, this isn't optional).

2. Operationalization. With delegation comes operationalization. You always have to be careful with process, but you also need to create it. When a new problem comes up, don't just solve it. Create a process for solving it and then apply it. This doesn't have to be the all-singing, all-dancing Ultimate Process (TM); it just has to be a way to solve this particular problem for the next, say, couple of months. "How do we structure customer meetings?" "When do we give them updates?" "How do we structure projects?" What's nice about process is that it applies DRY to your thinking; the process guides your (and everyone else's) decisions so your brain doesn't have to.

3. Brutality. This is the hard one. A small company needs focus. Focus is at, like, the top of the list for attributes you're after. So you need to look carefully at the portfolio of stuff you're doing and ask, "Do we really need to be doing this? Is it essential to our existence?" You (and whoever else really has to be in this conversation) need to answer it without blinking. It's hard to turn down clients, or cool ideas, or whatever, but you have to, because there will always, always be more stuff to do than you can plausibly handle. So you have to cut out all of that stuff, and you need to do it brutally and unflinchingly. "We're not doing that." Once you kill all the extraneous projects, even the ones that are making you money or publicity or whatever, you'll feel so much better.

4. Expectation-setting. Your developers want to work really hard, but that's actually not as great as you think it is. There's a tendency for employees in a small company to match the culture around them, especially when those employees are young. (I'm pretty sure that's where my twenties went.) But it doesn't make them magical animals; they'll burn out too. It's your job to create the environment of sustainability. That starts with your client relationships and moves down into your development schedule, your individual expectations for work hours, etc. You need to make the expectations explicit. Never ever (ever!) say "whatever it takes" and don't allow your employees to say; say, "here's what we can do", where "what we can do" fits into a reasonable schedule with reasonable hours. Will you lose some deals? Of course.

5. Planning. "um we have 8 pages left to design for tomorrow, nobody is going anywhere" is the opposite of planning. How did you get here? Well, you took on work without planning for it. That's going to cause you all kinds of stress, because it's crazy and humans can't work that way. Planning would have allowed you to say, like two weeks ago, "well, we're not going to make that deadline, so let's talk to the client and push that out." But instead, it's the day before it's due and you're fucked. So the first thing you do, on Tuesday when you're back is get a nice solid list of your existing commitments and see if they fit in a schedule. They won't, so then you'll have to reorganize some stuff and have some tough conversations about what to cut or push back or outsource or whatever. But holy shit will you feel better when you have. Then create a planning process going forward.

6. Supply and demand. Do you have too many clients for you to handle? Charge more. Seriously. The work will select itself for more value for you. If people keep wanting to pay, keep raising your price until they don't. You'll have less work and at least as much money.

Whatever you do, don't say, "let's just get through this last couple of things and then we'll be in the clear". You should know by now that's wishful thinking, and wishful thinking is, frankly, what got you into this mess in the first place. You need to take responsibility now and reorganize your team and process for sustainability.

hluska 2 days ago 1 reply      
I was going to write a quasi-motivational post telling you to take some time off, raise your rates, and talk with your team. But, then I read your question over and focused on one paragraph.

I honestly thought I was super tough and I can take this on. I actually really just want to kill myself.

First, you are super tough and this 'Tell HN' is proof of that. When you hit your absolute limit, you reached out for help. That is amazing and everyone here should be proud of you.

Second, if the anxiety is so severe that you want to kill yourself, you have a choice. You can keep doing the same thing you are doing now. Or, you can make big changes. If you keep doing the same thing you are doing, unfortunately, this is only going to get worse. If you want to fix this, you need to make some big changes.

Other commenters have suggested some good changes already. I encourage you to follow their advice. However, my email address is in my profile. If you need someone to talk to, please use it. I can even send you my phone number, or my Skype ID so that if you ever need a friendly voice that likely doesn't know you and who will never judge you, you can reach out. Alternately, go check out http://www.7cupsoftea.com/.

I've felt this exact same way, where I was so anxious that my own death felt like the only way out. You're going through something horrible and posting here represents a herculean effort.

Now, this is an ugly topic to bring up and I don't expect you to answer this on a public forum, but do you have a plan for how and when you will harm yourself? If you do, this is a medical emergency. Please take steps to protect yourself. Unfortunately, in most places, if you tell a medical professional that you have a plan, you are immediately committed for observation. So, be careful, but also take extraordinary steps to care for yourself.

I'm sorry that I don't have a solution. The best I can offer is my support. Use my email address if you need it.

skadamat 2 days ago 0 replies      
The main mistake you made was thinking that the startup life was a Bohemian life style. Doing a startup is incredibly stressful, you have to be pretty compelled to do it (really enjoy working on the problem, working with your team, etc).

First off, you CAN leave the business you started if you're getting burned out. Second off, I would try to pinpoint why you dislike working on your company. Does the problem not interest you? You keep referring to everything you are doing as 'work' and paint your coworkers / cofounders as your jailors. If you're not interested in solving that problem, you need to get out or you will bring the company down with you.

Now, you have to ask yourself if you dislike working in GENERAL. That may be a possibility and if you still want to have the dream lifestyle you've always wanted, I would look into freelancing part-time or starting a small lifestyle business that pays your bills and then some but doesn't require much effort.

If you want to fix your current situation/ burnout, try googling around for advice - http://www.businessweek.com/articles/2012-04-12/how-to-avoid... - and set expectations with your team on the hours you are available as well. If you just want out, then what's stopping you from getting out and starting over. You can't be passive aggressive about this; it's going to be awful if you stick around, don't deliver, don't show enthusiasm, and aren't willing to fix it and it's going to be awful when you have to tell everyone you're leaving. Starting a company takes more stomach than picking between these 2 decisions and you've already done that so either of these should be a cake walk in comparison!

noir_lord 2 days ago 1 reply      
> Not "um we have 8 pages left to design for tomorrow, nobody is going anywhere" says one of the developers.

It's your company, if you want to leave on time that is your prerogative, me I'd go pull the master breaker and shout "home time, fuck off" ;).

You sound like someone rapidly approaching burn out, you need to give yourself some time away from a screen to try and get some perspective on what you are doing.

jaegerpicker 2 days ago 0 replies      
It sucks and it's a tough spot. I've been very close to the same situation. I'll tell how it turned out for me, that doesn't mean it would be the same for you but take it as a data point. In the fall of last year, my wife and I decided to move out family to Maine. We had been vacationing there for years and I have something of a love affair with the Ocean. It inspires me, I feel alive, free and in touch with the Earth and my place in it when I'm close to it. I really want to pass this gift of closeness to my children. At the same time as we were packing to move two of my most respected friends asked me to join their startup as a partner. I had serious reservations about moving 1000 miles away with a young family and being a partner in a startup but my drive and ambition got the best of me. They needed someone who understood mobile applications and could build both Android and iOS while shaping the data/app to really focus on a mobile platform's strong points. I was deeply honored that they asked me to be that guy. So I accepted, and worked like crazy to make a Christmas launch. It was September when I moved to Maine. I worked 45-50 hours a day at my day job and 40-50 at the startup. All of this closeness and betterment of our live that my wife and I dreamed of moving to Maine? It didn't happen for me, I had responsibilities to take care of. All the things that need to be done as part of a move, my wife handled. Spending time with my kids, I'd make time for that after the launch. I hit my date (barely and not nearly as well as I would have liked) for iOS, but I couldn't take it any more. I'm tough and I HATE to back down so I pushed on, for three more months. I pushed so hard that I passed out twice from exhaustion. Android was up next and I sat everyone involved down and said exactly that. That I cared about them and felt like I was letting them down but I have to change my live because it wasn't worth it any more. We talked and talked it around. I took my equity earned and made myself available for questions and help on the existing apps. Today I just got back from the beach and my wife, kids and I have never been happier. I'm still great friends with my ex-partners and I wish them well. I had a lot of the same fears as you but the best decision I have ever made was to talk it over with my partners and to walk away. Good luck to you, my email is in my profile if you want someone to talk to.
epayne 2 days ago 1 reply      
Excuse me while I wax melodramatically rhetorical.

Dear CanILeavePlease,

Congratulations are in order. You have crossed a threshold that you will most likely not understand the full importance of until much later in your life. That threshold is named "Your limits". Crossing this threshold is a privilege reserved for only those worthy of learning and growing.

The long and short of it is this: The world seems to love throwing more work at competent and resourceful people. The problem is that the world is full of work and so the competent and resourceful typically fill up very quickly to the point of overflow and explosion.

You write about freedom. The lesson that you will learn is that freedom starts with saying "no". Once you start saying no you will immediately start to feel the freedom enter your body. It's very surprising how great it feels.

Lets imagine that tomorrow a client calls for a status update on their project and they ask you if it will be done on time? Tell them "No. The project will not be done on time." and see what happens. I can almost guarantee you that you will feel great for the following hours. You won't feel good because someone else didn't get what they wanted. You'll feel good because you were able to tell someone else the truth. Bonus points: if the client is reasonable they will respect you more than before because they now know they can trust you. Afraid your friends and employees won't like to hear it? Bullshit. Start saying "no" and you'll become leader that your friends and employees really need and can respect.

It's true that some people expect the entire universe to never say no to them. The good news is that those people aren't worth having in your life. When one exposes themselves by trying to make you feel guilty you can be please that now you know it and can disassociate yourself. This works in reverse as well: You can choose to associate with people that have the proper respect for your boundaries.

I've been there. I quit my job and started freelancing. Not even 3 months later I'm triple booked and sleeping 3 hours a night. One morning I cracked and my wife found me in the living room beside myself rocking back and forth, visibly shaking. Later on that day I had to make some of the most difficult decisions of my life. Guess what? Once I made the tough calls the liberation began.

As you have probably figured out already, working 14 hours a day is not the answer. Making better decisions is.

Best regards,Eric

rcfox 2 days ago 0 replies      
It sounds like your company has bitten off more than it can chew. You didn't mention how you're doing money-wise. If you can afford it, perhaps you should stop taking new clients until you've finished your current projects, and then negotiate more reasonable deadlines in the future.
zupa-hu 2 days ago 0 replies      
This sounds like you have several bugs in your processes. That's likely normal as you grow, and luckily you have a built-in alarm to beep that now it is time to fix them, it is no more premature optimization. Congratulations for hitting that point, don't kill yourself or quit yet, fix the problem.

You get a text every 5 seconds? Where is it coming from? Clients? Introduce an issue tracking system, or some kind of a queue, so that you can handle those problems asynchronously.

Are those messages immediate bug fix requests? Fixing bugs should eliminate them over time. If they are not, you are not doing it right. Introduce test driven development, rewrite code. Often, most of the bugs are contained in few modules of a program. Localize and rewrite (not fix) them. (Idea source: Code Complete)

Are your colleagues pinging you for approval all the time? Introduce decision making guidelines. Possibly with some examples how they were applied in the past.

Clients asking the same questions repeatedly? Create a FAQ or some Help. I made a policy for myself once to always just answer client requests with links to the Help. If I could find answers in the Help, I linked them, otherwise I added them to the Help first. This teaches clients to first check the Help.One client was asking the same questions all them time. I made that client a custom private help page with a link collection - it helped. Another I printed a paper he could glue over his monitor on the wall because he couldn't find anything on his computer.

For all your other issues: identify what bothers you; keep asking why it is happening and how you could fix it. Fix one problem at a time so it won't recur. You will have loads of free time really soon.

That said, you might as well consider raising your prices as others noted if your current margins can't justify the effort needed to deliver. Otherwise, you just created some new jobs that pay worse than the alternatives. In that case, everyone is loosing and closing your company would make everyone better off. But most likely you could add processes to handle things better. Or cut back on 20% of the features that require most of your time, but deliver least of the value.

Also, you should talk about the problems with your colleagues. You are better off solving them together because it starts to build a culture of solving these problems.

Good luck.

jdotjdot 2 days ago 0 replies      
The issue isn't leaving, but abdicating your responsibilities. This is clearly what you care about as well, when you say "I can't ditch them." While there certainly would be something to be said for the "meaning" of what you'd pitched if you leave, the key here is making sure that the actions you take do not negatively influence everyone else there and the people you brought into this venture.

I think the question to be asking is "What steps can I take to transition my responsibilities to other people without negatively affecting the company and my colleagues?" If you can find an answer to that question--hiring someone who you groom to replace you, making the business more institutionalized and self-sustaining so that you don't need 14-hour days, etc.--you'll be closer to getting there.

It's pretty incredible how many people I see who start their own companies hoping for freedom, and find the opposite. Responsibility often means less freedom, and having clients and employees beholden to you means more responsibility. In some ways, being employed can mean being more free. There was a great article on HN recently pointing out that the true level of freedom for entrepreneurs is likely to be found not at founding your own company, but specifically at founding your own moderately successful company--once great success comes, you have much more responsibility.

jarrett 2 days ago 0 replies      
Have you had a discussion with your cofounders and employees about establishing goals for work/life balance in the company? If so, what did they say?

Realistically, I don't think owning a company will give you massively more freedom than being an employee of one. But it does put you in a position to enshrine freedom as a goal for everyone in the company, employees and owners alike. Economic necessity will mean absolute freedom is never possible. But in my experience, it's very possible to have good work/life balance, flexible hours, and a fun workplace so long as the leadership is on board.

You might also consider asking whether you're setting the right expectations with your clients. If you're constantly making promises that force you to work 14-hour days and always be in crisis mode, perhaps that could be adjusted.

lukifer 2 days ago 0 replies      
This is not uncommon. Client work trades a single boss for multiple ones, even if it means you get to have pizza and beers at work.

The way out is through. A smattering of ideas:

- Take some time away, even if just a day. Yes, I know you can't afford to: do it anyway, to get some perspective and distance. If you want to hurry up, you must first slow down. [1] Don't forget to get a good night's sleep, too.

- Fire the clients that create the most stress or who are questionably profitable. Take a loss (in profit and/or reputation) if you have to. The first thing to do when you're in a hole is stop digging. (As suggested by others: drastically raising your prices is also a good way to separate wheat from chaff.)

- Don't shoulder it all yourself. Get whatever outside help you can from friends and family, and most importantly, be open with your employees about your circumstance. If you're upfront about where you're at, I think you'll be surprised at their willingness to problem-solve. If not, at least you were straight with them, and you can part ways amicably; if you put on a brave face while bullshitting them, they're much less likely to give you some slack.

Above all, don't forget that perfection is impossible, in your craft or in business, and you will never be able to please everyone, either clients or employees. You've got more spine than you think, or you wouldn't have started this enterprise. Use it, and make the hard decisions you don't want to make. You will hate doing it, but that dread in the pit of your stomach will finally go away.

[1] http://en.wikipedia.org/wiki/Festina_lente

jroes 2 days ago 0 replies      
I don't know if you have the patience or time for it, but The E-Myth Revisited, an old book with a cheesy name, was made for you and this situation.
thothamon 2 days ago 0 replies      
You founded the company. So take control.

Set 6 pm as the going-home time for EVERYBODY. If something is late because of this, that means the company should not have made commitments it can't keep (and you should take a strong interest in not making the same mistake again).

As someone said, don't answer the phone past a certain time. Most phones have some kind of do-not-interrupt mode. Use that. If people have an emergency, at the very least they can call and leave voicemail.

How about bringing a refrigerator and some beers into the office? Lead by example. If you're drinking beer at 2 pm, that tells everyone else this is the kind of startup where drinking beers at 2 pm is OK. People who are too uptight to deal with that will leave: let them.

It's _your_ startup. Run it the way _you_ think is best. What's stopping you?

sixQuarks 2 days ago 0 replies      
Sounds like you started the wrong type of business. When I started my online business, I had 1 main rule: I didn't want to deal with clients or co-workers. Now, I've got multiple projects that are bringing in six-figure incomes and I have to put in about 1-2 hours of work per week as a solo entrepreneur. I walk my dogs at least an hour every day, I work out, waste time browsing sites like HN and reddit, and am about to embark on a year-long digital nomad lifestyle with my wife. So, it can be done.
dsuth 2 days ago 0 replies      

"Right now I'm working 14 hour days and everyone gets mad when someone tries to leave while the others are working. There is no FREEDOM. The whole point of this venture WAS FREEDOM. Beers at 2pm? Sure! Not "um we have 8 pages left to design for tomorrow, nobody is going anywhere" says one of the developers."

is caused by this:

"I don't have the spine to delay my clients or deliver anything less than perfect and it's breaking me."

YOU set the tone for the company, and the pace of work, by managing the deadlines. If your style of management is just to roll over for every client, make ridiculous promises, then foist that onto your programmers, of course they will respond in the manner above. Because you have set the expectation that it is feasible to deliver, and that this is how things are done.

If you want a more relaxed environment, blow the deadlines out by double, THEN start setting expectations for work lower. Organise a company day off where you all go off go-karting or something - no exceptions. But don't do this in the face of deadlines, or you'll just look completely out of touch, and put everyone else under more stress.

Thiz 2 days ago 1 reply      
You're doing it wrong.

Go to work at 10, say a stupid but inspiring quote of the day.

Go to lunch at 12. Then hit the course at 3.

That's how you do it. In other words: Delegate.

tehwebguy 2 days ago 0 replies      
Sounds like the machine is running mostly on it's own now, have you taken a single day or week off yet? It might give you serious relief to step back for a few days and see if it's still there when you come back.

The job at hand isn't killing you, the anxiety is (probably)

graeme 2 days ago 0 replies      
OP, kudos for making this post. It takes courage to admit this, and self-awareness to realize you needed to do it.

There is some excellent advice in this thread. I am just chiming in to tell you to have hope.

Right now, this feels like the darkest point of your life. But there is a bright side. Because your problem boils down to this: too many people want to pay you money.

And it's really a problem. It's made your life miserable. For a couple of months I briefly had this same problem. It doesn't sound like one, but it is.

I did what this thread is telling you to do:

1. I raised rates.2. I eliminated work and clients that weren't serving my goals3. I delegated work I could outsource4. I made processes so much work could be handled automatically.

Before: Lots of money, horrendous stress, no time

After: Quite a bit of money, almost no stress, complete freedom of time

(I chose to eliminate most consulting, which is why my income went down. It sounds like your income will actually go up)

I couldn't be happier with choosing to turn things around. It's totally achievable. You can have your cake and eat it too. Your business will switch from a burden to something that actually does liberate you.

There are several substantial responses. Read through them, act on them. Good luck!

(And one comment highlighted something I want to add on: if you've actually thought about killing yourself, and have made a plan seek help. Trust me, it all gets better.)

jmacd 2 days ago 0 replies      
You say "clients", which makes me think you started a services firm. That is about the worst business you could possibly start if you truly wanted freedom. You are always beholden to the customer.
MortenK 2 days ago 0 replies      
You have a choice between re-organizing and leaving. If you decide to re-organize, icambron's advice on this thread is really good.

But if you are beyond that point, and it sounds like you are, just get out. Take your co-founders out for a beer and give them straight and honest talk. Some might get disappointed, but more likely they will be sympathetic. Even if they are not, it's their problem. While I understand the pressure, you mustn't sacrifice your health for other peoples opinions.

You emphasize freedom a lot. As you know, this can't be found in an agency setting, as ultimately you are at your clients' beck and call.

If freedom is your top goal, you should aim for independent, freelancing / consultancy or potentially becoming a micro ISV.

A possible solution could be to withdraw from day-to-day management, and act as a part-time, possibly remote freelancer for your own company. Doing what it is you like to do for perhaps 10-20 hrs pr. week.

Your co-founders may or may not accept that, but it's an out that could work decently for both parties.

Jean-Philipe 2 days ago 0 replies      
I've been in a similar situation: working 12h and weekends in a company I co-founded, hired people and got others to work even more. I've been one that my co-founders always doubted my "commitment" (using the very term in German) because I didn't sleep in the office like they did. Until I we got another kid and my wife forced me to work 6h days. I told them I needed to work less and it worked. Wasn't easy though, but it worked. During the following months, the company became a nicer place to work at. Don't be afraid.
oomkiller 2 days ago 0 replies      
Please Relax.

Don't leave. Write down your problems, and logically develop solutions to work on solving each of them. It sounds like you're in charge of your company. If so, change things up so where y'all can work together to deliver a successful product without killing each-other. If there is too much work, take on less, and plan better.

If anxiety is an issue, there are many anti-anxiety drugs that you can use to help control it (see /r/nootropics and/or a psychiatrist). Anxiety issues can affect your perception in many ways, and they're often invisible, which is what makes things seem so difficult.

Also, you may need to sit down and figure out exactly what you want out of life, then align the rest of your goals and plans with that. Getting a good life balance can be tremendously helpful in these situations.

suzyperplexus 19 hours ago 0 replies      
I think there are days I've felt this and other days when I've been that asshole pushing everyone forward. My own advice is to take a breath, block out 1-2 hours everyday with some sort of fake meeting you've made up for yourself to be alone, and give yourself a day a week for a makers day free from meetings.

If you still feel like you need to leave, then do it. People can likely tell when you're not happy. If you're convincing enough to get them all onboard , your shitty attitude is also probably pretty convincing in making them jump ship. Assuming that you still want this to succeed, exit gracefully if you have to.

kmfrk 2 days ago 0 replies      
Well, one thing to make sure you do is delineate your work from the rest of the life. So, Monday to Friday, 9 AM to 5 PM (or whatever the hours), you're in work mode, but as soon as the clock strikes 5, you turn off everything work-related, and you should not be considered reachable, barring any emergencies.

If that doesn't work for your co-workers, you fundamentally have an unsustainable company, which is no more your fault than theirs.

When clients and your work make a claim for your personal time, you need to put a stake in the ground - directly or indirectly by not responding outside working hours.

It also sounds like you may have a problem with your planning and workflow, if you've got e-mails and texts coming your way like a hailstorm. Since you're a founder, you're fortunately in a position to dictate how communication and project management works. Because no one deserves a flurry of e-mails and texts.

notahacker 2 days ago 0 replies      
The one advantage of having employees and partners involved with this is you have the opportunity to delegate more
mikekij 2 days ago 0 replies      
- You don't owe anything to anybody. Leave if you're not happy.

- If you're forced to be working 14 hour days, you're doing it wrong. You need to hire people. Raise money. If you're so busy that you're working 14 hour days, I'm pretty sure some investor would be willing to put some money in. Sounds promising to me.

- You may be working on the wrong stuff. The things a founder should be doing on a day-to-day basis at a 2-person company is different than the things they should be doing at a 10 person, 20 person, etc. company. Maybe you can hire someone to handle some of the things you're currently hating about your job, and you can focus more on hiring, or product design, or whatever.

Bottom line, if you're hating what you're doing, either you're doing it wrong, or you shouldn't be doing it. Trust your gut. Life is too short.

sumeetchawla 2 days ago 0 replies      
Hey buddy,

What you need is a long vacation. I would recommend you to find the right sub-ordinates/partners to take your place for the time being and plan a 2-3 week trip to a place where you can relax. :)

The whole point of building a company is that different people can do what they are best at and solve a problem. All members of an organization are a cogs in the wheel. They all need to move together to get things done smoothly. Being an entrepreneur has a lot of pressure but when you already have a company set up, with employees, with business people etc, you should focus on building strategies. Delegate more, hire the right people, apply the right management techniques which suit your work culture. It's all about having the right people under you so that you can just lead the company in the right direction.

Trust me, a vacation will have a big influence on you right now and give you a different perspective too :)

Take care and don't take any rash decisions.

- Sumeet

n72 2 days ago 0 replies      
"I just want to earn decent money and be able to do what I want to do whenever during the day."

"Beers at 2pm? Sure!"

You may want to recalibrate your expectations. I mean, this sounds a lot like you want your cake and to eat it too. What do you consider decent money? If you want to do whatever you want whenever and have beers at 2, you may have to settle for a considerably smaller income than you consider "decent".

dennybritz 2 days ago 0 replies      
I haven't read all the comments, so I'm sorry if this has been suggested before.

1. Check out this book: http://www.amazon.com/gp/product/B004IYISQW/ref=oh_d__o00_de... In a nutshell it talks about how you should not sell custom services, but instead build and document a repeatable process that can be executed without you.

2.Be picky with your clients. It's very tempting to take on as many clients as possible. However, some clients are inherently worth more: They are easier to deal with (no support needed), they pay more, or they are repeat business. Focus on these clients and get rid of the others.

Hope that helps. Good luck.

huherto 2 days ago 0 replies      
Well, that is actually a nice problem to have.

- Loose the clients that are problematic. Keep the good clients. Those that pay well, help you learn, and recommend you.

- Also, force people to follow a schedule. Don't allow people to work more than 40 hours a week. Your business should be sustainable. 14 hours a day is unsustainable and hurts the business. It is already burning you out.

relampago 2 days ago 1 reply      
You're at your wits end, you need a break. Try not to make a serious life decision when you're overworked and stressed to the max. Clarity first - go for a long drive, swim, run or workout. Do something to clear your mind and push out some stress. Physical activity highly advised.

I've worked in a similar environment and even though there has been a lot of research of the dires and productivity loss of exceeding the 40hr work week, we still push ourselves. If you feel this way so does some members of your team probably. The team loses if you all don't take a breather or lighten your load. I don't know the best route - hiring more employees, take less customers, under promise and over deliver on timetables, charge more, etc but a conversation with you partner may help.

Google some of the research done on exceeding 40hr wrk weeks and maybe you can find some better direction.

You can get through this. Best of luck.

mladenkovacevic 2 days ago 1 reply      
Sounds like you need a culture readjustment. Who is driving the culture right now? As a cofounder surely you should at least have a say in it.
logn 2 days ago 0 replies      
In addition to patio11's advice, I want to add: give yourself 6 weeks of vacation. Call it an unpaid sabbatical if you need to. That will adjust your attitude, especially if you return and the business is still functioning. Be very blunt and tell people that you're running on empty and when you return you intend to readjust the company's attitude or if they won't change, then your role will at least.
grizzles 2 days ago 0 replies      
There's some good advice in this thread, I'd definitely read it all and try implementing whatever's appropriate.

But, let's say you decide to leave anyway. So what. It sounds like you are reselling labor services? (eg. coding?) If so, that's a terrible business and I wouldn't hesitate to encourage you to move on.

Your friends will understand or they aren't really your friends. For you business partners, well that's business. You adapt and move on. A few ways of managing the exit:

Give them plenty of lead time to find someone to replace your role.

Say you want to stop fighting fires and focus on the long term strategy of the company as eg chairman. Cut back your hours, go live your bohemian lifestyle and email in your wise prognostications.

If you want a better way of selling labor services, one of the best ways I've seen is to manage your workforce like a recruiting company. Embed your coders in your customer's companies, on fixed term contracts. I've seen this model work really well. It's the easiest way of scaling a coder services based company.

webmaven 2 days ago 0 replies      
The simplest solution I know of is to start raising your prices. You will gradually start to get fewer new clients, and gradually start to lose a few of the old ones, but individually the remaining projects will be more profitable and enjoyable, and the work volume will become more manageable, all without having to ditch any of your clients (rather, they will be ditching you, leaving you off the hook).

A book you might find useful is 'The Business Side of Creativity': http://books.wwnorton.com/books/detail.aspx?ID=4294978649

processing 2 days ago 0 replies      
Tomorrow morning or even better tonight on group call - hey, I don't want to be working 14 hours a day or receiving texts every 5 seconds. I'm going to be taking action to reduce this burden (you'll be teaching someone to do your job) over the next 3 months - I got into this for a more balanced life and this isn't feeling balanced right now.....
krrishd 1 day ago 0 replies      
I'd say this is quite the relevant blog post for your situation: http://blog.samaltman.com/founder-depression
unknown_other 2 days ago 0 replies      
I was in the same situation, but for about five years. I founded an agency with a friend in pursuit of greater creative freedom, but as it happens ten bosses (ie. clients) are somewhat more stressful than just the one. During those five years I barely saw my kids, worked most weekends and didn't take holidays for the last three years at all.

We were mostly working with SME's and trying to grow the company to a point where could score some bigger clients, on several occasions we very nearly did. We got behind in our taxes when some large projects got cancelled and ended up taking out a bank loan secured against ourselves personally. The quality of our work deteriorated as we took on anything and everything to make ends meet, to pay our expanding team, hoping our big break was just around the corner.

When I finally called it quits we were about 60k in debt, shared between three partners. Telling our employees we had to let them go was hard, but I was surprised at how well most of them took it (they actually felt bad for me), to my relief all of them found employment again within a few weeks. I kept on working with my clients myself by working in evenings and weekends finishing everything off, it took about a year to shut down entirely, but every month it got a little easier. Our clients expressed some annoyance but they were mostly understanding. A couple even said that they didn't know where they could find another agency as good to work with as us, which was heartening.

The successful agencies I have witnessed experiencing fast growth never had any small/medium clients; their founders worked for a larger company and took some big clients with them, or they worked client side and their previous employer became their first big client. Either way their initial clients were huge and there was very little of the painful bootstrapping I experienced, so if you don't have big clients now expect a tough slog (or a lucky break of course, but counting on that pretty much gambling with your own time)

The whole experience cost me about 20k in debt and maybe 200k in lost earnings over what I would have been making had I been freelancing instead. It's been a year and a half and I've managed to pay back my debts and finally get a mortgage on a house, that, had I not started a company I could very nearly have bought outright by now. The time I should have spent with my kids is lost (I fooled myself that I was doing it for them, but in retrospect really it was more of a 'we've come this far...' mentality) but I'm trying to make it up to them now as best I can.

My advice to you would be to freelance, as a programmer you can work all around the world, remotely if you please and get paid decent money (We all know guys who only work part the year, and spend the rest travelling, others who work remotely from Bali or something). I'm freelancing now and I feel more free than I ever did running a company.

matheusbn 2 days ago 0 replies      
Sometimes we think that being our own employer it's the easy way, but dealing directly with client it isn't easy too.

I think you should reunite with your partners and express your feelings. Some can afford to work +14h a day while others can't, and they need to understand.

Again, driving a company may can't be easy but it can't be a torture too.

Good luck!

ryujo 1 day ago 0 replies      
There's a Russian designer, who owns a big studio, yet is away on expeditions and travels for most of the year. In his blog, there's a series called "3 questions", where anyone can ask for advice.

I think one of his answers might help you (http://tema.livejournal.com/1401690.html, 4th question). Here's a rough translation.

"Q: Me and my husband own a chain of restaurants we have invested a lot of energy and effort into. We want to travel, and the question is, how can we leave our business unsupervised for several weeks? If we go away on vacation, we'll be worried all the time, phones in our hands. You travel a lot. How do you both develop your business, and travel?

A: I've spent a lot of time worrying about this too. But then I noticed, that if I'm away from the office for some reason, work doesn't suddenly stop. And so I started traveling. There are no more colleagues, who are unable to work without my supervision. Everyone knows, it doesn't matter where I am, because work goes on. My advice is - build your life to your comfort. Others will accept it as a fact. If not the current ones, then the new employees will. And it's important to keep working. Distance is not relevant, but presence is. Coordinating projects is presence."

I took away that employees know what to do. Being present via project coordination, and being chained to your office chair are not the same thing. Delegate more (most) tasks, and go travel.

ibrad 2 days ago 0 replies      
You will be surprised how no one will care when you quit. Not that they don't care about you, but in a week it will be like you were never there.

Just imagine someone else in the team leaving and see what are the steps you will take to replace them. It will be easy to move on

JacobH 2 days ago 0 replies      
If you do all of your work "perfectly" and can't do it any other way at any expense you may just have anxiety issues. Quitting doesn't do away with it.

This entire story says to me that you are a selfless person that wishes to be more selfish. Be selfish. It's cathartic. You don't have to go overboard, but buy yourself pizza and don't share. Go to a movie and not invite anyone. Baby steps.

abootstrapper 2 days ago 0 replies      
You need to leave. I had a similar predicament before, and selling out was the best thing I could have done.

Confide in your business partner, and discuss with them the most graceful way for you to exit.

You're not doing anyone a service by staying. It's bad for you, and for the business.

For your next venture, consider your goal of maximizing your free-time, and focus on endeavors that will give you that. Personally I know I'll never be a Steve Jobs, but I can have a beer at 2pm! :)

singingfish 2 days ago 1 reply      
I'm in an exit at the moment (key subcontractor). It's going smoother than I anticipated so far.
Mandatum 2 days ago 0 replies      
The answer to this I would think would be to get to a point where growth is icing on the cake, and then streamline your current business to the point you only have to be involved for major things.
bung 2 days ago 0 replies      
Sounds like you need to talk to your project managers and review how you're setting timelines with your employees and clients. If you don't have any project managers, then you and anyone else in management need to do it. If it's just you, you need to get someone help with management! You should be able to take your team to beers (maybe 4pm instead?) scheduled every couple weeks, barring a big launch.
thekevan 2 days ago 0 replies      
Then don't leave. If something is broken, fix it. Don't throw it away.
Liesmith 2 days ago 0 replies      
You should probably see a psychiatrist and/or psychologist instead of asking hackernews how to solve this problem.
qwertzuiopasd 2 days ago 0 replies      
you had a goal in mind, but you followed a different recipe (sales guy, employees, real clients), now you wonder why you have the shit everbody else has (too much work, short on time, not enough life).

to reach your goal (if its still your goal) you need definitely need a new recipe, probably the complete opposite.

my recommendation: (it's not much, but it's what i do)

read http://en.m.wikipedia.org/wiki/The_Ballad_of_Halo_Jones it's a comic by allan moore about "getting out" - its a good book and a good book is never wasted

second: quit and travel alone (or if you have wive and kids, take them wih you, it's less expensive then it sounds) for a few months, without your phone. reinvent yourself when you come back. i run an agency, i do this every year (including reading the comic).

virtualmic 2 days ago 0 replies      
If you wish, I can help. I am changing my work of line to get more into web development/ data analytics. I am a good manager and a fast developing developer. :)

My email address is in my profile.

anonzz9pza 2 days ago 0 replies      
>I can't ditch my clients, my business partners, my friends, my employees. I don't know how to get out. I so furiously pitched my friends to start this company, I brought them ALL into this. I hired everyone, I convinced them to jump ship from their jobs and work with me. If I bail now, every word I said, anything I did, will mean nothing.

I'm in a similar position myself. I don't think this should be a factor in your decision making. They're adults and they made a choice.

You may feel like you let them down, but as I said they're adults, they made a choice. It even sounds like they wont lose their jobs if you quit, and if they're no longer interested in working there without you, they should have time to find other positions. Even if that wasn't the case, it shouldn't be a factor for you.

They may hate you, but they'll get over it.

So, if you need to quit for your mental well being, do it. If you feel it's worth trying other things first, go for it, but there's nothing to be ashamed for here.

binocarlos 2 days ago 1 reply      
Sounds like you are doing well! Perhaps look for some grey in between the 2 extremes.

Ditching everything vs Burning out - classic balancing act of a startup innit

Running full pelt at a marathon only to hit 2 miles exhausted - time for tortoise to take over - he actually makes it!

pjd7 2 days ago 0 replies      
To the OP, You need to check out this http://www.workthesystem.com/
thiagoc 2 days ago 0 replies      
What about tell your friends/coworkers about your feelings? Maybe, together, you can make changes on your current work-style to make you happy.
ntiku 2 days ago 0 replies      
The company you started with the friend was part of the bohemian lifestyle? Or you want to quit the company you started to pursue a bohemian life style?
nstart 2 days ago 0 replies      
A lot of the answers that people are giving have been described in one of the best books on running a service industry business. "The Pumpkin Plan". Give it a read. But be warned, there's tough decisions to be made. Dropping rotten clients, firing people who will suddenly become obsolete with the lack of work for them. You will need to be ready to make those calls.

Good luck!

andersthue 2 days ago 0 replies      
I went down the wrong path for a long time, and like the frog I did not notice I got burned.

My advice is to be honest, with your self, your co founders, employees and customers. Tell them you cannot meet the deadlines and stop working so much.

No one is angry when you move the deadline up front, only when you do not tell anyone you cannot meet it.

And remember that if they matter they wont mind and if they mind they dont matter.

sharemywin 2 days ago 0 replies      
Based on your comments your pulling in close to 4-7 Million a year in revenue. There's no reason your not pulling in 500k to 1 million a year personally. In 5 years your done. Not sure how long you stuck out your job but 5 years goes pretty fast at that pass.
hiphopyo 2 days ago 0 replies      
This is exactly why I quit freelance design as well. It's a never-ending cycle of you having to pour all your heart and soul into making your clients richer. And what do you get? Just a lousy paycheck.

There are way cool business models out there requiring far less work with far higher pay.

m1sta_ 2 days ago 0 replies      
Don't take another piece of work that can't be delivered lazily.
martinSlovakiva 2 days ago 0 replies      
It's your dream to be free than be. Hire new replacement for yourself. Create whatever position (CEO, Country manager etc) is needed.

Earn with no-calls enjoy your freedom. You deserve it man, it's your right and your universe.

peterwwillis 1 day ago 0 replies      
> If I leave, everyone will hate me

...Which is worse than hating yourself?

> I just want to earn decent money and be able to do what I want to do whenever during the day

So get a horrible well-paying job at night.

> If I bail now, every word I said, anything I did, will mean nothing

Sometimes the truth is that you fucked up big time. What are you going to do, continue to live a lie because you can't handle the idea of your friends realizing you screwed up?

Have a heart to heart talk with them all and tell them how you feel. They won't be happy. But it'll be better than you just not showing up for work one day. Make a plan to get out over time so you don't screw them over further.

sbussard 2 days ago 0 replies      
Read the Bible and E-Myth Revisited
j45 2 days ago 0 replies      
Getting out is as extreme as qutting your job. You can cut back gradually, or better yet, get things running better..

I know how exactly you felt and felt the same way for several years, working 7 days a week, 12-14 hour days between getting/running/doing the work of the business.

The only thing that changed is how I got better at managing work, and then having the work managed.

All I can say is in my case, I did not realize I had a lot of learning to do, and that's where a lot of time goes. I started when I was 18, now I'm in my early 30's. There is a way out. Seek advice from others who have done and come through what you're doing. If you take half baked advice from half experienced outcomes, you will definitely be risking more not just with everything in front of you but your confidence in the future. If you feel overwhelmed, it's probably because you have sufficient growth opportunities around you and a feeling of paralysis of doing any of them justice. You'll have to pick.

My experience was to focus on learning how to make money and build long term client relationships that would allow me to grow. I now consult startups, projects and high growth group.

Freedom is something you build. Freedom always has a cost. There is always a price to be paid for getting it. You don't own a business until it runs without you. Until then, you own a job that is hard to quit because you are increasingly invested in it in every way.

Freedom for me, is also time, and a capacity to create and pursue interests as much as the work I do. In your 20's, something happens called becoming well rounded. learning to keep your increasingly efficiently ability to create into your 30's while making sure you aren't being left behind is a delicate balance, but it can be done. To me, wealth is time and capacity to create as I would like.

I'm now consulting part time, and making as much, or likely more than I've ever made. The lame adage working smarter vs working harder is not completely true, its all about knowing strategically where to double down your efforts, and learning the difference between a good dollar earned and a bad dollar earned.

All isn't as bad or as good as it seems. The best advice I received from a mentor was to never get too high or too low, savour each lesson and accomplishment, shut up, and move on, because the great times don't last, just like the horrible ones as long as I keep moving.

If you'd like to talk more, I'm happy to share my story of having run a similar course to you for almost 10 years and maybe you can find something there. Email is in my profile.

My story and experience is rather extreme and it can feel horrible to not have a soul to talk to, or to understand you.. when being understood can feel like a luxury. I can't say I know everything you're going through, but there is always a way to help use tech, systems and processes to make a business work for you, especially if you have cash flow.

Everything will be ok, you can do it, you will get better, things get better. Things don't get better, we just get better at handling them -- it's the best growth imaginable. You can get things running without you and remain a value contributor.

nawitus 2 days ago 0 replies      
Couldn't help but be reminded of Sonata Arctica's song I Want Out.
battani 2 days ago 1 reply      
If you want freedom, learn how to algorithmically trade Forex.

Edit: Downvote? I'm serious about this. Trading is the only activity I know that gives you

1) income

2) no boss to report to

3) no employees to take care of

4) location freedom (e.g. can be done from anywhere)

5) relatively low starting costs

6) low starting risk (you don't need to work 2+ years to figure out if your company will actually make money)

7) a market you know will always be there

8) an ability to be totally hands off with algorithmic trading

Most people think this is a pipe dream perhaps that explains the downvotes. It's not. I live off semi-algorithmic Forex trading and know many others who do too.

Sindrome 2 days ago 0 replies      
You unplugged from the Matrix. But the reality is the matrix isn't that bad. Good luck.
Ask HN: Ever started a project with only a name?
5 points by andrey-p  14 hours ago   3 comments top 3
mattl 13 hours ago 0 replies      

I knew I wanted to make a free last.fm but with no code and a name I started it, crowdfunded the domain and began code a few fays later.

5 years in, still going, lots of users, well supported by the apps that might support it.

amac 5 hours ago 0 replies      
Octopus (theoctopusapp.com)

An app to sell anything. Inspired by the Octopus payment system in Hong Kong, I've reasoned that technically, why can you buy or sell anything with your mobile device.

Mz 11 hours ago 0 replies      
Not exactly and not a programming project.

I kind of flippantly said (something along the lines of) "I should do a comic about living with my medical condition. No, it should really be just a comic about my life with a main character kind of like Mae West, only opposite. Say, Mae East." And my son rebutted "November West."

I did an initial drawing of a comic that weekend. I bought the domain name six months later. I then spent a few years trying to flesh out what to put into the comic. (I was working for BigCo and it took up most of my mental landscape, so all my initial comic ideas sounded like Dilbert meets The Nightmare Before Christmas or something really macabre like that. I was afraid I would get fired if my employer discovered it and then I would lose my audience for no longer having a job to bitch about acridly.)

I eventually did get it off to a very rocky start. It's stalled currently. So not exactly a wild success story at the moment but I have gotten better feedback on it than other projects I launched in the past. I don't think it's dead yet but I don't yet have much to show.

Ask HN: How do I get more work (sales) for a s/w services comapny?
5 points by tejasm  17 hours ago   5 comments top 3
lifeisstillgood 13 hours ago 1 reply      
What were their SEO keywords? Since specialisation and niches are the key to knowing who to target I would suggest they start there.

Where they target "magento developers"? Then they were not specialising much - try targeting 500 digital agencies in the USA and offer to sub contract their maintenance work and updates (ie keep old clients happy)

Where they targeting industries? Such as ecommerce for hair products? So start by identifying all the hair websites out there, collate a report on the quality of ecommerce, security vulnerabilities, then cold call to sell that and then follow with your services.

Expand into products - magento addons, etc. if these guys are any good they will have three internally used anyway

Do not hire lead development companies - never heard anything good of them.

Do not hire a bizdev person till the CEO can do the job themselves so knows what to ask for.

JSeymourATL 16 hours ago 1 reply      
You'll want to explore a number of potential Independent Sales Rep firms in order to find a good match.

Recommending reading >



hnbusiness1 16 hours ago 0 replies      
Interesting question... would love to see some answers.
Ask HN: How does firechat accomplish mesh networking?
4 points by notastartup  13 hours ago   2 comments top 2
chatmasta 8 hours ago 0 replies      
I've researched this area and there are a few issues to be aware of. First of all, it's important to note that Android does not have the same built in "off the grid" networking that iOS recently introduced. So, as OpenGarden stated on Techcrunch, Android clients rely on some combination of Bluetooth and wifi.

Second of all, a common issue with implementing peer-to-peer networks is NAT traversal. Because the internet has more devices than it does IPv4 space, it's segmented into siloed networks (NATs), each with it's own IP space. So connecting two peers is nontrivial, because the public address of one might mean something totally different to another. To accomplish peer to peer tunneling, you need some kind of intermediary to coordinate the addressing. Because of that, many p2p applications require changes to router/firewall rules to solve the addressing problem. Obviously this is suboptimal, especially on mobile. But recently, Google has made a lot of strides in this area with it's technology underlying Google Talk and WebRTC. This tech, encapsulated in a library called libjingle, relies on the STUN and TURN protocols for intermediary servers to coordinate addressing between peers. For 92% of devices on the Internet, the STUN servers are able to coordinate addressing between peers without having to relay any of the data. For the other 8%, TURN servers sit in between the peers and relay data. This is the technology that enables Google Talk and WebRTC to be so scalable. When 92% of bandwidth can be offloaded to peers, there's much less of a need for central servers and bandwidth.

Now consider that any p2p IP tunnel can be opened between two devices connected to the Internet, using this STUN/TURN protocol via something like libjingle. (See socialvpn.org for an example.) This tunnel can be a generic transport, or it can act as a UDP proxy (I believe this is how Hola! Chrome extension works).

You now have the ability to create a p2p overlay network, with direct tunnels between peers, on top of any Internet or generic network of devices. The key component is libjingle along with STUN and TURN servers, which enable direct p2p addressing.

My hypothesis is that OpenGarden used some combination of all these technologies. I think the reason they're quiet about how they accomplished it is because, 1) Android probably doesn't work as well as iOS in sparse offline areas (not enough Bluetooth parity), and 2) they are relying to some extent on central servers, for the TURN/STUN protocol.

That's just my hypothesis, and I've never actually implemented anything with this technology, but rather have only read about it. If someone wants to correct me on any number of the points I'm sure I got wrong, please do.

lsh123 12 hours ago 0 replies      
It sounds pretty straightforward for WiFi: you have two devices connected to WiFi on the same network. These two devices can broadcast to let each other know that there is someone else there. After that, the IPs are known and devices can talk to each other. There is nothing platform specific in this model: standard UDP and TCP, nothing more than that.

I am not familiar with BT protocol so I can't comment on how it is done with BT.

Hacking and addiction
22 points by mathandheroin  1 day ago   20 comments top 9
mathandheroin 1 day ago 0 replies      
Thanks for replying guys. I have been struggling with my self-created loneliness lately.

It is so weird that people dont want to hang out with a using drug addict. Haha.

Anyhow, I like to program in Lisp, perl and python. I work at a startup and no one knows I use and I never nod at work. I have been promoted twice since I have been there so I still have it together at work and it is going well.

Thanks for the responses. It makes me feel less isolated aand alone which feels really good right now :)

rthomas6 1 day ago 4 replies      
I had quite a caffeine addiction but I recently kicked it. I was up to 900 mg/day at my peak. I think caffeine counts as an addiction. I had a strong dependency on it and couldn't function physically or mentally without it.
talles 19 hours ago 2 replies      
I wonder if anyone uses drugs to enhance working (to gain productivity) rather than to relieve the stress...

Like people who take Ritalin for studying

kagro 1 day ago 1 reply      
Yes I'm addicted to heroin. I have a much easier time than my junkie friends with a programmer's salary but its not a life anyone would want.
trylobeet 1 day ago 0 replies      
i often do.have a techy job, that is.far as the junkyism that's a constant.been 10+ years now, used ibogaine once to kick - that lasted, but then i realized i'm better off on it than off it.where i am at right now we got a morphine maintenance program along with the methadone. readily shootable, and just as readily esterifiable. use propionyl chloride to get the propyl ester, which is... potent enough. :
sux0r 19 hours ago 0 replies      
Pot (fairly high doses). Never at work. Gray area as to whether or not it's a problem but have a hard time not using. Don't want to admit to myself that it could be a problem. Extremely secretive about it. Sometimes still enjoy it.
aurelien 1 day ago 0 replies      
I have no addiction and no job, is that link?
dllthomas 1 day ago 0 replies      
Hacker News.
silenthax0r 1 day ago 0 replies      
ketamine is my escape :(
Ask HN: Who owns how much?
3 points by s9ix  20 hours ago   5 comments top 2
brudgers 18 hours ago 1 reply      
Four equal partners is very similar to four equal partners.

Have a vesting schedule.

Have a buyout clause.

Use an attorney.

Get back to building.

JSeymourATL 17 hours ago 0 replies      
insights on how to be least wrong>

Even amongst the most honest, hard-working, and brotherly partners-- ugly disputes can happen. Worth bearing in mind, for your agreement, a smart shareholder clause to resolve disputes called the "Mexican Shootout".

Full description, read Felix Dennis, The Joys and Perils of Partnership, pg.175


Ask HN: If you could move to any city in the world, which would it be and why?
4 points by rblion  11 hours ago   5 comments top 5
lgieron 35 minutes ago 0 replies      
Cracow - beautiful and incredibly vibrant old town, plus it's only an hour from my folks.
jmspring 6 hours ago 0 replies      
If I was limited to staying in North America - Vancouver, BC. Proximity to natural resources, great music, gateway to Asia, short trip to Whistler.

Europe - if I didn't have to worry about work, Paris. The culture, the food, the history. If I was being employed (tech) - Munich or Stockholm - a bit of the above, green, access to nature, good public transport, though less multicultural (though Stockholm is said to have a vibrant immigrant population, Munich is a big village).

re_todd 7 hours ago 0 replies      
I also like Seattle. The tech scene, lots of good coffee shops, nice people, nature nearby, music, great food, interesting neighborhoods. I like cold rainy weather, but don't like a lot of snow, so Seattle is ideal for my weather preferences.
pmtarantino 9 hours ago 0 replies      
Edinburgh. I was once and I fell in love with the city. It is not as big as the big capitals, the people is really nice, has a great culture heritage, is the UNESCO City of Literature and more more more.
socceroos 10 hours ago 0 replies      
Melbourne, Australia. Current and multiple-time winner of the worlds most liveable city.
Ask HN: Need help figuring out the best ways to promote a startup event in SF...
2 points by wh-uws  13 hours ago   1 comment top
Ask HN: DMCA complaint blocks Google result for education.github.com
2 points by rebelde  14 hours ago   1 comment top
anigbrowl 14 hours ago 0 replies      
This looks very much like a clerical. There's a few thousand URLs in that document relating to multiple claims of infringement (of pay-per-view fight shows). The vast majority of the URLs point to torrent-sharing or apparent unauthorized download sites that are a legitimate basis for complaint.

If I were you I'd draw GitHub's attention to it, and let their legal department dispute the DMCA takedown notice.

Ask HN: Exploit disclosure, suing attempt
6 points by milankragujevic  1 day ago   3 comments top 2
akama 20 hours ago 1 reply      
One of the most important factors in the case is the country that you are from, it is hard to say anything without knowing that piece of information.
redtexture 23 hours ago 0 replies      
Anybody can sue anybody for the stupidest and wrong-headed and unsuccessful reasons. Anybody can threaten anybody for any kind of stupid and incorrect reason.

Can they win court? Are they right? Are they being jerks? Are they bullies? Another set of questions entirely.

Ask HN: Is anyone using Nest Thermostat in their home?
2 points by codegeek  16 hours ago   2 comments top
VLM 15 hours ago 1 reply      
No nest here. I've installed a couple thermostats in my house and family homes. Its fairly trivial work. Looking at the pix of the nest "wiring diagram" and backplate wiring thingy, it appears to be beyond easy. (edited to add, I'm complimenting its graphical arts design or whatever, in the olden days I've actually installed thermostats that consider written docs that "the 3rd screw terminal is the W" no diagrams or writing on the device, to be adequate, the nest is much better documented and designed) The biggest "fun" you'll have is if you require lines that don't exist and have to rewire at the furnace (most commonly not having power at the thermostat)

The most exciting part of thermostat installation is standards are so handy that there must be dozens of them.

My advice is take a pix of the wiring before you start. No pondering what connected to what if you get confused later. This is also handy with advanced car work.

In addition to the pix, draw a map of how each wire connects to what old terminal and all that. Not necessarily useful as an end product but it does kind of force the issue of studying the wiring.

Also pull the wire out of the wall a little, and tape a clothes hanger or something like that to the wire. That way it can't fall into the wall, which can be quite a puzzle to solve even with the gear to fix it.

Thermostat wiring is much like the old RS-232 standard in that every pin is supposed to be indestructible and can't be damaged by shorting to any other pin at any time, and of course Chinese value engineering means thats not always the case. Shutting the furnace off would probably be wise, even if in theory its impossible to damage anything by a momentary short ckt.

WRT "or called a professional" note that the profit margin on sales will motivate them to not be interested in installing your thermostat, rather than installing their thermostat, and they might not sell a nest. Also a pro HVAC guy makes money installing major machinery, so unless they're hurting for work, getting a guy out there might not be easy/cheap.

(edited to add I wrote from a EE perspective WRT wiring and protocols and pinouts, and one thing I overlooked is the decorative aspect of if you're changing from a giant rectangular to small round thermostat you'll have some painting, maybe even screw hole filling, maybe even hold patching to do, and frankly I donno if HVAC guys will do that kind of thing. Every job an adventure...)

Ask HN: What is a project I can complete in a night?
16 points by newaccountfool  2 days ago   16 comments top 9
DanBC 2 days ago 0 replies      
A simple game for smart phones.

Draw a pipe on the screen. First pipe is short and straight. They get longer and have more curves. "Drop" a ball into the pipe. The user tilts their phone clockwise or anti-clockwise to guide the ball through the pipe. That tilting is the only control the user has. Each pipe should be short enough to create the "I nearly did that; just one more go" effect.

msantos 1 day ago 0 replies      
A Raspberry Pi with motion detection and SMS.

I've built one using an old nokia that supports AT commands.

Pretty fun stuff and no soldering required. Next up I'll try adding a camera and send MMS messages through the mobile phone with photos when motion is detected.

Helpful links:







sejje 2 days ago 1 reply      
URL shortener

Flickr creative commons image search engine

Twitter bot

Quote scraper

Deal alerter for craigslist

IFTTT on a scale relevant to you

S4M 18 hours ago 0 replies      
If you are using emacs, you can try to write some ELisp code to fix something you don't like or automate something you do often.
HarshaThota 2 days ago 1 reply      
You could try contributing to some open source projects instead.

http://up-for-grabs.net/ has a list of projects with issues/tasks that are easy for new contributors to pick up.

collyw 1 day ago 0 replies      
Something that doesn't involve much user interface.

I have been working an a side project recently. The guts of the code is very simple and done already. Getting all the surrounding framework to serve it up as a web page and do input validation is taking forever (mainly because I only get an hour or two at a time to work on it). Its all the "polish" that takes the time. So something command line based would be easier.

iroot 2 days ago 1 reply      
If you are interested in mathematics and algorithms, you can solve Project Euler problems projecteuler.net/problems
skazka16 2 days ago 1 reply      
"Yo" app :) It took 8 hours to build it. Then someone invested $1M. I don't get the world.
clark-kent 2 days ago 0 replies      
Try learning and hacking on some new technology you are not familiar with.
Ask HN: Google AdSense Still Bans Ajax. What are the Alternatives?
47 points by wikiburner  3 days ago   34 comments top 10
radq 3 days ago 0 replies      
You can use BuySellAds units with Google Adsense as backfill.

For an example of this you can check out our Discourse instance: http://forums.hummingbird.me/ (ads may not load on the initial pageview because of a timing bug I have not fixed yet, but try clicking somewhere and back to the homepage).

This is the source code: https://github.com/vikhyat/discourse-bsa/blob/master/assets/... (Ember.js)

onestone 3 days ago 1 reply      
There is actually pretty good support, but you have to use AdSense through Google DFP - https://www.google.com/dfp/. Things like creating ad slots dynamically / loading them later / refreshing them dynamically work fine when you use GPT tags in DFP.
PaulHoule 3 days ago 4 replies      
The world could really use a good competitor to Adsense, couldn't it? How about some ad network that is based on contextual technology such as Facebook, retargeting, etc.
paulgb 3 days ago 0 replies      
The question isn't about using code in ads, but about including ads on content that is loaded with ajax.

There are probably technical (though not insurmountable) reasons for this, i.e. if the ads are content based Google has to be able to scrape the content to know which keywords to match.

hiphopyo 3 days ago 2 replies      
I prefer affiliate networks because they, unlike AdSense, give me the freedom to design my own ads. Also there's this:


Who wants this eyesore on their websites anyway?


I'm surprised the AdSense team is still toying around with amateur designs at the expense of the whole AdSense programme. I've seen the past works of the designers on the AdSense team and I'm not impressed. Plus it's quite naive to think that one design will fit all websites. Why can't AdSense, like other ad and affiliate networks, just open up an API so publishers themselves can be in charge of how their ads look and behave?

chaddeshon 3 days ago 0 replies      
I run BromBone.com. We have several customers using it to make static versions of their AJAX sites for Google Adsense purposes.

Email me at chad@brombone.com if you want to talk details.

yanghan 3 days ago 1 reply      
It seems like you can give native advertising a try.I'm the cofounder of http://www.stackadapt.com and you can load our ad tag through ajax. You can also define ad formats using your site's HTML, so the ads are completely native and responsive to your site.
vkjv 3 days ago 0 replies      
AFAIK, your only option with Adsense is to implement a #! alternative crawlable site.
ojr 3 days ago 0 replies      
An alternative way to make money online, is by removing ads and create a subscription-based feature, Stripe has a nice developer platform
im3w1l 3 days ago 1 reply      
Maybe dynamically add iframes with ajax-content? Every iframe would be static, and so could have adsense.
Ask HN: Why does WordPress dominate the market?
8 points by michi  1 day ago   14 comments top 11
rachelandrew 2 hours ago 0 replies      
PHP is a big reason for WordPress doing so well, because it's everywhere, it is cheap to host (as in you can stick a whole heap of PHP sites on one box and it will generally be fine) so it's cheap to get hosting.

My product (http://grabaperch.com) is a CMS - I guess a competitor to WordPress, although we're certainly not trying to be WordPress. We're PHP and MySQL because that's what our target audience has available. We would not have been as successful as we have been had we written it in Python, Node, or Ruby or anything else.

The content editors using the CMS, and the website users do not care what the software is written in. Most of our actual customers (web designers and front-end developers building client sites) do not care what the software is written in as long as we make it easy for them to get it installed.

Successful with a CMS product doesn't have to mean that you kill off the competition. There is plenty of space out there for products targeting a bit of a niche, or just those who want an alternative for whatever reason. If you can figure out what that reason is, what problem isn't being solved by the main players, it's possible to build a product that serves it.

krapp 1 day ago 1 reply      
Wordpress dominates, I think, for a number of reasons. Primarily, low technical debt for users - it's as close to a plug and play application as i've seen, and nowhere are you expected to understand 'arcane' concepts like version control or the terminal. Want a plugin? Done entirely through the web GUI. Want to upgrade? Same thing. New theme? Same thing. The vast community also helps, obviously, but that community is only as big as it is because the barrier for entry to setting up and modifying a Wordpress install (assuming all you want is to use existing plugins and themes of course) is so low.

Also, many existing webhosting accounts come with an option to install Wordpress on the account. Wordpress even has its own self-hosted service. Many of the alternatives i've seen, in terms of frameworks and CMS software, haven't been able to replicate the relative painlessness of Wordpress' model.

A contender would, first, have to deal with the network effect of Wordpress which is considerable, but also (if it's written in a language other than PHP) the network effect of PHP. Since the UX in Wordpress generally works pretty well, switching to another CMS would be a difficult sell to the general user (why switch from something that's easy and works and you can hit a developer for by throwing a rock out of the window?) meanwhile most of what is terrible about Wordpress is only apparent to coders, who frankly don't really matter in this dicussion, since they're probably using Octopress or something anyway.

csixty4 23 hours ago 1 reply      
WordPress is where it is because the core team puts users first. They've taken on tons of technical debt in order to maintain backwards compatibility with themes & plugins. PHP 5.3 reached end-of-life a year ago, but WordPress continues to support 5.2 because so many shared hosting and un-maintained VPS servers use it. Even cleaning up some of the PHP3-style code in wp-admin needs to be weighed against the risk of breaking some five year old plugin.

From a UX standpoint, it's easy to use, install plugins, find themes, and get help. If you spend money on a commercial theme, you can be assured the platform is going to support it for years even if you don't have all the cool new features. It runs on PHP, from a $2/mo shared hosting account to WordPress VIP.

The community is great. WordCamps cover a variety of technical and non-technical topics. Most people are welcoming. It's just a great bunch.

Could you create a CMS with a cleaner codebase? Easily. And the people who make WordPress want to, too.

lifeisstillgood 1 day ago 0 replies      
Re: the "what is appropriate on HN" see http://ycombinator.com/newsguidelines.html.

The basic idea is to share things that satisfy one's intellectual curiosity. If you share links like that, or contribute comments that help others intellectual curiosity you will find lots of fellow souls.

And that is I guess the answer to your second part - if you want to build the next Google you need fellow souls - talented people who also fit in with your brain. You can find them here, and even discuss the finer points of arranging servers or compensation

What I would avoid doing is shouting "who wants to join my startup?"

Got an idea? Great - make a prototype and a bazillion of us will tear it down for free to help make it better. One or two might jump on board. apart from that you will just make a few friends, gain some respect and have us cheering you on from the sidelines.

Good luck.

lauradhamilton 17 hours ago 0 replies      
Wordpress has a huge ecosystem of plugins, including a wide variety of powerful and innovative anti-spam plugins. I chose wordpress (twice), in large part because I am confident that the anti-spam offerings will continue to evolve at a rapid pace alongside the webspammers.

Yes, PHP sucks, but an easy-to-use, well-tested, flexible platform > a brand new ruby on rails framework.

acesubido 1 day ago 0 replies      
Disclaimer: Not a Wordpress expert. I don't know much about Drupal or Joomla. But what I noticed was back in the early 2000's PHP was the craze; a simple language for the web, it was those one-click LAMP/XAMP installers. All in all it was just a bunch of small circumstances drawn together that snowballed into enough momentum for the mainstream spotlight.

A ton of budding 'techpreneurs' whose $family_relative_or_friend 'knows PHP, therefore can wrangle Wordpress' could get them a site up and running when they 'come over to their house for some snacks and chips over a weekend'

"Why aren't there any contenders?" Those entrepreneurs are now successful businessmen who have enough budget to keep being on Wordpress, because 'it just worked'. That battlecry spreads like wildfire for a large amount of time, hence "production-ready/polished" comes into mind.

Moreover, depending on the businessman, it's not much about 'the synergy between JavaScript on the front and back end' or other technical detaiils. It's more of the can I get my $son to do that for me on a saturday afternoon given the following X things I need.

"Clearly WordPress thrives on its massive community, and maybe its just a matter of time until a worthy opponent emerges to gain the necessary momentum." Yes, empires rise and fall. It won't be sudden, like any piece of software, Wordpress will also slowly lose relevance in the course of time depending on the amount of people working on it.

gesman 1 day ago 0 replies      
Users and businesses doesn't care if it's PHP or Node or Rails or whatnot.They want something that allows them to achieve what they want, no matter how custom or complex the thing they need.

Wordpress allows to build very customized web portals at close to zero cost.Zillions of free and pre-existing plugins helps.

If something really custom needs to be created - there are plethora of el-cheapo programmers bidding to do Wordpress stuff for you.

dennybritz 1 day ago 0 replies      
Even if PHP is being surpassed by Node and Rails, the typical users of the CMS don't care. Wordpress does what it is supposed to do very well, and the typical (non-technical) end-user just doesn't care (or understand) what technology it is based on.

Now, if you design a "better" (I'm not sure what that means, but you seem to know) CMS, would you be able to take away WP's market share? Probably yes. Does it matter what language the product is written in? Not directly. It only helps you indirectly in that the technology may be able to help you build a better product faster, or allow for new features that aren't easily implemented with PHP.

Why hasn't somebody done this? My personal guess is because it would take a lot of time (=money). Wordpress has gazillions of features and is very polished.

gregcohn 13 hours ago 0 replies      
Regarding your sidebar, a good filter would be whether the topic and ensuing discussion are likely to be of general interest to the community here (vs. specific to helping you).
seren 1 day ago 1 reply      
Have you checked ghost.io? I don't know what is their business model, but it looks really close to a new Wordpress, based on Node.js
ninthfrank07 1 day ago 0 replies      
Check out http://www.webhook.com. It's not launched yet, but I've been playing with it as an alpha tester for a few months. It's pretty cool.
Ask HN: Transition from Dev to Manager
2 points by Jemaclus  19 hours ago   3 comments top 2
SuperDuperTango 5 hours ago 1 reply      
My two suggestions are: learn everything you can about being a good manager and leader where you are now. Use the time you have as a "new (manager|lead)" in a company that knows you're a "new (manager|lead)" to be the eager newbie (just like you probably did when you were a newbie dev). Find the managers and leaders who you think are good and who have traits that you aspire to have and learn them while you can. Being a good technical manager and leader takes some of the skills of being a good dev, but a whole other set of skills that you generally don't need when being a dev. Finding a good mentor (even if they don't know they're mentoring you) is something you can more easily do at your current company.

When you do look for another job, be up front with the company you're talking to. You may want to interview for a Senior dev position, but tell the recruiter that you want to parlay your experience into being a manager or lead. At my last company, we hired a couple of folks like this, and they almost all turned out to be good managers and leaders.

fecak 19 hours ago 0 replies      
Recruiter here. Part of the problem with recruiters is that they are going to reduce you only to what you are and now what you can be. If they are looking for managers, they typically are looking for experienced managers and aren't necessarily trying to identify someone who is prime to move into that role.

You should emphasize any leadership experience on your resume and LinkedIn. If you list yourself as a "Full-stack Dev", that is probably all you will get calls about. Call yourself "Lead Dev".

It could be risky to mention something like "Interest in management positions" on LinkedIn - depends on who is paying attention to your profile. You could also do some SEO type work on your profile, adding words that recruiters might use to find managers. As an example, recruiters might get a request for a manager that knows about Agile or Scrum. Sneaking in methodology buzzwords could help you appear in those searches, though I'm not sure how likely someone would be to contact you if you didn't give the appearance of someone interested in or capable of managing.

You might be better off being proactive and contacting a recruiter directly to get their suggestions and help you market your background to those types of positions. The resume is a much easier item to tackle since it's private.

If you are looking for a recruiter, I just released part 2 of a 3 part series on working with recruiters. Find part I here http://jobtipsforgeeks.com/2014/06/20/find/ .

Ask HN: Is JavaScript the Good Parts still relevant?
6 points by skfroi  1 day ago   7 comments top 6
tgriesser 1 day ago 1 reply      
"The Good Parts" is still a good one, but my recommendation these days now goes to Effective Javascript:


Outside of books, http://superherojs.com is another good resource to recommend.

manishsharan 21 hours ago 0 replies      
You may also want to check out Eloquent Javascript . http://eloquentjavascript.net/ . This is my goto book for Javascript
kb19 7 hours ago 0 replies      
Javascript the Good Parts is for folks who already know Javascript. The concepts are more advanced than most beginners would encounter (currying, memoization etc).
peterashford 1 day ago 0 replies      
It strikes me as a poor apology for the crap status of JS with a sprinkle of Douglas's debatable opinion rather than a useful primer in modern JS.
bonsai 1 day ago 0 replies      
I can highly recommend books written by Nicholas Zakas.


There is one shorter book that he wrote recently:https://leanpub.com/oopinjavascript

_random_ 1 day ago 0 replies      
I would recommend pointing them to this resource as well (19 pages and counting): http://wtfjs.com
Ask HN: Choosing 5 Android handsets for QA purposes: Which 5?
7 points by AVTizzle  1 day ago   4 comments top 2
swanson 21 hours ago 1 reply      
If you have an existing app, use the Google Play Dev Console to find the phones your existing users are using and consider buying the top 2-3.

These sites are also helpful: http://choosedevice.com/ http://www.handsetdetection.com/

My picks (with no context): Nexus 5 (straight from Google, use this as the gold standard), LG Optimus Fuel ($30 unlocked at Walmart, runs KitKat but has a tiny screen), Samsung Galaxy S4/5 (whichever is most popular), Samsung Galaxy S3 (still tons of those in the wild), and Kindle Fire 7" (covers tablet and FireOS).

higherpurpose 1 day ago 1 reply      
Nexus 5, Moto G, Galaxy S5 (I think these 3 are pretty mandatory), and the other two maybe a Sony and an LG (maybe even lower-end versions than the Moto G, especially resolution wise). If you want to target mainly the US market, I guess Sony isn't very popular there, so perhaps an HTC device instead.
Ask HN: I suck at technical interviews. How can I get better?
11 points by alokedesai  2 days ago   16 comments top 10
gramerc 2 days ago 3 replies      
I have worked at Microsoft, Google and Facebook as a software engineer, going through the full interview process every time.

The thing to realize is that being good at technical interviews (as done by the above companies) is a skill unto itself but it is a skill an intelligent person with a comp sci background has the ability to get significantly good at after a 1 to 2 months of disciplined preparation. - I went to a top ranked school myself and had a comp sci degree but was very intimidated by technical interviews until I realized that this was no different than all the other other intellectual hurdles/gauntlets I had successfully navigated up to that point by giving myself time to thoroughly prepare.

Get "Elements of Programming Interviews" and give yourself 2 months to prepare. Start to with "1-month" plan in the book spending at least an hour a day at the very minimum. (I have worked through both Elements of Programming Interviews and Cracking the Coding Interview in their entirety and while both are good, in my experience Elements of Programming Interviews was clearly the better preparation in terms of technical depth, breadth of exposure to the kinds of questions I faced in the full-day interviews, and succinctness of coding solutions)

Get dry-erase paper/notebook or a white-board and work through the problems by hand including the coding (important!). For the first week or two give yourself an honest focused couple of hours to wrestle with a problem before looking at the solution. it is not enough to settle for "I think I know how to solve this" - Actually code up the solution by hand and step through it with some simple cases. This is important and it allows you to develop confidence in your ability to think methodically through a problem as well as giving you an opportunity to develop mental heuristics for how to tackle and test unfamiliar problems. Developing confidence in your ability to think through interview-style problems is every bit as important as exposing yourself to interview-style problems. As you progress, you will be working towards being able to deconstruct a problem and be ready to start coding up a high confidence solution in 15 - 20 minutes.

"Talk to yourself" as you try to solve a problem to simulate explaining your thought process to someone as you go along.

When going through the solutions in the book, do not gloss over a detail you do not understand. Go online and find alternative explanations/references if you don't understand some detail of the solution provided.

After a few weeks of this kind of daily disciplined prep, you should start feeling pretty good and your confidence should start building nicely. Lots of interview questions are variants of each other and once you have enough breadth, you start quickly being able to key into the "type" of question and possible solution approaches almost as soon as you hear it.

Last thing is when you feel ready to start doing interviews, do not interview with your "top choice" first. If you can find someone that has done interviews to give you a mock interview, great! If not, schedule interviews whose outcome you are not as attached to (relatively speaking) first.

Hope that helped.

incision 2 days ago 0 replies      
1.) Read up on the routine where you're going to be interviewing. If it's a better-known company there will be plenty available.

2.) Work through one of the popular coding interview books [1][2].

3.) Practice off-keyboard things like white-boarding and public speaking. Get up in front of your white board and work through a problem like you're teaching a class on the subject.

I recognize that 1 and 2 might feel like gaming the system a bit - they are, but as long as companies continue to practice contrived interviews targeted preparation will naturally follow.

As stated, you don't lack the ability to perform in general, just within the artificial confines of an interview.

1: http://www.amazon.com/dp/098478280X

2: http://www.amazon.com/dp/1479274836

vitovito 2 days ago 0 replies      
The short answer is, practice. Literally, interview more. Apply to jobs you'd never accept an offer from to get the practice.

The long answer needs more information. Why do you think you suck at technical interviews? How do you know that? If the answer is "because I haven't gotten an offer," what makes you think it was the technical portion of the interview you failed? What parts are you not good at? When do you freeze up? Why do you freeze up?

eshvk 2 days ago 0 replies      
Programming interviews are a game. It is not a reflection on your GPA or your school or how intelligent you are. It is simply a collection of parlor tricks because we as an industry have no fucking idea how to evaluate someone who is relatively new or has no social reputation.

So dissociate yourself and detach yourself from the process. Others have given you tons of advice on this process. The secret really is to practice. It is hard. But it is doable. Good luck, mate.

peachepe 2 days ago 0 replies      
https://www.interviewcake.com/ should help you with the typical fizz buzz tests.
gdewilde 2 days ago 1 reply      
I went to the worse schools, I have no skills, really the interview is all I know, I've done it a million times. (hahaha)

One good trick is to take charge of the interview.

There are standard questions the interviewer must ask (every time he does an interview) Try to answer all of those before he gets to ask them. This renders him without things to say. Then you get to ask your own questions.

Change the discussion from "why do we want to hire you?" into "why do I want to be hired by you?" When will I get a raise? when will I get promotion? when will you get to sit where he is sitting? And where will he be at that point? How are ideas treated here? Is one supposes to show initiative or not?

Will you get locked away in an office or will there be other people on the floor? Who do you get to work with? Have him tell me something about your future coworkers.

My favorite one is to just bluntly ask why their product is better than the competitor. I ask that because when it is asked from me I want to be able to answer it precisely the way I'm suppose to.

Show an interest in the interviews, the guy is doing that all day long, is he having fun? Did he see many good candidates? How many interviews will they do for a single job opening? Does he enjoy his work? Don't allow him to just sit there pretending to be interested in your life. Show an interest in who he is, what he does and where he comes from (or she)

You can be empathic about it but working down your list like a robot is equally impressive.

Talk fast but not to fast, keep eye contact but don't gaze.

If their argument 'why you want to work there' is good enough and their product is good enough end the interview before he does, ask if he made up his mind already, when do I start? You don't want to pressure him but you have a lot of other interviews you would rather not have to go to.

You want him to have the impression that you are putting serious work into finding a job - but not to much.

Good luck!


HarlowDuDy 2 days ago 0 replies      
Practice and convince yourself before the interview -- whether it is true or not -- that you do not need the job. Take the pressure off the outcome and you will go into it with a different mindset. I've even gone so far as to repeat over and over to myself on my way to an interview that "I don't need this job" and my mindset really changed! Doesn't hurt to try :) And good luck!
michi 2 days ago 1 reply      
Keep in mind, many interviewers are purposefully giving you ridiculous questions to try and trip you up. Calming your nerves is a very common problem, and can be challenging to overcome. It sounds like your problem is not a matter of knowledge, but a matter of delivery. Here are a few immediate things to try:

- Practice makes perfect: find someone to give you a mock interview. Do this as often as necessary until you conquer your problem.- Caffeine, adderall, etc, can make you much more anxious. You need to be calm.- Don't feel pressure/rushed, and don't panic. Slow down. If your mind races under pressure, that's completely normal, but it can be controlled.- Its ok to not entirely know the answer. Start by responding with what you do know. Once you begin speaking, the ideas will start flowing. Many technical questions are "loaded". To actually solve the problem in the best way possible, you need way more information than they give you. This will cause your mind to race. Try to qualify your response with your thought process, "if this or this, I'd do this. If something or another, I'd probably do this."- Practice speaking with confidence. Take a deep breath, all the way down into your belly, and then use that air pressure to make your vocal chords "sing". Having a strong vocal tonality will resonate confidence inside your head, and inside theirs. Also, don't be monotone/boring. Find/express energy and enthusiasm without sounding fake or cheesy.

Being nervous for an interview is normal. I've interviewed a lot, and I always get nervous. Its just something you have to deal with. Public speakers and pick up artists (approaching women to ask them out) are two areas that you can find a ton of advice for calming your nerves.

Introverts can have a hard time finding their inner personality. Practice makes perfect. Try to start as many conversations as you can each day. Don't force it, become natural at engaging conversations with other people. This will help all areas of your life, including interviews.

iroot 2 days ago 0 replies      
You can never be completely prepared for programming interviews. How well you do in a particular programming interview depends on whether you have had any experience working on similar questions/problems in the past.So, bottom line - program as often as you can.
n0body 2 days ago 0 replies      
Same as you improve anything, practice. In this case that means do more technical interviews, apply for the jobs, even the ones you can't do/don't want to do. It's all experience and interview technique depends on that.
Ask HN: What would you have in your "smart home"?
10 points by pspeter3  1 day ago   17 comments top 7
angdis 1 day ago 2 replies      
At the risk of being a buzzkill: a "smart home" is a home that is easy to manage.

Most people have too much stuff, too much clutter, too many gadgets/clothes/vehicles/appliances/tools, etc. All these things take effort and mental energy to deal with on a day-to-day basis.

The ironic thing about home automation is that it manages stuff by adding yet more stuff to manage. By trying to make stuff smart, you end up adding more points of failure-- more ways for things to get screwed up.

CapitalistCartr 1 day ago 1 reply      
Security. All else is trivial to set up; doesn't require outsmarting humans, other than my own mistakes. I want a security system that doesn't require monitoring by a security company whose competence I doubt, and whose prices I find laughable.
hcho 1 day ago 0 replies      
Most smart homes are actually "manage remotely" homes. I would really love to have a home that's actually smart. Few things that comes to my mind:

* Recognise the pattern the inhabitants are at home. Turn the heating/ AC on/off accordingly.

Smart lighting. Turn off lights automatically when I watch the movie channel. Don't go all bright when I wake up for a pee in the middle of the night. Learn the pattern of me waking up and turn the lights on accordingly.

Watch my fridge. Nag me when I stocks run low. Better yet, prepare me a shopping list.

chadkruse 9 hours ago 0 replies      
Gonna leave you with a simple thought: smart homes shouldn't be about the things...they should be about the people.

I think the reason we haven't seen a blockbuster IoT app is because everyone is still focused on the things, not the people. Or in your case, as a DIYer, you're not thinking about yourself.

So consider what keeps you up at night, and think about the lowest-common-denominator way to solve that via wiring up your home.

mtufekyapan 1 day ago 1 reply      
I thing music is one of best thing for smart home.

If there is a tool which looks at track whether, day(weekend or not), time of day and etc after this things it select best music for me?

I can like or unlike music for my mood and it also learn my listening habit?

It'll be wonderful.

mlwarren 1 day ago 1 reply      
Voice controlled window shades and interior lights.
blooberr 1 day ago 1 reply      
I look at home security first. Access control, cameras..
Ask HN: Is it possible to make another Football Federation?
3 points by UncleChis  15 hours ago   2 comments top 2
rgovind 13 hours ago 0 replies      
In principle, yes. In practice its tough. You can look for parallels in what happened with Cricket in India, where it is huge.

A media mogul named Subhash chandra came up with the idea of "India Cricket League" (similar to English Premier league in English soccer. Lots of young cricketers signed up. When the Indian cricket association realised the money potential of this new tournament, they made declared that no one who participated in ICL would be allowed to participate in Indian national team, owned by India's cricket association. And since its the dream of every Indian boy to be part of national team (big bucks and media exposure), almost all players quit ICL...and teh league was effectively dead.

Moral of the story...How will you get players to play in your league?

anigbrowl 14 hours ago 0 replies      
Sure...if you have a lot of money and patience. As you point out, the current world cup is generating ~$4 billion in revenue...which means FIFA has a lot of bargaining power because it is already sitting on a lot of money.
Ask HN: How to describe myself as an entrepreneur without sounding cocky?
7 points by grimmfang  2 days ago   8 comments top 5
davidkatz 2 days ago 3 replies      
Try describing what you do instead of labelling it. "I'm building an app that helps blind folks read".

Personally, I'm allergic to the word 'Entrepreneur', whenever I hear it I wince. Just say what you're building, plain and simple. I also wouldn't call myself a Web Architect, I don't really understand what that means, it just sounds fancy.

Also consider not giving yourself a title at all. If you really want a title, I'd go with something humble like "a guy who builds stuff on the internet".

For reference, this is my personal site: http://www.davidkatz.me/

btian 2 days ago 0 replies      
Just describe what you do. Web designer / front-end programmer etc.

Please don't call yourself web architect unless you're involved in W3C standards...

ASquare 1 day ago 0 replies      
Maybe this talk will also help you figure out what to call yourself - aka Start With Why: http://www.youtube.com/watch?v=sioZd3AxmnE
mtrimpe 2 days ago 0 replies      
If it's for a portfolio then you're probably going to work for people.

What are you going to be doing for them? How are you going to add value to their business?

If they wanted that value and were actively looking; what job titles would they put into Google?

That's what you want to describe yourself as on a portfolio site.

utunga 2 days ago 0 replies      
A writer is someone who writes, if not for a living, at least every day. It doesn't matter if they are published yet. Similarly an entrepreneur is someone who is actively building a business.. it doesn't matter if they are successful yet.

You can, of course, put whatever the heck you like on your own home page. But if it makes you twitch then maybe stick with web architect for now, and get out there and start building your business. Once you feel you are building a real business you'll be happy to use the word entrepreneur. I suggest you use this as a motivation to get out there and do what you want to do. Let the phrasing on the portfolio/profile site look after itself.

In my mind building a business means more than just having a tax vehicle around your own personal consultation services. A consultation services business probably has other employees. Once you are building a business that is designed to actually create and sell something (whether it be service or product) then be proud to use the word entrepreneur. Till then, stick it up on the fridge as a goal !

--- signed, someone who alternates between writing 'Entrepreneur' and 'Programmer' on the immigration forms each time I travel, depending on whether I'm currently actively building a startup or just living off my consultation services.

Ask HN: How to engage users?
6 points by vhf  2 days ago   3 comments top 3
kromodor 23 minutes ago 0 replies      
This can be a tough one.

I've seen several types of advice. Unfortunately so far I haven't seen an effective one.

- One would be to put calls to action that would encourage participation. This servers as a nudge and a frame for the type of engagement you want to stimulate.

- Another would be to ... create fake engagement to show the users that others do it, thus to lead the flock.

Of course, in my experience, neither of those two worked.

--- related story; can skip it ---

With my team we built a digital marketing advice website on the local web. We take the topics really deep and get controversial on many mainstream topics. Our approach is pretty much unseen in our local market.

Of course, we deliver. The site is on 1st and 2nd places for various keywords on google (this means at times, above wikipedia) and we are even over some local web companies, for keywords for services, that they provide.

Basically we kick ass on local.

YET, people don't comment on our site. So far we have tried few different approaches and none brough definitive result.

And the engagement is high i.e. people read; metrics show people spend time, read, scroll and share. And they share like crazy. We have articles that have almost 1:1 share:read ratio! We rechecked that 12312 times, to be sure that we didn't mess the counters of the share buttons. Not the case. External tools report the same stuff.

And people still don't comment.

It's like a curse. They read, share and do not comment.

So sometimes it is your audience that is tough to engage in specific way. But one must find a way! For his product. For his sanity. For science!

--- end of story ---

My advice is to lead with some fake engagement and then create some sort for gratification for the people to see that is cool to post links and others like it.

But if you find better advice ignore this one. While I gave it to you I still feel sceptical about it's efficiency.

ASquare 1 day ago 0 replies      
First and foremost you need to familiarize yourself with Dave McClure's Startup metrics: http://500hats.typepad.com/500blogs/2007/09/startup-metrics....

If you then look at your analytics, you will then find that you likely have either an Activation problem or a Retention problem or both.That then tells you the areas of focus in terms of the problem to correct.

Also read:http://www.socialmediamodels.net/social-media-overview-model...http://www.slideshare.net/startuplessonslearned/eric-ries-en...http://www.startuplessonslearned.com/2008/12/engagement-loop...http://andreehuk.com/post/67267407194/gradual-engagement-a-g...http://sixteenventures.com/saas-customer-success-quick-wins

Mankhool 1 day ago 0 replies      
Apologies, but I read that as, "How to enrage users?" What a difference a letter makes and probably another good question for Ask HN!
Ask HN: Can you provide a Roadmap+Tools for a Beginner?
9 points by joshfenmore  2 days ago   8 comments top 4
samirmenon 2 days ago 1 reply      
For me, when I was starting out with this stuff (and by the way, I'm not an expert now), I learned one lesson the hard way:

Just pick something.

It honestly doesn't matter what, you just have to choose something. There is so much time to be wasted agonizing over whether you have chosen the right framework, tool, platform etc. The best strategy is to just choose something and run with it. Once you learn and feel comfortable in one language/area (for me it was python), you'll be able to transition easier.

Perhaps this strategy will take more time than if you pick the "correct" path now... I really didn't see time as a consideration when I learned. Nevertheless, it's probably better than spending time dillydallying. Good luck!

ziyadb 2 days ago 1 reply      
Hi Josh. I'm actually working on a book that is intended to provide you with the basic principles and how to actually build applications, which is something I've personally struggled with, considering the language-centricity of the majority of tutorials out there.

It's far from done, however, email me (email in profile) and I'd be happy to send you a draft.

Good luck with your journey!

mgingras 2 days ago 1 reply      
Hey Josh,

Here is a good link to a project that popped up on HN a while back http://www.bentobox.io , basically pick one of the topics and click toggle what to learn next, and it will show you a sort of progression.

As far as tutorials, just google the technologies name + for beginners or something similar. (there are also links to instructions in the site I posted)

As far as where to go for what it really depends on your end goal and who you're working with.

I.E. for web development, some people swear by Django or Rails or some PHP framework, all depending on their use case and the expertise of the people they're working with.

Figure out what you want to make, research what tool would be best to make it, then learn that tool and the languages/frameworks that compose it.

If you're just looking to make a basic web app, I would recommend using Sinatra (Ruby), Flask (Python), or Express(NodeJS). All provide a very simple configuration to get to the "Hello, world" point, however are extensible enough that you can use them to learn more advanced tools, technologies, etc.

If you want to chat more feel free to shoot me an email at martin@mgingras.ca



clubhi 2 days ago 1 reply      
I have a co-worker that came out of school with an economics degree. In a couple of years he went from having no programming experience to cranking out pretty impressive apps with elasticsearch/django. (*I should clarify.. He started making apps right away. It took him a few years to make them what I'd consider professional quality).

I've been programming for about 20 year so really don't think I realize how difficult it is to pick things up.

       cached 25 June 2014 12:05:01 GMT