hacker news with inline top comments    .. more ..    26 May 2014 Ask
home   ask   best   4 years ago   
Ask HN: Alternative to Stack Overflow?
5 points by MarkMc  35 minutes ago   3 comments top 2
iKlsR 8 minutes ago 0 replies      
> So what is the best site can I use to ask for a recommended library or tool?

There is a stackexchange site for this, http://softwarerecs.stackexchange.com/

devnonymous 2 minutes ago 1 reply      
StackOverflow's reason does make sense. I've found it best to ask on a related mailing list. By related, I mean, if looking for a tool, ask the associated OS users language mailing list. If looking for a library, ask on the associated programming language mailing lists.

Mailing lists tend to be better than sites for this sort of thing because people who reply there are possibly putting in more thought into their replies and secondly, replies might lead to a discussion that'll make evident the tradeoffs you'll make going with one choice over the other (and there will always be tradeoffs). The thing that mailing lists lack when compared to StackOverflow is the rating mechanism and the ability to easily search/find answers to commonly asked questions.

Ask HN: Feedback for an api to send triggered emails?
2 points by hsuresh  8 minutes ago   1 comment top
anthony_franco 7 minutes ago 0 replies      
How would you position yourself differently from intercom.io? (I use them currently and they seem to do what you mention).
Ask HN: Startup investment runway and taxes
6 points by princehonest  4 hours ago   2 comments top 2
patio11 4 hours ago 0 replies      
You'll have a professional do the corporate taxes. Briefly, you'll expect that for the first several years of the business, possibly continuing through exit, the business will have negative profits. Accordingly, your income tax bill for the corporation will be $0 every year. You'll expect to continue booking tax losses as an asset on the balance sheet against that day in the future when your business actually has profits. You will likely pay many taxes which are not founded on income, most prominently California franchise tax for YC startups, which has a minimum of about $1k a year or so.

The fact that the corporation received $120k from YC or $10 million from angel investors is immaterial. Those flows of money do not represent revenue/profits. They are not subject to income tax (nor any other tax that I am aware of).

The approximate runway of a company with $120k in the bank and 2 co-founders at ramen wages with $1k a month in OpEx is ~18 months as of the current moment in time. Napkin math: $6k to pay both founders ~$2k salary plus pay direct costs of employing them, $1k in OpEx, divide.

rpedela 3 hours ago 0 replies      
Investments are not taxed.

You will most likely operate with a loss for the first year so your tax bill will be $0. And then you will be able to carry-over any losses to subsequent years which will reduce or eliminate your corporate tax bill in those years. Get a professional for the carry-over stuff. As patio11 said, there are often minimum state taxes. I believe California is ~$800 and Delaware is ~$200 or more.

You will of course have to pay income tax on wages individually. If you are considered employees then the company also has to pay a portion of the payroll tax. If consultants, then the company does not need to pay payroll tax. Talk to a lawyer about which is appropriate for the founders.

runway (number of months) = (total - one-time expenses) / monthly expenses

Ask HN: As a software developer, how do I get into brain research?
54 points by danabramov  14 hours ago   51 comments top 25
ihnorton 9 hours ago 2 replies      
First: you absolutely must get a bachelor's degree in something (preferably STEMish), full stop. It is a basic signal of many positive things that people are looking for (for better or worse). And, more importantly, you will learn about things you didn't know existed. Contrary to popular opinion in some circles, directed study by experts - with recourse to interactive discussion when you get stuck - is the most efficient way we know of to gain deep knowledge in a subject. You don't know what you don't know.

However, it is completely possible to get a position "in a lab" without a degree. I found a research-assistant position, part-time, while going back to school to get a degree (after about three years off). That's one path, and depending on your situation, you may need to move to an area with a high concentration of universities to make this feasible. I can only speak to the US, but if you are in the US, start with Craigslist for major metros with good universities (Boston being far and away at the top of the list IMHO; also NY, DC, Chicago, LA, and San Diego. When I did this in 2006, I had several job offers in Boston for software-inclined research assistant positions I found on Craigslist - without any degree. I was kind of shocked, but it makes sense. HR everywhere is painful, so people with hustle go outside the system to find candidates they want)

You could also try cold-emailing lab PIs. A couple of points here: professors at top-100 US universities get a lot of email in general, and in particular from people in other countries looking for positions (probably same for European professors). Without a degree you can't compete on (perceived) credentials, but if you are in the same country already you will be much easier to hire (no immigration hassle). Make sure your resume is neat, positive (but accurate) and grammatically flawless. Make your cover letter personal, both in the sense of your story (why you are interested) and why the specific lab interests you. Especially look at youngish professors just starting labs. Graduate students are very expensive, so if you are willing to work for $20k then you will be about 1/3 the total cost of a graduate student. Young professors need people with hustle more than anything else (getting a lab started is a slog of ordering, unpacking boxes, and debugging equipment. Electronics troubleshooting, and "I don't know, but I know how to read a manual" are critically useful skills in any lab).

If you are in a place with one or more universities, go to talks! Most university departments hold public-ish seminar series bringing in outside speakers, and you can usually get on departmental announcement lists just by emailing an administrator. If you a frequent fixture at talks, and you ask good questions at the end, you can end up in very useful situations ("why don't you come along with us to lunch?" is the best possible outcome). If people see you a few times, they may start to ask you who you are - and why you are not at the school already.

A practical point: if you go the above route, and depending on your current situation, you may very likely have to take a (large) pay cut. SAVE AS MUCH AS YOU CAN, starting now (this is generally applicable advice!). Some employers offer split-deposit setups, where you can designate a percentage of your check to several direct-deposit accounts. I budget out what I needed to live on, send that to checking, and deposit the rest in a savings account in a completely separate bank. That second account is untouchable - except for tuition when I was in school (excepting true emergencies), and now saving for longer-term things.

To help find a way back to academia, you can get a big boost by contributing to an open-source project with strong academic connections (I cannot stress this enough. you want a project that is actively committed to by post-docs, grad students, and - ideally - a prof or two. Even if they can't hire you, they can recommend you). Some projects to look up: NiPy (neuroimaging in Python), scikit-learn, Human Connectome Project (Connectome mapping toolkit, connectome workbench), 3D Slicer, MITK, FreeSurfer, OpenWetWare (lots of "open"-friendly labs are on here), Neuron (neural modelling), Covert lab (Stanford - cell simulation), Virtual Cell (UConn). Good luck!!

sebastianmarkow 11 hours ago 1 reply      
I'm currently doing research on hippocampal function and how to model authentic spiking neural networks (NEST) from spatial data as part of the human brain project and the research center of Juelich Germany.

First of all most of the people working in computational neuroscience are physicists. There are a few biologists and of course cognitive psychologist, medical doctors or people from the department of neuroinformatics.

1a) Get an (paid) internship at a local research department. It's easy to get in (at least in my experience), even if you're not working on computational models in the first place. Most of these departments are not run very tightly, and there are lots of opportunities to do what you are best suited for. Though i would recommend to get back into university for a bachelors degree.

1b) Apply for google summer of code or something equivalent. There are lots of open internships for the summer which are directly involved with the human brain project.

2) It's about dynamic systems. So you have to ainte up your math. If you know your way around statistics, 2d/3d simulations, data structures and algorithms it's a huge plus. I recommend spending some time on top coder for the latter two. So you already have the advantage of knowing most of the common ML concepts.

3) Read everything you get your hands on which is connected to neuroscience. You have to get the full picture. Psychology, cognitive neuroscience, biophysics, medicine, neuroinformatics, etc. pp. First basics to get an overview, then concentrate on recent papers.

4) Improve your writing and presenting, if you have difficulties with either one. It will be an essential part of your work to discuss and present results.

5) Don't trap yourself into thinking you're not smart enough. Results in research need ambition, duration and vision more then being the smartest person in the room every day.

Most of the software which is written in science is just prototype grade to prove a point and get a paper accepted in a journal. Standards are low, so bringing something different (systems engineering, source control management, automation, hpc programming, testing, deep knowledge of a framework/programming language etc. pp) is also considered a plus. So whenever you think something could be improved you should speak up and have a detailed explanation at hand why this would be an improvement. Communication is key sometimes, remember most of the people you will be working with are not computer scientists nor did they ever work in an industry environment.

It's a good thing to have a deep understanding of at least one of the following commonly used frameworks/programming languages in (neuro)science plus TeX (not a complete list, just the top of my head). Though you'll probably end up learning or writing a new/established framework depending on the field of research you will be doing.

c/cpp, Python, Matlab/Octave, (statistics) R/Julia, (hpc/gpu) OpenCL/Cuda, (functional) Lisp/Haskell

I would recommend Python (Scipy/Numpy) if you're used to Javascript front end development (OOP/dynamic).Also i would advice you to get acquainted with your favorite unix shell and the core utils if you aren't already. (Plus getting to know at least one tool for plotting any kind of data)

Teams are rather small, depending on the budget. So in academia it's usually one or two group leaders with a professors degree, a handful postdocs and couple more phd students plus student assistants. Departments funded by industry are requiring a phd in my experience. Which does not mean you can't work there without having one, but you're less likely doing actual research. You will not exclusively doing one thing only, it's a rather versatile field.

I hope you'll make the shift into neuroscience.I think it's the last great mystery on earth which is to be explored.For me it's been a life changing experience and it still keeps on giving.

Best of luck.

SapphireSun 11 hours ago 2 replies      
If you're interested in neuroscience, we need Full Stack Developers, Sysadmins, and C++ developers to help map the brain at the nanoscale level. No neuroscience background required, but a sense of fun and an analytical mindset are musts. We're looking to make our game to map the brain more engaging and more scalable. We are affiliated with Princeton and MIT.


Send a resume, cover letter, and code sample to jobs at eyewire d ot org

scottfr 13 hours ago 0 replies      
Ok, I think you need to decide what you are really interested in.

ML and neural networks research are very different from projects like openworm both of which are very different from neuroscience work and modeling.

So you have three very distinct areas of research and work. Which one are you most interested in?

Of the three the ML side probably has the most guaranteed value to you. Things like openworm are shoot-the-moon type projects that are frankly unlikely to succeed in achieving their ambitious goals. Neuroscience research can be incredibly difficult due to the fact you're dealing with live people and there is unfortunately a lot of hand-wavy, "voodoo-esque" statistical and modeling techniques currently being employed in the analytical side of the field.

robg 9 hours ago 1 reply      
Do I absolutely need to get a degree in this area to participate in this kind of research?

Absolutely not. Every research lab I've ever known, even at MIT, has significant needs for what's called a Technical Assistant. It's similar to a Research Assistant, but you help code experiments, program analytic scripts, create visualizations and write reports. These labs run the gamut from single unit recording to whole brain imaging.

Do they need software development expertise?

Yes, all do.

Is it difficult to adjust my skillset from being just a software developer?

That answer depends on the lab and its existing group of researchers, assistants, and students. There's a learning curve but you are far better off than the many, many researchers and students who have no programming background.

How does division of labor usually work in groups like these?

The principal investigator (PI) is responsible for everyone and is the one to get the major grants, have or seek tenure, and plot the general direction of the research based on their history of publications. Post-doctoral researchers are recruited on their way to becoming PIs of their own labs. Graduate students usually work on their own research, sometimes with their own smaller grants. Research and technical assistants work for all of the above on the day-to-day responsibilities.

I imagine there are always some biology- and some software-oriented folks in one group. What could be my first step in that direction?

It depends foremost on geography and your interests. Before uprooting your life, look for research groups at the nearest university. Find the PIs whose research is most interesting to you. Write them a very brief email (4-6 sentences) explaining your background and interest in working part-time on technical software challenges they might have. If you don't have many PIs near you, it will be more challenging. You won't hear back from most. But remember, you're looking for experience. If you are dependable and professional, you'll find some to grow with. Then you'll be better positioned to seek a full-time job in a great lab that really fits your interests. After a few years, you'll be qualified for graduate school. You don't necessarily need an undergraduate degree if you are working with a leading researcher who can vouch for you.

psyklic 9 hours ago 0 replies      
I transitioned from software to brain science for my PhD. (Caltech has a unique program for this called Computation and Neural Systems.)

Universities hire regular software engineers all the time for software development work. Biology labs hire full-time "build-it" guys, and computational projects with a lot of funding hire part-time and full-time software engineers too.

So, to break in I recommend you look up some large brain science computation projects online and contact them. There are quite a lot of them in Europe. You may also be able to get into some fMRI projects.

That said, at a university, the chances of you taking more than a supporting role without a university education is slim. So, I would recommend looking for a brain-oriented startup.

If you want to do moreso biology, then I do not believe this path would be worthwhile to you. Lab assistant work does not pay much, and it is often very tedious work. Some techniques may take a year to get proficient at before your results start to make sense (as was my case). That said, biologists constantly amaze me -- they routinely make heroic efforts to find evidence for tiny advancements (as is necessary due to the limitations of our brain technology).

hluska 13 hours ago 0 replies      
Do you have any local universities that are actively doing neuroscience or cognitive science research? If so, one possibility is to spend time on their websites, find professors who are doing interesting work, and volunteer to help out. Volunteering to help professors do research is a common path to get into grad school in extremely competitive fields. So, these professors may not be open to your help unless you're one of their students. However, if you write the right query to the right prof, who knows where it will go??

Since so much of this work is theoretical and done in Universities, unless you're just incredibly talented and lucky, you'll run into a wall without degrees.

dchichkov 11 hours ago 0 replies      
There are two reasons why people who'd like to do research do PhDs. First, without PhD, it is difficult to get a job in research. At any big company or university it is pretty much a requirement and it is hard to go around this one. Not impossible, but very very hard.

The second reason, is that it's the environment that makes the researcher. PhD years are essentially the years of apprenticeship, in which you are working alongside with (hopefully good) researchers. It's just like in any other field. To acquire skill set, to get good at it, you need to work for some years with people who are already good. Engineering skills are essential to a researcher, but actual research skills even more so.

So if you manage to force your way in, and get a researcher job with only engineering experience (I've seen people do that), your contributions to a research project will have a chance to be on a negative side. Will even have a chance to derail the whole project.

danabramov 7 hours ago 0 replies      
OP here: thanks for all the replies, I didn't expect this to get to the front page.

To clarify a few things:

1. I live in Russia but will move to US or Europe soon.

2. This is not something I want to do right now. Rather, I'm thinking about what I'd like to be doing in ten years, and how to get there eventually. It's just one possible direction.

3. I'm looking for some first steps that don't require me to drop everything and move somewhere. Maybe some ways to evaluate the field. Great suggestions I read in the thread included contributing to open source projects with academic connections, reading recent thesis, saving money, getting familiar with tools (R, Julia, Matlab) and sharpening maths, (later) writing emails to smart people, looking out for startups in the field that don't require academia background.

cpcloud 13 hours ago 1 reply      
I've come to software from the other direction.

1) In neuroscience there's an enormous lack of enthusiasm for software development, even if it makes large parts of a workflow easier. If a poorly written, undocumented piece of code stuck in a file called temp123_final_final_no_really_final.m produces the same output as a higher quality piece of code, no one cares as long as it leads to a publication.

2) You don't need a degree in neuroscience to do neuroscience research, however you'll probably need to take a few basic neuroscience courses to get up to speed depending on what area you're interested in focusing on. It sounds like you're interested in theoretical neuroscience. For that you'll need to take lots of probability and statistics.

3) Make no mistake, your ability to write clean, well documented code will be massively under-appreciated by nearly everyone.

4) As far as division of labor goes, that usually depends on the lab size. The smaller the lab, the more you do. Even in some large labs you have people building software AND doing animal surgeries AND running experiments. There usually isn't a person dedicated to a specific type of labor.

5) To "fiddle" with the brain, you'd have to get into animal research as you can't really do that with people (yet?)

A lab worth checking out is the lab of Gyorgy Buszaki: http://www.buzsakilab.com/

q845712 8 hours ago 2 replies      
toward the end of undergrad i started thinking along the same lines you are now. I wound in a graduate program in neuroscience - a move i generally regret.

First, although modern science requires a lot of software, scientists refuse to recognize that crafting software is its own discipline and insist that they must be good at it because they're good at being scientists. Your skills won't be valued - they won't even be recognized.

Second, the realities of biology are very different from the realities of software. If you're working with living things, be they cell cultures or mice, you'll find your schedule frequently dictated by the cycles of your experimental materials. For example: suppose your experiments work best with mice age 14 days. If a litter is born on a sunday, that means you'll be at work on a sunday two weeks later.

Biological reactions are way worse than slow builds. So many biological protocols involve doing something tedious for twenty minutes, then waiting for a specific amount of time (perhaps 15 minutes , perhaps 45) and being back at precisely the right moment to do a few more minutes of painstakingly careful but tedious work.

In software you would never hire 5 developers but only give them two laptops - each person needs a laptop to do their job, right? In biology the equipment is so expensive that it must be shared. This can be ok, but it also results in loss of control over your schedule. now you're not just working on sunday, but because the other student sharing equipment also needs to experiment on sunday, you're either working sunday early morning to early afternoon, or sunday early afternoon to late evening.

I found science to be crowded with people trying to prove that they're the most brilliant ones in the room, people unwilling to collaborate because if a group effort succeeds you have to share the credit. In software I've found everyone happy in the knowledge that a well-functioning team can produce results at a scale unrealizable by even the most brilliant individual.

In conclusion, i hated being a biologist. I didn't like the culture of science, I didn't like the work itself, and I didn't like the schedule and lifestyle it demanded. I also really didn't like killing mice. Biology is dirty work - not the worst by any means, but software is a more fun job that pays 3-10X more.

sz4kerto 13 hours ago 2 replies      
Where are you located? If you're somewhere in Europe, I might have some ideas. You'll need a degree sooner or later though and you won't earn as much as you can do as a software engineer working in the 'industry'. This field is mostly grant-driven, therefore you need to find a group who's able to get funding, and unfortunately getting paid from grants usually requires a degree.
Void_ 13 hours ago 1 reply      
Get a job as frontend engineer at a company from similar field.
jey 10 hours ago 1 reply      

    Do I absolutely need to get a degree in this area to participate in this kind of research?
Nope, but you do need credible and convincing signals. (Google "signalling theory".)

    Do they need software development expertise?
Yes, yes!

    Is it difficult to adjust my skillset from being just a software developer?    How does division of labor usually work in groups like these? I imagine there    are always some biology- and some software-oriented folks in one group. What    could be my first step in that direction?
I don't know; "difficult" is a relative term. I do know that if you're skilled, curious, and willing to learn, you can probably find some collaborators to work with. The catch is probably they need you to be committed and a net positive (i.e. don't drag them down), and they probably won't be able to pay you right off the bat (or ever).

qntmfred 14 hours ago 0 replies      
I'm in the same position as you, although early thirties. Have always been interested in the brain since a kid, have thought about pivoting my career to the brain sciences a few times. It's not easy to go back into academia (which is pretty much required to become qualified and relevant in this field) and I've got a wife and kids now so I'm addicted to the income potential of a software developer career, sadly neuro isn't in the same ballpark (yet?). I'd say the next step is go back to school and do software on the side (if you have time)
justplay 14 hours ago 0 replies      
One thing for sure, your Maths knowledge is more essential than your software development knowledge. So, if you're interested in that field you should really learn a lot of Mathematics.

> Do I absolutely need to get a degree in this area to participate in this kind of research?

I guess yes (I wish I would say no, really) since it is all about theoretical knowledge it is not easy to validate. Since, it is a research field, domain experts can't spend time in testing your skills so they mainly rely on exams/degree. If you have proved your skills to them at no time, then it is easy to get inside.

sebg 13 hours ago 0 replies      
Start with a basic course - > https://www.coursera.org/course/compneuro

Then look at PhD thesis in the subject area that are recent. The first section of each PhD thesis covers what is known in the area and builds up the problem. Don't worry yet about understanding the rest of the subject matter - just worry about understanding the front part. Since this is a PhD thesis, it will be very heavily cited. Check out the citations for the front matter and delve into those.

atmosx 8 hours ago 0 replies      
Get a bachelor's degree in biology or related science. Since you have the IT background, you'll thrive :-).

ps. If you could attend a university full time, I would consider pharmacy.

