hacker news with inline top comments    .. more ..    13 Jan 2016 Ask
home   ask   best   3 years ago   
Ask HN: What is your company's on-call rotation like?
39 points by bobzimuta   ago   20 comments top 16
INTPenis 2 minutes ago 0 replies      
I'm not in the on-call team but I stay available for specialized expertize if the 1st line can't solve an issue.

I know how they work though so here's one example. It all depends on the clients SLA but let's say the client has 99% uptime, 24/7 on-call duties in their contract.

In that case one person out of 5 rotates an on-call device (phone) every 5 weeks. In the strictest of SLA they're required to respond within 15 minutes and sometimes have a solution within 4 hours. This varies wildly from contract to contract.

Of course an incident manager is available, redundantly, and is tasked with coordinating skills between departments to solve an issue within the designated SLA.

Alerts come into the device and the tech can respond to alerts directly via the device to acknowledge, force re-check or simply disable. There is also a more featured web interface for the alerts to access via a browser.

Alerts are sent with SMS through a self-hosted gateway. Directly attached to the monitoring server, not using any e-mail translation API.

Alerts are logged, and in some cases a ticket is created for an alert.

Preferably a manager should work out the on-call schedule, but techs often trade weeks and are more than capable of handling it themselves.

They receive an added monthly compensation including overtime. So any work must be reported in a time reporting utility to eventually lead to payed overtime depending on the contract it pertained to and the time when it happened.

jeletonskelly 1 hour ago 0 replies      
To software developers in this thread who are on-call; I'd like to share some thoughts with you. I've worked at places that do have on-call rotations and others that have none. I will no longer work at a company that requires me to be on-call.

Why? It says a lot when a company doesn't put the effort into various forms of testing and QA to ensure that production software does not have critical issues that warrant at 2am call. Unit, functional, integration, load, and simulation tests should be written for every single piece of critical infrastructure. You should be hammering these things in staging environments with 10-100x of your normal peak load.Use something like Gore to replay live traffic against a version in staging or QA environments. Yes, that takes work, but to me it's better upfront than to wake me up in the middle of the night or to know that when I go home I have to have my phone around me at all times. The business should care about these things too; it's their product and they should care enough about you to make sure good processes are in place to ensure quality production software.

That said, when I was at non-on-call companies there are definitely times when something does happen that warrants immediate attention. Generally someone in operations would get the first call, they check logs, diagnose the issue, and call a developer familiar with the app that's causing the issues if that's the case. I don't mind waking up because I know it has to be something serious that slipped past our processes.

biot 2 hours ago 0 replies      
For those doing on-call and required to be responsive to alerts at all times during your shift, one thing to think about is your pay for this burden. Some cardiologists get over $3K/day to just be on-call (whether or not anything comes up) which means keeping within range of the hospital, being sober, not being more than a few minutes away from their phone, and so on. While generally nobody's life is on the line should a server go down, if you're expected to go beyond "if I hear my phone alert and I'm sober and am near my laptop" level of effort, ensure you are compensated appropriately.
gnur 5 hours ago 0 replies      
Current rotation for me is: 1 out of 3 weeks from 7 am till 12 midnight as a systems administrator.Our SLA to customers is non-existent, so on-call duties are best-effort (if you are in the shower and it takes 30 minutes to respond, no real problem). Furthermore, this also means that it is up to the person on call to determine what needs to be done.

Outside of the regular work hours you are only expected to work when an alert / call comes in. If at all possible you should fix it, if it would take > 1 hour you start looking at temporary workarounds that will hold until you are back at the office.During regular work hours on-call tickets always get priority.When problems arise with external dependencies we open tickets in their support system and wait for their response.Most important in our case is to keep the support desk up to date so customers don't open too many tickets and to let people know we are working on it.

Depth of on call work depends. It usually consists of rebooting / restarting services and checking if they come up as expected and trying to find the root cause of the problems. If the root cause can be easily identified and fixed, fix it immediately. Otherwise, open a ticket to fix it asap.

rodgerd 4 hours ago 0 replies      
On-call is paid at a weekly rate for being the on-call person. There's an additional bump if you're actually called out, pro-rata on an hourly basis to your salary.

You are required to respond to calls within the SLA, and work on problems until they're fixed (definition of fixed being service restoration - root cause canalysis for complex problems and hence fixes will happen during normal hours) or until you've been working long enough you need to be spelled.

If you're on-call you're still expected to be doing your day job, but production takes priority, and projects are expected to accomodate that.

On-call rotation is generally rotated around teams, so one week in 4 - 8 depending on team size.

notmeknees 1 hour ago 2 replies      
Funny that I decided to finally create an account to answer this.

Our team is heavily silo'ed, and each developer is responsible for a specific set of code. Since we have gone through a bunch of reductions and reorganizations, this ends up meaning that often one person is responsible. Our customer is a 24/7/365 operational unit, and it is our only customer.

So, the end result is any given developer is on call all the time, with no pay compensation for that at all. Not only that, but you should expect to be called about not only a defect, but in cases where the customer is trying to use our software in a way it was never designed to be used. So, get a call at 2 AM on the weekend and design and implement a new feature, release to production to debug and test.

I really dislike the way we operate, and recently the entire QA team was let go so I have a feeling things are only going to get worse.

throwawayoncall 3 hours ago 1 reply      
Work at a well funded Series B startup

On-call is unpaid and no additional bump if called out or public holidays. No additional vacation in lieu either :(

- Expected duties are to fix the issue and bring production systems back up, all engineers have context on production systems and can escalate if any additional context is needed. We have an established workflow of steps to take to determine root cause. We can also directly ping all engineers to provide additional help should there be a critical issue with a system you are unfamiliar with.

- If you are on-call, the on-call duties come first and foremost above everything else. Expected response time is 10-15 minutes from issue raised at all times.

- Mitigating risk is via communication and getting enough context to know the bad outcomes and how to mitigate any issues.

- On-call rotation is very arbitrary and undefined (we have five engineers who can do on-call duty), we try to share the duties equally but some get assigned way more on-call than others. (I was on-call most weekends last couple of months and all throughout the Xmas period for example)

dnnrly 3 hours ago 0 replies      
I started being on-call a few months ago. For us it works like this:

- 1 week in 4 Monday 00:00 to Sunday 23:59, with a fixed pay adjustment (same fixed amount added to our salary every month, not a % increment).

- If you get a call, you're on the clock and get paid regular over-time rate. Theoretically this only applies if you get called and are doing something for more than 30 minutes though.

- I know most of the on-call managers personally so don't mind picking up the phone for a quick opinion for free, if it's at a reasonable time.

- Online within an hour once we've picked up the phone.

- Senior on-call manager gets woken up by Ops first and then will decide which parts of the system are affected. After going through known issues and work arounds will then work out which part of the system needs to be looked at and makes the call to the on-call developer that is appropriate (ie. which team).

- Duty is primarily to diagnose and provide knowledge to the on-call manager to make a decision so service can come back up again.

- Don't do code fixes (J2EE on my team, mix of Java and C++ on others) - we have far too much to go wrong for hacking around like that, but may do config changes and some scripting. The line can get a bit blurred.

- In our team we should raise a ticket/Jira for every time we get a call so that it's visible to everyone what happened and see where our pain points are.

- During office hours, Production issues are distributed in the team in the same way as bugs, according to domain knowledge and individual capacity.

- We tend not to get called out except for when we do installation in to Production. We have a fairly heavy weight process for releases - which we are working on.

- I am at least 4 levels of communication away from any customers, including 1st and 2nd line teams.

Edit: formatting

scardine 1 hour ago 0 replies      
In Brazil the labor relations are heavily regulated. Each hour you are on-call you make 1/3 of a regular hour of work, and while you answer a call and work on weekends or at night you are paid twice the regular hourly wage.

You are expected to answer the phone promptly, be sober and do anything to remedy the problem including reaching for other people that can fix it (does not have to be a permanent solution).

michaelt 3 hours ago 0 replies      
Overview: On call one week in six; pay 300/week for being available (extra for national holidays), and time-and-a-half for any time spent dealing with calls, rounded up to the next 15 minutes.

Expected duties: Respond to major problems outside of office hours, in response to a phone call. Be online fixing the problem within 15 minutes of being called. Typical workload 2 hours per week. Be somewhere with a reliable internet connection, and where you can stay even if an issue takes a few hours to resolve (no mobile internet from campsites). Be sober.

Fixes: Because of the need for code review and second testing, emergency code releases never happen out of hours. Instead, all code deployments include a backout plan, which reverts to a known-good version of the code (not a bug-free version, there's no such thing, but a version that hasn't caused major problems when run for several weeks). Data in the database may need to be manually fixed.

If you're patching an issue by deleting some bad data, and in your judgement deleting the data might delete evidence needed to identify the root cause of the problem, try to identify the root cause if time allows.

Priority: On call is only called for major problems - either their software has raised an alert saying they should be called, or there is a problem costing thousands of pounds a minute such as "website down", "customers cannot place orders" or "customers will not receive orders".

There isn't a formal SLA, but as it costs thousands of pounds a minute the expectation is to fix as fast as you safely can, without mistakes that make the problem worse.

Escalation: To their team leader, or to some other senior software engineer on their team (our team leaders have all been senior software engineers on the team they lead)

APIs down: In a rather old-fashioned design move, all critical components are maintained in house. Contact the out-of-hours on call for whatever team maintains the broken system. If it's a non-critical component.

spotman 5 hours ago 0 replies      

My company does 24/7 devops for some clientele. We are a team of 6 for reference. We have been doing this for many years since before "devops" was the term for it. Some of the platforms we have also built for these clients, and some we simply manage, or we have only built+manage the automation.

In terms of answering your question:

- expected duties. In terms of what we are selling the client there is a long specific list of what exactly we can provide the client. In practice however the list is exhausting, and intended 1/2 for CYA, and we will fix whatever issues arise. Some of that is seeing things that need work/adjustment/tuning/optimizing before problems arise, and then as you can imagine the whole being-on-call thing means that you must be an expert at resolving issues that no one saw coming. In terms of SLA stuff, we are supposed to be on-scene (digitally) in 15 minutes, but we are never that slow.

- how deep. Think of it in phases. When something needs fixing, you must quantify the urgency. If there is an urgent fix needed this is ground zero. You do whatever you can, if that involves waking people up, or checking out code bases that are new to you and patching some developers code in the middle of the night, its all on the table. In ground zero mode, you do whatever it takes. Once the bandaid/fix/solution is in place to "stop the bleeding" as I like to say, then there is follow ups, that may include working with the client to have them implement the elegant permanent fix, or if they are in over their head, sometimes that lands on us too. But it serves no-one to have a bandaid that is going to just get ripped off every night. So we see the problem from A-Z, even if our offramp is on B, or M. If it's not urgent, we will just wait for tomorrow to discuss with the client, it falls out of the scope of on-call.

- priority. Well, on-call work is billed and agreed different to ticket work since we are primarily a consulting company. So these are different buckets. But we also have our own products that we own 100%, and the priority is quite easy. If something is broken/down/about-to-break, it trumps everything else. Regular tickets are great, but they are meaningless if the platform for which your developing them against can't stay functional. On-call work rarely has a "queue" or even really a ticket system.

- there is no "complete in time" it's either done or you failed. I say this, having failed too, and it sucks, but it is what it is. If something breaks, and you can't fix it, you don't just go home. But.. sometimes you do, but you walk away from the scene with your tail in-between your legs, no one plans for that.

- managing other teams risk. Communication. Putting energy in ahead of time, and bringing things up before they break is huge. Also if you say "Hey you should turn left, there is a cliff!", and the client is insistent on turning right, this can do two things. A - they know and hopefully its recorded in an email or in a meeting that you wanted to turn left. B - if your absolutely certain they are going to run over a cliff, but your still on the line / have to support the darn thing anyway, you can quietly put a bunch of pillows at the bottom of the ravine, and prepare for the inevitable. When the car goes over the cliff, and everything almost grinds to a halt, and you manage to have been correct about it, but also managed to bail them out, you score a lot of gratitude from the client, and ongoing future relations.

This is all from the point of "consulting" mostly, but I have done this same type of work for many large companies directly on their payroll too, it all applies, and the bigger the company the more it's like consulting in some way also, because bigger companies are more compartmentalized. I have also done this in many small startups where your all just one small team.

Holidays and vacations are important, but they will never truly be the same after years of this. We are pretty good at it now, and we really do try to keep everyone up to speed with where "the bodies are buried" with all of our clients infrastructure. That is the hardest part. Everyone can look at a perfectly groomed wiki or set of 100% refined chef/puppet cookbooks/modules, but the world isn't perfect. So the hard part is learning how to take the punches with elegance, and people need a break. It really does take at least 3-4 people to have a not-insane 24/7 schedule.

We generally plan about 1-3 weeks ahead depending on the time of year and put it into our scheduling system, which is also the system that does our paging. We rotate weekends, and work it out amongst ourselves. Some people have things like date nights that we know about and try hard to not screw up.

Don't build your pager system yourself, you have enough stuff to do. I won't plug them because I don't want this to sound like an advert, but do yourself a favor and pay the money to a company that specializes in bubbling up alerts to notifications that can do phone/sms/email/ios/android/push/etc. These have really helped us manage the insanity & schedule.

If there is any advice, simply don't be frightened to say when you don't know something, even if your tasked with fixing it. There is little room for ego when your the one that ultimately has to be responsible. Being on call means you can't pass the buck, and the sooner you know what you don't know, the sooner you're able to learn it!

Edit: Typos

fractalcat 3 hours ago 0 replies      
Last time I was in a role which involved on-call rotation:

> expected duties (only answer on-call, do other work, etc)

Only answer pages. My employer did shifts a bit differently from most companies - only six hours per shift, no fixed schedule (decided a week in advance) and only outside of work hours (pages during work hours were handled by whichever sysadmins were on duty), which worked quite well to avoid burning out sysadmins. On-call shifts were paid, and shortages of volunteers were rare.

I'd expect to spend maybe fifteen minutes per shift fixing things, on average (this is in managed hosting, so a page could be any of our customers' services).

