Having an Autism Spectrum Disorder, I know almost exactly what you are going through working with others! There are certain days that my brain simply cannot process the information it receives and I just shutdown...and I don't even try to comprehend on those days. But I have compensated for it by explaining upfront -- that I am going to be absent...a LOT...due to the severe anxiety and other "effects" that accompany my particular form of ASD. But in exchange I work as hard as I possibly can on my good days to put myself ahead, and this has paid off for me!
I missed 13 out of 16 lab/lectures in my Data Structures class because of my issues, but I was the only student to ace the final because I worked so hard from home -- and in my System Analysis class I was able to skip the final because the instructor graded on a curve and I was so far ahead. And both of these instructors wrote recommendations for me, even though they knew how much I would be absent.
But if there's any way possible, I would prefer to work at home alone, that way I wouldn't have to explain anything on my bad days and just do quality work when I can.
You sir, are most impressive. You definitely kicked major **. I am very similar. I will set a goal for myself and if I am unable to meet it, things get pretty hectic. I've never used my epilepsy as an excuse for anything. When I worked in this shipping department we had to get a lot done in little time. When I had minor convulsions in my arms or I made mistakes, I would make up for it during my breaks. There are days though where I am truly incapable and on those days it would be nice for people to understand it. Which is hard in any field. So working from home would definitely be liberating.
My opinion is that there are two responsibilities here; firstly you have the responsibility to be able to-do you work. This is quite clearly the case, you are able to work effectively, just slightly differently to others. The other responsibility is that your employer must give you the environment to do your work; so if people give you a hard time, you can legitimately say to your employer that things have to change (at least in the UK if they fail todo this, you can take them to court.)
It sounds like software development is a good fit, most projects fit into longer time-scales, and a few days where you are much less productive is less of an issue, than a very high-pressure must get it done now culture.
I've know some developers who got so little done, that most of use could do the same work in a day and take 4 off; If you work on making your on-days productive, you'll feel less bad about the off-days which you have no control over.
That's for the most part how I go about things. But, it doesn't always go the way that I'd like it to. I tend to just push myself for as long as I can go.