weishigoname 13 hours ago 0 replies      
I am interested in neural network, machine learning,too, I am a full-time software engineer, the time I spend on this tropic is not much, and many times I was frustrated by the math, which I am not pretty understand it, and I don't know where to get help, if someone can share some resource, really appreciate it.
_random_ 10 hours ago 1 reply      
"front-end engineering" - do you mean applying one of the modern JavaScript MV* frameworks to HTML GUI?
SkyMarshal 10 hours ago 0 replies      
Read Jeff Hawkins (Palm founder) book, On Intelligence, then maybe contact the research center he set up for brain and AI research.
gte910h 10 hours ago 0 replies      
There are graduate programs at GT and Tampa that do this sort of work. I have a friend who did the GT one then the Tampa one


DLion 14 hours ago 0 replies      
If you are a front-end engineering you can contribute to https://github.com/openworm/org.geppetto.frontend
suchwow 13 hours ago 1 reply      
The bigger question IMHO is why doesn't all public funded research happen in the open (or I'm so out of the field that I wouldn't know about it even if it happened).

I would love to donate some of my free time helping a project in which I believe with software engineering expertise. Heck I might even pick up some domain specific knowledge.

wellboy 13 hours ago 0 replies      
Google is doing that, have you tried to look there for AI jobs?
Ask HN: How to sell iOS app names and dev account?
3 points by craigjb  3 hours ago   2 comments top 2
clarky07 47 minutes ago 0 replies      
Unlikely the names are worth anything unless the apps have good search rankings for important keywords. If they are still making sales they are worth something though.
coralreef 2 hours ago 0 replies      
It may have some value, as App name strings must be absolutely unique (or was it always like that?)

You could try posting on flippa or apptopia.

Ask HN: Which Support tools do you use?
4 points by nicolasd  5 hours ago   2 comments top 2
amarcus 4 hours ago 0 replies      
Are you looking for live chat or support help desk platform?

For help desk, you can check out zendesk.com, desk.com, happyfox.com

hajrice 2 hours ago 0 replies      
have you checked out Helpjuice.com?

I'm the founder of it, and would be more than happy to answer some questions, if you have any!

Ask HN: What do you do when your entire being opposes the task at hand?
348 points by septerr  2 days ago   194 comments top 91
jblow 2 days ago 24 replies      
I felt obliged to comment because I feel I know what you are talking about and I also worry that much of the advice posted so far is wrong at best, dangerous at worst.

I am 42-year-old very successful programmer who has been through a lot of situations in my career so far, many of them highly demotivating. And the best advice I have for you is to get out of what you are doing. Really. Even though you state that you are not in a position to do that, you really are. It is okay. You are free. Okay, you are helping your boyfriend's startup but what is the appropriate cost for this? Would he have you do it if he knew it was crushing your soul?

I don't use the phrase "crushing your soul" lightly. When it happens slowly, as it does in these cases, it is hard to see the scale of what is happening. But this is a very serious situation and if left unchecked it may damage the potential for you to do good work for the rest of your life. Reasons:

* The commenters who are warning about burnout are right. Burnout is a very serious situation. If you burn yourself out hard, it will be difficult to be effective at any future job you go to, even if it is ostensibly a wonderful job. Treat burnout like a physical injury. I burned myself out once and it took at least 12 years to regain full productivity. Don't do it.

* More broadly, the best and most creative work comes from a root of joy and excitement. If you lose your ability to feel joy and excitement about programming-related things, you'll be unable to do the best work. That this issue is separate from and parallel to burnout! If you are burned out, you might still be able to feel the joy and excitement briefly at the start of a project/idea, but they will fade quickly as the reality of day-to-day work sets in. Alternatively, if you are not burned out but also do not have a sense of wonder, it is likely you will never get yourself started on the good work.

* The earlier in your career it is now, the more important this time is for your development. Programmers learn by doing. If you put yourself into an environment where you are constantly challenged and are working at the top threshold of your ability, then after a few years have gone by, your skills will have increased tremendously. It is like going to intensively learn kung fu for a few years, or going into Navy SEAL training or something. But this isn't just a one-time constant increase. The faster you get things done, and the more thorough and error-free they are, the more ideas you can execute on, which means you will learn faster in the future too. Over the long term, programming skill is like compound interest. More now means a LOT more later. Less now means a LOT less later.

So if you are putting yourself into a position that is not really challenging, that is a bummer day in and day out, and you get things done slowly, you aren't just having a slow time now. You are bringing down that compound interest curve for the rest of your career. It is a serious problem.

If I could go back to my early career I would mercilessly cut out all the shitty jobs I did (and there were many of them).

One more thing, about personal identity. Early on as a programmer, I was often in situations like you describe. I didn't like what I was doing, I thought the management was dumb, I just didn't think my work was very important. I would be very depressed on projects, make slow progress, at times get into a mode where I was much of the time pretending progress simply because I could not bring myself to do the work. I just didn't have the spirit to do it. (I know many people here know what I am talking about.) Over time I got depressed about this: Do I have a terrible work ethic? Am I really just a bad programmer? A bad person? But these questions were not so verbalized or intellectualized, they were just more like an ambient malaise and a disappointment in where life was going.

What I learned, later on, is that I do not at all have a bad work ethic and I am not a bad person. In fact I am quite fierce and get huge amounts of good work done, when I believe that what I am doing is important. It turns out that, for me, to capture this feeling of importance, I had to work on my own projects (and even then it took a long time to find the ideas that really moved me). But once I found this, it basically turned me into a different person. If this is how it works for you, the difference between these two modes of life is HUGE.

Okay, this has been long and rambling. I'll cut it off here. Good luck.

adrnsly 2 days ago 3 replies      
I know the exact feeling you're talking about - I used to work at a wonderful small dev shop where things moved fast; whole projects were wrapped off in a week or two.

Until this one project where we were asked to 'fix' an already written Android app (written by an Indian outsource then sent to Canada). The contract was for a massive amount of money, everything looked clear cut and straight forward, how could we say no?

For almost 7 months (!!!) my team and I had endless meetings next to a wall map containing the 5000+ classes that each had to be dissected, understood and reimplemented properly. All the comments were in at least two different foreign languages, and even the best translation services (human included) could only give us at best translations like: 'not class, forwards' or 'use brick making way here', most likely due to the comments being poor in their original language in the first place (not due to the translation).

At first I had great momentum, I was an unstoppable force; then quickly things started slowing down - each task started taking hours longer, than days longer, than weeks longer. Ultra trivial fixes like the placement of one statement outside a try catch, could easily take a whole month to locate (by a team of 4!).

After pouring my heart and soul into this project day after day, grinding myself literally to the bone; I started getting depressed, physically sick to my stomach for days at a time, starting fights with co-workers over absolutely nothing, just so I wouldn't have to look at that fucking code one more time. Anything to just not look at that code one more time.

By the end of the project (which we did actually manage to complete), I was waiting for that moment of euphoria, that release of completion, that I would never ever again need to look at that code, or work on that project.

But it didn't come.

I was paid more than 100k for completion of the project, so I was well reimbursed for my time.

That's when I realized that it's really not about the money, it's not about the team, or the language; It's not about your repo, or your source control techniques. It's not about agile, and it's not about problem solving. It's not about working from an office or from home, and it's not about the mother fucking 'culture'.

When you're lying on your death bed, and you look back; will you be proud that you spent all that time and suffering to fix an app for some asshole who is trying to make a quick buck by exploiting people who aren't technologically wise enough to realize what they are doing?

The next day my boss asked to meet with me privately; thinking I would be fired (and happy with the idea) we met briefly at a local coffee shop. She said that all the anger, depression, and self loathing was 'worth it' because 'I made a lot of people rich' in the process (myself included) and they were happy to deal with that (and even to pay for therapy).

I was offered EVEN MORE money to continue working on projects exactly like these, to the company we had just discovered a cash cow of an app crop, and I was the golden goose. I could easily do this the rest of my life, and lead whatever life I wanted to outside of work.

I quit on the spot, and laughed and cried the whole way home. Knowing that I would be blackballed in the community that I had worked so hard to establish myself in.

Literally career suicide. The company didn't recover, and a lot of people were (and still are very pissed off with me - like angry emails, restraining orders, fucking pissed).

I promised myself that from now on I would only do work that I believed in enough to starve to death for (and it was looking for a long time like that was going to be the case). The truth is, if you want a job where you can make 6 figures (or even 7 if you're doing it right), you will find it. You will always find it, and they will always be there.

There is a vacuum of talent on the community of expert programmers caused by major corporations like ibm, amazon, facebook, twitter, and snapchat just filling up cubes in their 'programmer cluster'. A group of people they can throw whatever stupid, or trivial tasks at - and you won't say shit, because damn that pay is tasty. You're breaking peoples rights to privacy, doing WAY less than ethical things, and you probably don't even know it (because that's how it's supposed to work, or someone else above you clearly isn't doing their job).

My only advice is to get the fuck out. Run, run as fast as you possibly can and never look back.

Never respond to any recruiters for any reason, never respond to job offers, and don't even think about looking for another position at another company (I promise it's the same thing, no matter how they promise you otherwise, and tell you that their culture is the dopest - nothing like clubbing seals with some rad people right?).

Get off your ass, and do something worthwhile. If you can't do that, then learn how. If you can't do that, then you're a drone and you should keep that shitty job because it's the best you're ever going to do (in which case, fuck you, you make the world a worse place for everyone by whoring your skills out to unethical assholes for cash).

Make something that garners zero profit, make something that only helps people, make something that changes the world for the better. You will quickly see your entire world, and all the people in it change before you eyes. You will get more job offers in your inbox than spam, because the world will see that you don't give a fuck about anything but getting shit done and helping people.

Today I run a few companies, the largest of which is a NPO machine learning research firm offering free services to help cure cancer, track missing children, follow and assess viral outbreaks, and front line ML research pushing the needle of science forward (email: freeML@gatosomina.com for services); and some of the others include: organic vegetable gardening as a service (physical outdoor labour, everyday, which I enjoy more than anything) and free apps that assist paramedics and doctors (without ads or bullshit).

If you want to be happy, like, really, actually happy (and not just wealthy) you're going to have to risk it to get the biscuit; and it's going to be the hardest battle you've ever fought in your entire life, by at least a few magnitudes.

Good luck, it's a jungle out there.

bguthrie 2 days ago 2 replies      
People tend to reserve pair-programming for tasks they perceive as being unusual, complex, or otherwise needing extra review. Personally, I've found it can be helpful even when you simply need to stay on task. When you both have the same goal, you can rally each other; it's typical to become more productive together than you would have been apart.

If this sounds like it could be your style, grab a buddy and see if you can hammer out some of the small stuff together. If not, some of the other suggestions here are good as well.

ryandrake 2 days ago 3 replies      
Oh boy, so I get to be the contrarian again.

First of all, isn't it a bit dramatic to say "your entire being opposes" your task? It's not like you're out committing genocide or something. You're programming, and you have to work on a crappy programming task. Every programmer who ever worked a professional job has had to do this at some point. If the very fiber of your soul is wrapped up in your employer's MegaAccounting Client V3.0 REST API, I'd recommend re-thinking your emotional attachment to your job.

That money you get every two weeks is called "compensation" because it is compensating you for your time, which you would probably otherwise spend doing something more pleasant. This is the realistic world of grown-up work life.

If your company's Marketing bone-head says the customers want a green oval button instead of a system-standard button, well, it's stupid, but I'd laugh at how much they're paying to get this ridiculous code written and just write the damn code. It's really not worth losing sleep or sanity over. Not being emotionally attached to your work allows you to shrug off the stupid stuff that Really Doesn't Matter.

ebiester 2 days ago 0 replies      
I wish I was done with the series of blog posts that helped me get over this! :)

I struggled with this for years and years. This is not one problem , but three: it is a problem with wisdom, speed, and discipline.

Luckily, we can learn tricks to improve each one.

If we want to attack this from the wisdom perspective, it is this: You are afraid of making the wrong decision because you are afraid to refactor. You are afraid to refactor because you don't have sufficient test coverage.

The good news is, for developers like us, test driven development is very helpful as a technique for getting us over these problems. If our team is not test-friendly, however, it will be difficult for us to make the jump because their code will not be written in ways to make it easy to test.

There are a few books I can suggest to help us jump the chasm:

1. Clean Code by Bob Martin. This book helped me think in more testable code, and also helped me understand how to make better decisions the first time around. It helped me by seeing patterns I didn't know first.

2. Refactoring by Martin Fowler. This one is old, but knowing the patterns of changing code gives us more confidence in knowing what is right, rather than hemming and hawing over what is readable and maintainable.

3. Refactoring From Legacy Code by Michael Feathers can help get from here to there. All of these help from three aspects: They help us develop a set of tests so we are less afraid of breaking existing things, they give us the freedom to experiment, and they help us break things down into smaller, more manageable problems by letting us think about "what is the next thing I can test?"

If we have the tests, we can be more aggressive in reducing complexity.


If we want to attack this from a Speed issue, then look for these things.

1. Look for patterns you use repeatedly, and try to settle down into a process. The fewer choices we make, the faster we can go.

2. Look to learn more about your chosen stack and language. It is possible that we are rewriting the wheel over and over. The more you understand the zen of your stack, the faster you can go and the more time you can devote to writing the same thing twice (without them knowing.)

3. Instead of hemming and hawing about the right solution, write all three. It is often faster to write all three and choose one than to get stuck in analysis paralysis. (That isn't to say you shouldn't think before you write code!)


Finally, you can attack this from a discipline angle.

1. Learn to meditate. By doing so, you can become more self-aware of analysis paralysis, calm your mind quickly, and mindfully choose a path.

2. Exercise. In the same way as meditation, exercise helps us learn to clear our mind and focus on command, and it helps sharpen our discipline chops.

With these, we can develop an awareness of how our body feels. Then we can develop an awareness of how analysis paralysis feels. If we can catch ourselves in the act, we can then institute something from our analytical skills: When caught in the trap, set 30 minutes on your timer, and bring out a pad of paper. If you feel you have the freedom, turn off the monitor.

Take deep breaths, and sketch out the solutions in the first ten minutes on the first page. Use UML or your own system.

In the next ten minutes, write a pro/con analysis on each path.

In the final ten minutes, make the decision. After this, your analysis time is up and you must code.

I suggest a combination of the above.

Good luck! It was one of the hardest things for me to defeat.

haroldp 2 days ago 1 reply      
I wouldn't say that my, "entire being opposes the task at hand". I would reserve that sort of language for ethical reservations about a task. I do not do things I consider unethical.

But I do encounter many chores in my work that are boring, that are bad ideas, that are for difficult customers, or often all three. I can have the same problems getting those tasks done, just like you describe. Actually, you seem to be way ahead of me because it took my far to long to figure it out. I thought I was losing my ability to program. I was wondering if I was going to have to find another career because I had lost my ability to concentrate. I was reading books on getting things done, and concentration and trying to figure out what the hell was wrong with me. I would sit down to do a task, check email, check reddit, check hacker news, check reddit, get coffee, go to the bathroom, check reddit, "Arg! I have shit to do!" Check reddit, check IRC, etc. I caught myself more than once closing a browser tab with some distraction, pausing for a half moment to organize what I should actually be doing and then open a browser tab to the same thing again.

The insite came when I finally got something engaging to do, and I just powered through it. I could still program! How did I get in the zone? How do I get there again when I need it? Well I worried about hat for a while, thinking there was some combo of sleep, nutrition, environment and task management software that I could line all up and get back to "the zone". It finally dawned on me that I subconsciously find distractions to avoid doing things I don't want to do. What a revelation.

How do I get over it? Well I still struggle with it, but simply identifying the problem was a huge step towards fixing it. Here are some techniques that I use:

Pomodoro technique. This is a productivity trick that actually works pretty well for me. The short version is that that you make a list of very small tasks, then work for twenty minutes (straight! no phone, no emails, no coffee, no bathroom), then take a five minute break. This helps with distraction problems because you can tell yourself, "I can goof off in 7 minutes". It sounds like a lot of interruptions, but I'm amazed at how much I get done with it.

Creating crisis. I work harder with the Sword of Damocles hanging over me, so I put those swords there myself. Call me back at 2:30 and I will have this done. Then I'm good for two hours of, "oh shit, oh shit, oh shit," type production.

Pair programming (and rubber ducking). This really helps to power through crummy tasks. Unfortunately, I work from home for a tiny company. I don't have anyone to program with. But if I am really stuck, I can ask my wife to sit next to me, while I explain what I am doing, and what I am trying to accomplish, and the details of what I am coding as I code it. I can use this occasionally to get over a hump.

Change of venue. I have struggled to find some shitty bug in some shitty spagetti code for a crappy website selling stupid things for WAY too long. The only way I broke through was to take my computer somewhere else, in front of other people. David Sedaris has a great story about a book suggesting he make a change in his house to help him quit smoking. Buy a new couch or something in order to change the venue. In our comfortable habitual surroundings we act in comfortable habitual ways. So he moved to Japan to stop smoking. I can't do this every day, it's just for breaking major blocks.

Anyway, I need to get back to work. Good luck!

rockdoe 2 days ago 0 replies      
Also I waste considerable amount of time trying to do things in the most readable, maintainable and simple way possible.

Is waste really the right word here?

They don't see how many hours I have wasted, how unmotivated I am. Instead they treat me as one of their most valued employees (oh the irony!).

"When given a vague, annoying feature to implement, very carefully considered approaches and built it in a surprisingly readable and maintainable way"

What you're experiencing isn't atypical - sometimes programming something sucks! Your employer values your ability to power through it and still get good results.

eduardordm 2 days ago 0 replies      

I'm a manager, and sometimes I feel like you. Sometimes I need to ask developers to do things I don't believe in or things I'll throw away in a few months. This also demotivates me. You need both a lot of discipline and just a bit "aloofness" to keep going. Care less about those tasks, think about friday.

If your managers are any good, they know you have wasted hours, they know you are unmotivated, and they know those meaningless tasks are the reason, this is why you are a valued employee. I'd rather argue to death with an employee because he thinks his idea is best for the company than one that will just accept any task like a robot. But sometimes you have to implement ridiculous things into software, from clients being just crazy or because of some strange contract clause. This is when discipline kicks in. Such situations shouldn't happen often, but if they are, that's when you should move on.

You don't need to get "in the zone" to get the job done. Just start by doing smaller pieces, put your headphones on. You could just ask why feature is being built, but I doubt knowing the reason will motivate you at all.

martin-adams 2 days ago 1 reply      
I can identify a few times I've experienced having something vague and complex thing to work on. If I were in your situation I'd look at the following...

1. If I'm working on something vague, try to extract more information about it. It's very hard dealing with frequent changes on a complex code base. I'd try to find out who the stakeholders are, customer is, and most importantly, what they are trying to achieve that this serves.

2. Break it down into smaller tasks and measure myself against these. I want to leave work having completed something and not return to work knowing I didn't complete something.

3. Try bringing a colleague in to help you, such as talking through the existing code and bouncing ideas off them. The energy a colleague puts in can help with motivation.

4. Make sure there is an end to it and that it's not an open scope. You'll never finish something if the stakeholder doesn't know what they actually want.

5. If this looks like it's the norm and you're not happy, while you say you can't change jobs now, put the plan in motion for when you can. Think about your CV, learning new things, etc that help. When the time is right you want to be ready to jump.

6. Get enough sleep. I find I procrastinate more when I'm tired. Of course, eat healthily and exercise.

7. Try to remove other distractions, such as any other commitments at work as a 10 minute interruption can cost you an hour if you're not in the flow of the work.

binarymax 2 days ago 1 reply      
It sounds like symptoms of burnout. I am not an expert but I have personally suffered from burnout before...and it took me a while to get over it. It sounds like you are additionally hampered due to being personally obligated.

As far as I know the only way to get over burnout is to stop. If you do not you will suffer more. I wish I had better news.

incision 2 days ago 1 reply      
1.) Doing things you don't want to do, but are necessary for a paycheck or otherwise is a basic part of being a grown-up. Lacking the discipline to simply get such things done and move on is a huge handicap as it's burning loads of time and energy that could be better spent elsewhere.

2.) This is surely arguable, but I think agonizing over a lack of satisfaction/motivation in a job is likewise a waste of time. If you can get those things at work, great - if not, don't try to force it - redirect it to side projects, friends, family or hobbies.

3.) Life is really short and full of trade-offs. Be sure to regularly re-evaluate your position or you might find yourself stuck rather than simply compromising.

>'How do you get in the zone and get it done when your entire being is revolting against the task?'

Through each of the things I described above. Whenever necessary I remind myself that:

* I'm a provider and professional, my family depends on me and I'm paid to do good work - getting this done is not optional.

* My time is short, delay buys me nothing.

* I have no shortage of great things to look forward to when I'm done.