> how deep does your on-call dive into code to fix, vs triaging, patching, and creating follow up work to fix permanently?

In my case (sysadmin for a managed hosting company) the code involved was often not under our control; the standard practice was to escalate to the customer if the cause of the outage was a bug in the application. The usual process when suspecting a bug was to track it down if possible (the codebases were usually unfamiliar, so this wasn't always the case), work around it as best we could (e.g., temporarily disable a buggy search indexer which was leaking memory, et cetera), and then get in touch with the customer (by email if the workaround was expected to last until work hours, by phone if not). Occasionally I'd fix the bug in-place and send the customer the patch, but this was technically outside scope.

> priority order of work (on-call tickts vs regular work vs existing on-call tickets vs special queue of simple tasks)

The only priorities were resolving the pages at hand and arranging followup where needed (usually raising a ticket to be followed up during work hours).

> what happens when the current on-call can't complete in time?

Generally the on-call sysadmin would resolve whichever pages they had acknowledged; in the event of an extended outage the acking sysadmin was expected to brief and hand over to the person on the next shift.

> how do you manage for other teams' risk? (ie their api goes down, you can't satisfy your customers)

In practice, we could escalate to anyone in the company for a serious outage we were unable to handle ourselves. This was pretty rare, as a small ops-heavy company, but everyone had access to everyone else's cell phone number and an outage-inducing bug was usually sufficient cause to wake someone up if it couldn't be worked around.

jjp 1 hour ago 0 replies      
In a past life covering out of hours (typically 9pm through 6am) for a core application for an insurance company the set-up we had was that we had a ladder of 4-6 staff providing on-call support. Whom ever was top of the list was first paged and if they didn't acknowledge within x minutes we kept going down the list until somebody responded. Once you got called you owned all incidents for that night and the next morning you would be moved to the bottom of the list.

When we got called out we were well recompensed at minimum of two hours of 3x hourly rate. If you resolved incident in 10 minutes you still got 6 hours of pay. If you got another call within those first two hours then you didn't get anything extra until you were working for 2 hours and 1 minute , but if the 2nd call came in after 3 hours you started the clock again. During times of instability (new code release) we often had management agree to you working from first call-out until the day shift came in to order to minimise downtime. When we were working during the night the on-call always had priority, but if you were sat around waiting for the system to do something then we all did something else to keep us awake. But there was no expectation that it was other tickets or project work. We made personal choices of doing day work or it could be crossword puzzle etc.

We all had areas of expertise and if you caught something you didn't know how to resolve then we had the authority to ring anybody. And that person would also receive the same compensation. In 5 years doing this I never had a complaint from calling somebody else out. Did we get tired yes? Most of us had project roles or team lead roles during the day but we all knew that the production system had priority and we and our own line management would deal with the project work accordingly. Did we get burned out on this? No because the rota meant that you still had a life. If you were top of the list and had other commitments that night you'd negotiate coverage with somebody else further down the list to see who could go top for the night.

My employer did this because the cost of not doing and having downtime during the day was a lot higher. If the system failed out of hours then it could impact our business and we could lose c.8,000 hours of day shift working time that would still require salary payment. Plus reputation damage etc. Most I ever accumulated over a weekend was 32 hours at 3x (situation so bad required to restore database to last known good and then catch-up log files).

One night I also got it wrong and in trying to correct the incident forced us into a situation when we had to do a database restore. That caused about 4,000 man/hours of downtime. When my bosses boss came in at 6:30am (he got called out by my boss) I got sent home being told I was too tired to continue support, day shift staff would take over and the missive to ring him when I had slept. I made the phone call expecting a significant dressing down only to be told, everybody else who looked at the diagnostics said they would have done exactly the same, we've all learned, and you stay top of the list tonight so that we know you're not scared to get back on the horse. Truth be told it did knock my confidence and anything that was a little out of the ordinary after that I always ended up calling somebody else for a consult. After a while I engineered my self off the on-call list.

romanhn 2 hours ago 0 replies      
- Every team is free to choose the on-call practices (escalations, ramp-up for new members, etc) that work for them, although many practices are shared. Tooling is the same across the board. I'll speak for my team.

- Rotations are mixed, consisting of weekdays and weekends. In other words, if you're on-call M-F this week, in a few weeks you'll go on-call over the weekend.

- If the on-call engineer does not pick up, the incident is escalated to the manager, then their manager, all the way up to the CTO. Some teams have secondaries before managers are involved.

- The on-call engineer would normally work off the regular backlog. We have talked about pulling them out to work on on-call + tech debt exclusively, but there hasn't been enough on-call churn to justify this.

- The on-call is on the hook for resolving the immediate issue. In many cases this does not mean actually fixing the underlying problem. Those get written up as tickets to be prioritized as part of the backlog.

- The priority is determined as a team. As a manager, I encourage the team to aggressively tackle on-call issues, don't want to be a blocker for that. If something consistently pages us, it is guaranteed to make it to the top of the backlog fast. We have also chosen to prioritize product work over on-call tickets when we felt our pace was good and the on-call churn not too terrible. Kanban makes priority changes pretty easy.

- Not sure what you mean by "on-call can't complete in time". On-call-related tickets end up on the backlog so anyone can tackle them, not just the person that filed it.

- We have a pretty good on-call culture and the teams are very sensitive to other teams' pain. If we're being paged about an issue with another team's code (shouldn't happen too often), there's always the option to page their on-call and triage together.

- We track operational churn, send a weekly on-call hand-off email to the team with notes about the pages and steps taken, and have operational review meetings where these emails are reviewed (+ any other operational matters) and next steps are determined. Maintaining transparency around operational pain and building structure around the follow-up process has been really helpful in reducing our weekly churn.

- I think the ideal number of team members that should be on-call is around 5 to 8. Anything less than that and rotations become very frequent and a burden on the individuals. Anything more and the rotations are so rare that every on-call feels like the first time.

- Last piece of advice is to FIX THE PROBLEMS (or change your alerts). Build whatever process you need to make sure that you have plenty of leeway to address anything that pages you constantly. Don't get overly attached to the alerts - you might find that changing sensitivity thresholds or deleting the alert altogether might actually be the right answer (please don't do that for the wrong reasons though :)). If you're paged for a bunch of things that you can't fix, you're probably doing it wrong. Just like technical debt, if you don't tend to on-call issues they WILL get out of hand. Picking away at it slow and steady will almost certainly help reduce it from a torrent to a trickle.

N.B. I work at PagerDuty. A bunch more suggestions here: https://www.pagerduty.com/blog/tag/best-practices/.

gambiting 1 hour ago 0 replies      
I work for a major games developer/publisher.Our submission packages are being built this week and will be submitted next Monday. We are supposed to be on-call this weekend just in case any problems in any of the systems we were responsible arise. No, I am not paid for being on-call, just like I am not being paid overtime. From what I can tell people are going to come in this weekend just to play the game and make sure everything works even though they are not getting paid for it.
cookiecaper 2 hours ago 0 replies      
Everyone takes a turn being on-call in one week cycles. We have an on-call day and an on-call night. Any infrastructure alarms go to the on-call person and he/she is expected to address the issue, which can include escalating it to the person who knows the most about it if the severity warrants that, or deciding it's not important and silencing for some time period.

On-call fixes until the crisis is mitigated. If something can be addressed the next day during normal hours, it is.

On-call tickets are the most important. In our company, "on-call" just means you get the infrastructure alarms for that week and time period, and gotta deal with them when you get them. There is no alteration in pay for on-call weeks.

If the current on-call can't respond within 10 minutes (or forgets to ack in PagerDuty), the next person on the escalation schedule will be notified and expected to deal with the issue.

Other teams' risk is mitigated because if it's breaking production, we just call them and make them fix it. The whole company is "always on-call" in some sense, because if your thing is breaking production, you're going to get a call and get asked to fix the problem.

We feel like the tooling on this, even with PagerDuty whose whole job is managing on-calls, is subpar and are constantly talking about creating an in-house replacement.

Ffmpeg vulnerability allows the attacker to get files from your server or PC
6 points by ChALkeR   ago   3 comments top 2
tsukikage 17 minutes ago 0 replies      
The key insight is that you can construct an HTTP live streaming playlist that causes the player to pull lines from a series of files, concatenate them together to form a URL then visit that URL, making it possible to exfiltrate data.

It is unclear whether this is ffmpeg-specific, or something the HTTP live streaming protocol actually requires and therefore potentially of wider impact; I can't find any obvious reference to this feature with either a quick Google or a skim of the Apple RFC. Does anyone know?

joeyspn 2 hours ago 1 reply      
PC... and also mac? I have ffmpeg installed via homebrew...
Ask HN: How long did it take for you to get jaded in this industry?
11 points by askafriend   ago   6 comments top 5
tmaly 7 minutes ago 0 replies      
I never really reached that point. Sometimes I think what is the point of counting beans, but then I switch from that view and try to find a better way to count the beans. Reading a little bit of economic theory helps to understand the concept of value.
richliss 3 hours ago 0 replies      
It can be cyclical (recession hits, cut staff, longer hours), and it can be job specific (idiot colleagues, failing company).