mnw21cam 2 days ago 1 reply      
Yes, I left such a position to go and get a doctorate, because I was fed up with the dumbing-down of the codebase, the way that my colleagues wrote absolute undocumented spaghetti cruft, I had to keep fixing their bugs, and management were making some very dumb decisions about key features. As far as I know they are still going fine, which is surprising given I was the only one who could understand how whole subsystems worked, mainly because I knew how to write safe threaded code.

But, enough on that. A few years before then, I felt like you did, but I wasn't actually in that situation. There is a very real positive feedback loop in effect - you feel like you're doing a bad job, so work longer hours on it, end up taking longer, feeling like you have "wasted" hours, and feel worse about doing a bad job.

Believe your employers when they say you are doing great, otherwise you're likely to be heading down the burnout route which had me off sick for half a year. It's not every coder that has such high standards as you, and that is not something to be ashamed of. Be proud of the code that you have produced. Think to yourself "It's just as well I wrote this bit, because if X had, it would have been awful".

I know this sounds like extreme arrogance, however sometimes it is necessary for the purposes of regaining balance. It sounds like you are being a little too humble. If it gets too bad though, get some help from someone.

ChuckMcM 2 days ago 0 replies      
Time to gently move on to something else. There is a secret they don't tell you early enough, there is no "prize/goal/win" at the end of your life, you just die. Your life is the sum total of all the time you spend with friends and family and colleagues. And every day of that life you spend fighting yourself is a day you will never get back, you will never be able to change, and you will never cherish.

Dealing with a rough situation that you have no external control over is one thing, dealing with a lousy job you do have control over it. Let go, walk out the door, and look for something more fulfilling.

ollieglass 2 days ago 3 replies      
As a manager I've had to ask people to do work like this. I try to share it out as best as possible, so everyone's getting the least unpalatable tasks for them. I've also made myself available to talk through why it's required.

Those conversations have taken my team and I to interesting places. I've discussed brand positioning with developers, and shared spreadsheets of time-to-value models with designers, at times going far outside of people's skill sets and comfort zones. If someone insists a piece of work is a bad idea, I invite them to argue against it but insist that I need them to make their case rigorously. Sometime they'll convince me, sometimes they don't want to work through the reasoning, sometimes I'll try and develop their case and argue against myself. I want to reach a position where we either change the task, or we're both satisfied that the task should be done. If that's too hard, then I'm after a position where they at least have rational faith in my request and my reasoning, and are ok to do the work on trust.

I spend a lot of time on this, for a few reasons.

First, I don't want to ask anyone to do something meaningless. Burnout isn't caused by workload. Workload causes exhaustion. Burnout is caused by resentment. If my team resent their work, that's a deep and important problem. I'll tolerate a only very small amount of that, but I'll let everyone know I'm conscious of it, don't like it, and am working to get away from it. Burnout is toxic and damaging to people and the group as a whole.

And secondly, this kind of explanatory work strengthens everyone's investment in the team and the work. It strengthens the team's ability to think together. As people become better informed, all of our discussions become richer and more valuable. People enjoy the work more, and can relax and trust each other more, knowing that decisions are made in ways they can understand and agree with.

Finally this is also a litmus test for me. If a company won't let me in on it's decision making, dismisses my concerns as unimportant and tells me to just get on with something, they're indicating they don't value the team in the same way I do.

loumf 2 days ago 0 replies      
You can add meaning to your work by picking goals and accomplishing them. It doesn't matter what they are -- just as long as they can be accomplished and you know that you did.

Pick things that incidentally accomplish the assigned goal. For example,

1. Pick an amount of time, like 3 hours, repeat this cycle

2. make a branch

3. implement the feature in the fastest way you can

4. think about why this isn't acceptable

5. throw away the branch

6. do it again avoiding one thing that made the last one crappy

Also, weighing merits of different solutions and picking one is your job -- no need to feel bad about that. Come up with an assessment tool that will help you decide. Time-box decision making, but don't stop thinking about your solution -- just give it the appropriate amount of time, not unbounded.

Making progress is motivating. You want to end up at the same place but have the feeling of progress making throughout the process. I believe that it's possible you are taking the appropriate amount of time to do the work at hand, but you are getting into an anxiety/depression cycle because you can't get into a flow state.

Rudism 2 days ago 0 replies      
I'll throw my hat in with the folks who are saying to get out early before you find yourself in the midst of a truly debilitating burn-out.

That being said, I've worked a couple jobs in the past where I felt similarly to you--one of which I objected to much of what I was working on not only from a utility standpoint, but from a moral/ethical one as well. The only thing that kept me going was the social network I built of similar-minded coworkers. The ability to vent, joke, and commiserate with people who felt the same way I did at the company was extremely cathartic and served as my therapy. I don't think that's a good substitute for getting out and finding something else that you actually enjoy, however, which I eventually did when I realized how it was affecting my mood even outside of work.

djeebus 2 days ago 0 replies      
First and foremost, remember that you're writing code to bring in customers. Your codebase can be beautiful, pragmatic, semantic, and have 100% test coverage; if you don't have any customers, you don't have anything.

"Unnecessary complexity to the codebase"

It depends on what you mean by unnecessary. If you mean "won't bring in anymore customers", have that conversation with your managers. Not all of them are brilliant, and no one gets it right 100% of the time. If you can prove that the feature doesn't provide value, have that conversation with them.

On the other hand, if your boss ignores your input, and you're 1000% sure that there are other features that are more valuable to your business than the one in question, you can always push that one to the back and work on something that's more productive to the company. Depending on your political and professional circumstances, your boss may not notice or care, and their boss may forget about their red herring feature; you might be able to side-step the conversation altogether. This will only work if there's more than a few items on your plate that need to get done soon, and this feature can get pushed aside without delaying or blocking anyone else.

Bear in mind that if you go this route, you're putting yourself, your career, and your neck on the line. If it turns out that it wasn't a good idea and everyone agree with you, you'll look like a genius and gain some clout as a clairvoyant; if it turns out it was seriously necessary, you'll look like someone who pouts when they don't get their way. Either way your boss may also hold a grudge. I'm not saying it's the greatest way to go, just adding it as an option. It's helped me more than a few times in my career, but it's also frustrated my bosses a few times. Be gracious if you're shown wrong though, and quick to admit defeat if it's obvious you chose the wrong path, and you should be fine no matter what happens.

makmanalp 2 days ago 0 replies      
Mark Twain is rumored to have said something along the lines of "Eat your frog" (it may be apocryphal, but whatever: http://quoteinvestigator.com/2013/04/03/eat-frog/). The point is that you should get up in the morning and make a point of doing the worst, most boring, most disgusting task you can think of. And don't think too hard, just get it done. You can decide whether to improve on it later. Then, the rest of the day, you'll be freed of all the worry, wallowing and indecisiveness.

The other thing is that if they value you, it's probably for a reason. You're fulfilling their expectations and providing them with value. Take the compliment and go with it! http://en.wikipedia.org/wiki/Impostor_syndrome

swalsh 2 days ago 0 replies      
You might be burning out, and not even realize it. I've been in a similar situation. The unmotivated mindset leads to additional hours compounding the effects.

My suggestion go on a vacation, if it doesn't get better... leave. You say you're not in a position to leave... but you have to, because its not going to get any better. You're not really doing anyone a favor by burning yourself out for them.

snorkel 2 days ago 0 replies      
Why would your managers fire you?

Your managers demanded a stupid feature, and you took long time implementing the stupid feature due to its complexity.

The only thing missing is you need to warn your managers before you start coding such as "This is going to take long time due to the complexity, many many weeks. Also I don't think it's right for the product either."

As long as expectations are clear beforehand, and you met those expectations, then no one is getting fired, and therefore you should relax and enjoy coding Easter Eggs into each shitty feature.

gknoy 2 days ago 0 replies      
> I am assigned a feature ... that I feel adds unnecessary complexity > [My] managers ... minds are already made up.

One of the things that I found helped me the most when dealing with features like this is to Let Go of Caring about that particular thing. We fight for what we believe is best, but when a customer, manager, or other higher-ranking stakeholder decides otherwise, it's out of our hands. You did your professional duty by arguing for the Better way (as you see it), but now it's time to make the new direction work.

UX team decides buttons should be the way that pisses you off the most? It's OK, you're not the main user.Manager decides that a "Calculate" button is better than auto-re-calculating? That's ok: the users are happier using that. (We can transition later.)They want an e-mail based workflow for approving things, rather than a web-based one? That's OK: these execs spend most of their time with their phones, and don't want to be logging into the website.

Often what we feel is "unnecessary complexity" is a workaround for a key use case that we didn't realize, or yields customer happiness because it's what they asked for. In that case, it's __necessary__ complexity, just like a bit of ugly code that patches a bug. Try looking at it from the perspective of the user or the manager, and really understand why they feel it is important -- quite often, it's addressing a weakness of your software product that you were not aware of, or which you felt was unimportant.

cognivore 2 days ago 0 replies      
Wait, how long have you been programming? 'cause this is essentially the job description of every programmer I know.
orky56 2 days ago 0 replies      
It seems your internal struggle about your perceived inefficiency is burning you out. Rightfully so if you are wasting time on what's not particularly important. Do your managers value the quality of your work as much as you do? If not, do you think you'd be able to live with a slightly lower quality deliverable that frees you from the stress? Perhaps it would allow you to work on that feature you do want to work on.

We have a right to be happy. We should make decisions that satisfy the majority of our lives and where do what we love. For things not under our control, we still need to love what we do.

The easiest solution to your problem is creating discipline and decisiveness. When you give yourself more hours to work than you are expected to, you create a vacuum of inefficiency. You work unsustainably on things of little value. Instead I would force you to a) figure out your success criteria, b) what are those steps, c) prioritize those steps, and most importantly d) set time limits for each of those steps. The constraint of time will force you to get to the 80% quickest. I have written some articles on these exact problems and in the process of creating an app with those insights. Feel free to read more here: https://medium.com/produce-productivity/ee13c1600b6b

neverminder 2 days ago 1 reply      
I'm in a state that you've described pretty much every day. This is reality I'm afraid. Only the best of the best of us get to choose what they want to do, the rest are having a hard time surviving most of the time. I work in a software company and absolute majority of my coleagues are not interested in technology at all. Some of them sit on the same chairs for 15 years turning some ridiculous specs into useless code. As soon as the clock strikes 5 they get up from their chairs and proceed to the exit with unchanged zombie faces. I can swear I saw cows doing that somewhere in the countryside. I spend all the spare time I have to get as good as I can so that I could eventually not be ignored anymore and find a job that I would really like.
ScottBurson 2 days ago 0 replies      
Also I waste considerable amount of time trying to do things in the most readable, maintainable and simple way possible. This means weighing merits of different solutions and choosing one. I am a really hesitant decision maker, resulting in more wasted hours.

This time is not entirely wasted. Even in the worst case -- where the code you are so carefully writing winds up not being used after all -- you are getting good practice in code craftsmanship. The next time you are faced with a decision similar to one you are making now, you will make it more easily: not only have you considered the issues before, but you know how one of the possibilities actually worked out. This is how one builds experience.

I usually find that writing code slowly and carefully is in fact the fastest way to get it done, because it minimizes debugging and rewriting. There are exceptions, such as exploratory programming, when you know you're going to throw the thing away anyway, and in small utilities built for personal use; and there are times when getting something working quickly is important (for a demo, for instance) even though you know you'll have to rewrite it. But these are exceptions. When you're implementing important functionality that's going to be in the product for the foreseeable future and that others will have to maintain and build on, the slow, careful way is best.

It seems to me the real problem here is that although your managers value your work, they don't listen to your architectural opinions. That's a serious problem. Maybe at some point you'll need to tell them, "if you want it done that way, you'll have to find somebody else to do it". Pick your battle carefully though -- it needs to be a case where their way is clearly and substantially suboptimal.

buckbova 2 days ago 0 replies      
When this happens to me I take the time to refactor all sorts of "dependencies" in the process. It ends up being a net positive. Yeah, I added some complexity where it wasn't needed in one area but I've removed some legacy code or redesigned an ugly hack.

They don't know this code is generally unrelated or don't complain to me about it. Only problem with this is I can now be opening up new bugs because these revisions aren't always fully QA'd.

CaRDiaK 2 days ago 0 replies      
I get like this more often than I like to admit. I just break the entire thing down and write a multitude of check box's. Personally I'm using the bulletjournal technique (www.bulletjournal.com)

If I cant get the motivation then I need more abstraction. Abstract until you drop! You are naturally conditioned towards completing things and positivity. That's why people get badly addicted to games like farmville and such. You do something simple, you get something back, you do something else, you get something else. Really your just baking time. But the psychology of achieving is where the addiction comes from. It's not the game. It's the fulfilment from completing something. You need to see this progress visually so you feel like your moving.

It's not uncommon for me (when I'm really low and scraping the barrel) to have a task like for a job such as this;

[ ] Open Sublime[ ] Set-up folder structure[ ] Skim read spec[ ] note areas of concern for later [ ] Describe required method to self / colleague / rubber duck [ ] pseudo code initial method [ ] expand pseudo to code [ ] looks in spec for extra details [ ] list who needs to be contacted for further information[ ] email manager estimate[ ] take a break...

Now you can start to get "little wins" even on something you don't really agree with / want to do. The goal now becomes to tick those damn boxes, not to implement some feature you don't agree with. It might seem strange to tick a box for something as simple as opening a program, but if that's the level you need for your motivation then that's OK. The reality is these check box's are just mental milestones for progression. What's really important is your ticking them though. If you find yourself for hours on end not doing the list, the list is wrong somehow. Perhaps you don't have small enough tasks. Perhaps the tasks are too hi level and need to be split into sub tasks on those. Just tick, tick, tick.

Try it, it might work for you, it might not. This sure helped me though! Good luck.

neumann 1 day ago 0 replies      
I stated a new job after living in Europe for 6 months for a change and immediately realised it is the same job I had back home, with the same destination. The mind numbing drain of the IT work juxtaposed with the non office lifestyle I had before taking the job and was literally destroying my soul. I hated it. I now joke that I became an alcoholic in 2 weeks, because I needed to be so blind drunk every night trying to justify how this will be good for my future. And the same as you, the worst part is that my new colleagues liked me and my managers lauded my on how fast I was, delivering great work. I spent the second weekend walking around trying to imagine other jobs, other people, the work culture. Eventually I decided that I could handle the work and push through it, but only if it guaranteed that I could hang out with interesting colleagues and work on interesting problems in the future. I went back my second week and tried to analyse what opportunities I would have given my current role and handed my resignation in after lunch. My boss was shocked, asked if I'd been poached or wanted to work on something else, but I had made up my mind and couldn't wait to try the next thing.

If that story doesn't bring any comfort because you have to stay, one approach is to be open about how you feel at a team meeting and see if anybody else is willing to timeshare the task. However, if this is the sort of task you will always face day-to-day, you will eventually have to decide if that's how you want to feel everyday.

doktrin 2 days ago 0 replies      
I can't say how much this post speaks to me. I've felt similarly for the last month or so, or ever since I was assigned my current project. I don't have any actionable advice, so I'll just share my current situation.

Without going into details, in my case the task is implementing a terrible, hacky solution for a total edge case problem. It's something I will probably never do again in my entire career.

It's draining. It claws at my self esteem, as I sit in the office wasting literal hours during a day not doing anything. The output of the 4-5 hours of actual work I put in over the course of a week appear satisfactory to the stakeholders, which is mind blowing.

I know that the sooner I get this done, the sooner I can move onto something more interesting. However, just working on this particular task has sapped my will like nothing I've experienced before in my career as a developer.

scotty79 1 day ago 0 replies      
What are you feeling doesn't have all that much to do with what you do and what perceived atrocities you are paid to commit.

I have same feelings and I notice that they stem more from being responsible (often self assumed internal responsibility) for the state of the system no one else cares about the state of.

You are just lonely with what you do. People love you for the effect of your work, but you see that they don't care about what you do. And it makes your work meaningless (or even detrimental) from your point of view.

You imagine you could take solace from the fact that you system would be architected beautifully without all this crap people who pay you make you put in there. But that's not true. Artists are generally unhappy. They get happy though appreciation, but not appreciation of common-folk that just don't get art. Only by appreciation of fellow artists.

Programming is a puzzle. It doesn't matter what puzzle you solve. Solving a puzzle of not increasing fragility of your system by adding crappy feature is also a (hard) puzzle that can be solved better or worse. Sometimes solving puzzle brings pleasure if your solution is especially good and programmers think that's the right and only way to get pleasure out of what they do. But that's rare. For each time solution itself brought you pleasure you should have at least 10 times where your solution brought you pleasure just because someone seen it, understood it and respected it.

tl;dr Make company hire more competent people that can share your burden.

falcolas 2 days ago 1 reply      
Not a therapist, but have a look (or better, have a professional have a look) at ADHD-PI. What you've said describes perfectly how I feel at work a lot of the time, and it's what I was diagnosed with.

I seem to have a finite pool for motivating (or more accurately forcing) myself to do work. And when that pool is empty, it's off to HN or Reddit I go. Frustrating, and I still don't have a solution yet.

Hope this helps.

Jean-Philipe 2 days ago 0 replies      
Unless it's morally against my ideals, like violating privacy, stealing money from kids with phones, etc., I don't see that many problems with features I don't agree with. They want it, they pay, why not? Surely, if it was my own company or a team I'd value, then I'd hesitate to implement that feature and argue with everybody about it. But at some point, I leave the project and once I don't I own it anymore, I don't have problems with features I don't like. That is, unless they tell me /how/ to solve the task.

What helps me most is finding a technical challenge that makes the feature interesting and fun to implement. This shouldn't be too hard, if you are free to design the feature technically. Hope that little hack helps you getting things done.

flipped_bit 2 days ago 0 replies      
Welcome to programming!

"Also I waste considerable amount of time trying to do things in the most readable, maintainable and simple way possible"

Motivation is tied to your attitude here as you are looking to do more 'interesting' work, whereas the task at hand looks boring. However the task at hand could be important for the company, so it is important to take trouble understand the big picture here. Most engineers (and I am one of them) are too self-centered to do this, and this can be debilitating.

It involves coming out of your shell, being proactive to talk to the business, product and other areas and see why these set of features that needs to get done has important implications.

At the end of the day, everything is about service. If you enhance your attitude to think more in a service-oriented way (it is not all about you), this changes your 'attitude profile', and in turn can boost your motivation factor by several orders. Suddenly what looked boring becomes very important. It may mean to be more pragmatic ( no ideological fixations on 'purity of code'), roll up your sleeves and get it done.

The valuable service to the customer, can lead into repeat business, which adds to the bottom line, and that later could mean more bonus for you, which you can use it up for that special time with your BF that you have been planning for a while.

lnanek2 2 days ago 0 replies      
This is par for the course for programming. I usually just shrug, write it their way, and figure it is their money they are wasting. It's my job to mention better ways, but in the end, do it how I'm told. One work place in particular we often rewrite the same thing 3 times over. Sometimes it gets better, sometimes worse. On rare occasions, things do actually work out better their way if they knew a different product was coming down the line with different requirements, or a graphics designer pushed really hard for something that ended up making the app look cleaner or kept her engaged in the project even if it was a PITA for the programmers, etc.. So sometimes you'll discover it isn't so bad after you implement it. For the rest of those times, just grab a personal project, or hit a hackathon, and do it your way. Then don't grasp so hard on having it your way on work projects.
jejacks0n 2 days ago 0 replies      
As a programmer and perfectionist with Impostor Syndrome (http://en.wikipedia.org/wiki/Impostor_syndrome), I've learned some ways to mitigate these frustrations and stress causing issues, and figured they might be worth sharing.

I think many of us know your pain, and as a consultant I'm exposed to it on a pretty regular basis. It takes some of the fun out of my job for sure, but I don't let it stress me out. First, we should always want to be passionate about the projects we work on, and I think this is a result of being passionate in general. Being passionate makes it enjoyable, and it allows you to bring your best work forward (which is rewarding), but in our industry we must always create a balance of cost and quality in the midst of a very complex process. To me, this all boils down to priorities and expectations.

When you take your own priorities and combine them with those of someone else, you will never be able to get them to mesh completely. Your priorities may be to make quality code, or to make it elegant or smart -- easily maintainable, extensible, etc. etc. These are things that make it fun, and programmers all know the benefits of these things. Clients, or your bosses, may not understand the importance of these things, or they may, and they may be willing to pay it down later, whatever the case may be, there are conflicting priorities at play and this is the thing you must mitigate to avoid stress.

For me, I must either disregard the external priorities entirely and do it the way I believe it "should be done", or I must disregard my priorities entirely and adopt the external priorities as my own. This may result in technical debt, or a slow progression in the future, or can raise the potential of bugs to be introduced, but these are not my concerns if they are not part of the external priorities.

It's important that you communicate all of my concerns up front, and if it doesn't impact the priorities that are communicated, you must trust that it's ok. If you don't trust that it will be ok, or think you will be negatively impacted by doing it the way you're being asked to do it, you should leave. A management(or client)/ employee relationship is built on trust, and if you don't have that trust you will be less happy than you could be.

scardine 2 days ago 1 reply      
Don't get so emotionally attached to the job, it is not professional.

Sometimes I have the impression that the younger don't know how to take it like a man. There is a difference between complaining and whining, guess which one makes a man miserable...

Reality is hard to change, but perception is easy. You can really improve your happiness by reworking your perception.

Take some distance and look at the big picture: as an Employee, your main concern is if the pay check cashes. Everything else is ultimately a problem for the business owners (professionals are pragmatic, not cynic).

If your vision does not align with management and you happens to be right, it is a lot more sad for the company than for you personally. It is not your baby - wish them good luck, do your side of the deal as well as you can and don't suffer over it. You have your startup, your own baby to look after.

neeleshs 2 days ago 0 replies      
Yes, I have been in these situations. For me, there was no getting in the zone - I used to spend a lot of time pushing back, trying to oversimplify a solution, or just freezing because I was not stimulated enough by the task at hand.

Ultimately, I chose the path of gritting my teeth and getting over it. During that phase, the code quality suffered a little, but I did not have to waste hours and hours of my life freezing on it. This phase lasted for a few months in some cases.

This is by no means a long term strategy - I accept it as part of any programmer's life and simply deal with it without being emotional about it as much as possible. I have been fortunate enough to get more exciting work than mundane stuff

jhh 2 days ago 0 replies      
I don't think that's specific to programming. It's what we all experience when we procrastinate.

Set yourself small very clear goals which you write down and where you commit yourself to finishing them in a given amount of time.

However, what your mind is telling you with the feelings you experience in my opinion is something along the lines of "Don't do this, it's not great".

So when you experience this very often, you need to change something in your life, or else you'll fall into depression because you have overcome your inner hesistation one time too often.

Don't take this as a scientifically accurate account, just my personal experience.

e12e 2 days ago 0 replies      
> (I am not in a position to change jobs at the moment. I am helping my> BF's startup by doing this job.)

Quit. Get out. Work out a plan with your BF. It's no good to you or himif you destroy yourself on work you hate. Be happy and poor togetherrather than rich and dysfunctional apart.

I've never had to work (for a long time) in a job I truly hated, butI've felt the pain of working in a company with a poor managementculture -- it's taken me a long time to get back the joy of developmentsince I left. I now work in a completely different, low paying job --but it's better being payed less and not having to compromise your workevery day. I'll probably end up with another job in the industry (well,I hope, anyway!) -- but I'll be very careful in choosing where I apply-- unless I manage to make a living independently.

For you it sounds pretty much anything, anywhere would be an improvementthough...

I had a gf that worked in a job that crushed her (shedid the right thing, moved away, got certified as a padi instructor andnow lives with her husband and their child, both working as divinginstructors -- I'd say she made the right choice :).

Quitting might not mean that everything works out for you and yourcurrent BF -- but it sounds like staying will ensure that things willnot work out for you.

Anyway, good luck, whatever you end up doing...

Sir_Cmpwn 2 days ago 0 replies      
The question I thought this title was asking, and one I'd like to hear answered, is: "What do you do when you're asked to do work that you feel is unethical, as a developer?" For example, I was recently asked to build a system wherein users would be refunded actual money into "credits", and allow the administration to modify the value (1 credit != $1) arbituarily.
stopachka 2 days ago 0 replies      
The biggest thing you can do is to align yourself as working together with your managers. You are not a code monkey.

What does this mean?

Well, if they assign you a vague task, you get clearer about it, you ask them why they want to do it, what the objective is. A lot of the time, you could be wrong, and with their objective it makes sense. A lot of the time you'll be right. The best way to show it is to mock it up, and explain your thinking on why it's wrong.

The biggest killer is when you feel like a code monkey, it's usually not the work.

zawaideh 2 days ago 1 reply      
Every job has some aspect of it that you will resent, and we've written about it on our blog (http://blog.sandglaz.com/how-to-do-tasks-you-simply-resent-d...).

I've been there before, and had some periods of time at a previous position where it felt like every minute of the job was a struggle. Getting things started was the most difficult for me, but once they were started, I could get them done.

If this job is just to pay the bills, and is not critical for your career, then:* Work on autopilot. Do what is required of you, and use some of your time on the job to learn things that would advance your career. For example, for each 4 hours worked, allow yourself an hour of learning something new to advance your career.* Find outside activities that you look forward to each day. Don't let the job define who you are. If you do, it could crush you.* Since they value you, ask to work reduced hours if possible. The less time you need to commit to the job, the less likely you are to burn out.

However, I can't help but recommend that you stay on the look-out for a job that brings you satisfaction and challenges you to do your best everyday.

hownottowrite 1 day ago 0 replies      
Like others, I would encourage you to take some time off before you burn out. However, I also understand what you mean about not being able to escape this job.

I've had numerous jobs where I felt I couldn't leave for certain reasons. I would stay usually a few years too long and later come to regard the decision with a mixture of regret and weird, sanctimonious pride.

Take a few hours today and read Man's Search for Meaning by Viktor Frankl. It's a short book, written by a psychologist and concentration camp survivor. The book demonstrates that is possible to find meaning in the worst situations, especially those you "cannot" leave. It may also help you understand why you need to think about choosing a different path.

thisone 2 days ago 0 replies      
Have I been in these situations? All the time. I care about the software we produce, so I have strong opinions about the development of it.

How do I handle it? I say my piece, I listen to the response from my boss. If he disagrees with my analysis, then I accept it, sit down and do the work to the best of my ability.

exodust 1 day ago 0 replies      
Could be just laziness maybe. Mixed with possible relationshop pressures (hinted by earlier submissions I noticed).

"My managers don't fire me". Perhaps show managers the post written here? I dare you! But they pay your wage.

Put headphones on and listen to the right music or something to encourage focus. Yep!

I think everyone is in the same boat as you in some way or another. "wasting considerable amounts of time" could be a worry though.

"Seriously affects the quality of my life"... surely the quality of your life is not a consequence of "unnecessary complexity in the codebase"?Good luck anyway :)

Edited - I'd had some wines

MartinCron 2 days ago 0 replies      
A very short mantra that has helped me: "Own what you own".

That is, if I see a project as someone else's, and my job is to help them do their best, I am happier than if I see a project as "mine" and other people are just screwing it up.

Like many important life lessons, I learned this one a day too late.

bdcravens 2 days ago 1 reply      
Find something about the task that intrigues you, and build your motivation around that. A new gem, or new language feature, etc.

I've also found focusing on tests helps. Write as many tests as possible - focusing on getting those to pass. In theory, by the time you're done, the feature will be to.

mmilano 2 days ago 0 replies      
You're there by choice because your BF needs your help, yet you write about how you're surprised they won't fire you. That probably makes less sense than any feature request they have sent you.

It's a good question though.

After analyzing requests I have issues with, I will setup a meeting to discuss what I think are the issues, and propose a better solution.

If they push it off as "This is what the customer (or some other decision maker) wanted", I ask if we know if they have considered the issues and if we can propose alternatives.

If they still want to move forward, I ask or work with them to discover more detail about how it will be developed, and make sure they fully understand and explicitly acknowledge each piece I think is insane, irresponsible, or otherwise.

It usually doesn't get to that with good managers or clients. If it does, and it happens regularly, it's time to fire them and move on.

veganarchocap 2 days ago 2 replies      
Currently fighting that same problem, I'm more of a programmer, but I'm being placed on really, really fiddly UI 'features'.

I've made about 10 cups of tea, gone to the toilet about 6 times, read every tweet tweeted in the past 24 hours. Started three arguments, considered quitting and storming out... it's horrible and I'm glad you posted this because I've been going through exactly the same thing.

motters 2 days ago 0 replies      
If I was in that situation I'd try to get a different job. I know how hard it is to do that in the current economy though, so failing that I'd just do the minimum needed and be uncompromising about working only the assigned hours so as to maximize my utility outside of that particular employment role.
JoeAltmaier 2 days ago 0 replies      
Argue more compellingly. Your managers don't 'get to' make the decisions, they are responsible for making decisions, using the best information available. As their best programmer, you are the source of that information.

When I am asked to do what is not rational, I refuse and give argument. But to play this card you have to be willing to pick up your coat and leave, not as a threat but as a last resort.

You say you're stuck there, but the reasons are not yours, they are someone else's. Get over that and your options open up.

toxiczone 2 days ago 0 replies      
I don't have any tips for you. I am stuck in the exact same situation. I'm actually thankful that you shared your story and several of the comments posted here. It made me feel less lonely with my situation.

The quitting part, moving on to a new job is not an option for me as I am convinced that it is the same exact situation in most businesses around my area.

I started working on some personal projects which helps a lot, but does not solve my problem.

I find myself pushing to the last minute before the task at hand is due. The extra rush of adrenaline from the looming deadline gives me the kick I need to overcome the meaningless work I am about to do...

Good luck.

cheetos 2 days ago 0 replies      
I was in the same position as you five years ago. I decided to leave and work on my own product. I worked 80-hour weeks for months and years, sacrificed my health and relationships, but the motivation of working on my own thing kept me going. It was incredible. Just a few months ago, the product was acquired, and I joined their team. And now I'm dealing with the same nonsense I was dealing with at the original job.

As developers, this problem isn't going away any time soon. Our options are basically to create our own thing and be our own boss so there is no management to frustrate us, or just give in, write the code, take the check, and enjoy our lives outside of work. It's that simple, but it's also quite liberating when you allow yourself to accept it.

jheriko 2 days ago 0 replies      
you have to make a choice imo. you can either suck it up and get on with it or flat refuse to do it. if you feel strongly enough then refuse to do work and quit the job... fulfil your contract to the minimum possible whilst giving them every legal reason possible to want to pay you to go away.

however i feel inclined to reserve that for serious problems, like weak leadership, oppressive or immoral behaviour etc. rather than poor features or undesirable work...

doing things you don't want to do is part of work. letting your leaders make their mistakes and learn from it is part of it too. i'm strongly inclined to say you just need to grow up a bit and get on with it... and be grateful that this is a 'problem' for you because its nothing compared to what most people consider to a problem in the workplace.

peter-row 2 days ago 0 replies      
Grant me the serenity to accept the things I cannot change, courage to change the things I can, and wisdom to know the difference, right?

Your problem is not really knowing if you can change things. Or whether it's worthwhile to change things. Ultimately, you can't really know whether it's better to try to change things (communicating better, focusing more on design vs writing code faster, getting a new job), so you have to accept that.

So ... whatever you choose to do, you can't really beat yourself up over making a bad choice. It's a hard decision. Whether you stick with the job and try to change people's minds, do things the way you currently are (but without stressing so much), or find a new job is a difficult decision, but no choice really stands out as a clear winner (from the little you've said), so just pick one and go with it.

If you want a new job, go hit up linked-in.

If you want to do things the way you currently are, just accept that programmers "waste time" - there's a reason why competent programmers often only write 10 lines of code a day - it's not easy work.

You can try to communicate better, but really, some people just don't listen. Or maybe the managers don't have a choice - they either have managers or customers.

Finally, work harder on documenting / presenting your progress. It never hurts to write stuff up, and explain the decisions you're making or the technical reasons why progress is slow.

tomohawk 2 days ago 1 reply      
You can't care about the problem more than the customer, or you'll go crazy.

That is not to say you shouldn't be proud of the workmanship of what you build (not quite the same thing as being proud of the product).

Unless you have a position where you have design authority, stop worrying about the why, and focus on the workmanship. Impress those that do have this authority with how well you do with what you're given.

If you believe that you have insights into making a better end product, then learn to communicate those insights at the appropriate time (before they've made up their mind). Try to get ahead of the curve and propose your ideas.

Havoc 2 days ago 0 replies      
>>Have you been in such situations?

Similar - not coding though.

>>How do you get in the zone and get it done

I treat it as an optimization problem. Specifically because I have a problem with this too:

>>I waste considerable amount of time trying to do things in the most readable, maintainable and simple way possible

So I consciously aim to force that compromise between quality & time more towards the time side. That goes against my fundamental nature, but I've come to the conclusion that I must learn this...and as a result it feels more like a learning & personal development challenge rather than me doing something I don't want.

untog 2 days ago 0 replies      
You should change jobs. I know you are trying to support your BF's startup (do you have equity in it?) but if he really cares about you he'll understand that you are on the brink of utterly burning out and need a change.
marvin 2 days ago 0 replies      
My suggestion: Major lifestyle change before you burn out and involuntarily go out of business for six months. Take control of this while you still can.
lberlin 2 days ago 0 replies      
I can't comment on the situation of writing code for useless features for bad managers. That is a separate mental hurdle.

But I think all of us sometimes struggle with sitting down and getting things done. When we have a bad day, it's because we struggled making decisions and didn't end up accomplishing very much in our own eyes. We're our own harshest critics.

One thing that I've realized (actually just in the last few days) is that you simply feel 10 times better at the end of the day if you write a lot of code, knock of tasks on the to-do list, and generally "get things done".

Knowing that diving in and doing hard things will make you feel good makes a huge difference for me. It's like "Ok, this might suck a little getting started, but it's what will actually make me feel good and happy." It's really easy to sit and think, or read the internet, but it's not a good feeling at the end of the day.

As far as wasting time, whenever I'm struggling coming up with an approach or solution to a problem, I start writing it down. It usually doesn't get too far just in my head. But if I map it out, write it out, I get back to working on it much faster. An inefficient solution that works gets you much closer to the final product than struggling to find that "perfect" solution right off the bat. Make it work, then optimize.

TheGunner 2 days ago 0 replies      
I'm glad I'm not the only one that gets this sometimes.

I can completely identify with some of the points made, my particular frustration is working with appalling specifications that are 9 times out of 10 incorrect/incomplete quiet often leading to features being written multiple times. It's demoralizing. I have no particular solution, some will say just knuckle down but it's easier said than done, there are some tasks that just can't be made interesting. Unlike the OP I can change job and am, next week.

sidcool 2 days ago 1 reply      
I might be playing a devil's advocate here, but isn't our job as an employee to follow the direction and vision of the management? I am not asking you to sell your soul. It's just that sometimes in a career one might need to do work that one considers below his/her capability. My manager sometimes makes me fill up excel spreadsheets of who is working on what and for how many hours. It sucks, I hate it. But I have to do it.

I am not mocking your situation. If it's really bad for you, follow jblow's advice. But if it's a once in a while demotivation, swallow the pain and go on. You will reach greater heights and from there these menial times won't matter.

Just my two cents.

tks2103 2 days ago 0 replies      



Listen to music.

I never found the ability to rationalize a task I dislike. Instead, I find joy elsewhere and try to preserve that feeling as I tackle the task.

ebbv 2 days ago 1 reply      
While I can 100% relate to your scenario, a big part of being a professional at any job (not just development) is being able to set aside your personal feelings and emotions and get your job done.

It's good that you are getting your job done, but it seems that you are still having issues setting aside your personal feelings and emotions. This is pretty normal for inexperienced developers. It's something you should focus on working on.

Here's how I developed that skill:

1) Remind myself that this is not my company or my project. It's someone else's. There's no reason for me to feel so personally invested in the project as a whole. If I've voiced my concerns and thoughts and been overruled, then my job is to get what is asked of me done to the best of my ability.

2) Have side projects that ARE personal and that I CAN be emotionally invested in. When you have a side project where you do call the shots and it's done 100% the way you want, you will find it is easier to not be so emotional over your day job.

3) Lastly, I have found that as I get more experienced and better at explaining myself, situations where managers overrule me and tell me to do something that is against my own recommendation become more and more rare (they'll still happen sometimes as long as someone above you can make unilateral decisions, so never expect it to fully go away.)

It's good that you've recognized your situation needs to change. Best of luck.

swframe 2 days ago 0 replies      
1) Look at the problem a different way and try to find a way to make it more interesting, attractive and (most importantly) impressive. I had to find and fix a tedious problem so I wrote a visualization, defect detection and automatic correction tool. If you have the freedom, try solving it with a new language or technology that you've always wanted to learn.

2) Challenge yourself to finish the project as quickly as possible. If a realistic estimate is that the work will take 1 week then try to finish it in 1-2 days. If it is awful work, try to get it over as quickly as possible. It helps if you can find an existing solution that you can use as a starting point.

3) If you're paid hourly, you might consider outsourcing the problem to someone off of elance. You should reframe the problem so that it doesn't require you to share any info (source code etc) from your employer with the person you outsource to. Ideally, ask the person to create an open source project on github.

cliveowen 2 days ago 0 replies      
Frankly, it's just called programming. Programming is that pesky, resilient three-headed monster between your idea and the finished product, you have to give in and tame it.
alexhornbake 1 day ago 0 replies      
This advice was given to me by a friend when I was dealing with less than ideal employment situations.

1) Change the way you feel about the situation. Is this a me issue?

2) Change the situation externally. Talk to management, etc.

3) Leave

It sounds like you've tried #1 and #2 to some extent. I was in a similar situation. I left the company, and found a much healthier environment where I can actually use #1 and #2.

AnthonBerg 2 days ago 0 replies      
Coffee and smoking make this much worse for me. (In fact when I don't smoke and drink coffee I don't have this problem - whereas when I do, I do.) Leaves me to conclude that it's based in anxiety.
JSeymourATL 2 days ago 0 replies      
You've got a huge opportunity here to practice the art of Managing Up and Managing Oneself -- impacting your quality of life.

- Eliminate ambiguous requests. Can you probe for your managers stated/unstated objections & needs?

- What's the expected outcome? Are your recommendations easily understood and compelling? Is your business case sound?

- If the managers are happy with schlock work, can you ever be OK with that?

Ultimately, the power is yours.

Nursie 2 days ago 0 replies      
Express your concerns, do the work as well as you can, find another role.


m_coder 2 days ago 0 replies      
It seems to me that this kind of situation is what some types of programmers try to escape by creating "amazing" code. This is the kind of code that you come back to a little while later and wonder what you were thinking when you wrote it.
rlaanemets 1 day ago 0 replies      
I recognize the situation. Seems like the project is lead by people who have not failed before because of feature creep. If you get paid by hours then keep logging hours and try to be happy. But make sure they know about your concerns and feelings that their decisions may derail the project. And keep looking for a peaceful way out.
lectrick 2 days ago 0 replies      
Learn to write GOOD test suites. Once you realize that they are preserving your sanity, they will actually become fun to write.
gmarkov 2 days ago 0 replies      
Consider the following - maybe your managers realize how vague task is, they also realize that you put a lot of pressure on yourself to make it, as I understand without strong support. I have been many times in same situation, usually when this happened first: I read "The humble programmer" :-),which reminds me that there is always something that I don't know, second: look again on the task and try to find its challenges, things that after completing them will make me a better programmer.
aniro 2 days ago 0 replies      
I just read this stern but lovely dirge in a novel last night..

"Do you wrestle with dreams?Do you contend with shadows?Do you move in a kind of sleep?Time has slipped away.Your life is stolen.You tarried with trifles,victim of your folly."

Life is short. It is time to see through the trap you have woven around yourself and move along. Just do it constructively so that in the end, EVERYONES interests will be better served.

jeffrwells 2 days ago 0 replies      
The advice of burnout, changing jobs, etc is well covered already.

I have been doing sole crushing work for years in school. When you don't have a choice, the most useful thing for me to get started is the pomodoro method. Spend just 25 minutes of agonizing work and plan what you want to do for the 5 minute break. Usually after 1 or 2 cycles I actually get focused and motivated enough to make some progress.

fenesiistvan 2 days ago 0 replies      
Just search the internet for "get the shit work done" to find the answer for your problem. Really. You can find also some good practices.

I believe that most of our jobs can be divided to two parts:

-the fun part (interesting/fun/profitable work)

-the shit part (boring tasks/emails)

So, just get the shit work done when it needs to.

KhalPanda 2 days ago 0 replies      
> What do you do when your entire being opposes the task at hand?

...anything other than the task at hand, obviously. :-)