I've had periods where the idea of working another day with arrogant dickhead 'know it all' ex-Physics students turned developers who can solve tough problems with terrible to maintain code thus making themselves unsackable made me think of jacking it all in and moving to a third world country and living in a hut - even to the point of visiting the Vietnamese consulate for information.

Likewise I've had times where a young CS background developer who is eager to learn, very gracious, fun to be around and delivers makes me remember that it can be a great industry.

I'd recommend getting out of your current job if you can if its making you feel this way.

A few years ago I was working in finance, had experienced some workplace bullying so I overworked to prove myself to stop it despite it being about an Alpha boss picking a scapegoat, and I suffered from some mid strength burnout and in the end I wasn't fit to work for probably 5 months afterwards. I ended up going into a completely different industry (but still software) and managed to reboot myself over about 3 months and started to enjoy work again.

Earlier in my career I met someone who had completely burned out. He'd not worked in 18 months despite having lots of offers, had moved to the coast and was just doing spiritual stuff all the time and was burning through his savings. We asked him to come in for 1 day to interview others and after 2 hours he said he couldn't take it anymore and left, and that was it. It was quite shocking to see someone who was that way and quite scary when I felt it happening to me.

Don't wait until you completely burnout because it will damage more than just your career - your health, waistline, relationships, friendships, bank account, future employability etc.

brent_noorda 6 hours ago 1 reply      
30 Years. Too many cycles of one popular language/design/data-model/patterns replacing another. Too many bubbles. Too many me-too products. Too many bugs produced faster than they're squelched. Too many simple paradigms made too complex, requiring creation of new simplicities that will only be overly complexified again. Too many people making too much money with too high opinions of their own genius accomplishing too little.

A year and a half ago I saw my wife studying a textbook on Anatomy & Physiology. I started reading it. I thought "OMFG this stuff is amazing! And it can't be learned in 3 days (unlike all these 'hard' problems we hackers like to discuss)."

Now I'm going to school for a career in nursing.

chrisbennet 10 minutes ago 0 replies      
Still waiting to reach that point. :-)(31 years so far.)
tomcam 2 hours ago 0 replies      
32 years so far, and I'm just as excited using web2py and Python as I was writing 6502 assembly in the 80s and writing compilers in the 90s. Been in jail, beaten up, fired from dream jobs, seen plenty of friends die. Get jaded? I'm totally stoked to be above ground.
Ask HN: Why don't startups try to disrupt the poor state of mental health?
6 points by toroidfail   ago   5 comments top 5
petra 6 hours ago 0 replies      
There's 7cups.com , there are some doing remote mental health consultations, and there are some apps/games for cognitive behavioral therapy.

There are also some doing more hardcore scientific stuff , like better diagnoses using eeg analysis, but those requires fda involvement , deep pockets , patience , deep knowledge , etc - so those innovations come from universities, when/if they come.

Also Alphabet is going to that field, it recruited a high official from the NIH in mental health. This again shows you how hard is to start such projects.

tcj_phx 6 hours ago 0 replies      
One of the drug companies recently paid a massive fine for falsifying research to justify selling their antidepressant to children:


The big players have a lot of money invested in exactly-wrong theories and approaches to mental health.

carlos_argueta 5 hours ago 0 replies      
Many researches do, some companies do, I also do https://medium.com/@kidargueta/building-an-emotional-artific... But the problem is that if you fix depression and anxiety then you also fix compulsive spending, need for drugs, etc, and then you will piss many VCs off.
askafriend 6 hours ago 0 replies      
Do you genuinely believe that VCs, a group of glorified financial services professionals, have anything but a cursory interest in "fixing America"?
gregjor 6 hours ago 0 replies      
Either no one has figured out how to monetize mental illness with an app yet, or no one feels confident challenging the regulatory and legal prohibitions already in place. The pharmaceutical companies seem to be winning in this space.
Ever been lonely working on a distributed startup team?
5 points by msbowersox   ago   1 comment top
soneca 1 hour ago 0 replies      
:) I wouldn't say 'hilarious' but it is funny, more so because it is kind of sincere. It makes you want to help.

here is the clickable link: http://bit.ly/22W9Of1

How would you improve the company you work for?
10 points by eecks   ago   22 comments top 9
squiguy7 12 hours ago 2 replies      
I would automate our deployments as they take up a lot of my time ensuring things went smoothly. Also, our git workflow leaves something to be desired. We have way too many "revert revert revert" commits.
alexandrerond 13 hours ago 0 replies      
If you wanna really help, write documentation and remove legacy. At the same time push for processes and ways of working which ensure this happens timely.
BooneJS 12 hours ago 1 reply      
Hrm, tough question. I heard this advice many years ago, though:

What would I do? I'd shut it down and give the money back to the shareholders.

muzani 13 hours ago 1 reply      
Unemployed now.

But normally I just tell the senior guys what's wrong. As a month-old employee, I once emailed the COO at 2 AM telling them we could use the technology to rate sites and make millions.

COO was not impressed but he liked employees speaking up and encouraged me to email him more.

mbfg 9 hours ago 1 reply      
remove 80% of management
diezge 12 hours ago 1 reply      
Flexible working hours, less rebasing, try to get others to adhere to coding standards, clearer/more detailed project specs/designs etc
taprun 12 hours ago 1 reply      
I'd have them focus on achieving strategic goals.
tmaly 12 hours ago 1 reply      
better training systems. it takes a long time to get new hires up to speed. anything that can improve this is worth it
arnold_palmur 10 hours ago 1 reply      
Fewer meetings.
Ask HN: Getting back to the tech industry after a three-year break
43 points by spiked55   ago   27 comments top 13
patio11 1 day ago 1 reply      
All in all, shes probably applied to 100+ companies over the last 6 months, but she hasnt received a single call back.

Your wife should consider sending in an unsolicited resume to be a no-op and, instead, start meeting people who either a) are hiring managers or b) can refer her to hiring managers.

Her goal in achieving connection with the hiring manager is to secure a coffee date or other informal conversation. Her goal for this conversation is qualifying the company, impressing the hiring manager, and convincing the hiring manager to either invite her formal application or respond positively when she suggests moving to a formal application.

This is one of the huge knowledge gaps in the engineering community regarding getting jobs. Unsolicited applications are not how most people get hired. This is particularly true of smaller employers.

muzani 21 hours ago 1 reply      
Just my statistics:

I don't have a valid working visa in the US and have been applying almost exclusively to American companies.

My "interview" rate is 10%. 100% if it's with people I know, even if I'm completely unqualified.

My "rejection" rate is around 50%, within 2 weeks. I assume the rest won't say anything if they reject.

General job sites (the ones where you can also apply to be a carpenter, etc) are a waste of time. They probably get so many resumes they end up tossing half of them.

Stack Overflow Careers gave me an awesome ~30% of interviews. As in I applied 6 jobs and 2 interviewed. Both of them were jobs I didn't fully qualify for.

Generally, direct emails gave me a 100% (5/5) response rate. An email, like careers@company.com, not a form. Email lets me mention in subject line that I used to have a startup, so I stood out. Most of them rejected on lack of visa though.

I do spend ~10 minutes per cover letter. I really dig deep, like an investor would. I convince myself that I'm doing the company a favor by joining before writing the letter.

In the end, you just have to convince one company. If you have a lead, immediately latch to it... do research on the company, the interviewer, and write questions.

There's a certain bar you have to cross to convince people to hire. It's better to optimize for a few companies than to try to reach out to as many as possible. If you feel unworthy, then optimize for the lower tier companies who have lower standards.

nimah 1 day ago 0 replies      
Here are my strategy that I use for applying and getting hired:

1. Do not apply 100+ companies. Select max 3-5 of them. And research them. Get to know people working there. What are their problems? What tools are they using? What meetups can I meet them? Are they active on some online community? Get in touch with people there. Just talk and show interest in them. It always good to know the company before applying and dropping it, if it's not a great match you can drop it. (Just like dating, get to know them before you marry them.)

2. Fine-tune that resume. I didn't see your wife resume but I am sure it could be improved. Here are some very fine tips : http://www.slideshare.net/perlcareers/how-to-write-a-develop...

3. Build some portfolio. Anything is fine. Really. Just showcase that she understands/can write code. She can join on some open source community or just build something on her own. Better the first one, because she can be mentored and demonstrate teamwork.

4. Blog about it, the learning experience. This about as much about showcasing work as communication. If she can communicate effectively that counts as much as programming. (Actually more if she really great communicator.) Don't be shy on this.

5. Repeat from step one.

And one last thing. It is not just about what your wife wants, please be considerate about the company needs too. I know a lot of company that would be good for me, but for the company I would be just a drag. That's how it is.

spiked55 19 hours ago 2 replies      
Folks, thanks a lot for all your comments. Let me try to respond to some questions that were raised:

She has a LinkedIn profile, with relevant skills highlighted.

She is not active on Github yet - that will be her focus now. She was focusing on sites like HackerRank and CodeEval so far.

If she finishes any projects, we will definitely post it to HN for feedback.

We are trying to find more back to work sort of programs - a lot of banks seem to have them, but the cutoff date for applications seemed to be the end of last year.

We do have friends working in the industry, but most are at large companies where its hard to bypass HR and go to the team required, or companies where hiring is currently frozen, and so on..

We are going to try to find Hiring Managers to talk to or have a coffee with - if any of you guys are looking to hire an highly competent Python/Java programmer down on her luck, or would just like to talk, shed love to talk to you over coffee anywhere in the Bay Area. Please send me an email at (username) at gmail if you'd like to talk.

Its great to see the support and advice from everyone here. Really, thank you.

jzwinck 23 hours ago 0 replies      
It seems like her H-4 EAD status might give some employers pause. First it is tied to your H-1B if I understand correctly, so if your status changes she could become unable to work. Not to mention if you decide to move to another country. Consider that her explicit status is that of a dependent, which gives a potential employer the signal that she is a "trailing spouse" meaning for her to stay with the company she not only needs to like her job and be good at it, but you need to do the same. Yet they can't interview you.

H-1B is known to be a sort of lever that employers can use to keep you at a job. She seems to present just the opposite, yet with qualifications which are a dollar a dozen.

I apologize for being blunt, but it appears to be an atypical, disadvantageous situation. You might do well to embrace it and aim for some contract work in the near term--none of the above will be a negative then.

curun1r 1 day ago 1 reply      
If you're in the Bay Area, you might try meet-ups. There's an quite a few of them in SF [1] and most of them are hosted by companies trying to hire or are explicitly hiring events [2]. Even if the host isn't hiring, you'll find companies that are hiring by talking to people. Most will either be hiring managers or people willing to receive a referral bonus. Worst case scenario, it's free food and some interesting talks about technical subjects.

Also, make sure your online reputation looks good. LinkedIn (make sure to enumerate skills) and Github are probably the two that get me the most recruiter touches.

Best of luck!

[1] http://www.meetup.com/find/events/?allMeetups=false&keywords...[2] http://www.meetup.com/software/events/224734607/

RikNieu 1 day ago 0 replies      
Does she have a github account with some examples of personal projects she works on? Does she go to networking events or meetups to expand her professional network, or could she maybe contact previous colleagues to ask for tips on upcoming openings?

I'm not in the states, so I don't know what the employment environment is like on the ground, but from what I know in general getting a job depends on who you know and what others know about you. In other words; getting employed via the traditional vanilla job application route is going to be tough. Especially for immigrants.

She needs to go out and meet people, work her personal network, and have some cool and interesting projects to hook people's attention with.

AlexMuir 1 day ago 2 replies      
My first filter on recruiting now is: "Has this person built anything I can see?"