JohnOfEgypt 2 days ago 0 replies      
Been there before, luckily just few times.- Put yourself in a good mood, music helps a lot, energizing beats, try Panjabi MC!- Slice the feature into small deliverable, hint: use index cards and a sharpie, yes, it's magic.- Finish one story (index card) at a time and have a tiny celebration (coffee, cookie, walk ...) every time you do that. DON'T skip the fun part.

Always think of yourself as an explorer collecting and connecting clues on a mysterious adventure!

Keep in mind, business drives programming, not the opposite. The codebase is only worthy as long as the product is selling (with the help of your managers).

rabino 2 days ago 1 reply      
Open HN.

No, seriously. I go work somewhere where people can see my monitor. Helps me keep out of Facebook, etc.

bowlofpetunias 2 days ago 0 replies      
For one thing, stop feeling guilty.

Whatever the reason you are feeling depressed with your current situation (already lots of good suggestions in this thread), feeling guilty about wasting time or cheating your managers is basically a form of inflicting self-harm on top of everything else.

You're getting paid for whatever you do, and apparently the people that pay you are happy with the results even if you aren't, so just put that aside and focus on what makes you happy.

pechay 2 days ago 0 replies      
Don't let yourself get paralysed by indecision.
pasbesoin 2 days ago 0 replies      
I spent a lot of time forcing myself to conform to others' wishes and will. Or to "work around" the problems, e.g. by staying late -- both to get some quiet time at work in which to concentrate, and to avoid some nasty neighbor issues at home.

Ultimately, I ended up at another definition of that word: "Spent".

I'm just saying...

iondream 2 days ago 0 replies      
sounds like you might need therapy. I've had a similar problem and speaking to a therapist helped.
moron4hire 2 days ago 1 reply      
Actually, you could probably quit and it wouldn't be as big of a deal as you expect. Most people over-estimate the risk of quitting. And most people are a lot more understanding than we give them credit for.

Every time I've reached that point that you have described, I've quit. It was the best thing for me every time, too. There is no point wasting your time doing something you don't want to do, especially if it's for someone you care about. You'll just do a shitty job and you don't want to dump shitty jobs on people you care about.

Is it just that the work is boring, or are you being asked to do unethical things? I mean, either way, I would quit, but if it's anything unethical I would urge you to run as fast as possible.

However, if it's just "boring" work, perhaps recasting it in a different light might help. Look at it as a game of seeing how many you can finish in a single week. Stop worrying about doing the "best" job on it. If the project is so boring to you, then you probably shouldn't care so much about the quality of it. Just dump out some garbage, get the checkboxes filled, see how much you can get away with. Make it a learning experience, a chance to test your boundaries.

aaronem 2 days ago 0 replies      
You have no power to choose the features you're assigned to implement. The most, then, for which you may reasonably be held responsible, even by yourself, is that you implement a bad idea in a good way. From the sound of it, you've got a lot of practice at that, and you've made it a habit. That being so, you have nothing for which to reproach yourself. Cultivate detachment, and relieve yourself of the need to try to take on more responsibility than your authority can support. This will free you to concentrate on what you can control, i.e., the quality of your implementation.

And, if you can't change jobs, then consider coming up with a side project. It doesn't have to be commercial, or even of particularly general application; even if you're just scratching an itch of your own, it'll give you scope to exercise the agency whose absence in your day job is giving you fits.

ChristianMarks 2 days ago 0 replies      
OP, do not listen to the moralizers who tell you that you need to exercise discipline and will power. Let them deplete their limited reserves of will power and see how far it gets them: you can change your environment so that you thrive in it. And that beats relying on will power and discipline by orders of magnitude. Quit early and often.
peterwwillis 2 days ago 0 replies      
So there's this feature, and you don't like it. You don't want to write it. So your brain starts backing away from it like it's a burning ship. You begin to give yourself excuses. You subconsciously imagine it will take a long time or that it will be tedious. You are basically subconsciously convincing yourself that you will hate it, for any reason. And the less you want to do it, the harder it will be to make yourself do it.

But it's in your head. Using simple tricks you can change how your mind interprets the thing, and put yourself ina more receptive state to be able to accomplish the task without it seeming like a battle of wills.

First, put yourself in a good mood. Listen to your favorite music, eat or drink something pleasant, think about the fun things you'll be doing soon. But whatever you do, don't villify the work or think "I can't wait for this to be over!"; that's just more avoidance.

Once you're in a better mood, walk through the work in your head so you understand everything you need to do, and estimate the time it will take, but shorter. Try to find something positive about it to work towards, or something good or interesting you want to see come out of it. It could be something as simple as timing how long it takes for you to write five methods. To prevent further avoidance behavior, remove your watch and hide your clock. If you can, move to a quiet place where you can focus with the least distractions possible.

At the end of the day, if you really don't enjoy your job, you probably need a different one. But it's a mistake to confuse a bad job with an unwillingness to do work you don't agree with. Consider yourself their savior, and do it in the best way possible so that it minimizes their crappy decisions and emphasizes your skills. Imagine you are a woodworker; maybe you didn't want to build a cabinet today, but you're going to build the best god damn cabinet those jerks have ever seen.

(Also: consider if you will be with this BF in five years and whether wasting this part of your life will have been worth it. Kind of a crappy thing to imagine, but you can't spend your life doing things you don't like just because it makes someone else happy)

itistoday2 2 days ago 0 replies      
Get someone else to do it.
logfromblammo 2 days ago 1 reply      
Just check out. Hang an "out to lunch" sign on your brain.

There is no solution within your reach for management that is ignorant with respect to your job. Stop putting forth extra effort that will ultimately be wasted. Clearly, you have discovered serendipitously that no one can tell the difference between you doing your job well and you doing your job poorly. So stop trying. Just relax and do the first thing that could possibly work. Really build up some technical debt. Management probably does not even know what that is.

That way, you can use the ever-increasing bogosity of the code base as an argument for being resource constrained. Lobby for junior employees that report directly to you. The end goal is to set yourself up for a job hop into a better position at a better company.

The one you are working for now can be definitively marked as a dead end. So milk them for cash and emotionally disengage. Get your spiritual fulfillment by investing your creative talent elsewhere. Meanwhile, coast until you can bail out safely.

That's about what I'm doing at my crappy, soul-crushing job.

skimmas 2 days ago 0 replies      
you quit.
Ask HN: Do you struggle with getting more customers?
3 points by izzyfoshizzy  8 hours ago   8 comments top 3
NameNickHN 6 hours ago 0 replies      
Getting customers directly is actually not the problem. The usual marketing and growth hacking tools worked quite well. Our problem is getting partners that refer customers. I don't mean affiliate partners but real partners that include our service into their service as a complement product. Potential partners happily include Google Maps and phone call back forms but shy away from using our service, even though it would make them money and could be really useful for their customers. The opportunities are there. We've spoken to a couple of promising partners but they a dragging their feet. If they would at least provide some feedback as to why they balk at using our service, that would be great. But that is apparently too much to ask for.
justintocci 7 hours ago 1 reply      
We tried to get feedback prior to release. We put up a website and tried to get some postgres people to engauge. We were lucky, when no one was interested we were able to pull down the website and no one was harmed.

We use our product internally for a few customers so no harm done that no one was interested but, to be honest, it stung a bit.

I think it probably would be easier to build for consumers or businesses. Our product was a developer tool so we knew our chances were slim. We actually got only two email addresses and when we tried to reply to one we never heard back. A couple days later we pulled the site and went back to the drawing board.

We now have a plan to go B2B with a product and we have a first client so we're moving forward. I thought it would be tough to get the team to change focus but its actually been energizing.

I was also afraid we'd have more than one idea with the team split as to what to do.

jamesjguthrie 7 hours ago 1 reply      
I struggle with it too. Sometimes there's loads of work then sometimes none. There's plans to start that never materialise. They always think you're too expensive. And they're always SO persnickety with their damn PSD layouts!
Ask HN: I'm going to start working remotely soon, what should I know/use/buy?
3 points by hndl  9 hours ago   3 comments top 3
dennybritz 4 hours ago 0 replies      
Make yourself a work/free-time schedule and stick to it. It's tempting to say "I can work whenever I want", but this also means that work will always be on your mind. Drawing a clear line between work and play helps you to stay sane and allows you to switch off work-mode.
doomspork 8 hours ago 0 replies      
Having a separate office at home has really helped me manage my work-life balance. When I enter my home office I'm at work and I'm focused on work tasks. The other two things that I've found most useful have been a chalkboard (or dry erase) and a nice desk chair.
skfroi 8 hours ago 0 replies      
Get out of the house. I've been a freelancer for over a year and have a home office and I can't stress this enough. There will be occasions when your brain will just not work and a brief trip to the coffee shop, coworking place, or just a walk can really refresh your mind.
Ask HN: Are we using the final numeral system?
18 points by itry  1 day ago   37 comments top 16
chewxy 26 minutes ago 0 replies      
A bit late to the party, but here's what I wrote in my JavaScript book:

    Asides: Number Encoding    This may be a bit of a strange concept to discuss in a book about JavaScript,    but the numbers that were all familiar with is only one of many different    kinds of encoding that exsits in the world.    The numerical system that we encode our numbers with today came from ancient    India, and was popularized by the Persians, hence the name Arabic-Hindu numbers.    It is a positional system. For example, the number 15 represents 1 unit in     the tens position, and 5 in the singular position - essentially 1  10 + 5  1.    Likewise, 314 is 3  100 + 1  10 + 4  1. This is read as 3 units in hundreds     position, 1 unit in the tens  position, and 4 units in the singular position    There also exists numerical systems which are non-positoinal. Perhaps     the most famous example are Roman numerals. Its also positional-ish, since     the position of the numerals are somewhat important for specific cases -     VI and IV mean very different things. The Mayan numeral system is another     example of a non-positional system, intermixed with a unary-ish system.    Most positional numerical systems have somewhat evolved into the same state,     despite having different runes and conventions to represent the same thing.     But perhaps the greatest innovation to numerical systems is the representation    of fractional numbers in a positional numerical system. It allowed us     to do really much fancier mathematics. However, as can be seen in the example    with 1/3 above, representing a fraction in a positional numerical system is    somewhat difficult.    The reason why this section is even here is to function as a reminder to the    reader that binary numerical systems used by modern computers are also     just another system - imagine it to be from another civilization, if you will     - and not be intimidated by it.     Speaking of fractions, the ancient Egyptians were one of the first civilizations     to use a fraction system (the Chinese were the other). Especially by modern day    standards, it was a very interesting fraction system. The fractions used by ancient    Egyptians are expressed only in terms of unit fractions    - i.e. fractions with 1 as the numerator.
There was quite a lot of junk cut out from my book too about ancient chinese numerical systems - they had different numerical systems for different classes of people, and different numerical systems for different bases. And even had negative numbers!

Your question is actually a question of positional and nonpositional notation. I'm quite sure we'll stick with positional notations for some time to come, but uh, you never know about the future. For all we know, there could be a superior nonpositional system out there.

derefr 1 day ago 1 reply      
I think everyone is misinterpreting the question. This isn't about the fact that we're using base-10. This is about the fact that we're using the Arabic "symbol-valued cardinal exponential" notation:

    ABC = (val[A]  base^2) + (val[B]  base^1) + (val[C]  base^0).
Examples of other systems, as the OP said, are tally-marks (uniform-valued ordinal additive) and Roman numerals (symbol-valued ordinal additive). The question is, is arabic notation optimal for doing simple math quickly? It might not be, given that e.g. mathematical savants seem to be doing something involving geometric/visual computation.

Bud 1 day ago 0 replies      
I'm going to take the contrarian view: yes. Inertia is very powerful. We'll stay with base-10.

Scientific notation is, not, btw, fundamentally a different number system; it only provides for approximation of (most) very large or very small numbers, unless you want to spell out all the digits before the exponent, which of course would defeat the purpose. It's still really base-10.

computer 1 day ago 2 replies      
Your question contains a very teleological narrative, in that you assume/recognize a natural evolution from the first to the last, with cause and result. Partially because you take all of mankind as one group.

Then, to look at your question: who's your "we"? The Chinese already use another system (in many contexts). African cultures use their own systems. And who knows what might happen in the future.

sp332 1 day ago 1 reply      
There are already other notations, like scientific notation which only needs a few digits to represent e.g. 2.3 * 10^8. Not to mention hexadecimal or even base-32 which is used in Bittorrent magnet links https://en.wikipedia.org/wiki/Magnet_URI_scheme#URN.2C_conta...
pirateking 1 day ago 0 replies      
I can vaguely imagine a more advanced numeral system based on geometric visualizations in 2 or 3 dimensions (rather than the existing 1-dimensional digit string), that is also more suited to probabilistic representations than fractions or decimals.

Relational reasoning is a key use case to be considered for any popular numeral system (How many do I have? How do I signal that amount to others? Do I have more or less?). For small, whole quantities (<100), alternate numeral systems could likely reach a similar learning curve as Arabic numerals. Very large and complex quantities, and things of a number theoretic nature are probably areas where a future numeral system will be differentiated.

ddebernardy 1 day ago 2 replies      
Base-10 isn't the only thing cultures around the world came up with. I vaguely recollect that a handful used base-5, base-6 (spaces between knuckles plus each side), base-12 (with two hands) and base 20 (two hands, two feet; or two sides for each finger) -- and probably others I forgot. We still use base 60 (which we inherited from babylonians, and are still using to count time and angles). As well as base-2, base-8 and base-16 in computer science.

Whether we stick to base-10 or collectively decide to use something saner in the future (base-12? base-60?) is anyone's guess, but methinks inertia will spell doom to efforts to part from it, much like efforts to bring sanity to the calendar never took off in the 19th century.

This much is probably sure, though: we won't go back to colorful subdivisions. Nobody except the US (and Liberia) uses anything but the metric system nowadays.

itry 1 day ago 1 reply      
Apart from a different base, how about something completely new? Nobody seems to expect that. Do we really have reached the be all and end all with the positional notation? Or will something come up that we cannot imagine by now?
stcredzero 1 day ago 1 reply      
Bases are more energy efficient to compute with as they get closer to e, so in the future trinary numbers might be the way to count.
zdw 1 day ago 1 reply      
Probably, until our descendants are genetically engineered to have more/fewer than 10 digits...
stevedekorte 1 day ago 1 reply      
If the metric of the relevance is the % of numbers represented or the amount of calculations done with it, base 10 has effectively been dead for many years. It's only used to occasionally communicate numbers over extremely narrow bandwidth channels to or between organics.
abeld 1 day ago 1 reply      
I think Knuth's up-arrow notation (see http://en.wikipedia.org/wiki/Knuth%27s_up-arrow_notation) can be considered a newer way of representing numbers, and it continues the progression you describe in that each the older notations are usable for small numbers, but the newer notations are better for large ones: Knuth's up-arrow notation is only really required for truly gigantic numbers and as a result I don't think it would be generally useful. (As generally useful numbers aren't that huge.)
michaelochurch 1 day ago 1 reply      
I don't think anyone knows what the world will look like in a million years. Will we be around as a species? Given the tendency toward exponential progress in all things we do, I tend to think that within 10,000 years, we'll either be off the planet or extinct. (That's not to say that we're destined to make the Earth uninhabitable, although that could happen. I just think we're "up or out" as a species. We'll either end economic scarcity or kill ourselves off within 500 years, I'd say, and the former means we're mining asteroids and, over the millennia, moving to other planets.)

If we get off the planet, it's unclear what we'll "look like" in many ways. We could be cyborgs. We could have enormous lifespans (millions of years). Unless we achieve such an immortality, we will continue to evolve (physically and culturally) and after a million years on different planets, we'll probably see all sorts of variation in terms of number of digits, representation of knowledge, and language.

So, looking a million years out, the answer is probably "no". Our system may still be alive, but if we're alive in a million years, I'd bet that we're off the planet and human culture will have forked, making the question of what is "final" unclear.

For the next 500 years (even 2500) I don't think we'll see another numeral system. Arabic Base-10 works, and there isn't much ti be gained in changing it . The glyphs themselves may evolve (our "Arabic" numbers look nothing like the original Arabic digits) but the concept will be the same.

beachstartup 1 day ago 0 replies      
probably not.

also, your description is incomplete: we also use binary, hexadecimal, octal and other numbering systems on a regular basis.

6d0debc071 1 day ago 0 replies      
I think we, i.e. those who already use base 10 and neglecting the possibility of us getting invaded in some way, will continue to use base 10 unless our civilisations fall apart. When we handed off the basics of our system to machines so that the low level tasks could be done quickly, the need for a more efficient system decreased. Out to a ridiculously large number, the basic components of our system are, when coupled with machines, essentially instantaneous.

What's 395847593874382754238754987 * 389756987476347629845 ?


What could any system of numbers give me that would make that operation faster than typing it in?

My old math teacher's objection to this was:

"But what if you don't have a calculator?"

And I was not smart enough at the time to realise there'd be more serious problems in a world where I didn't have a calculator and wanted to multiply large numbers (hey, I was only six.)

But what she ought to have said, when I was objecting to learning the tables, was that it makes sense to be reasonably fast with the basics of a system, so that you can do things beyond linear algebra quickly. If you need to stop and work out the very basics of a system every time you do algebra you're probably not going to get very far. The low level tools you have available influence what you can build on top of them.

However, the faster you are at the low level the less the practical gains are. The value of reducing an operation that takes a minute to one that takes seconds is likely to be enormous - but the value of reducing that second to a half second is not likely to be as significant.

It's similar to handwriting. We had a superior system of handwriting that we used to teach: Shorthand. It was more efficient even than most people's typing. But the additional value of that speed over typing was not sufficient for it to remain.

Unless there's an argument that, say, our being a half second or so faster at the low level will allow us access to some new high-level concepts, I think we're likely to stick with it.

instakill 1 day ago 0 replies      
Probably not.
Is there a comparison of Internet speed of cloud servers?
2 points by stefek99  10 hours ago   discuss
Ask HN: Anyone implemented SETI Code in Lisp?
2 points by christianbryant  10 hours ago   1 comment top
christianbryant 10 hours ago 0 replies      
To avoid confusion, the "Code" in the question is generic software "code", not referencing "the SETI code, a interstellar simulated message from Gliese 581g". A mistyped capital "C" :-)
Ask HN: Owe over $100k US backtaxes. Not sure what to do.
63 points by bad_decisions  2 days ago   45 comments top 20
philiphodgen 2 days ago 1 reply      
Follow up comment:

I have responded to two people from this thread and I thought I should make it publicly available to help others who might be out there.

At some point you owe money to the IRS. You've filed the tax returns, you've wrestled with the IRS about waiving penalties, and there is a number. You're looking at it, and it's big.

This is what tax lawyers call "collections work." You owe money, and the IRS is trying to collect. As I noted in my previous comment, the Internal Revenue Manual is the operating procedure manual for Revenue Agents in handling collection of taxes owed. Plus of course there are shards of wisdom here and there that are important to know. Some are published by the IRS (they have an assortment of published documents, like things called 'Revenue Procedures') but some of this wisdom is informal, learned through experience with the system.

The work is time and paper intensive. Going to a tax lawyer is probably not cost-effective, because the hourly rates are too high, and you don't have money. So you need help. Where do you go?

Well, call tax lawyers, accountants, and (most importantly) Enrolled Agents. Enrolled Agents are regular people who pass an exam administered by the IRS that enables them to represent taxpayers in tax controversies.

The particular type of human I would look for is an ex-IRS employee who has left government work and set up shop as an Enrolled Agent. You now have the best of both worlds: someone who knows the inside baseball game, and is out here in the real world, working for you. Also, the costs are likely to be more reasonable that an attorney or CPA.

Look particularly for an Enrolled Agent who specializes in collections work. Buzzwords include "offer in compromise", "Lien", etc.

In the case of the two people who contacted me directly, I pointed them to John Knight in Southern California. His website is www.knight-ea.com (don't judge him by his website) [EDIT: thanks 'dewey for pointing out that it is really www.johnknight-ea.com] and he fits the criteria I mentioned. He gets frequent referrals from the top tax lawyers here in Los Angeles. (I know, because I talk to my colleagues.) I send him 100% of my collections problems.

I am not competent to give advice on exactly what to do in this area -- if you owe a ton and need to figure out what to do. I would recommend that you stay away from any tax law firm that advertises heavily on the traditional media. There are no miracles, but the "One Day at a Time" mantra will carry you through. You will, eventually, be (tax) debt free.