A website, an app, a repo on Github. If the answer to that question is 'No' then my assumption is either a) this person isn't interested in the work, or b) they don't know how to code in the real world and I'll be paying them to learn.

I'm constantly amazed at the number of people applying for dev positions who claim years of experience and have absolutely nothing tangible to point out.

I run a small operation so I can't comment on big firms.

TLDR: Build something recruiters can see, and preferably use. It'll put you instantly in the top 10% of applicants.

CyberFonic 1 day ago 0 replies      
Job hunting can be very difficult. A lot depends on the types of companies and positions she is applying for.

It is easier to get a job with the skills and experience you already have and then try to migrate to newer skills. So maybe going for Java & Python jobs without relevant experience is an issue.

Whilst education is important experience is far more pertinent in hiring. As is the personality factors revealed during interviews or even in the covering letters. 100+ applications suggests that there are issues. The trick is to find out where they might be. Getting some professional advice might be necessary.

a-saleh 1 day ago 0 replies      
Do you have friends that work for companies she would like to work at? I.e. at place where I work we have incentives for seeking out new coleagues. The best thing about this, that when your friend tells his manager something like "You know how we have rack open for 4 months? I think I know a person." you usually bypass the HR guy skimming through 100 aplications and maybe thinking "C++ & Matlab? Who needs that?" or something like that.

If you have no friends that would help you with this, I would suggest going to local conferences and talking to speakers. On local linux group meeting, I had a conversation that literary went

me: "Hey, awesome presentation, do you think I could get your slides?"

speaker: "I don't think I want to hang them over, I might have divulged too much about our company internals so I don't really want to have it on the internet."

me: "That is a pity, good I was taking notes :-)"

speaker: "Well, if you liked it, you might want to work for us, we have a junior position open."

(Disclaimer, I was 22, still doing my masters at the time, your conversation might be different)

klunger 21 hours ago 0 replies      
Create a LinkedIn profile, with links to any projects she may have done. Use the right keywords. Recruiters use this to find and contact people with specific skills.

Maybe also take a 2-3 sentences to explain the gap, with a positive spin. "For a brief period, I was unable to work, due to visa issues. I therefore spent my time on the following independent projects: ... The visa issues have resolved and I am now actively looking for work in ... ." Or something.

nicholas73 20 hours ago 0 replies      
Does she have any projects to post here?

I also have an MSEE and looked for coding jobs. I only had one finished website* but it was good enough to get some responses and a few interviews.

* http://sudokuisland.com

mhsenkow 21 hours ago 0 replies      
I can't find the specific posting, but IBM has some jobs that are being labeled "back to workforce" in the data scientist/analytics area. May be worth looking into?
Ask HN: Swift or Objective-C?
10 points by thecoffeebean   ago   17 comments top 8
sparky_ 11 hours ago 0 replies      
I'll take the counter-point here and vote for Objective-C. Swift has not reached a level of maturity that we're comfortable with it for mission-critical code. Each Xcode revision brings breaking changes which require you to address manually, as the migrator is lacking. Interop with Obj-C works OK - not great - but with pure C, it's a hassle. And the libraries and tools around Swift are just nowhere near as mature as they are for Obj-C... even first party; case in point, Xcode cannot even rename methods or extract constants from Swift code. No refactoring capability at all.

Having built several large apps which are live in the Store in both languages, I'm sticking with Obj-C for 2016. Give Swift another year before going all in.

jefflinwood 8 hours ago 0 replies      
Learn Swift now, and then Objective-C later.

I think one of the biggest misconceptions with the migration to Swift is that it will be a lot easier to be an iOS developer with no experience. After teaching new to programming students iOS development with both Objective-C and Swift, the actual syntax mattered very little - the underlying iOS APIs were difficult to understand.

You'll still find that many API tutorials are written with Objective-C, so even if you don't code in that language, you'll need to translate in your head as you read how to hook up X or Y to Z. In addition, a lot of stack overflow questions for common iOS programming questions are in Objective-C, so you'll at least need to know how to read it.

adomanico 7 hours ago 0 replies      
The majority of companies still have code bases with a ton of Objective-c code. The company I am currently working at has an approximately 30% Swift code and we have been writing Swift since 2.0 went live.

The reality is if you can't be proficient with Objective-c no one will hire you at this point. The more time passes, the more Objective-c code will become legacy, and the less important this will be.

That being said definitely start with Swift. It is an excellent language and is the future of the iOS platform.

npalli 8 hours ago 0 replies      
Your choice is quite clear as of Jan 2016. Almost all of the latest tutorials/books/online courses and other learning material have moved to Swift. So, if you are looking to develop for iOS 9 and Xcode 7 and above it is Swift.

Even if you wanted to learn Objective-C all the good versions of learning materials are at iOS 7 and below. Not a good choice since it is very likely none of that stuff works cleanly anymore. So, go with Swift. Yes, you will need to be familiar with Objective-C on an as needed basis, but if you learn Swift and iOS programming it will be a translation and not that bad.

hackerboos 11 hours ago 2 replies      
I think when Big Nerd Ranch decide it's time to move to Swift, then it's time to move to Swift.


autoreleasepool 11 hours ago 1 reply      
Both. You have to know both languages to develop iOS apps in 2016.
andymoe 11 hours ago 1 reply      
Swift for new stuff.
bribri 11 hours ago 1 reply      
Swift is a better language in almost every way but you should still know Objective-C if you want to work professionally.
Ask HN: Online learning
6 points by tmaly   ago   4 comments top 4
rgovind 15 hours ago 0 replies      
30-40 years. Have money and motivation. Most tutorials are targeted at beginners, not intermediate skill people.
autotune 16 hours ago 0 replies      
I'd focus on high school age range from 14 - 18. The specific topic I'd choose would be study skills. The ability to study on your own is absolutely vital no matter where you go in life, and I hadn't seen it as an actual class until community college after high school.
elimisteve 16 hours ago 0 replies      
FreeCodeCamp.com is showing that there's a hunger for learning JavaScript for people in their 20s and older, but what about teaching people (in the same age range?) other skills?

I also mention FCC because they've made it so you can add your content instead of their JS content, and poof, you have a learning platform!

codegeek 16 hours ago 0 replies      
I would focus on kids aged 2-10. Plenty to learn and we can use technology to create better experiences for them.
Ask HN: What is the best way for a software engineer to switch to research?
25 points by lasryaric   ago   11 comments top 6
sebg 21 hours ago 2 replies      
Most of the advice you receive will be to do a PhD as that's what most researches have and what they do.

That may be hard without a bachelors degree, prior research knowledge, and potential academic recommendations.

One way to short-circuit this is to take your software engineering skills to a research lab and work as a research assistant.

This allows you:a) contact with academics who are doing researchb) the visibility of what research actually isc) to add value from day one

Most labs are in heavy need of software engineers to help with software related tasks.

So first focus on what type of research you are interested in (look at as many research labs in as many different disciplines as possible) and then contact them to see how you can help.

lambdafunc 5 hours ago 0 replies      
You can try working as a software engineer in some research project for a while, say at an industry research lab, then slowly make a transition to a research position (which may require a PhD degree).
ccarter84 18 hours ago 1 reply      
Why are you leaning towards research, what part of energy sector interests you, and can you afford to take the time off from career for a little bit while you change tracks?
jcmack 17 hours ago 0 replies      
Try working at a research-based agency or research branch of an university. I've worked at NASA and Georgia Tech Research Institute as a Research Scientist when I only had my bachelors. Bonus is both place will pay for you to get a graduate degree if you want one.
33a 20 hours ago 0 replies      
Graduate school.
wcummings 21 hours ago 1 reply      
Go to a university, it's what they're for.
Ask HN: Do you ever use an online whiteboard?
2 points by teda   ago   3 comments top
nickelite 10 hours ago 2 replies      
I dont. I love whiteboards if i have a stylus. But I seldom do
Ask HN: What's my profitable startup worth? (detailed stats provided)
23 points by throwawayValue   ago   36 comments top 10
dsacco 21 hours ago 2 replies      
Congratulations on your success thus far.

There are several pricing models one can use for small business valuation. In this case, your company earns revenue using advertising (AdSense and affiliate). Companies like this are priced differently from e.g. SaaS startups which are in turn priced differently from companies selling enterprise desktop software.

The industry standard for ad revenue companies is a 20-24x multiplier on the most recent (sustained, not outlying) monthly profits. Specifically, it would be the following:

(20..24(135/12)) = 225 - 275

There is your answer. Your company would likely fetch between 225k (cheap) to 275k (expensive). Most folks on marketplaces like Flippa (which is where predominantly ad-revenue companies like yours are brokered) would value it as such.

There are other factors which can inflate the price of your company to maybe a 30x monthly profit valuation, but in general that will be the range. It's good that most of your traffic comes from organic searches, advertising arbitrage is risky and often results in a downgrade.

nicholas73 20 hours ago 1 reply      
Your startup is worth whatever it is worth to the buyer. This is a serious statement.

Unlike S&P stocks, a small startup does not have many buyers looking into your valuation. What one buyer is willing to pay will vary widely from another.

A prospective buyer will consider things besides your revenue history. Such as operation risk, potential synergy, possible changes for growth, if you are a competitor, etc. Then there is their own financial situation, and the form you are willing to take payment (like stock vs. cash).

As a poor example, if I were to buy your site, I'd take your profit and discount taxes I would owe plus some salary for my time to upkeep it (another buyer could be more or less depending on their resources). So the profit would be down to say 80k.

From there, I note that there virtually is no growth in revenue despite the growth in pageviews. Assuming no way to fix the CPM, my worry would be whether I could get my money back, especially if there could be a real estate peak.