Again, anyone else out there -- if you're in this boat shoot me an email. But now you know what you'll get when you email me. :-)


philiphodgen 2 days ago 4 replies      
Email me. Contact info in profile. The IRS cannot waive interest. That's the law. They can waive penalties but not just because. There has to be a reason. The IRS has procedures to follow. It's a bureaucracy. See if you can fit yourself in the rules. (The rule book is the Internal Revenue Manual and it is online).

I will put you in touch with someone who is good at this.

Appeal to authority: I am a tax lawyer.

patio11 2 days ago 0 replies      
Stupid question, but bear with me: have you filed your taxes correctly now? There are CPAs and there are CPAs. If you don't have someone wise in the ways of net commerce, find someone who is to give you a second opinion. Mine consistently finds me a tens of thousands of dollars every year versus equally valid but less advantageous ways of filing a return with the same underlying economic facts. (e.g. I've used the Foreign Earned Income Exclusion since forever, but when I have a good year, taking the foreign tax credit and some provisions of the US/Japan tax treaty is more advantageous, even though that means I can't take the FEIE. This saved me low five figures one year.)

Knowing what I know about affiliates, it's at least possible on the outside that you might not have had the world's most businesslike records. Can you reconstruct better records, at least for the major expenses for the business? If so, you can have your CPA file amended returns. You'll still be looking at principal and interest for your taxes but it's in your interests to pay principal of $80k and interest versus principal of $100k and interest.

jacquesm 2 days ago 2 replies      
$100K in back taxes means in income of a low multiple of that.

Where did the money go? Did you turn it into assets? If so then you may want to simply sell all or part of what you have.

If you did not turn your income into assets but it has all burned up see what you can do in terms of documenting your business related costs over that time. Conditional on the IRS agreeing with all this you could then make them a proposal on how much you'll pay month-to-month.

If you feel that that is not going to be a possibility you might end up having to declare bankruptcy. That's a real pain in the ass, but if you have no assets and no income that's probably where you're headed. If you have assets or income then likely you can make a deal. If you have assets that are somehow worth something to a bank you could possibly use these as collateral for a loan.

Best of luck!

trustfundbaby 2 days ago 0 replies      
So very sorry my man, I had the same thing happen to me, so I COMPLETELY understand what you are going through.

I had one really good year as a freelancer and wound up spending the money I'd put aside for taxes because a client who had been paying me a retainer suddenly cut me loose right in November (the absolute worst time to try to pick up work as a freelancer). I was burned out and depressed about losing the gig so I didn't work for almost 8 months and wound up burning through the $30k I had set aside for taxes. I missed filing my taxes or an extension and the penalties just mounted until eventually my bill came out to about $40k.

After "negotiating" with the IRS (complete bullshit, they tell you how its going to be and you just have to deal) They decided that I could pay $2k a month on a $80k salary (how insane is that?). I lucked out and got a job that paid me almost double about 3 months later, if not for that I'd be toast.

Its easily the most stressful thing that has ever happened to me. Tax Lawyers were rude and dismissive ("Maybe get a cheaper car?" said one) once they realized I wasn't Mr Moneybags. And nobody can or will loan you that kind of money.

The only thing I can offer up apart from the Offer in compromise is that once you get the bill under $25k. You can negotiate directly with the people you talk to on the phone, once your bill is over that, everything they say/offer you has to go to some faceless manager somewhere, and it can be rejected and ridiculous alternative unilaterally offered back to you.

drzaiusapelord 2 days ago 1 reply      
>but basically the IRS wants all my after tax earnings for 5 years.

Typically the IRS can set you up with a payment plan that's a portion of your income. Its time to find a tax lawyer, not a CPA about this. Settlement/compromise, installment plan over a long term, and even bankruptcy are options.

BryanBigs 2 days ago 0 replies      
I'd get a tax attorney if at the least for the free one-hour consult most offer - preferably one that doesn't advertise on late night TV. I am not an attorney, just a guy on the internet so take my advice for what it's worth.

I think the last step for you is the Offer In Compromise - in simple form you'll show them how much your net worth is, and give it to them. In return they'll retire your tax debt. Obviously, it's going to depend on how much you are worth/vs owe, and if they think you operated in good faith or not.You need to not be in bankruptcy, and current on all filings to offer it. They also will come down HARD on you if you miss any filings/payments for 5 years after.

pdevr 2 days ago 0 replies      
Did you commit any allegedly fraudulent activity to get that money? Not trying to be snarky or accusative, but happened to see a similar case[1] of an affiliate marketer who is also an HN member yesterday and want to make sure you get the right lawyer/legal service.

[1] http://nypost.com/2014/05/22/wolf-of-wall-street-wannabe-all...

sokoloff 2 days ago 0 replies      
My regular tax preparer is an Enrolled Agent, and I can heartily recommend him. He helped me clean up some old tax messes that I'd made; he's very smart, very knowledgeable, and very much not cookie-cutter.

Charles Markham: http://www.markhamandcompany.com/

His website is terrible and he screens his phone calls ruthlessly. Don't let either of those things put you off; he's worth it. Feel free to use my name or not; it won't get you (nor me) anything. Maybe it will get him to pick up the phone the first time...

My email is in my profile, but most of what I'm going to tell you is above: call Charles. :)

Good luck!

PS: Yes, you probably are a little screwed for the coming few years until you get this cleared up. It is a very good feeling once you emerge from the other side, having caught up on filing, and having cleared up the IRS debts. This is money that you owe; you lived beyond your actual means for a while. It's going to suck a while, but assuming you have your health and earning power, you'll get out of it and it's bright on the other side.

pseingatl 2 days ago 0 replies      
You file an Offer in Compromise. There is a specific form to do this; it is best done with the assistance of a tax accountant or attorney. Even if you leave the United States, the tax bill will keep growing unless you address it. Extradition is not an issue btw, this is a civil matter.
fsk 1 day ago 0 replies      
Another option is to find some work you can do off-the-books. That's legally risky if you get caught, but it allows your "official" income to stay low while you earn enough money to pay your living expenses.
johnnymonster 2 days ago 0 replies      
There are quite a few things you could do to mitigate the burden. Are you still working for yourself, or do you have a full time position? Its going to be a lot easier for you to mitigate this if you are running your own business. Let me know if you want to talk about some strategies to review with a tax accountant. Disclaimer, I am not a tax lawyer, however, I will give you some good points to review with your tax lawyer that they can help you setup.
molsongolden 2 days ago 0 replies      
If you actually cannot afford to pay the amount and don't mind the IRS digging through your financial records you can file an Offer in Compromise. Might be worth looking into.
DanielBMarkham 2 days ago 2 replies      
Similar spot here.

Note: be sure you file your taxes. You legally have to file, whether you can pay or not.

Once you file, after two years the debt can be part of a bankruptcy, but you have to keep filing.

As you know, this is a really sucky spot to be in. I believe the IRS has a program for people who have no chance of repaying -- not sure what the title is. It's worth looking into.

You did a brave thing coming online with this. I imagine a lot of folks would just call you names and be done with it. Speaking for other guys in the same situation, thank you.

Good luck!

jlongtine 2 days ago 0 replies      
I have a friend who is in a similar situation, and he was able to negotiate the total down quite a lot with the IRS. I'd definitely recommend finding a tax attorney or CPA who can help you with that.
mxpxrocks10 2 days ago 0 replies      
Good luck! I think the best thing is to work with a law firm to file an Offer in Compromise on your behalf. Google and check ratings. I believe there are some good, legit services.
anonhelper 2 days ago 0 replies      
I have a great accountant. He has helped a lot of people and fought the IRS. I am sure he can help http://www.manta.com/c/mt17npq/patrick-frawley-associates

I promise you I am not the accountant himself :) and this is not a spam comment. He can help!

PeekPoke 2 days ago 1 reply      
File for bankruptcy?
smrtinsert 2 days ago 0 replies      
Call JG Wentworth.
Singletoned 2 days ago 1 reply      
Seeing as no-one else has suggested them yet:

- Move to a country without an extradition treaty with the US.

- Change your identity. I don't imagine they'll put that much effort into hunting you down for just $100k.

- Create a Kickstarter campaign.

- Ebay the next 2 years of life. That way you are only in hock for 2 years, not 5.

- Marry someone and don't tell them about the debt until it's too late.

Ask HN: $500k cash what to do with it?
7 points by nomdesign  1 day ago   13 comments top 9
nicholas73 1 day ago 0 replies      
I'm assuming that you have limited investment experience, which is why you're asking this on HN, thus having fallen upon a windfall through inheritance, company stock options, etc.

My personal opinion: do nothing. Do nothing. DO. NOTHING.

This amount of money is psychological destabilizing, but even that will be nothing compared to when you are risking it. You have no idea how you will react if you start losing money (you might increase risk - that's how people blow their fortunes).

If you're really looking for financial freedom, use the cash to take time off a job and start working on your own business.

If you are interested in investing because you are interested in investing (unlikely if you haven't dabbled in that already), then start small. Take 25k and start buying stocks or whatever. Do not go big - it takes years of brutal experience to get even decent at investing.

This is life changing money - in other words, your life has already changed. You don't need to multiply it to change your life. It's not worth risking it all. Go small, and just take time.

kimcheeme 11 hours ago 0 replies      
+ Depends on how many kids you ideally want.+ Depends on where you WANT to live when you have kids + Depends on what your profession is (e.g. full-stack developer or business guy with niche skillset)+ What's a reasonable amount of risk to you?

If you are a developer who can just go get another 100k job wherever then you can take a decent amount of risk (even running your own startup and failing).

If you live in a city like SF or NY and want 2-3 kids, that money can go VERY fast if you haven't planned well (should be looking into tax-free contribution trusts for the kids though.)

There's couple of things you can do:1) Invest in assets (real estate, stocks, startups, muni bonds)2) Invest in yourself (additional schooling or education)3) Take a gamble and be an entrepreneur4) Do NOTHING and keep your powder dry5) Do a combination of the above

Interestingly enough, I think under the right scenario, you can learn to invest across assets & start a startup.

I do not recommend investing in startups until you've gone through a startup and fully realize how hard it is to succeed what kind of "real risks" you are taking investing in these companies. Plus, seed investing (what you will be doing) needs enough sample size - most likely min 20k @ 20+ investments and each having a chance to all go to 0 (very high chance; that's why a lot of crappy incubators flop).

Investing in stocks, bonds, real estate, etc. --> this can take thousands of hours to do well but you have to start somewhere in your life. B-school won't help you, getting a CFA won't help you, investing in these assets also means understanding the style of investing you're comfortable with. It's also a lot harder than people think it is at this point of the economic cycle (its was easy to make money when we were at the bottom of the market and fed juiced the markets up)... it's much harder to get good returns around this year to next year. However this also means you may want to play with tranches of 50k and give yourself 3ins to fk up completely. spending 150k total max loss out of 500k to put yourself into a position to force yourself to learn to invest is, in my opinion, a pretty cool position to be in, given that you still have a lot of dry powder left. That allows you to experiment with etfs, individual stocks options, futures, even day trading --> all of which even if you lose 150k over the next 2 years, it will help you see how that side of the world works for the rest of your life. And if it's the case that you're going to be fairly well off one way or another (upper-middle class lifestyle in your 40s), you're going to have to learn how to invest anyway.Real estate investing in these times is something I would stay away from (if you're going to do it, I would spend money on getting some education on real estate and wait for things to pop in a few years or only buy extremely selective assets - just remember that being a landlord is a lot more painful than people realize in the beginning).

Becoming an entrepreneur - You're in a lucky position to self-fund the seed amount and especially if you're a developer then that seed amount can go a long ways. If not, you still have the financial wherewithdal to pay for a top developer for about a year. Even then though I would put a cap on it for $250k of your own money ($100k in developer expense for a year, $100k marketing expense, and $50k in living expense. Based on my experience, if you can't get enough "smart" money funding after you've spent $250k, that's probably not going to be a good idea b/c what you realize is that there's actually a lot of dumb "smart" money that just has to put capital to work.

All in all, I would focus on your passion (what interests you the most) and stick to one thing as the primary way to improve your financial stability and as a little hobby on the side, dabble in one more thing that you'd like to do better. (e.g. Do a startup and on the side invest a $50k allocation by following stocks in your startups' space).

One thing I highly recommend you to think about as a possibility is to spend 50k (10%) and travel around the world for 3 months with your wife. That can help in almost everything that you possibly want to do (even raising a family) : )

You'll have enough time to read about a number of things you want to potentially experiment with while seeing how the world is actually working and what each place needs; meet some cool people along the way and see how those people are thinking about the world. Plus, a decent amount of time to relax with your wife and have many a nights'conversations as to what you guys think is the right next step to take (under a stress free environment). Also, if you're going down the startup path - you're probably not going to take any time off your first 24 months and it'll most likely be the most stressful thing you've ever done...

My background:I positioned my life to be single, no mortgage, work my ass off to save couple hundred thousand bucks saved by 27. Would like to think of myself as having domain expertise in finanical markets. For the past few years, continued to invest in public markets, decided that B-school was not worth it for me (have tons of friends who went to top b-school), worked & failed in my startup with my best friend, and wasted $150k of my savings. The best thing for my career was failing at my startup - I learned more than any of my friends who spent the same amount of money going to a top bschool. Better yet, I realized that even after I failed, that is the space I want to be in and that I'm actually pretty good at it (just didn't have the right business concept). Now I'm working with another startup. Prior to startups, I've traveled to over 30 countries over 6 month period and read every periodical / book / website on business, investing, startups, etc. Absolutely one of the best/coolest things I've ever done that provides dividends time and time again.

Can have a more personal chat if you think that I can help.

pbhjpbhj 1 day ago 1 reply      
Where are you? What's the interest rate on your mortgage - any investment needs to beat that to be financially a better choice.
strick 1 day ago 1 reply      
Simplest: 100% VTSMX

Conservative: 60% VTSMX, 40% VBMFX

I would do: 50% VTSMX, 30% VBMFX, 15% Lending Club, 5% YCombinator funds on fundersclub or wefunder.com (split over next 4 summer and 4 winter classes)

This is a great site: http://www.mrmoneymustache.com/

oldspiceman 1 day ago 1 reply      
Read about ETFs. They are the same as mutual funds without the fees.

Kids cost more than you think they will.

See if your bank will let you make a yearly lump sum payment on your mortgage directly on the principal. They do up here in Canada. If they don't, ask another bank if they will and then tell your bank you're willing to switch.

Managing money is not difficult. The more time you put into it the more money you will lose.

Be careful taking financial advice. People fall into two camps: fearful or optimistic. There are many more fearful people than optimistic people, even though the equity market has an upward tendency.

When purchasing investments, be wary of good sales people, they are the ones who will screw you the hardest. The geeky guy you don't trust is likely giving you good advice. The good looking guy who makes a lot of sense and who you just like for some reason... Run!

Kanbab 20 hours ago 0 replies      
$500,000 isn't too much. You would be fortunate if you can turn the $500,000 into $5000/mo in income, thereby covering all of your current monthly expenses. Once you have all that free time, you'll probably want to start spending more money though.

You can earn the 12% a year by investing wisely in rental properties. That would be 12% in net income, which doesn't include any future appreciation (or decline in price). To achieve those numbers, you will most likely want to buy your rentals with a mortgage, so I hope you have a W-2 or other steady taxed income for the last 2 years, because thats what you'll need to qualify for most loans, but not all.

By leveraging your $500,000, you can buy $2,000,000 worth of assets in real estate. YMMV.

mattm 10 hours ago 0 replies      
Google Harry Browne - permanent portfolio
coralreef 1 day ago 0 replies      
You have $500k in cash available after all that?
naveen99 15 hours ago 0 replies      
Go get a degree: md, jd, MBA.200k should be enough to take you through schoolBuy bitcoin with the rest.
Ask HN: Horror co-founder stories.
50 points by kimcheeme  1 day ago   33 comments top 11
jt2190 1 day ago 5 replies      
I had a friend who would "test" girlfriends by taking them camping for a few days.

Camping or other intense travel that raises the level of discomfort (no running water/flush toilets/electricity/internet/air conditioning etc.) reveals someone's true nature very quickly. You'll see whether they get cranky or stay optimistic, whether they're disorganized or not, whether they carry more or less of their fair share of the load, whether they get on your nerves, etc.

bksenior 1 day ago 0 replies      
In my experience the important things are:

1. Do they proactively do the tedious stuff when things aren't exciting? Passion waxes and wanes and good co-founders dig deep and push through the bottoms of the motivation cycle.

2. Would you feel comfortable with the, representing YOU if you were not around?

3. How quickly can you find a comfortable and systematic way to constructively criticize one another?

There are more specific details, but these are the non-negotiables

RKoutnik 1 day ago 0 replies      
Key takeaway: Ensure your cofounders are competent through third-party verification if you can't do it yourself.

I know of company cofounded by a skilled business guy and a technical guy. That's a fairly typical split, except the technical guy is absolutely useless. He hasn't learned anything new since his internship days, and insisted his code was perfect despite obvious security flaws.

The business guy just took the technical guy at his word without checking to see if his skills really were at that level. What followed was a tremendous waste of investor money as the technical guy insisted on doing everything his way and creating massive loads of technical debt.

Had the business guy had an independent party verify the technical guy's skills, he'd have saved himself $X00,000 in opportunity costs and years of his life.

cachebunfield 1 day ago 6 replies      
I have a story in the making that I hope will have a happy ending.

I started a company with two of my good friends whom I also happen to be living with at the moment. We're profitable and growing, but that doesn't mean we don't have problems. I am the technical co-founder while the other two handle operations and the business development side. However, they seem to be just going with the flow while I on the other hand am pouring my blood, sweat, and tears into this company. And I feel my work isn't being respected because they have unrealistic demands and sometimes complain about things not working or things not being done while they on the other hand aren't making any effort to see how they can help. It's easy for them to just delegate their tasks to our assistants but for my work, it isn't so easy. They should be hustling and trying to grow the company with their free time, but they aren't. My resentment has been growing against them and lately it's been putting a strain on our relationship. I think us starting out as friends has made us avoid talking about the deep issues that underly this predicament. In the end, I can't do this without them and they can't do it without me. How can I approach this situation? The obvious answer is to sit down, talk, and make my issues be known but before I do that, I need some good advice.

I also want to mention our equity is split three ways evenly with no vesting.

olivernewth 1 day ago 0 replies      
I did a course in founder dilemmas this semester at MIT taught by Professor Matt Marx. The recurring theme from the course was that poorly considered early decisions could have lasting consequences. One of the main issues was how homophilous relationships (classmates, family) between co-founders had significantly lower success rates than non-homophilous. From this, the one lesson I've definitely learnt is to look for someone drastically different to myself when trying to find a co-founder. A suggested read is 'The Founder's Dilemmas' by Noam Wasserman, full of a lot of lessons that can often be avoided.
daSn0wie 1 day ago 1 reply      
i'd do a small throw-away project with the person before you attempt anything. if you can complete the project, then tackle something bigger. it's like training camp before full-season play.
Turing_Machine 1 day ago 0 replies      
Paying attention to how the person treats the wait staff at dinner can also give you a quick insight into their character (this works for both business and personal relationships). Treating the waiter like scum is a gigantic red flag, at least for me.
redtexture 1 day ago 0 replies      
Here's an example of non-alignment of founders, and ownership that did not have vesting periods...with a consequence that departing partner-founders had to deal with a major fraction of the entity owned by non-participants.


EamonLeonard 1 day ago 0 replies      
What do they say?What do they do?What do other people say about them?

That will usually weed out most of the procrastinators, wannabes, "difficult" people etc...