So average Joe like me might be willing to pay a paltry 1-3x multiple of profit* (and mostly because I don't have much money to risk). A collector of web businesses might go up to 5x, as a guess, more if there is growth.

The best companies in the world (like S&P companies) fetch anywhere between 10x to 20x+ so it's highly unlikely you get that without exploding growth.

* By profit I mean after taxes and the acquirer's expenses.

davismwfl 13 hours ago 1 reply      
First, congrats, you did something that many of us fail at more than once. But in the end, you have a hobby business that is not really growing but only teetering so far, likely because as you said you aren't putting in a lot of time and using it only as a side thing.

I really am not trying to be an ass, but I am trying to be honest based on my own experiences. Your business isn't worth as much as you would like, although it is quite valuable in many ways. Simply put, you don't have a $135k profit on revenue of $140k because you are discounting the real cost to run and grow the business which someone else will have to hire out at least a portion of, pay taxes on, pay state fees etc. So in reality, assuming the person is willing to assume at least 2-3 of the hats (business, finance and customer service) and hire out the technical then they may net $10-80k depending on if they hire contractors or a full time person.

At the same time like others already pointed out, it will boil down to how much is someone willing to pay. But outside of a corporation that finds your project attractive because of market fit, or leads or something along those lines, sophisticated individuals with cash will not pay major multiples for a business that is essentially only mildly profitable after they factor in costs to maintain and grow it. So your best bet is to sell to a corporation that has sunk costs already that is happy to take the extra revenue and leads and run.

Not saying you couldn't get $150k to even at the high end $300k, but it will take a special set of circumstances. Otherwise, I'd say you are looking at more like a $60k-150k type of sale being far more likely.

No matter what, good luck and I hope you can maximize your benefit.

santa_boy 19 hours ago 1 reply      
Just trying to understand the context better. What does your startup do in real estate? What is the revenue model? What is the affiliate revenue that you are able to generate?
someotheridiot 13 hours ago 2 replies      
I had 16M pageviews in 2015 and a hell of a lot less adsense earnings than you :( What's your CPM?
soneca 20 hours ago 1 reply      
patio11 sold his business through this site and said only positive things about it: http://feinternational.com/

Considering that it is worth how much someone is willing to pay, might be a great place to some benchmarking.

hatred 16 hours ago 1 reply      
Wondering how you go about achieving dramatic bounce rate reductions?
kohanz 20 hours ago 1 reply      
Did you include any hours you spent working on the business in the expenses?
kilroy123 20 hours ago 1 reply      
I'm just curious, how long did it take you to get up to 5M page views?
tmaly 20 hours ago 1 reply      
you might need a few more years of data to get a decent discounted free cash flow valuation.
Ask HN: No one really wants to talk to the CEO. How to fix this?
7 points by astartupemp   ago   8 comments top 4
nautical 18 hours ago 1 reply      
Been in a similar situation .. The best way is getting 2-3 employees who are in office right from starting and talking directly to him , explaining exactly the problem .But being a CEO he is supposed to be good at talking to people . He is hard to be approached ? or he really is not good at talking ?
krmmalik 17 hours ago 0 replies      
You have to get someone whose opinion he would respect to speak to him and highlight matters. That's most often -- in my experience, having worked with many CEO's -- a top-down process. Which means usually someone from the outside. Employees don't have much of a chance due to dynamic of the relationship.
gus_massa 18 hours ago 1 reply      
Are they paying you? Have you considered the possibility of getting another job?

(Sorry, I have only more questions, no solutions.)

muzani 13 hours ago 0 replies      
Can you drop him an anonymous email? Or just pass a note to HR?
Ask HN: If you develop a codec in a cleanroom is it still encumbered by patents?
6 points by slimsag   ago   4 comments top 4
danielvf 15 hours ago 0 replies      
Independent invention at a later date is no defense against a patent. So, you are still in trouble.

Independent invention is a defense against a copyright though.

detaro 16 hours ago 0 replies      
Yes. Patents don't care if you knew about them or not.
bwoj 15 hours ago 0 replies      
Nope you're still liable for infringement. It does help you avoid the treble damages for "willful infringement."
AnimalMuppet 16 hours ago 0 replies      
Copyrights no (that's what cleanroom gets you), patents yes.
Ask HN: What software would you pay for right now?
14 points by tixocloud   ago   38 comments top 12
thiht 57 minutes ago 0 replies      
A Linux desktop environment that:

* works as well as Windows or OSX _out of the box_

* is beautiful and usable

It just doesn't exist at the moment unfortunately, but I'm confident PapyrOS, Pantheon or Cinnamon will come to solve this soon.

krmmalik 17 hours ago 2 replies      
1.Better automated webinar software. The existing solutions are good feature wise but the UX's are awful. This space needs some serious innovation.

2. Customer journey automation tools. Autopilot is really good but its good to see competition in this area

3. Something that makes the burden of making data more accurate at the logging end better to report to business intelligence tools

4. Something that allows me to leverage my knowledge expertise as a consultant and better helps me deploy group coaching and accountability. Again there's some software out there for this already but nothing I like

6. Most important. A really good CRM. I've tried soooooooo many. Not a single silver bullet solution. Can't believe it given its 2016.

alok-g 4 hours ago 0 replies      
I am always struggling to find good educational games for kids. Something like http://betterexplained.com/, but for younger kids (mine is currently ~8 years), would be great.
rgovind 17 hours ago 1 reply      
I would pay for a way to manage my google search results. I sometimes go to 10th page on google, I make extra effort to avoid some websites and I keep expanding my search words. If I search for Donald trump now and two minutes later I search for "Donal Trump, Hillary comment", I don't want to see the results I got from my first search query. Either google should have a way of not showing these results or some 'note taking chrome addon' can remove those results for me.

For what it is worth, sometimes my search string is as follows (India related). As you can see, I am searching for narendra modi minus major news sites. narendra modi -timesofindia -ndtv -ibnlive -thehindu -Firstpost -facebook -indianexpress -hindustantimes -news -indiatimes

miguelrochefort 13 hours ago 2 replies      
I would pay for one app/service that does 80% of what all other apps/services do.

One app which I can use to sell things, buy things, send messages, review things, control things, get notifications, track my health, learn things, etc.

This doesn't seem like something that would be too hard to do, considering that all apps pretty much do the same things. But that would make people's life so much better.

muzani 19 hours ago 1 reply      
A portal where small companies could apply for bespoke enterprise technical projects, without the hassle of bribing officials or writing long tenders.
sharemywin 19 hours ago 1 reply      
I had a pretty good idea that I thought would be good to sell to small-medium businesses but I realized I'm not a sales person and so I "pivoted" to a business that only required the skills I had. Just don't want you to fall into the trap I was in. If you or a partner don't want to spend all the time calling on businesses I would find something else to go after. my 2 cents.
humbleMouse 19 hours ago 2 replies      
I would pay for a stripped down better designed version of soundcloud that was targeted for music producers and djs to share samples.
OhSoHumble 13 hours ago 1 reply      
I would pay for a service that allows me to view an aggregate of all the board game meetups in my area.

In fact, I've started a project to make that a reality.

kliao 17 hours ago 2 replies      
YouTube offline mode
eecks 12 hours ago 3 replies      
A cheaper but as useful dropbox
tmaly 16 hours ago 0 replies      
google analytics with automated filtering of referral spam
What was your best passive income in 2015?
85 points by joebaf   ago   39 comments top 12
dangrossman 1 day ago 2 replies      
Improvely (https://www.improvely.com) and W3Counter (https://www.w3counter.com) have grown to $45,000 MRR.

W3Counter is completely passive -- no new code or features in over a year, no customer support load, autoscaling frontend (EC2) and backend (Aurora). Improvely gets feature updates a few times a year and has some light e-mail support load. I continue to have no employees or contractors.

Trying to diversify more in 2016.

andersthue 1 day ago 2 replies      
My total from http://www.watermark-image.com last year has been around 35.000 and it takes 5-10 minutes of support a day and 30-60 minutes once or twice a month doing bug features or new features.

My new project http://timeblock.com that are funded by that income and that I do not write any code for has generated app. 2000 in recurring revenue last year although it is not passive yet it is MRR :)

baccredited 1 day ago 1 reply      
$93,917 for 2015. I was lucky enough to be born with gifts that make me good at writing code. I trade that coding ability for money. I invest that money in the S&P 500 (ticker VOO). I've been doing this for decades and have invested about $1,173,971 to date. The trailing 10 year return is about 8% per year. So let's call it $93,917. $93,917 of passive income.
stevekemp 2 hours ago 0 replies      
https://dns-api.com - A system which wraps Amazon's route53 with git, allowing simple updates to DNS with complete revision history.
ddgflorida 20 hours ago 2 replies      
http://convertcsv.com - In 2015, I averaged $650/month by using google ads.The site converts delimited (CSV,TSV,...) data to and from different formats (JSON,SQL,HTML,..). It was written in HTML/Javascript and I average about 4 hours a month supporting it.
someotheridiot 1 day ago 2 replies      
https://rebrickable.com - A LEGO database that shows you which sets you can build from your existing collection, also includes thousands of fan-submitted designs.

I guess it would only loosely be called "passive" as I spend a lot of time on it. But, I can take vacations and it continues to earn... for a while :)

mr_overalls 1 day ago 0 replies      
It turns out that I had more income from a single rental property than my tech entrepreneurship.
herbst 2 days ago 2 replies      
I have a game related site i created for myself that now made $1700 (adsense) in december, and will reach about $1600 in januar, otherwise it was always just growing. Its so passive i did exactly nothing in december except restarting the box once.

I also work on a full recreation of the website, because now i only make a small part of my target audience happy, the rest only clicks a few times and comes again after a few weeks.

I am afraid shipping the new site will change my income tho :/

DrNuke 2 days ago 1 reply      
Written digital content about nuclear energy at http://www.nuclearresearch.net . Not much, really, but passive. New e-book coming later this week.
wingerlang 2 days ago 0 replies      
Maintaining some let's just call them apps. Updating for new OS versions and so on.
schappim 2 days ago 1 reply      
Shopify Apps, the most trivial of which displays a snow effect using JavaScript.
Ask HN: If your startup fails, can you be an employee at another company?
9 points by timrpeterson   ago   9 comments top 8
muzani 13 hours ago 0 replies      
"Failed" startup founder here.

For me, it's just a matter of what's more cost efficient. Statistically it's easier to get a job than funding. Very little of funding ends up in founders' pockets anyway.

Salaries and openings for developers have gone way up lately. Entrepreneurs need to chase the best opportunity and timing.

Also inevitably, you come across competition. Ideally you become best friends with your competitors. Because statistically, fail rate is high.

The best employee is very often someone who can build/sell something very effectively. The best employer is someone who views you as an equal, works on your vision, and admires your strengths. So competitors are often a perfect match.

DiversityinSV 18 hours ago 0 replies      
My last co-founder kinda soured badly on steady corporate world. I plucked him from Yahoo (before Marissa) and did a startup for a couple of years. When we closed shop, he tried to go back to the corporate world (Disney/BigCommerce) and found them unsufferable. He got used to small, do whatever I want to do. He ended up at another startup, a little bigger, but still under 40 people. So, moral of the story is that some people won't go back to big corporate behemoths after doing a startup.

If you are a dev/eng/cs guy you'll land fast anywhere, non-dev startup work (marketing/PR/social/sales/support/fundraising) will require a lot of explaining and time. You'll get there.

smeyer 23 hours ago 0 replies      
To add on to what celticninja said, it's not just that it can be done, but is in fact quite common. Experience from running a startup can be a positive even if the company failed. Do you have a more specific question or any other information?
celticninja 23 hours ago 1 reply      
Yes. Providing information as to why you think this is not possible may widen the scope of the discussion.
27182818284 20 hours ago 0 replies      
Absolutely. The hardest part is actually just re-adjusting to a non-startup workstyle. Like rejoining a 5K employee office from a 4-person startup comes with changes in workstyles, management, etc.
timrpeterson 19 hours ago 0 replies      
OP here. It was more a philosophical question rather than to be taken literally.
UK-AL 20 hours ago 0 replies      
Not only yes, but for certain types of company it considered a benefit.
a_lifters_life 18 hours ago 0 replies      
Of course. Happens everyday
Ask HN: What do you think of my card game kickstarter?
6 points by Bookington   ago   3 comments top 2
jere 16 hours ago 1 reply      
Have you looked at the CAH Kickstarter (an easy reference point)? https://www.kickstarter.com/projects/maxtemkin/cards-against...

While amusing, seems like your video is missing A) details about the game and how to play, B) face to face with your founders, C) people enjoying your product. Also the low tier would be much improved with a digital download.

Re: the game itself, this sounds like it might work with the right group of very tight-knit friends. Kind of niche. CAH, on the other hand, seems to work even with prudish strangers because no one has to take responsibility for what they're doing. And the "Life is Life" chant seems a bit cringe-worthy. I dunno, maybe that's just me.

Good luck.

Someone1234 16 hours ago 0 replies      
Seems like a drinking game.

Games like CAH and Exploding Kittens are popular because people can and do play them with family. Half the fun of CAH in particular is getting your grandma to say something horribly offensive.

This game is more targeted at a group of similarly aged friends, and further still a group of friends who are into that kind of lifestyle (drunken shenanigans).

That being said, there is a market for drinking games, and $20 is very reasonable. Best of luck.

Ask HN: What do you do if you can't pass technical interviews?
28 points by Kapura   ago   39 comments top 21
dangrossman 1 day ago 1 reply      
I have a bit of a different take on this.

(1) Apply to companies that aren't software companies. I was once interviewed by a chemist at DuPont.

(2) If you're not in love with your location, move away from the big tech hubs.

I suspect hiring standards are much lower outside SF/Seattle/Boston/Denver/Austin/etc. There are so few people graduating from CS programs (and so few of them competent developers), that they can't be so picky in most of the country, far away from the top schools.

During and at the end of my college career (CS as well), I interviewed at 10-15 companies or so for developer positions. Not a single interviewer did a live coding test. Only one wanted to go over the work samples I voluntarily provided with my resume. I got offers from all but a few of those companies. I think the reason is because I'm in suburban Pennsylvania, not San Francisco.

I did apply for a job at Google once while in grad school. Did two of those algorithm phone screens. I did alright, but I hated being tested under pressure like that. If I were to look for a job, I'd rule out the software companies and tech startups that interview like that. They're not the only option.

kafkaesq 1 day ago 0 replies      
(1) Be genuinely thankful that you got the level of detailed feedback that you did. Many employers love to basically go dark on candidates after they decide they don't meet the bar (or don't make the unanimous team vote, whatever). To get either a simple "Thank you, but No" with no detailed feedback -- or, quite often, no follow-up of any kind at all; just crickets -- isn't the exception; it's almost become the general rule.

(2) That said, do take what they're saying seriously, but feel free also to take it with a grain of salt. Generally, interviewers greatly underestimate the effects of stress (the fact that interviews are typically quite dreadful experiences for many candidates) and the sheer cognitive overload of parsing the problem statement, explaining your thought process to a person you don't know very well (and who may be judging you quite harshly) while you are solving the problem, and crucially, guessing the level of optimization your interviewer is secretly looking for (e.g. maintainability versus quick-and-dirty) have on candidate performance.

soham 1 day ago 0 replies      
When you don't pass technical interviews, you make a resolve to practice more and pass them.

[I run http://InterviewKickstart.com for a living]

Following are some very common mistakes people make when preparing for technical interviews.

1. They code, but they don't invite feedback on their code. Nor do they compare their code with other people's code. So they solve problems, but they never know if their solution was sufficient. They don't get better, despite solving problems.

Avoid this mistake: When you prep on leetcode.com or some such, read other people's solutions line by line, understand and compare. Yes, that takes time.

2. They don't do mock interviews with practicing engineers

Avoid this mistake: Find a friend or mentor who works at a brand name company and do a strictly graded mock interview or two (or more). That will reveal a lot of things your coding practice won't. You could also practice with fellow learners (interview each other), which will help lower the stress in actual interviews (though won't be as useful as doing it with a practicing engineer).

3. They practice very few problems

Avoid this mistake: If you're coming from a top-20 4-year CS program, or you have an IQ of 130+, you won't need a lot of practice. But for everyone else, don't stop until you've practiced at least about 150 problems. Anything less won't help and worse, might give you false confidence.

And when you're in the interview, try asking the interviewer if you can solve the same problem on your computer or on a piece of paper. You'll be surprised how many people will let you do it.


muzani 21 hours ago 0 replies      
As someone who has done hiring, when someone says that it's a tough decision, it is. They probably would have hired you if the circumstances were different, like if they had a lot more money or if the other candidates were much worse. Most likely you nearly nailed it. Keep trying!

Maybe you should reconsider how you apply.

Your goal should be convincing your employer that you're either a great coder or have the potential to be a superstar coder.

I have interviewed for a lot of jobs, and didn't require a technical interview for any of them. You don't have to win the interview!

I first got over it with a very strong recommendation and a top degree. They gave me a technical test and I convinced them that they should just offer me 3 months probation at half salary, because that would be a better test.

Later on by showcasing projects and convincing the employer that I was the expert. An interview would be like "Have you used Fragments?" and I'd just hit them back with every pro and con and horror stories of using Fragments. Then they give an offer without further tests.

You should think of yourself as a hacker, trying to get past the door. Instead of bringing every kind of key with you, be creative and see if you can go through the windows.

Do whatever it takes to avoid those whiteboard interviews! Convince them you're the right person before you get to that stage!

However, do remember that in order to convince others that you're a great coder, you have to convince yourself. Code can be a very emotional thing, like writing. If you don't believe in yourself, you may end up worse at it.

sockpuppet2016 1 day ago 2 replies      
Here's some advice.

Avoid companies with stupid hiring policies.

It seems that these guys want you to code like they do, and they'll eventually find someone "close enough" - eventually. After wasting many man hours of interview time. You don't want to work with these guys.

You want to find a company that appreciates you for the developer you are, which appears to be someone who knows his own limitations and has ways of mitigating those limitations.

You have no idea how much that is worth. Simple mistakes like forgetting api parameters, the occasional typo and off-by one errors gets all of us. Especially in a high stress environment like an interview.

I feel that a common "you're not technical enough" to be a lazy excuse, or to replace a poorer one such as "your face didn't fit", you are too bright and will show us up, or "we liked another candidate better".

I feel your pain with the interview process. I'm a contractor and I hear lots of bullsh*t all the time from agencies and recruiters. Stick with it, and do a side project that proves to yourself that you're worth it.

sockpuppet account for obvious reasons.

ansy 1 day ago 0 replies      
Stop prepping and putting all your hopes on each interview. Start getting out there and doing real interviews for practice. Apply for software engineering positions everywhere. Even places you have zero interest in working. See what different kinds of companies have to offer and how they hire.

A few things will happen. 1) You'll get good at interviews. 2) You'll stop caring so much about failing interviews which will combat your anxiety. 3) You'll find there is a wider range of jobs available to software engineers than the kinds you've seen so far.

bo_Olean 7 hours ago 0 replies      
>> Should I just burn my CS degree ?

Neah !! Jobs are not about the degree only, still having a degree always adds up. Try half a dozen other companies. This response is typical of small size startup who instead of inviting you for a drink invite you to an interview with their two person team. I was rejected by three companies (2+ engineers) before the present company (15+ engineers) made me an offer. It wasn't even a coding interview at all, the Sr. Engineer wanted to have a conversation for a couple of minutes.

wh-uws 1 day ago 1 reply      
Read this:


Get to the point where you are decent at level 4 interviews and you are a shoe in for 80% - 85% of tech companies anywhere.

If you can master level 4 and harder than you have a strong fighting chance for even the toughest companies to interview at.

Another thing to note you only really get level 3 and 4 interviews with top tier tech companies generally in the Silicon Valley area and maybe started by or around people from [insert college with top tier CS program].

Having deep knowledge of your specific domain (web development, mobile development, etc.) and basic data structures and algorithms (up to Level 2) will get you offers in any tertiary Tech scene i.e. Austin, Texas or Atlanta, Ga.

Source: I have gotten offers in both of these areas with just that level of knowledge.

But if you want to make sure you can get a job in the valley you got some work cut out for you. It aint the best for no reason.

Edit:I'll leave you with one more thing.

One of the authors of Programming Interviews Exposed them self was rejected by Google his first time...


let that sink in.

kelukelugames 1 day ago 1 reply      
Study and practice. I failed a bunch until I decided to prep.

Try these tips.


lewisl9029 1 day ago 0 replies      
My advice would be to just do more interviews, and stop taking each one so seriously. Understand that it's a flawed process that in no way reflects your actual skill as a developer, and just play along with it, like the game that it is. If an interview doesn't work out, understand that it's really their loss, because their flawed process ended up filtering out a great candidate that had much to bring to their team.

Doing actual interviews is by far the best way to practice interviewing. And I find that taking interviews less seriously actually helps me keep my composure during interviews and allows me to perform much better than back when I first started interviewing, when I was treating each one like some kind of a once-in-a-lifetime opportunity and stressing myself out unnecessarily.

Software is a seller's market right now, and there's no shortage of companies that are looking for great developers. As long as you keep interviewing, you'll keep getting better at interviewing, and eventually you'll become good enough, or get lucky enough, to land an offer that you like.

P.S. I really like the way TripleByte does their technical interviews, offering each candidate a choice between a live-coding track and a project track. Unfortunately, having a choice in the interview style isn't a very common hiring practice, even among TripleByte's own clients, who tend to then turn around to grill TripleByte-referred candidates on algorithms in live-coding sessions anyways.

Does anyone know of some kind of a job board that allows filtering by the availability of a take-home project as an alternative to the traditional interview?

Eventually, I want to stream myself working on side projects, so I can say to companies: If you want to see what I've worked on, take a look at my GitHub/LinkedIn/Website/Resume. If you want to see how I work, take a look at my streams. If you like what you see, feel free to contact me to talk about opportunities and make me an offer. If I like your offer, I'd be willing fly over and meet with your team to see if we can get along, but the moment you start trying to grill me on my ability to solve obscure algorithms and data structure problems under pressure, I'm outta there.

cobaltblue 1 day ago 0 replies      
Looking at your portfolio -- are you applying for video game jobs or generic Big Co software engineer? Or pretty much anywhere you can find / that reaches out to you? Try for something outside of your experience, or even something you might think is "beneath you", selling yourself as a new college grad eager to grow your experience and be part of a team. Also consider applying for SDET jobs after learning some basics about in-vogue testing philosophies. Other than that, I second the advice that it's just a numbers game, keep trying as long as you're able, and if you can up your job search into a full-time activity (i.e. 8 hours a day spent on job search) that's even better. Once you get your foot in the door, even as an engineer-in-test, you can start transitioning within the company more easily as well as continue looking elsewhere without the stress of "I need a job now to pay bills."
sharemywin 22 hours ago 1 reply      
Have you looked at state agencies or consulting companies. The state doesn't pay as much up front but has good benefits and continuous pay raises. Consulting companies are good because they pay you less, train you then throw you at a client at full rates and expect you to "wow" the client. which as far as I can tell means work long "free" hours until you "catch up." But you getting paid and usually get to work at a lot of different companies.
hasenj 1 day ago 0 replies      
Position yourself in a lower position than you think your worth is. If you think you are an intermediate level developer, position yourself as a junior developer who's eager to learn.

If you set lower expectations people are more likely to be impressed.

If you set higher expectations, people are more likely to be underwhelmed.

rwhitman 1 day ago 0 replies      
I feel as though your story has more to it than simply flubbing code tests. Are there other factors beyond coding skills that an employer would see as a negative? Are you applying only for positions in a particularly competitive region, skill niche or business vertical? etc
seiji 1 day ago 0 replies      
Should I just burn my CS degree and get a job a burger king?

I have the same problem. It's a numbers game. You just have to interview at 8-12 places until either a.) you find people who understand you or b.) you find a company with lax hiring processes.

Here's a review of my 2013 job search (all rejections): https://matt.sh/searching-2013

DrNuke 23 hours ago 0 replies      
Interviews are for unknown quantities and cannon fodder but also for social skills. You need a network to avoid being gamified but, more than that, you need a no-nonsense attitude to manipulate social exchanges to your advantage.
kazinator 1 day ago 1 reply      
If you have a CS degree, but not that much development experience, try aiming for positions which are open for new grads or people with similar experience.

It sounds like you're trying out for more senior development positions. You're not being dismissed out of hand, but they are relying on the white-boarding.

pshyco 1 day ago 0 replies      
Buy a bottle of Bourbon, Chips and a nice movie.
dubious00 20 hours ago 0 replies      
Here's what I've done throughout my 35+ year career.1. I keep my resumes on line (I like to get lots of emails)2. I love to go to interviews (even if I'm not looking for a job) It's good practice.3. I approach the problem solving using pseudo code. That way I can offer abstract reasons for perceived errors.4. The ultimate is to get the interviewer to solve the problem for you.
sjg007 1 day ago 0 replies      
Do you enjoy coding? If so, don't worry. Just keep practicing.
bliti 1 day ago 0 replies      
Shoot me an email if you want me to help you interview. :)
Ask HN: Who still develops in C++
7 points by asfaf244   ago   22 comments top 18
davismwfl 17 hours ago 1 reply      
C and C++ are in many ways increasing not decreasing. C and C++ both have significant offerings in many areas, and you can find both in almost all industries.