A bit of interpersonal chemistry going, some complimentary skills (you're looking for compatibility, after all), and some level of emotional investment on the problem being solved, wouldn't hurt either.

bthornbury 1 day ago 0 replies      
The ability to think independently is the key. A cofounder who is constantly looking to you for the next step will bring you down. Look for people who have proven track record of motivating themselves and executing their own ideas. This does not necessarily need to be in the form of a startup.

Of course there are other things like chemistry and skill, but independent thinking is absolutely critical.

benhamner 1 day ago 0 replies      
Make sure you do background checks (references + backchannel).
Ask HN: Prospective technical cofounder. How do I find a biz guy with an idea?
3 points by cweagans  10 hours ago   6 comments top 4
iamsalman 10 hours ago 1 reply      
Looking for a business co-founder is comparatively easier than looking for a technical co-founder. There are tons of people out there who have ideas but don't have the technical background or readily available technical resources to do a prototype and market validation.

Just one piece of unsolicited advice -- Go with a business co-founder who has some unique expertise in the domain/verticle you would want to pursue. If he/she had to do "market research" to determine the potential of your future product, that is usually not a good place to start. The business guy should (emphasis) know by experience, the product/market fit.

Goodluck with your quest!

logn 8 hours ago 1 reply      
A biz co-founder contributing an idea will get you maybe 1-2 weeks of work from them. I think you need a hustler, someone who can bootstrap you to profitability. That's what I'd look for at least.
gremlinsinc 6 hours ago 0 replies      
Cofounderslab and angelist are great resources. I met my cofounders on angelist, they tracked me down, and I was a little hesitant because they were from Asia, but they had the front end mostly coded and had some big investors interested in the platform and now we're in BoomStartup the 12th ranked accelerator in the world, and you have no idea how awesome it is to be in an accelerator.
iamsalman 10 hours ago 0 replies      
He referred to "his nick" @gmail.com. "his nick" = cweagans
Ask HN: Do you care about your software being pirated?
2 points by tjosten  13 hours ago   3 comments top 3
zura 9 hours ago 0 replies      
I'd say do some license checking but make it as much as possible user-friendly. Yes, it will be eventually cracked anyway, but do not make things very trivial. For the end user, it should be much easy to pay for the license, than to trivially copy it (without even searching for the crack/torrent).
logn 8 hours ago 0 replies      
For the France export problem, can you just separately provide an install script that will go and download the crypto binaries to dynamically link to?

Also to combat piracy, maybe you can detect pirated copies and then insert a prompt for users to donate, but either way you let them continue using the app. You could add a BTC/Doge donation as I suspect pirates might just not want to use a credit card.

hashtag 4 hours ago 0 replies      
No. It'll happen either way if the app is popular enough.
Ask HN: who is behind the Bitcoin GitHub account?
4 points by mpcadosch  1 day ago   discuss
Tell HN: Potentially impressive meteor shower tonight. Get outside
14 points by cjbarber  2 days ago   5 comments top 3
cjbarber 2 days ago 2 replies      
Not sure how HN feels about a promotion like this, but I gain nothing from it so I'm going to try: I compiled a list of tips and locations to watch the shower from, and put it on github pages last night.

Also I was pretty happy with the domain name :)


ericcumbee 1 day ago 0 replies      
Well I think that NASA can stand down the secret military space shuttles and team of oil drillers they had on stand by in case this went sideways.

Went outside for the last hour, not a single one. (Statesboro,GA)

_august 1 day ago 0 replies      
Unfortunately there's too many clouds where I am (east bay).
Ask HN: Why is privacy something we should strive for?
4 points by miguelrochefort  1 day ago   21 comments top 8
greenyoda 1 day ago 1 reply      
If you think privacy is useless, please reply to this comment by posting:

- Your name, address, phone number

- Your place of employment, income from all sources, net worth and valuation of your major assets (house, car, investments, etc.)

- All your social media accounts (please make sure that all information you've ever posted there is publicly accessible)

- Your credit card numbers, bank account numbers, social security number

- A list of political candidates you voted for or contributed money to

- Your religious background and current beliefs (if any)

- The names of all your friends, relatives and children

- Your health history, including any psychiatric problems you've ever suffered from

- A list of all illegal drugs you've ever tried (or other illegal acts you may have committed)

- Your sexual orientation, sexual preferences and a list of all your sexual partners

- Any other personal information you'd like to share with us

logn 8 hours ago 0 replies      
It's about the freedom to think and communicate. If all your thoughts were tweeted and all your conversations were publicly blogged, wouldn't that degrade your freedom? Or if in every conversation, someone told you they would send a report to the gov't capturing what was discussed, would you end up having the same conversation?
rohamg 1 day ago 1 reply      
One very important benefit of privacy is it allows experimentation without commitment: because we live in a society that often rushes to label, pigeon-hole, and categorize, privacy allows one to experiment with activities, world views, preferences, without broadcasting the process to the entire world.
milkcircle 1 day ago 1 reply      
One reason is that exposing some forms of personal information can lead to discrimination. For instance, access to private medical records or to genetic information may allow insurance companies to discriminate against people they believe might be predisposed to certain health risks.

Additionally, there is a reason why people don't like revealing things about themselves (like their salaries, for example): it opens them up to judgment and allows society to comment on how they rank hierarchically within a certain community.

Privacy allows us to feel comfortable revealing only the information we think won't detriment us in the eyes of others, especially because this can have significant tangible effects on our lives.

tambourmajor 1 day ago 1 reply      
I think that can be answered quite briefly: Malicious people exist and they can use things we consider private against you. We are inherently imperfect and thus we define a protected space in which we can can happily be imperfect without spending energy on worrying about it.
kobey 1 day ago 1 reply      
Here is the best explanation I have seen of the issue: http://chronicle.com/article/Why-Privacy-Matters-Even-if/127...

The tl;dr is that arguments against privacy generally focus on not having anything to hide if you aren't doing anything wrong. In reality, it's a lot more complicated. Loss of privacy can cause a great deal of harm even when you haven't done anything wrong.

maxerickson 1 day ago 1 reply      
Privacy makes some people feel more comfortable. There doesn't need to be anything more to it than that.

There might still be situations where their privacy has to be balanced against some other consideration, but it's unlikely that a universal denial of privacy would be necessary to find the balance.

pachacuti0 20 hours ago 0 replies      
I feel that you're blaming society for the need of privacy. I don't know if I understand you perfectly, but if I do, the need of privacy has indeed no inherent value. But that doesn't mean it isn't important. Privacy needs to exist, at least for now, exactly because our society is not perfect. The same stands for legislation, for instance. I'm sorry if I'm not making much sense here, but that's how I see it.
Ask HN: Which service do you use to sell downloads?
55 points by renaars  5 days ago   53 comments top 25
patio11 5 days ago 2 replies      
I may well be e-junkie's oldest surviving customer, although I eventually transitioned everything off their app into my app with the exception of Paypal IPN processing. They've got almost $500 of LTV from me, $5 a month at a time.

If I were making the choice again today, it would be Gumroad by a country mile. Regardless of whether you end up using them, look up Ryan Delk's presentations regarding the habits of successful sellers (multi-tier products; X 2.2X 5X pricing; email marketing). They'll make you much more successful than the typical person who just throws a $FOO onto the Internet.

joshdance 5 days ago 2 replies      
I've sold about a thousand dollars thru Gumroad. http://gumroad.com

I like the design. I like the simplicity. People can just use their CC like normal. They take a percentage of your sales, but so far found it worth it.

I wish it had order tracking (just a box I could tick when I shipped something would be nice) but that is irrelevant for downloads.

programminggeek 5 days ago 1 reply      
I would use gumroad or whatever is easiest/fastest to get it out there. Don't worry about fees and junk right away. Get your product available to sell and focus on selling it. Don't spend a lot of time on how you are going to process money and deliver the product. Focus on the sales. When you have $10,000 in sales and 1% margin starts being worth $100, you can spend a few hours maybe worrying about if gum road is the right choice. Even then, it's probably not worth worrying about.

Just sell things, enough things that it actually matters who you are using for processing. But, with 0 sales, you are doing 0 order processing so it doesn't matter.

jeremymcanally 5 days ago 1 reply      
http://getdpd.com is the best option I've found. The interface makes sense, the pricing is super fair, and they allow you to send unlimited updates for free to your users (most other services charge more or, even worse, per update!).
singer 5 days ago 1 reply      
My service (https://snappycheckout.com) offers a Stripe Checkout like experience and allows you to sell files from Dropbox. It costs 2% or $0.50 (whichever is less) per sale (plus the usual Stripe/PayPal fees).
bhouston 5 days ago 0 replies      
We wrote our own integration into Shopify.com that does RLM-based licensing (a standard in the visual effects software industry.)
luxpir 5 days ago 0 replies      
WooCommerce on Wordpress for an ebook/digital package. Free, barring Paypal fees (grmmble - I could use a different gateway, or even BTC, but in the real world PP is my best bet), and user-friendly enough. Has been very reliable over the years.
ivan_ah 5 days ago 1 reply      
https://gumroad.com/ : nice design + very simple to use
acangiano 5 days ago 2 replies      
I no longer need them, but in the past I had positive experiences with FastSpring. eJunkie is also a popular option.
fookyong 5 days ago 0 replies      
I use e-junkie for growthhackinghandbook.com

Flat monthly fee. Their admin UI is clunky, their checkout pages are basic but functional, but they solve a number of problems* without asking for a percentage cut of sales.

I think for basic stuff they work just fine. I'm just selling one ebook and I just wasn't comfortable with having a cut of my sales taken AND my funds being withheld by a third party before some weekly or monthly remittance. With e-junkie the funds go straight to my PayPal account where I can use the money immediately (I constantly pay for things via PayPal).

*obfuscating download path, handling coupons, handling multiple downloads etc

quaffapint 5 days ago 0 replies      
I plan on using wordpress and the free paid membership pro plugin (http://www.paidmembershipspro.com/) for my upcoming release.

Let's me sell a per year license with an optional reduced renewal fee at the end of the year, which most services don't seem to easily offer. Also then lets me ties into other things like support forum membership.

jevin 5 days ago 1 reply      
You can have a look at http://www.fastspring.com/ too. I use them to sell my plugins online. Their support is fantastic.
hngiszmo 5 days ago 0 replies      
A friend earned quite a bit with his music on CoinDL: https://www.coindl.com/page/author/139

It's bitcoin only though but I like the preview for music and the no-bullshit easy handling.

garrettdimon 5 days ago 0 replies      
Plasso (formerly Spacebox) I've been incredibly happy with both the service and the support.


graeme 5 days ago 0 replies      
I use woocommerce on Wordpress. I have a large number of products, and their cart process works pretty well. Checkout is smooth. Plentiful extensions.
greenwalls 5 days ago 0 replies      
I have had good luck with Cleverbridge http://www.cleverbridge.com.
infruset 5 days ago 1 reply      
Haven't used it, but I think this deserves a mention as it accepts bitcoin: http://coinlock.com/
bizifyme 5 days ago 0 replies      
Our service https://www.bizify.me offers a complete package. Credit card processing is included and also payment by mobile phone (SMS) for many countries. There is also a WordPress plugin and you can install our App on your phone to easily follow your sales. No setup fees, no monthly fees, no fixed transaction fees and the price for a digital product can be as low as 0.1 EUR.
nelstrom 5 days ago 0 replies      
I'm pretty impressed with SendOwl. I like the flat monthly fee and generous bandwidth allowance. So far, I've not done a great volume of sales, but my customers have already remarked on how quickly the 0.8GB video file downloaded. So the core functionality seems sound. I'm looking forward to using their affiliates feature to help market my future products.
bthomas 5 days ago 0 replies      
Do any of these services have a good workflow for pay what you want downloads?
cannam 5 days ago 1 reply      
SendOwl (http://www.sendowl.com), formerly known as Digital Delivery App. No particular complaints, but it's been a while since I've looked at the competition.
BrechtVds 5 days ago 0 replies      
For WordPress plugins and themes I enjoy https://easydigitaldownloads.comIt's not perfect, but has some nice plugins (licensing!).
maxx6 5 days ago 0 replies      
Sellfy (https://sellfy.com) works great for me. I especially like the feature to use PayPal and Stripe together.
samreh 5 days ago 0 replies      
If you like/use shopify, check out:https://skypilotapp.com
antidaily 5 days ago 1 reply      
Bonus if the service is flat monthly fee.
Ask HN: I want to be good at everything
8 points by josephjrobison  2 days ago   5 comments top 4
ggchappell 2 days ago 0 replies      
I would not call that unrealistic. A few comments:

(1) Only on HN would anyone dream of referring to your list as "everything". You are actually targeting a very narrow, focused skill set: those required for a small(-ish) software or software-intensive business. Like it or not, you're proposing becoming a specialist (albeit with a somewhat broader specialty than a typical job description would call for).

(2) In the real world, "everything" includes many, many other things. To get good at all that stuff on your list, you'll need to leave other skills by the wayside. The comment by taprun mentions chess, running, and cooking. You won't be getting better at any of those.

(3) The I-do-everything approach sets a hard limit on the size of a business. An important reason for hiring & delegating is so that a business can grow.

Raphmedia 2 days ago 1 reply      
Of course, you can learn most of those things. However, it is my belief you will soon tire yourself. Getting to the top of everything is hard enough, staying there even harder.

I used to be up to date in a lot of domains. 3D modelling, app frameworks, web technologies, back end, front end. Those days, I find it's hard enough to focus on being up to date and relevant with front end web development while balancing an healthy life with friends and family.

You can do it, but remember that there is an upkeep to being relevant in a lot of domains. If you can deal with it, sure, go ahead!

However, what I would recommend you is a good team. I'm finding I connect easily with people that have complementary skill sets to mine, and it's a great experience.

taprun 2 days ago 0 replies      
In economics, I learned about something called a "trade-off". Basically, if you spend time learning something, you are spending that time not learning something else.

I remember meeting someone who was fantastic at chess. He destroyed me. Repeatedly. My mental model of him was essentially "me but good at chess". It didn't occur to me until much later that he didn't know how to program a computer, couldn't run a mile without stopping and didn't know how to cook Chinese food.

I think if you stop seeing people as "you but can do X", these feelings will go away. Alternatively, read up on the concept of "comparative advantage" and realize there is a mathematically proven reason not to try to be an expert at everything.

ASquare 2 days ago 0 replies      
I don't think its unrealistic - the bar is just very high for what you want to do.Perhaps it may make sense to talk to people who would be looking for such an integrated skill set and find out which ones matter more than others and to what degree/level.

That will give you an automatic prioritization of how to go about getting these skills without becoming overwhelmed.

Ask HN: Online affiliate marketing industry size?
2 points by adam419  1 day ago   2 comments top 2
olegious 1 day ago 0 replies      
Since both Amazon and eBay are public I'd check their quarterly or annual filings, the info may be in the notes.
doubt_me 1 day ago 0 replies      
If you can't find anything would it be hard to ask ebay and amazon?

Or you probably already did that I am assuming

Ask HN: What are your favorite free web typefaces?
4 points by meisterbrendan  1 day ago   3 comments top 3
adrianhoward 1 day ago 0 replies      
I'm very fond of Eben Sorkin's Merriweather & Merriweather Sans. The large x height make it a really nice and legible screen font.

Steve Matteson's Open Sans is another one that's become a bit of a go-to typeface for me.

Some others that I like https://pinboard.in/u:adrianh/t:font+free+good

nayshins 9 hours ago 0 replies      
Droid Sans and Open Sans are two of my favorites.
DiabloD3 1 day ago 0 replies      
I use Adobe Source Sans Pro on my company's website, and Google Open Sans is very popular too.
Ask HN: What's the best programming book you've read recently?
81 points by diegoloop  9 days ago   88 comments top 58
playing_colours 9 days ago 2 replies      
"Peopleware" http://www.amazon.com/Peopleware-Productive-Projects-Second-... , a lot of insights and ideas how to build great teams. Great to read for developers, team leads and managers.

"The art of multiprocessor programming", excellent book on parallel programming theory with code explanations: http://www.amazon.com/gp/product/0123705916?ie=UTF8&tag=nirs...

AlexanderDhoore 9 days ago 1 reply      
"Programming Erlang: Software for a Concurrent World", by Joe Armstrong himself.

I have not read it completely, because the first chapters inspired me to start programming (in Erlang) and I haven't gotten back to the book yet.

tdicola 9 days ago 3 replies      
Stroustrup's "A Tour of C++" is a great overview of C++11 and modern C++. It's not very long and worth a read to see what's new in the C++ world. The audience is aimed at people who already know C++ but want to know what's new with the latest version. I've been doing a lot more with C++11 recently and am really impressed with the language--dare I say C++ is actually fun to use.
robgering 9 days ago 0 replies      
I've really been enjoying The Joy of Clojure (http://joyofclojure.com/) -- note that there's a nearly-finished 2ed in PDF form if you buy the early access version.

I've also been reading Clojure Programming (http://www.clojurebook.com/) to reinforce concepts from the above.

walexander 9 days ago 0 replies      
Not trying to sound cute, but The Elements of Programming Style by Kernighan and Plaugher (1974). Just read this last week during a day of plane travel.

It's all PLI and Fortran, with lots of GOTO being harmful examples, but surprisingly much of it is still relevant. It's a quick read and interesting look at some of the problems they had back then (and some that we still create plenty of today).

Skoofoo 9 days ago 0 replies      
I thought I knew how to write good Ruby code, but then I read "Practical Object-Oriented Design in Ruby". http://www.poodr.com/
nwhitehead 9 days ago 0 replies      
"Programming in Lua", by Roberto Ierusalimschy. This is a gem of a programming book. Some of my favorite chapters: coroutines, metamethods, weak tables, threads and states. Similar in tone and clarity to K&R "The C Programming Language". I learn something new every time I flip through this book.
lukasm 9 days ago 1 reply      
Code Complete has pretty good bang per page, especially if you are beginner.


brudgers 9 days ago 0 replies      
The books on and around my nightstand:

+ Joy of Clojure. A recent gift[card]. I put off learning Clojure because of it's more complex syntax. I'm both glad I did, and that I have this book now that that's the no longer the case.

+ ANSI Common Lisp. Lisp was out of reach at the time when my younger self might have pursued computer programming, and realizing around two years ago how accessible it had become got me to download Lisp in a Box and then buy the used copy. Currently visiting, this book orbits in and out of the rotation with a cometary periodicity.

+ Art of Computer Programming: Volume 3, Sorting and Searching Twenty-five years ago or so I bought volume I and about 15 years I donated it to the community radio station's books sale [WMNF 88.5]. I spent about $25 dollars including shipping for used copies of the first three volumes from Amazon last year. Right now each is on a different floor. The proximate reason Sorting and Searching is by the bed: I'm taking Algorithms I on Coursera and it is the first one that really dives into algorithms. A deeper reason is that Knuth always reminds me how much more there is to know - I'm getting better at the maths, but haven't learned MIX. Maybe one of these nights.

+ Structure and Interpretation of Computer Programs I bought a "used" copy from MIT via Amazon last year. It's staggering how much is really in it that I glossed over 'reading' the free online version. It's much better than I thought, and I find myself constantly referring to it or just reading a section. It's also a reference for the other Coursera course I am taking: Funtional Programming in Scala with Martin Ordersky.

The non-programming books are from the public library:

+ How Literature Works: 50 Key Concepts. The sections are four to six pages and lightweight. Makes for something brief to read. It's the sort of book that I feel no obligation to finish.

+ Poetry of the First World War: An Anthology This book is actually why I mention the non-programming books. I don't read poetry, but I'd always seen people make a big deal about it, and there this was on the new book shelf. I see why the English make a big deal about Siegried Sassoon. I see why they make an even bigger deal about Wilfred Owen. It's potent and powerful and the bench of poets runs much deeper. It makes that war the last ancient one.

truncate 9 days ago 1 reply      
Currently reading Programming Pearls by Jon Bentley. Interesting small case studies that gives insight on how to tackle problems and think about programming.
franze 9 days ago 0 replies      

pretty much the most important programming book a programmer who works with / in teams can / should / must read.

warfangle 9 days ago 1 reply      
The Soul of a New Machine. Fascinating documentation of Data General's development of the 32-bit Eclipse machine. Sorta programming, sorta hardware... back when the two were more tightly integrated.
michaelchum 9 days ago 0 replies      
JavaScript: The Good Parts. Made me see JS in a much more elegant way. Coding JS is not trivial. I did use JS in webdev in general, and APIs. But really, I would have never known the mysteries behind it such as prototypal inheritance.
mtalantikite 9 days ago 0 replies      
"Concepts, Techniques, and Models of Computer Programming" by Peter Van Roy and Seif Haridi.

Also "The Reasoned Schemer", which has the same pedagogical style as the other Schemer books, but works around logic programming.

Both of those books are mind benders and I've gotten a lot out of them recently.

baddox 9 days ago 0 replies      
I recently went through the later chapters of The Little Schemer again. I still find it incredibly challenging and awesome. As many have said, this is a great book to teach you to think recursively.



why-el 9 days ago 1 reply      
Effective Java. A very succinct collection of wonderful practices and ideas on how to code great software that you can finish in a couple of days, even if you are on a working schedule. Don't mind the "Java" in the title; I read the book regularly and it applies to pretty much any language capable of some OO.

Check the table of contents, it will give you an idea of what to expect from the book.

gfodor 9 days ago 0 replies      
Physically Based Rendering by Pharr and Humphreys. Excellent book on modern ray tracing that is a literate program. It's an amazing piece of work (even won an oscar!)
sytelus 9 days ago 0 replies      
Doing Bayesian Data Analysis

Interesting topics: MCMC, Gibbs Sampling

F# for C# Developers

This book seems to leave lot out in order to simplify but good starting book nonetheless

TCP/IP Illustrated, Volume 1: The Protocols, Second Edition

I wanted to know what really "connection" means. This book has answer.

An Introduction to R

I guess everyone dealing with data should know R, right?

Here's my Amazon list with quite a few very interesting books collected over time: http://www.amazon.com/gp/registry/wishlist/RXLC4WK1ZOJR

sateesh 8 days ago 0 replies      
As part of the MOOC course Paradigms of Computer Programming (https://www.edx.org/course/louvainx/louvainx-louv1-01x-parad...) I read the initial parts of the book: "Concepts, Techniques, and Models of Computer Programming" (mitpress.mit.edu/books/concepts-techniques-and-models-computer-programming). The initial chapters provide a good approachable way to get started with functional programming. Though working with Oz (the programming language used in the book) gets some time to get used to, this is an excellent book. I am bit surprised that this book is not as well known, and probably I wouldn't have known about this book if not for the MOOC course.
myko 9 days ago 0 replies      
Effective Objective-C 2.0:https://play.google.com/store/books/details/Matt_Galloway_Ef...

In the style of other "Effective Foo" books. Excellent overview of best practices for ObjC, it's the first book I hand new developers on my team.

lgunsch 9 days ago 0 replies      
Clean Code: A Handbook of Agile Software Craftsmanship, by Robert C. Martin.
kevinskii 9 days ago 0 replies      
"Mining of Massive Datasets", by Jure Leskovec, Anand Rajaraman, and Jeffrey D. Ullman. You can get the PDF here:


jbeja 9 days ago 1 reply      
"Practical Object-Oriented Design in Ruby. A Agile Primer" By Sandi Metz. I am not so much a ruby fan, but don't let the title decive you, ruby is just the tool (since it could use any other OOP language) to show what the book is realy about (OOP Design shown in the best way possible).
runT1ME 9 days ago 0 replies      
Functional Programming in Scala.

It's not a book about scala, it just so happens to use scala as the language to teach you how to program functionally. I've read other books that purport to do the same, they end up showing a light sprinkling of functional concepts. This book goes much deeper, and is ultimately much more rewarding.

thrush 9 days ago 0 replies      
A little more than just programming, but just finished Ilya Grigorik's new book, "High Performance Browser Networking" (available free online). I learned a lot about Javascript/HTML loading and execution that I had never even thought about.
isuraed 9 days ago 1 reply      
Refactoring by Martin Fowler. Extremely practical if you work with old and large code bases.
zwieback 9 days ago 1 reply      
"C# In Depth, 3rd edition" by Jon Skeet. I had been falling behind on the new stuff added to .NET and C# and this is a good way to get back on the curve.
julian25 9 days ago 2 replies      
I've been reading Real World Haskell recently and loving it. It does a fantastic job of blowing your mind while simultaneously showing you how to apply Haskell to real-world problems.
fredyr 6 days ago 0 replies      
Richard Bird, Philip Wadler - Introduction to Functional Programminghttp://www.amazon.com/Introduction-Functional-Programming-In...

Richard Bird - Pearls of Functional Algorithm Designhttp://www.amazon.com/Pearls-Functional-Algorithm-Design-Ric...

Christian Queinnec - Lisp in Small Pieceshttp://www.amazon.com/Lisp-Small-Pieces-Christian-Queinnec/d...

arcadeparade 9 days ago 0 replies      

Really good introduction to computers from relays up.

jason_slack 9 days ago 0 replies      
I have a few coming from Amazon

OpenGL Insights - Cozzi and Riccio

Game Engine Architecture (2nd Edition) - Jason Gregory

Programming: Principles and Practice Using C++ (2nd Edition) - Stroustrup

kirang1989 6 days ago 0 replies      
Computer Systems: A Programmer's Perspective and NAND2Tetris: Elements of Computing Systems are the best books to learn the internals of computer hardware and solidify your understanding of how a computer works.

The Pragmatic Programmer - My all time favorite. Awesome book to learn best practices of various aspects in programming.

The Code Book: The Evolution Of Secrecy From Mary, Queen Of Scots To Quantum Cryptography, if you have a thing for cryptography.

espinchi 9 days ago 0 replies      
It depends heavily on what stage of your career as a programmer you are.

I strongly suggest most junior programmers I work with to read Effective Java and Head First Design Patterns. To me, it's a great combination to help you write code that's easy to understand and maintain.

rdc12 9 days ago 0 replies      
Not strictly programming, but been reading Information, a history, a theory , aflood. Been strugling to userstand what life would have been like before various aspects of storage/transmision would have been like.

Looking forward to when it hits Claude Shannon

cenazoic 8 days ago 0 replies      
I'm attempting some self-taught coding (my degree is in history), and after much dithering, have started with How to Design Programs (htdp.org). SICP is beyond me at this point, and I wanted to get a good grounding in general concepts and good design before jumping into some other more (theoretically lucrative)language.

HtDP is wonderful at what it does, and while perhaps a tad dry in writing style, it is, for me, a page turner in terms of engagement and presentation of new ideas.

digita88 5 days ago 0 replies      
Non-technical but some great concepts which can be adapted to programming:Thinking in Systems by Donella MeadowsThe Checklist Manifesto by Athul Gawande
Serow225 9 days ago 2 replies      
C Primer Plus and Expert C Programming. I wish there was a book similar to the latter that covered C99/11.
killnine 9 days ago 1 reply      
I've recently read The Passionate Programmer and was rather disappointed.

The book has a few very valuable insights. For the most part it reads like a series of blog posts from a slightly experienced developer.

eiji 9 days ago 0 replies      
C++ Concurrency in Action, Practical Multithreading, by Anthony Williams


jeremyis 9 days ago 0 replies      
Not programming per say, but love Downey's ThinkOs (free): http://greenteapress.com/thinkos/.

Am currently reading Think Complexity (also free): http://greenteapress.com/complexity/index.html

sunny1304 9 days ago 0 replies      
Linux Device Drivers, 3rd Editionstill not finished, but this is best book i have encountered for linux driver programming.
taylodl 9 days ago 0 replies      
The Little Schemer.

Fun to read, solidify knowledge of Scheme.

joerich 4 days ago 0 replies      
I recently got "Hackers and painters" by Paul Graham. I'm still reading but pretty cool so far.
john0 9 days ago 0 replies      
Secrets of the JavaScript Ninja http://www.manning.com/resig/ has helped me understand some of the more interesting parts of the language (such as functions being first class objects) better.
wink 9 days ago 0 replies      
Modern Operating Systems by Tanenbaum, although it's more basics, still relevant for low-level stuff.
dusandusan 9 days ago 0 replies      
"More Effective C++" by Scott Meyers

While directed at the C++ crowd, I would recommend this book to any programmer, as it explains many interesting concepts and idioms that are not C++ specific.

yarou 9 days ago 0 replies      
TAOCP by Knuth (if you can get past the maths).
pcmccull 9 days ago 0 replies      
Working Effectively with Legacy Code, by Michael Feathers
danielrpa 9 days ago 0 replies      
Structure and Interpretation of Computer Programs (SICP)
DanielBMarkham 9 days ago 0 replies      
Clean Code, by Robert Martin. Excellent book that dives in deep on how to write solid code. It's like having the ultimate code review in book form.

Shameless plug: I just finished writing the first in a series of books about Backlogs. Good backlogs can make programming a lot easier. Conversely, horribly formed backlogs can turn coding into a death march. http://bit.ly/1fJd5Gg

enterx 9 days ago 0 replies      
Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman - Dave Hoover , Adewale Oshineye
tathastu 9 days ago 0 replies      
Computer Systems: A programmer's perspective

Great look at under-the-hood of what happens when a program runs.

mystral 9 days ago 0 replies      
Last one was probably Let Over Lambda. One of the few programming books I've read cover to cover.
antocv 9 days ago 0 replies      
Beginning Java EE7 is good, a refresher.
recursive 9 days ago 0 replies      
Sql Antipatterns by Bill Karwin
deathtrader666 9 days ago 0 replies      
I've recently started my way through SICP and Algorithms in a Nutshell.
malandrew 7 days ago 0 replies      
The Little Schemer
stopachka 9 days ago 1 reply      
Effective Javascript.
Ask HN: Mobile developers, how do you do testing?
10 points by softwareman  3 days ago   6 comments top 6
omgmog 3 days ago 0 replies      
The developer tools in Chrome are a good starting point, you can emulate the screen size, user agent and orientation of a number of devices. A quick Google surfaced this article about the emulation: http://www.realeyes.com/blog/2014/02/19/a-quick-guide-to-chr...

Having a range of devices at hand helps too.

wnm 3 days ago 0 replies      
I develop my apps with phonegap[0] and ember.js[1], this way I can use tools like firefox's responsive design view[2] to make sure it works on different screen sizes/resolution.

In terms of testing, I use all the current tools that are available to web developers (automated tests for my javascript code with mocha[3], chrome developer tools for debugging, etc)

I do testing on an actual device as late as possible, when my app is actually already finished and well tested. In case I need to debug on the device there is remote debugging with chrome on android[4], which lets you debug your android app with chrome developer tools.

For automated integration tests there is also appium.io[5]. You can write integration tests and let them run for ios and android.

[0] http://phonegap.com/[1] http://emberjs.com/[2] https://developer.mozilla.org/en-US/docs/Tools/Responsive_De...[3] http://visionmedia.github.io/mocha/[4] https://developer.chrome.com/devtools/docs/remote-debugging[5] http://appium.io/

atox 3 days ago 0 replies      
The company I'm currently working with purchased 30+ mobile devices.

I'm getting more and more convinced that this is the only way to guarantee that your site/app will work perfectly on all of these phones and tablets.

Some emulators can be a pita to install (iOS emulator only works on OS X, windows phone emulator needs Visual Studio on Windows 8 on hardware that supports HyperV) and they're still not 100% consistent with what will happen on the real device.

vktheitgirl 2 days ago 0 replies      
I recently tried genymotion.com. I am pleased with it so far in terms of testing on android. Of course, it is not the same as testing on real devices. For now, I am just testing using this. Later, I am going to ask friends and family to test my app on their various devices.

I haven't tried this this but another suggestion I read somewhere is to go to Bestbuy and test it on as many devices as you can :)

petervandijck 2 days ago 0 replies      
1. Make a list of current target devices for this project (depends on project).2. Buy a representative set of them (like 5 or 10)3. Test on those real devices.
qgaultier 2 days ago 0 replies      
on android, I use genymotion as a quick test tool. But my company also own many devices Os * density * size for final tests.
How many books was digitized using recaptcha?
11 points by jamhed  4 days ago   discuss
Ask HN: Tools for taking notes on videos?
4 points by rpandey1234  1 day ago   4 comments top 2
JohnnyAmos 11 hours ago 0 replies      
I prefer the old standard of pen and paper for two good reasons:

1. I hate typing.

2. Handwriting aids retention more than typing.[1]

[1] http://www.sciencedaily.com/releases/2011/01/110119095458.ht...

jcr 1 day ago 1 reply      
If I was faced with your problem, I'd solve it in an odd way whichmight not be what you want.

I'd use subtitles.

With a bit of ffmpeg magic, I'd get the video file into MKV (Matroska)format simply because I like them best and I find them easiest to edit.The important piece is MKV supports embedding subtitle text into thevideo container format as a separate "stream" (read:file). It's easy toadd or remove subtitles.

The next problem is timing your text to specific parts of the video, butthis problem has mostly been solved by the fansub crowd. There are a fewdifferent open and closed source subtitling programs out there. I haveno experience with them, so I can't make any suggestions. If I needed asolid suggestion, I'd ask any of the fansub groups. They'd know whatworks well.

In most regards, what you want is the subtitling software itself sinceit allows you to both view the video and edit your text. If your textis simple, it should do the trick.

EDIT: If you have the urge to do some hacking, you could also modifya player like VLC or mplayer to show text in a separate window from thevideo. This could help if you need to present your additions to others.

Ask HN: Thinking of mentoring? Looking for a mentor?
21 points by eatitraw  3 days ago   21 comments top 16
helen842000 1 hour ago 0 replies      
I'd be really interested in having a mentor as I persevere with becoming a self-sufficient coder/learner. Someone willing to not skim over the fundamentals, advise on best practices and assist with what will probably be very naive/basic mistakes. I'm most familiar with Python, I did my CS degree 9 years ago, I hack a lot of stuff together to get close to what I want to make, I can edit existing code but would like to build small web apps & learn how to manage them efficiently.

On the flip-side, I would be happy to reach out to anyone needing help on the business side, user testing, feedback, a/b testing, finding their audience, marketing. I currently work as an I.T Consultant in streamlining & automating businesses and I also run a wedding photography company.

My e-mail is my username at gmail.com

eatitraw 3 days ago 1 reply      
I am a software developer at Yandex(russian search engine company) and I want to mentor someone(or even a group -- it is much more fun to learn in a group!).

Ideally, a potential mentee:-- Wants to code her or his own small search engine. Obviously, it is difficult to recreate Yandex or Google, but it is relatively easy to make something on a smaller scale. -- Knows some C++, but wants to expand her or his knowledge -- Is in the beginning of the software development career

This is just a description of someone who I can help the most. If you don't quite match this description, send me an email anyway -- I can still help you with your own project in C++ or help you code a search engine in a some other language than C++. Or maybe I can just help pairing you with someone more relevant. :)

Email: in profile.

jamielee 15 hours ago 0 replies      
Anyone in Atlanta, Georgia?

I would love to have a mentor. I stumbled upon Hacker News about a year and a half ago. I was not into programming before. One day, I got interested in programming and stories about computer hackers and so naturally I stumbled upon this website.

I am still a newbie. Right now, I am interested in learning Ruby and Javascript. I dabbled around with Java for a few months a while ago, but I became more interested in HTML5. I taught myself nearly everything I know about programming. I am probably not at the level to have a mentor, but I would really love to chat with someone about programming or meet up and code together. Maybe get some tips and advice on how to accelerate learning.

I do not know how distance mentoring would feel, but I am open to it.

email: jamie.lee@gatech.edu

blairbeckwith 3 days ago 1 reply      
Quite experienced in building developer communities around platforms. Whether you're looking to kickstart an ecosystem or grow an existing one further, I have solid knowledge of the process from a software and business perspective. I currently run Shopify's App Store ecosystem which does millions of dollars/year in revenue for our partners.

Reach out to me if there's any way I can help: blair@shopify.com

yen223 3 days ago 0 replies      
I'm looking to pick up machine learning skills, especially on the math side. I've completed the Coursera course on Machine Learning, and I'm looking to take it to the next level. In return I can teach whatever I can - I have some pretty decent Python programming skills.
S4M 3 days ago 1 reply      
I could get some help with front end web development. In exchange, I could help in maths. The deal would be: you are available to answer my dumb questions in css, html or jquery, and I am available to answer your dumb questions about maths (linear algebra, bit of number theory, analysis, probability and statistics).

I guess it would be a good fit for a competent web developer who for some reasons wants to learn maths (I am about the opposite). My email is in my profile if someone is interested.

wturner 3 days ago 0 replies      
I have a few programming mentors I work with and I'm looking to develop the business side of myself thus I'm looking for a business mentor. In exchange I can help you with web projects and give you a percentage of whatever business we create.

I'm in my late 30's so I have a lot of experience. I don't mind working with people who are younger , but 30 is about the cut off limit. My goal is to seed a lifestyle business that has the potential to grow very large. I'm more interested in a good fit between myself and the mentor than the mentor being extremely successful. However, you should have a track record that reflects a degree of successes. wktdev@gmail.com

I'm looking to get started in about 2 months.

Thank you.

gauravgupta 2 days ago 0 replies      
I'm a developer with about 6+ years of experience in web companies like SlideShare, Educomp and Naukri.com. Currently running my own startup and doing tech consulting for other startups in my free time! More details here - http://www.gauravgupta.in/freelance.php
jackgolding 3 days ago 0 replies      
I am interested in having a designer/front end dev/UXer to bounce off and help me get started with my portfolio.

I am a Market Research Consultant (Data Analyst) so I could offer mentoring/advice for surveys or data analysis. I also am pretty handy at programming (python) and maths (early uni.)

Shoot me an email! jackgolding@live.com.au

MrGando 3 days ago 0 replies      
Reasonably versed mobile dev ( iOS ). If you need some help/mentoring, give me a shout at "me at nicolasgoles.com"

I'm looking to learn interesting or advanced iOS (low level stuff, interesting UX concepts). Also interested in server side coding with Go.


hath995 3 days ago 0 replies      
Hi, I'm looking for a mentor for math (proofs, abstract algebra, real & complex analysis) and algorithms.

I'm a software developer working in Node.js, and very solid with JavaScript, MySQL, Mongo, and other web technologies (jQuery, Angular, etc...). I also have experience with a number of other languages including PHP, Java, C/C++. I'd be happy to mentor folks in those things as well.

redxblood 3 days ago 0 replies      
Im a student of Computer Science in my second year. I know HTML, CSS, Bootstrap, a little Jquery, Java, a bit of C++, and have created a couple websites.

If anyone would like mentoring of any of the above, id love to help!And if anyone knows about Node.js or databases, id certainly would be glad to learn. In return id teach or help in whatever i can.

macguyver 3 days ago 0 replies      
This is a great idea and similar to this thread: https://news.ycombinator.com/item?id=7692769. I think there's a chance of building this into a platform. Email me if you're interested.
adidash 2 days ago 0 replies      
Experienced in search marketing, web analytics, & conversion optimization and a mentor at a startup accelerator.

Looking for a programming mentor to help me learn Python. Have some HTML, JS, & CSS experience but no backend knowledge. Email - adityadugar@gmail.com.

SJMosley 3 days ago 0 replies      
I am looking for a mentor in game development. I studied game development and computer science in school. I have worked on a few games academically but am looking to start making and any expertise would be extremely helpful.

Email: in profile

voltaire 3 days ago 0 replies      
Looking for mentor in director / vp product role mainly for career advancement advice.
Ask HN: Can you build something better than Youtube?
7 points by anilshanbhag  2 days ago   12 comments top 8
zindlerb 2 days ago 1 reply      
The thing that will unseat youtube will probably not look like a competitor originally. I don't know what it will look like. Twitch seems like a possible canidate.
User9812 1 day ago 0 replies      
Sure, we can make something better, but who is going to fund such a site, because you're going to be losing millions in bandwidth for a long time.

There's a reason image hosting sites are everywhere, but no one is hosting video. It's just too expensive, and you can't make a return.

If we had some kind of peer-to-peer, decentralized video sharing platform, so we could share videos without region restrictions, and without worrying about paying for bandwidth or storage, we might be on to something. Something like torrents, but I'd need to be able to post a link here, and you could click it, and stream the video in your browser from other users.

AbhishekBiswal 2 days ago 0 replies      
It is Possible. But if there is a startup working on it / a service already there, and is getting some traction, Google probably knows about it. Again, Google can make/introduce new features to keep the users coming back to it or it can simply acquire the service ( For example, Twitch ).
bluerail 2 days ago 0 replies      
It would take lots of money, hardware and resources to build and maintain a site like Youtube (did I missed the pounding legal and privacy issues to be dealt with)., and the possibility of revenue is so lower to compensate for the money spent which is a model that investors don't like..

As youtube already captured the desktop video streaming and most of the mobiles, a possibility will arise only if a new platform awaits.. like VR, or IoT.., these things would give an early bird ticket for the competition arena..

And, i am slightly eyeing on the possibilities for a Video streaming services in IoT field., Say for example, streaming vids in your fridge, roof, doors or whatever..

chintan39 2 days ago 0 replies      
There is always a way to build something better then existing giants.Some of examples in past:AltaVista vs. GoogleMySpace vs. Facebook.

There will be somesite, someday that will takedown youtube.

eip 2 days ago 0 replies      
It would help if you already Tier 1 network capacity. Several large and geographically distributed data centers.Access to black ops computer processing and storage technology. Billions of dollars. And about 8 years.
sjg007 2 days ago 0 replies      
It will start as a mobile video social thing.
ShaneCurran 2 days ago 2 replies      
Vimeo is trying to achieve just that.
       cached 26 May 2014 04:05:01 GMT