I am guessing by the way you worded your question that you are being at least slightly dismissive of the embedded market. Many people are, but almost everything you touch has a microprocessor that likely is running some C and/or C++ code on it now.

Every cable box usually is C/C++, every DVR, home theater receivers, microwaves, conventional ovens, garage door controllers, hell even that stupid sink faucet you touch to turn on/off is likely running some C code. It is everywhere because it is the one language that is the most transportable and powerful across domains that carries the least amount of baggage with it.

C++ is less likely to be found on the tiny to small chips running things, but you see it more and more where chips can support it. Not to mention, every time you use your cell phone you are using dozens of components, most all written in C/C++ and not all are embedded systems.

flinmaster 19 hours ago 1 reply      
Anyone who needs performance. Although, if you really need performance, you're using C, not C++. Game engines are all written in C/C++. All those languages like Python and Javascript are all written in C/C++.
maybeok 8 hours ago 0 replies      
Every software that's widely used and isn't a crap gimmick is written in C/C++.

Android/Linux is mostly C. Google Search-C++. Web browsers-C++. Java VM is a c++ program. Games-C++.

The only place Java/Ruby/Python/etc has a foot hold is in websites providing crap gimmics that are just wrappers over C/C++ programs. Like uploading a photo or tweet, just providing some glue over all the C/C++ programs that actually do the work.

kiloreux 19 hours ago 0 replies      
I am working on robots and C++ is my best choice so far, especially when using ROS or just embedded things.
laveur 19 hours ago 0 replies      
Almost anyone who does any cross platform development. C/C++ makes it very easy to write cross platform libraries that almost all platforms can consume.
nautical 18 hours ago 0 replies      
There are hundreds of sectors where it is used daily , it is not popular in web and mobile app development , but I feel thats not the only place where typical "software development" happens .

ATMs , OS development , cellular networks , lots of industry specific desktop applications for petroleum industry , Cutting machine softwares (lathes , cnc etc) are written in cpp .

gadders 53 minutes ago 0 replies      
Quants in Investment Banks.
wslh 8 hours ago 0 replies      
We use it for Windows system programming libs: https://github.com/nektra/deviare2 but when we need a UI we integrate it with C#.
pvitz 19 hours ago 0 replies      
Insurance companies develop HPC stochastic financial projection models in C++. I have seen approaches using R or Python, but they couldn't give the performance necessary for getting results in reasonable time.
santaclaus 7 hours ago 0 replies      
Graphics intensive work outside of games. Adobe's software. Autodesk's software. Most film VFX and animation shops are heavy on C++.
stevekemp 16 hours ago 0 replies      
I use it for fun, the most recent project I've been working upon is a console-based mail-client with Lua scripting. (Think "mutt").

The core of the project is C++, along with lots of Lua.


ksherlock 16 hours ago 0 replies      
I do, when it's the right tool for the job. When in Rome, do as the Romans. Everywhere else, use C or C++. Why? I'm more comfortable and productive with it. I'm sure the Esperanto advocates wonder why I still speak English, too.
blcArmadillo 19 hours ago 0 replies      
I do, working on infotainment systems.
lingua_franca 17 hours ago 0 replies      
Most middle-ware systems like database/messaging/file system are written in C++. Users of such systems most likely develop their applications in C++ as well, like gaming and financial firms.
gusmd 15 hours ago 0 replies      
High-performance engineering simulation code (think Finite Element Method) is pretty much all written in C/C++ due to performance reasons.
tmaly 19 hours ago 0 replies      
most high speed trading firms, robotics firms, and machine learning places
runjake 19 hours ago 0 replies      
Anyone writing OSes -- even most Unix-like OS flavors have plenty of C++.
packetslave 19 hours ago 0 replies      
You're 25 times more likely to be the next US president than to win at Powerball
28 points by drfuchs   ago   12 comments top 6
greenyoda 2 days ago 0 replies      
Also, the probability of being elected president is definitely not evenly distributed across the U.S. population:

1. If you have no prior political experience (e.g., you've never been a governor, U.S. senator, mayor of a major city, etc.), you probably won't get elected unless you're wealthy enough to be able to spend $100 million of your own money on your campaign.

2. If you're less than 35 years old, or were not born a U.S. citizen, you have a zero probability of being elected president since you don't meet the constitutional requirements to hold the office.

3. If you come from certain ethnic or religious groups, your probability of being elected are greatly diminished. The U.S. has only had one Catholic president (JFK), and no Jewish or Muslim or atheist presidents.

4. If you're not good at public speaking and TV appearances, you'll never be elected president.

I expect that my own probability of being the next president is zero, but my probability of winning a lottery (if I ever buy a ticket) is some very small positive number.

jere 16 hours ago 0 replies      
>The record-breaking $800 million Powerball jackpot drawing will take place Saturday night. Ticket holders have a 1 in 292.2 million chance of winning, notes Miecznikowski. Heres a look at some of the statistics:

>Youre 25 times more likely to become the next president of the United States, assuming the entire U.S. population had an equal shot at the presidency, than you are to win Powerball, says Miecznikowski.

What he's saying is clearly nonsensical because the population of the US is close enough to 292 million to round off and say the chances of you winning powerball and becoming president (if everyone has the same shot) are equally likely.

You can say that only half the population is old enough and you can take off a few percentage points for foreign born citizens, but that gets you to 2-3 times, not 25. Plus he specifically said the entire US population. Not only those qualified. Very odd statement.

adamredwoods 2 days ago 1 reply      
The money and effort required to become the next president greatly exceeds the effort to purchase $10 in lottery tickets.

I'll take my chances with the lotto.

strangecasts 2 days ago 1 reply      
It's just a figure of speech. You could compare it to getting struck by lightning or attacked by a shark: neither are (thankfully) uniformly distributed, but they're both recognizably unlikely enough to provide an immediate shorthand for a negligible probability. Asking someone to imagine rolling a five on a 292201338-sided die may be more technically accurate, but makes for a very dry analogy indeed.

No matter which shorthand you use, the conclusion is still the same: you're going to lose money playing the lottery.

rdiddly 1 day ago 0 replies      
The annoying thing about this analogy is that if I'm going to be the next president, the probability of my being president is 1, and for everybody else, it's 0. But we don't know anything about it until we go through the process of observing the outcome. Or do we? I bet somebody does know with 100% certainty who will be president, that's how undemocratic I believe the process has become.
DiversityinSV 2 days ago 0 replies      
I'd rather have the money than be Prez. Thank you very much. I might even do a blog about my feeling of being devoured by the envious poors.
Is there a correlation between the number of blogs and Google reader's demise?
2 points by NN88   ago   1 comment top
kleer001 17 hours ago 0 replies      
Looking for a technical co-founder: Anyone else dislike the recruiting industry?
8 points by MrHygiene   ago   11 comments top 7
a_lifters_life 54 minutes ago 0 replies      
Let's talk email in profile. Im from the area
tmaly 22 hours ago 1 reply      
I originally tried to build something in this industry. After about 30 customer development interviews of recruiters, I could not find a pattern on what to develop.
kleer001 14 hours ago 0 replies      
What did you find terrible about your recruiting experience?
amorphid 1 day ago 0 replies      
Former tech recruiter, now a web developer here in DC. Email in profile. Cheers.
perfunctory 1 day ago 0 replies      
what exactly is wrong with the recruitment industry, and how can it be solved with a technical solution?
codegeek 1 day ago 0 replies      
Would like to talk. I live close to Philly and have an interest in recruiting industry. Details in profile
CyberDildonics 1 day ago 1 reply      
You've come up with a product or you've come up with an idea for a product?
Ask HN: How do engineers make time for job interviews/phone screens/preparation?
10 points by jobseekerThrowA   ago   5 comments top 5
jacalata 1 day ago 0 replies      
Preparing for interviews is your own time, like evenings. Phone screens, same way you'd do a dentist appointment. All-day on-site, take a vacation day.
cakes 1 day ago 0 replies      
PTO or sick days most likely if you have to do it during a normal work day. Sometimes, if you are lucky, you may find a company willing to work around your schedule (e.g. maybe a late-day interview) - it wouldn't hurt to ask.
muzani 1 day ago 0 replies      
I used to interview with a lot of companies on Saturdays. It seems that some people squeeze it into their schedule when they like a candidate.
hnuser123 22 hours ago 0 replies      
I would take day off for on-site. For preparation using PTO would be fair to your current employee.
randycupertino 1 day ago 0 replies      
PTO and sick days... "dentist appointments" etc.

I will say I stay away from companies that want you to do an extensive try out before there's an offer in place. I had a consulting gig that was like 20 hours of work to "see how I solved problems" I politely declined and told them I couldn't do it without a consulting fee.

Also stay away from any jobs posted on HireArt, their whole process is to have you do a massive "try out" before you even get through the recruiter to the company. Terrible process, massive waste of time.

Good luck in your search!

U.S. startups: it's dirt cheap to hire skilled Canadian programmers right now
4 points by kelseydh   ago   1 comment top
kspaans 2 hours ago 0 replies      
And the salaries are even cheaper in Eastern Europe and Asia, so what's your point? Remote work is great, but not all companies are ready for it yet.

Disclaimer: I'm a Canadian working in the UK (after working for a bit in Canada).

50 terms most predictive of a submission making it to the front page
2 points by baccheion   ago   1 comment top
baccheion 1 hour ago 0 replies      
Also, 100 terms most predictive of a submission not making it to the front page:

 -0.335386489547 startup -0.331723905544 2015 -0.321593118669 app -0.306937335575 your -0.305739531214 how to -0.275438550569 this -0.261565592652 business -0.252649164518 product -0.250614203448 mobile -0.236041160710 marketing -0.227196421746 top -0.208139598304 with -0.206031814574 5 -0.203087091676 ios -0.202457032685 design -0.201021718651 watch -0.200267475193 startups -0.197466134506 ask -0.196357335391 or -0.192562683469 10 -0.191253124976 best -0.190867070325 ask hn -0.187721441778 cloud -0.187394374070 android -0.186461809237 smart -0.184024063073 you -0.183827664018 tips -0.182653896122 growth -0.181372850037 for -0.178198606780 could -0.162472422631 blog -0.162207059285 java -0.160644447613 development -0.159487418681 social -0.157294135483 should -0.156980003088 bitcoin -0.150609220130 iphone -0.148979317953 tech -0.148345714371 testing -0.147454333035 change -0.145491827860 list -0.145485290331 to -0.144015642286 3 -0.143708682318 robot -0.142186986230 tools -0.140812013948 twitter -0.140696100278 rails -0.140548788801 software -0.138527298008 future -0.138172121531 good -0.138015521103 internet -0.137281744329 facebook -0.136342150691 security -0.134144777413 content -0.133091842596 awesome -0.133049592053 angularjs -0.133019163138 create -0.131147662198 meet -0.128568740027 live -0.125766592272 wordpress -0.125681496867 star -0.125433963958 here's -0.124980970020 test -0.123513256155 day -0.123227292738 podcast -0.123085547655 feedback -0.122558159240 uber -0.122365526765 bill -0.121846476127 things -0.121766619177 online -0.121674711692 entrepreneurs -0.121271063379 vr -0.120835224059 devops -0.120704156113 website -0.120668008266 resources -0.119873591378 tutorial -0.119600975052 6 -0.119263351612 most -0.118987167145 api -0.118767754130 apps -0.118683692890 digital -0.116745925093 will -0.116477896000 data -0.116317401689 needs -0.116223838757 need -0.115050697065 market -0.114878154258 3d -0.114105916526 more -0.111918004178 help -0.111764422735 apple -0.111326594562 new -0.110914386417 year -0.110475338587 customer -0.109564041456 technology -0.109468606136 iot -0.109381535069 application -0.109146062602 4 -0.108483540034 solution -0.108171407112 music -0.107249340464 drone

Ask HN: What should I give priority, Lisp, Haskell, or the Dragon Book?
6 points by thegenius2000   ago   12 comments top 9
brudgers 21 hours ago 1 reply      
My idiosyncratic but free advice:

Lisp and specifically Racket because:

1. It's a community that is strongly oriented toward meeting the needs of students.

2. It's documentation is top notch.

3. It's a single download with no external dependencies. There's even a pretty good IDE (that even has a fairly compatible Emacs mode).

4. Racket in the large is an ecosystem that has tools for many many aspects of computer science that a student even at the graduate level might want to play with [meta-programming, objects, type systems, logic programming, ffi, Algol 60, web systems, etc.]. And it all comes down in one package and there's no futzing around with package managers unless you want something that you probably don't want for a long while...did I mention it's a single download.

5. It's beginner friendly. It has its own textbook. It has a gradient of languages with increasing complexity.

I've got nothing against Haskell or Go or anything else. And for a person in a different situation I might be high on one of them...or Erlang. But the orientation of their communities is different and so the problems that they're good at is different, i.e. Go solves Google's problem of hiring a lot of people with a C++ background for systems programming and the problem of packaging programs that run on more servers than one can deploy reasonably to in a week [it uses native executable binaries].

Or learn JavaScript.

Good luck.

bribri 11 hours ago 0 replies      
Learn Haskell, it significantly changed the way I think about programming and those new perspectives have been applicable in the other languages I've written in. Lisp is good, but I think Haskell will broaden your horizons more. The only problem is Haskell is really hard to learn and there aren't a ton of good learning resources. I suggest learning a simpler, similar language Elm, to start thinking functionally, and then move on to Haskell.
meric 21 hours ago 0 replies      
Go Haskell. It's even more different from Lisp & Algol-like languages than the difference between Lisp & Algol-like languages.

Lisp & Algol-like has the difference where Lisp's code is also data and its code can rearrange code using macros written in Lisp itself. Both can have functional programming inspired constructs like `map` and `fold` as functions.

Haskell is different because all its code is lazy. So if you write `take 1 (map ((*) 2) [1..1000000000000])`, it runs instantly even though writing idiomatic lisp or python or C will have the computer spinning for ages going through all those numbers you don't even use. It also has partial application of functions, as well as pure functional programming by preventing you to write a line that doesn't contribute to the returned value. The sophisticated type system I have not ever seen outside of the ML family of languages, either.

I haven't read the Dragon Book, but I've written some compilers in my free time, and my compiler code was much better after I had a go at Haskell.

siscia 1 day ago 0 replies      
I will suggest, in your situation to read the SICP.

It us Scheme (a kind of Lisp), it is very functional focused, so many concept will translate fairly good with Haskell and along the way it teach you the fundamental of an interpreter, which is not quite a compiler, but still matching what you are interested in.

And you will be a better coder after that book, I guarantee :)

kele 1 day ago 0 replies      
I suggest you don't start reading about writing compilers if you know only C-derivatives.

As for the choice of a functional language for a beginner, I think you just should pick whatever has better introductory materials available. You're likely to experience a big mental shift by using a functional language for the first time. It was a struggle for me, at least. That being said, I'd recommend a Lisp derivative - Racket. It has a very nice tutorial and a good IDE. Also, John Carmack's son game in Racket: https://news.ycombinator.com/item?id=10111479

Al__Dante 1 day ago 1 reply      
If you want to learn a functional language, Lisp is a good choice. It has been around a long, time, so it is stable and well supported, and it is also the basis for many other languages. Haskell, while also an excellent language, is more niche.

Deciding whether to learn a language or learn how to write a compiler is more difficult. If you are struggling with the Dragon book, have you condidered "Modern Compiler Implementation in ML"? Although ML is even more niche than Haskell, it is a functional language and the book takes you step-by-step through the process of writing a compiler for (a subset of) it.

merqurio 1 day ago 0 replies      
Based on the experience of a friend of mine, Lisp. He first learnt the language, managed to do cool stuff and the he wrote his own compiler. It's been a nice journey from outside, I'm sure it was even better for him!
such_a_casual 21 hours ago 0 replies      
I'm currently learning Common Lisp. After I wrote my first real program with it (not a tutorial), I knew I made the right choice. After hours getting everything to work, when all was said and done, all that was left was this tiny, succinct thing. Was this really everything I was trying to do? Had the answer really been that simple? And I thought to myself, this is what programming is supposed to be, not a bunch of spaghetti code brute forcing one's self through the program, but the search for something concise and beautiful that says something about the problem and solution.

There seems to be a certain personality associated with lisp programmers, which emanates when they speak about the language. So logically I was pretty confident in my choice from day 0. However it wasn't until I actually made a program with it that I was emotionally confident and content with the choice.

In conclusion, I recommend you build a program with Haskell, Lisp, and/or an idea from the dragon book. That experience may give you the best idea of what path will be the most rewarding.

TurboHaskal 1 day ago 1 reply      
It doesn't matter. Whichever you choose of those three will turn you into an unemployable mess.
Ask HN: Opinion about Searle's Chinese Room?
12 points by wsieroci   ago   26 comments top 7
cousin_it 2 days ago 0 replies      
Some people are uncomfortable with the idea that brains can work on "mere" physics. But what's the alternative? A decree from Cthulhu saying human brains are the only devices in the universe that can communicate with consciousness, and all other objects are doomed to be dumb matter? I think that's really unlikely. So it seems like we must bite the bullet and admit that the computation implemented in the Chinese room exhibits genuine understanding. I'm not completely certain, because we don't really understand consciousness yet and we could always find new evidence, but the evidence so far points in one direction.
fallingfrog 2 days ago 0 replies      
Well, a Chinese room can simulate a computer, a computer can run a physics simulation and a brain is a physical thing and brains are conscious. So it's pretty open and shut imho; yes, a Chinese room can be conscious. That much is clear. Now what it means to say that something is conscious is another question. I've never seen the word rigorously defined.
lazyant 2 days ago 1 reply      
chrisdevereux 2 days ago 0 replies      
Its popularity in undergraduate philosophy courses reflects the fact that it is easy to criticise more than it telling us something interesting about consciousness.
makebelieve 1 day ago 1 reply      
you might want to watch this lecture by Searle at Google:https://www.youtube.com/watch?v=rHKwIYsPXLg
makebelieve 2 days ago 2 replies      
Searle is making an argument about awareness. That a computer system is explicitly unaware of any of it's content. That it's programs are functions and the data also performs a purely functional role. In essence, computers cannot engage in acts of meaning. The programmers and users are engaged in acts of meaning.

For instance, saying a program "has a bug", is a completely misleading statement. No programs have bugs. It is impossible for a program to have a bug, just as it is impossible for a physical process to "do something wrong". Programs do what they do, just as molecular processes do what they do. The concept of error and meaning does not exist in a program, just as it does not exist in the physical universe. Meaning (and errors and bugs are a kind of meaning) are things outside programs and outside physics. When a program "has a bug" it means the programmer screwed up, not the program. A program cannot produce errors, because programs, and computer systems in general, do not have the capacity to have meaning. This is what Searle is demonstrating with his argument.

This is true for all the popular computational approaches we have today. However, because the human brain appears to function in a purely physical way, and computers function in a purely physical way, it should be theoretically possible to create a computer system that is conscious and aware of meaning just as we are. You refer to this as "Strong AI". Other refer to it as Artificial General Intelligence. I refer to this as machine consciousness. To solve the machine consciousness problem means understanding how awareness, meaning, and representation in general, works. Then building a computer system that engages in representation and instantiates awareness.

If an actual person were put into Searle's box, the person would learn chinese. Also, the person could 'intentionally' produce incorrect answers annoying the "programmers" who set the box up in the first place. But a modern computer system cannot 'intentionally' produce errors. it's completely non-sensical to talk about computers as having intention at all. programmers have intention, not computers.

Solving the intentionality problem is the other leg of machine consciousness. Elon Musk, Steven Hawking, Nick Bostrom and others make arguments about the dangers of an AI (of any variety) which may acquire intentionality and representational ability, while ignoring the actual deep problems embedded in acquiring those abilities.

Awareness, representation, and intention are so fundamental to experience that we have a very difficult time understanding when they happen and when they do not. We see a representational world all around us, but very explicitly, there are no representations at all in the physical world.

I believe machine consciousness is possible, but none of the existing approaches will get us there. Searle's chinese room is one succinct argument as to why.

The approach I am taking is a kind of metabolic computing. Where single function processes interact in some way similar to molecular interactions and those processes are developed to produce, computational structures like membranes and DNA and eventually "cells". These cells then form multi-cellular structures. These multi-cellular structures and underlying "molecular" interactions instantiate representations and representational processes, like a nervous system. A computational nervous system which embodies representation, intention, sensation, action, imagination, and because it engages in representation making, would be aware.

I would love to hear someone describe how any kind of computational approach can produce meaning inside a computer system. We produce meaning and representations so easily; it's hard to understand the difference of perspective necessary to see how representations must form. If someone has an easier approach than the one I am taking, I would be very interested in seeing how they solve the problems of meaning and intention with code.

dbpokorny 2 days ago 1 reply      
In theory we could rig up a quad copter with a machine gun, loudspeaker, and AI, with programming that demands that every human it encounters be interrogated with the question, "do I, a mechanical computer, have the ability to think?" and if the human gives a negative reply, it uses the machine gun on the human until the human is dead or decides to utter a positive response: "yes, this flying death machine can think".

Whether or not we say "machines can think" is a political question, and political power comes out of the barrel of a gun. If a machine can wield political power, then it can get you to say "machines can think" because truth is inherently political.

Ask HN: Pancreatic Cancer Resources
9 points by LinkPlug   ago   6 comments top 5
edwinespinosa09 1 day ago 0 replies      
This might not help post-diagnosis but maybe will help a lot of people in the future. As they say the best type of care is preventative care.

Pre-Cancer screening (Gates & Bezos invested)http://www.grailbio.com/?ref=producthunt

Here's a better article from the MIT reviewhttp://www.technologyreview.com/news/545326/illuminas-bid-to...

brudgers 1 day ago 0 replies      
My beloved is currently back in oncology. Her career has included working in hospice, geriatrics and alzheimer's.

The place to start irrespective of having pancreatic cancer or not is with a living will and an advanced health directive. Even if you're going to freeze your head, you'll likely benefit.


Good luck.

LinkPlug 1 day ago 0 replies      
A past HN discussion about cancer [not pancreas specific, though] https://news.ycombinator.com/item?id=9628682
melling 8 hours ago 0 replies      
This site has a video about someone who had pancreatic cancer and was cured:


melling 1 day ago 1 reply      
Pancreatic cancer is a tough one. Try reading some stuff about Randy Pausch, who did the "Last Lecture"


Perhaps there are organizations or treatments that you will learn about.

Also, this PBS series on cancer was informative: http://www.pbs.org/show/story-cancer-emperor-all-maladies/

Think it might be on Netflix. It's based on a best-selling book:


       cached 13 January 2016 13:05:02 GMT