Monday, April 22, 2013

The Salary Reality

Warning: this post contains salaries.

In 1990, when I started my first software developer position with the University of Michigan, I earned about $25,00 annually, plus the University's additional benefits -- good health insurance, retirement contribution double-matching (yes, you put in a dollar, pre-tax, and for every dollar you put in, they put in two). Yes, it's considered a faux pas to quote actual numbers in your salary history, but I was a state employee; that should be a matter of public record somewhere. I should have taken much better advantage of the program and contributed a lot more than I did, but, well, 23-year-olds are not necessarily wise in the ways of planning their retirements.

Comparing salaries by year is a little problematic, because you have to decide just what inflation or cost-of-living numbers you want to use, but I think it is reasonable to say what this cost-of-living calculator says, which is that in the year 2000, that $25,000, adjusted for cost of living, would be about $33,000. In 2000, I was actually earning somewhere around twice that. So I was comfortably ahead of cost of living -- I had roughly doubled my income in a decade, partly because I switched back and forth a couple of times between the lower-paying University jobs and the private sector, and got a lot of different experience.

Then came the dot-com bust, and general stagnation. And so between 2000 and 2010, though, my income, adjusted for cost of living, rose by about... hang on... carry the two... round that to approximately... nothing. And if I extend the same calculation out to 2013, I find that, at least by this measure, my income relative to the cost of living has gone down.

It's not just me. I'm looking at jobs. Now, I should be looking at senior or managerial positions, but there aren't a lot of those, so I'm trying to cast my net wider, and in the process skimming through descriptions of jobs that I just can't afford to take... but thinking about them. Here's a job. It's an assistant manager position at a state University -- "The (DELETED) Technology Support will serve as the lead resource responsible for supporting information technology solutions, and providing dedicated technology assistance to the assigned. In addition, this position will be responsible for maintaining the integrity of the computer system,classroom technology and mobile device environment within that unit." It requires a bachelor's degree and 3 years of experience. They don't quote a salary -- very few positions actually do -- but it points you at a table, which indicates that a position of this grade pays, at a minimum, $31,300.

One interesting thing about that cost-of-living calculator is that you can work it backwards, instead of just forwards. So how does $31,300 in 2013 compare to my $25,000 job out of college in 1990? Well, I'm glad you asked. It's about 47% lower. Of course, the bottom of the range isn't necessarily what they would pay; I don't think I started quite at the bottom of my job range back in 1990, and a competitive candidate presumably would have room to negotiate it up a little bit. But could you negotiate it up to around $45,000? Because that's the approximate value of that $25,000 job today. It seems unlikely. And so this is one small measure of how very, very much prosperity the middle class has lost.

The Situation (Day 43)

Time moves strangely when you are unemployed. It feels like a recent episode of Doctor Who, "The Girl Who Waited," in which Amy Pond winds up shunted into a separate time stream, where many years go by for her while she waits for the Doctor to rescue her. Of course, from my perspective, I'm not just sitting around waiting -- I'm applying for lots of jobs, talking to recruiters, revising my résumé and portfolio materials, and considering some crazier options. But the outside world seems like it is traveling in a different time stream. By the time an employer responds with a job offer, will I still be here, ready to take it? In this time stream my savings are diminishing with unnerving speed, and the process of getting set up with food assistance is going by very slowly. It's been six weeks since we first applied. Unemployment compensation and my tax refunds ensure that the mortgage is paid up for the next few months, but the process is really dragging. When I get to feeling too stressed out, I hit the gym, or work on some music.

One of my friends reminded me early on that unemployment is often a marathon, not a dash. I'm familiar with the process -- I've lost jobs before, when a business collapsed or shrank. And the truth is I've never really had much difficulty finding a job in the past. Recruiters have been encouraging -- there actually does seem to be a sort of resurgence, at least a small one, in Michigan manufacturing, and the embedded software jobs that go along with it. But we're talking elsewhere in the state -- Grand Rapids (now partially underwater), and the Holland area, and the axis around Detroit. So I'm thinking very hard about our life here in Saginaw.

When we moved here three years ago this house seemed like an unbelievable opportunity for us. A big lot, large enough not just to make a big garden but to make a community garden, sharing space with our neighbors. A home large enough to give our kids room to run around and make noise, or find quiet spots to themselves. Separate suites of rooms for my home office and homeschooling -- even a room I could dedicate as a recording studio. Room for all our books to actually sit on shelves instead of in boxes! Well, we need to get more shelves, but the space is here. After ten years in a crowded apartment it has been a godsend for a family with kids. But we very well may have to leave.

This was my grandfather's story. He was moved constantly for work -- he was a chemist for Welch's grape juice. Every time, he had to uproot his family. They were a family with only two children, but it must have been incredibly stressful. He himself suffered heart attacks at a relatively young age. After 3 years here, we've just gotten to the point where our children are thinking of this place as their home, and Sam has stopped asking when we are going to go home. The idea of moving everyone, and everything, again, is heartbreaking to me. We haven't even fully unpacked. There are a bunch of boxes still filled with stuff. Some of the things I've been missing are no doubt in there. I just recently came across a box of CDs, and unpacked it, and realized I had bought duplicates of a bunch of CDs that I was missing. We still have a small storage unit full of stuff back in Ann Arbor. Three years.

But yet, this place is strangely expensive. I don't like the climate, even after growing up in Erie, Pennsylvania and living in Wooster, Ohio and Ann Arbor, Michigan. It cold 3/4 of the year, and it's very damp, so it feels even colder. There's a big mosquito problem in summer. Our heating bills are ridiculous, and the house needs a lot of work -- insulation, windows, refurbishing fireplaces. The neighborhood continues to deteriorate. Houses sit empty. Three of our kids tested positive for lead exposure. Our metal trash can was stolen -- apparently people steal them to sell for scrap. The rocks we set up as borders to one of our garden beds were stolen. I'm still pondering that. Saginaw, Michigan -- a place where people will steal your trash can and your rocks. And so I keep asking myself what kind of life we are building here, and whether I'm just stuck in the "sunk cost" fallacy -- feeling like we've put so much into it, that we're bound to get something back, so we should put in more. But the truth might be that it's time to cut our losses. And then the questions become "where," "when," and "how" -- do we get out? Because I'd like us to go to something, some work, some place, that is worth going to. I don't want to have to move again.

Monday, April 15, 2013

The Situation (Day 36)

Just a quick note today. Our taxes are all finished (mine were done a while ago; I had to finish my son's this weekend). Fortunately the unemployment situation this year doesn't change anything about our 2012 taxes.

Today I got my job search reporting up to date through April 13th. I spent some time looking at new job postings. I have a phone interview coming up on Wednesday, and there are also some potentially interesting new positions to apply for.

We're having some car repairs and maintenance items done -- eating a little more of our savings -- but it's necessary. I'm hoping our main food benefits will come in so we can cut back further on the amount of cash we're having to spend on food. It takes a long time for that stuff to go through -- I think it's been over a month since Grace first put the paperwork in.

This afternoon I worked on some iOS development. I'm using iOS Programming: The Big Nerd Ranch Guide, 3rd Edition and although it is dated August 2012, it is already somewhat out of date with the current XCode. I can't really blame the authors for that, of course -- this stuff changes very rapidly.

I'm using XCode 4.6.1 and I ran into the following problems. First, by default, my project used the new "storyboards" feature rather than .xib files, which produced some minor confusion and wasted time until I found this discussion and rebuilt my project without storyboards. Second, when I did that, I lost a connection between the .xib and the view controller it was attached to, which resulted in an exception upon leaving initWithNibName. Fortunately I found a clue here. Google is a godsend for this type of thing since so many folks now keep a running log of programming problems solved, on Stack Overflow, on message boards, or on their own personal blogs. I try to pay that back a little so when I run into a programming or configuration error, and figure out how to solve it, if I think it's general enough to be a problem that other folks might encounter, I make a blog entry about it. I've gotten several comments that I helped out other people by doing this, so that's gratifying.

Anyway, the upshot is that I'm working my way through samples and have little demos running on my iPod Touch, that I can then tweak and expand on. That's promising. If I can get some more of this done, I might soon be able to argue convincingly that I can do basic iOS development. That's one possibility I'm working towards.

That's about all that's going on today. Thanks for all the good wishes and support!

Friday, April 12, 2013

The WIC Experience, Continued

This afternoon we went to Kroger to try to get the WIC items we couldn't get at Meijer yesterday. Kroger helpfully labels WIC-allowed items right on the shelf. But even that is a little confusing. Here are some of the cheeses we found:

These look like they are covered, for a person who has cheese on their approved monthly shopping list, but the WIC materials say that you can't buy cheese that costs more than $8.00 a pound. So we decided to avoid risking another mess at the checkout. This fresh mozarella met the price point and we considered it:

But we decided to see what was in the regular cheese section. There was Kraft:

But Kraft (and a lot of store brands) now have Natamycin in them. That's a relatively new thing:

I don't want to eat that. To me it's like buying bread that is pre-injected with penicillin. We really just don't need to _taunt_ our food into developing antibiotic-resistant pathogens like that. This store brand had an acceptable ingredient list, the price was under the cutoff point, and it was listed on the shelf as WIC-allowed:

Remember, yesterday, at Meijer, the Meijer store brand equivalent was rejected. But wait -- what's this? A store brand of Vermont cheddar actually made by Cabot? Yes, please. Cabot cheese is very good.

On to juice. This is the refrigerated juice section:

Supposedly WIC covers refrigerated juices -- but there was not one product in this entire section that they covered. So they should take that out of the brochure. It seems to be obsolete information.

They do cover some specific non-refrigerated bottled juices. Remember yesterday we tried to buy a V-8 juice that matched the printed criteria, but it arbitrarily wasn't approved? Well, for this reason it's really nice to have the stuff marked right on the shelf. Here are some of the approved juices:

But that grape juice? I'm reminded of a scene in the movie Men in Black when the alien "bug," wearing the dead farmer's skin, walks into his home and demands that his wife give him sugar. In water. Our kids would just pound that, and it's actually a bottle of tooth decay and metabolic syndrome and a lifetime of bad dietary choices. So, no thanks. The V8 and the pineapple juice -- acidic juices sold in metal cans? No thank you. I was surprised, honestly, to find out that those products even still existed. And the regular tomato juice? It has as much sodium as canned soup. However, we did find a low-sodium version, and took some home:

There was also a "spicy" version that wasn't low sodium, but which looked like it might actually make an good soup:

Our two-year-old in particular loves hot and spicy food. Seriously, he can't get enough chipotle chili powder and Sriracha sauce. If that gets him to eat a lot of vegetables, I'm not going to complain. So maybe we'll try blending this with some low-sodium organic chicken broth, some of our dried herbs and vegetables, and gluten-free rice pasta, and maybe some chicken. So we're going to try that. Come over some night and try it!

We also found some frozen concentrated orange juice that was WIC approved. I'm not going to upload pictures of that. Let's just say that we skipped the Minute Maid and went for the store brand with added calcium.

Yesterday we had to put back a bunch of canned black beans because they weren't a specifically approved brand. They were 99 cents a can, but these Busch canned beans at $1.39 a can are all covered, and all clearly marked:

So we bought eight cans of cannelini beans (those are effing delicious, by the way), and eight cans of black beans (our other favorite). Maybe next month we will mix it up with some kidneys and garbanzos (yes, the party never stops at the Potts house!) Dry beans like this are also covered:

But we usually get this kind -- locally grown -- and they are not approved for WIC:

But -- as you'll see below -- I think we're pretty well set for dry beans. I am not really sure what the best value is, in terms of cost per ounce of finished product. The sodium content of the canned beans is higher, since they have added salt, but it is not really a big deal to rinse them.

Finally, back to the goat's milk. Grace is supposedly, according to her documentation, allowed to buy up to 22 quarts per month of low-fat goat's milk. This was the only WIC-approved goat's milk at Kroger (and the only goat's milk, in the store, period):

Aaaand this item was rejected. Although it was not very clear. At Meijer, you run your WIC card through at the start of the order, and it will flag items that are not approved as you go. At Kroger, you just start scanning items, and at the end, pay with your WIC card. If there are non-approved items it just asks you for more money to cover them. This is quite confusing -- it is not obvious from the receipt which items weren't approved, so again we had to stand in line for some time with multiple checkout clerks trying to figure out what was wrong, and then we had to go to the service desk and try to figure it out there. (Hint: they don't know).

Grace tried to call the WIC office when we got back home, but it was after five at that point, so there was no one who could answer her question. I think the issue is that Grace is only approved to buy low-fat milk, and the goat's milk they had for sale at both Kroger and Meijer was counted as full-fat milk. Some folks are approved for full-fat milk. I'm not sure why she isn't -- she is both pregnant and breastfeeding. In any case, I'm not sure there are any stores in the area that carry a lowfat goat's milk. The WIC office might know, but if they don't, I guess we just have to start calling around.

So, there it is -- the WIC purchases are much easier to manage at Kroger, but there is still some confusion. We'll talk about this some more. The WIC office is holding a class -- people meet at, god help us, Wal-Mart. I think Grace is going to go just so we can get the official story on how it is supposed to work. Because, honestly, while I am really happy that we can get these supplemental food items, it is still far more confusing and difficult than it should be. It seems to me that so few specific foods are covered that, aside from produce, the WIC pamphlets shouldn't try to describe general characteristics of food items that are supposed to be approved -- for example, the Meijer cheese, the V-8 juice, etc. They should just show the exact items that are covered, with text descriptions and pictures. Items should be labeled on the shelves at Meijer. And all the participating stores ought to stock at least one item that fits each category. If "lowfat goat's milk" isn't for sale anywhere around here, well, being approved to get it for free is a pretty effing useless benefit to have.

People sometimes ask me how we're doing, with not having a job. I'm applying for a lot of jobs. Our savings are gradually decreasing, but we have medical coverage for everyone but me, our mortgage is paid for, for a while, and we are getting food assistance now, with more on the way. This is our basement food storage:

Over the past year or so, I've been gradually buying a little extra non-perishable food each month, and filling up the shelves. We've been filling up a chest freezer with meats, too. We are rotating older non-perishable items out and new ones in. On the left are dry beans and brown rice and nuts and unsweetened applesauce. In the middle are salad dressings, mayo, hot sauce, canned fish (tuna and salmon), and canned tomatoes of various types. On the right are things like boxes of chicken broth, canned beans, and canned refried beans. There's the rest of a fifty-pound bag of Michigan-grown pinto beans, the stuff that isn't in glass jars yet. Those are really good in chili too. We're slowly buying more glass jars (because we have the occasional mouse, and it is amazing what they will chew through).

The sixteen cans of beans we brought home today fit right in there. There's more in the pantry upstairs, but this is the bulk of it. It's part of our savings.

When our tax refund comes in, I'm going to use a chunk of it to buy some big-ticket items -- a couple of gallons of olive oil, a couple of gallons of grapeseed oil, and a few pounds of unrefined coconut oil. And we'll get the shelves filled up, so that we can buy, or have covered by food assistance, only perishable foods for a while, if we need to.

So how am I doing? I'm not feeling too bad. The economy may be in free-fall, my career may be basically at a dead end, we may have to leave our home. But at least one thing is taken care of, for the time being, and for a good while longer than that, actually -- we'll all be well-fed.

The WIC Experience

So I mentioned that since I now have very little income, we're eligible for WIC. It's a program designed to provide supplemental nutrition for pregnant and nursing mothers and young children. We are still waiting on the SNAP benefits we are supposed to be eligible for (a.k.a. "food stamps," although they do not involve stamps anymore), but today we got our paperwork and first monthly WIC debit card, so tonight we went to our local Meijer grocery store to buy some groceries.

WIC only covers certain very specific things. It is designed to supplement the regular food benefits with high-protein and other high-nutrition foods. I think they are specifically trying to supplement iron, folic acid, calcium, and nutrients like that which are incredibly useful in pregnancy and early child development. They don't cover any meat at all, except that a nursing mother can get items like canned tuna. The stuff they cover is designed to assist Grace, who is pregnant, and our two children under the age of five, not me and not our older children. What they cover and don't cover is interesting. They are clearly trying to focus on basic nutrition. But their allotments of certain types of foods are very far from what we normally eat, what we prefer to eat, what our systems tolerate well, and what we consider current research to say about nutrition. For example, they still seem to be focusing on the "food pyramid," which pushes staggering quantities of carbohydrate from whole grains -- as much as a competitive cyclist would eat.

Given that our children are not competitive cyclists, we don't really want to feed them that much grain. And what they consider OK is much different than what we do. For example, they think sugar-frosted whole wheat cereals are just fine. I guess the idea is "whatever it takes" to get the kids to eat the iron-fortified wheat products. They would have covered a lot of peanut butter (conventional only, major brands only, not fresh or locally produced or all-natural or organic). Vernonica is allergic to peanut butter. You can substitute beans, so we attempted to buy our favorite canned black beans, but apparently only the specifically-mentioned brands are covered, even though that isn't very clear. So we had to put our 16 cans of black beans back.

They really push the conventionally-produced (not organic) cereals. Sam isn't supposed to have gluten, so that rules out the wheat products. And non-organic means GMOs. We've tried to structure our diet, for years now, around avoiding gluten and as many GMOs as we can. But, well, it's free, so maybe we can bend our usual rules a little bit. These things are covered, and we bought them, although we normally wouldn't (I sometimes get unsweetened shredded wheat, which isn't covered, and we usually get steel-cut oats, which aren't covered):

We also got some grits -- the only kind they covered were Quaker instant, in single-serving packs. They cover brown rice, although conventionally-grown only. We usually get the Meijer store brand organic brown rice, but we're willing to substitute this non-organic brown rice, and it was covered:

WIC covers a limited selection of corn tortillas -- basically, the ones with preservatives that are shelf-stable, not the fresh locally-made ones we usually get that are sold in the refrigerated section. WIC would have covered these, but after reading the ingredients, we just couldn't bring ourselves to buy them:

WIC will also pay for an enormous quantity of cow's milk. I have a mild reaction to cow's milk -- it makes me horribly, horribly congested, which inevitably leads to a cold or sinus infection. I had awful allergic rhinitis in childhood, along with chronic bronchitis, ear infections, and eventually had my tonsils removed because of chronic sore throats. When I went off cow's milk all that vanished. If I have a "dairy binge," -- say, I give in to a craving and drink a large chocolate malted, the reaction is _immediate_.

So I go pretty light on the dairy products. I can eat a certain amount of things like cheese and yogurt and some liquid milk products without reacting, but if I push it too far, I get sick. I'm not really the point of this program, though -- this supplemental food isn't really to feed me -- but more to the point, at least one of my sons has a similar reaction to dairy -- and he'll actually break out in hives. Independent of any kind of allergic reaction, people of African descent often just can't digest cow's milk very well. Wikipedia says "The frequency of decreased lactase activity ranges from 5% in northern Europe through 71% for Sicily to more than 90% in some African and Asian countries" (see An awful lot of kids and mothers on WIC, including my own, are of African descent, of course. My wife's sister can't digest milk. She can, to some extent.

So we use liquid milk in small amounts, buying mainly organic half-and-half for the healthy fats it contains, putting it in coffee and tea and on oatmeal, and organic sour cream, which we use on baked potatoes. We've also found that over the years conventionally produced dairy milk has gotten less and less safe to drink. We've used only organic liquid milk products for the last decade or so. There was one point at which we broke this rule. Someone had bought too much whole milk for some kind of church event, and they gave us the leftovers to take home. It was fresh, not expired, but 12 hours later we all spent the evening vomiting. So. Anyway. I was just a little freaked out to discover that the state is advocating consumption of simply ginormous quantities of conventionally-produced dairy milk. But they will not cover organic milk at all.

For reasons I can't understand, they also specifically will not cover the locally made brand of conventionally-produced milk, Guernsey, which is the one we'd buy if we had to buy a non-organic milk. Why? I don't know. We did wind up get a gallon of conventional whole milk. I look at it as something you probably don't want to have in your home, like a tarantula, or an unexploded mortar shell. I think I'm going to try to make basundi (an Indian pudding or fudge, made from cooking down milk until it gets really delicious). I've made that before with organic whole milk and it was great. I think cooking it down may render it less allergenic, and should kill anything in it. I hope. We'll see. Basundi is delicious. The only downside is that it takes a long, long time to cook.

So, we didn't want to buy a lot of dairy milk -- but they cover other milk, right? We go through a lot of almond milk, and sometimes coconut milk. Those items aren't covered at all. They do cover soy milk, but Sam isn't supposed to have soy, and we don't use it a lot because of phytoestrogens anyway. And they only cover a couple of specific types, not Silk. Also, although we don't use it much, apparently they don't cover tofu. They do, supposedly, cover goat's milk. I don't really like it, but Grace does, and the kids would probably drink it. Meijer offers exactly one type of goat's milk. It wasn't an allowable WIC item in their system, when we tried to check out. They did cover a small amount of buttermilk, so we got some of that.

They will cover eggs -- but only conventional, medium or large white eggs. Not cage-free, not organic, and specifically not "Eggland's Best Organic." We usually get our eggs from a neighbor with chickens, anyway, supplementing with Eggland's Best only when her hens aren't laying enough. The difference is huge -- once you've had fresh pastured eggs, you really will never go back, if you can help it, to old, flavorless commercial eggs. So, we'll skip the eggs, unless we get really, really desperate.

Anyway, the guidelines they give you are very specific -- but still not specific enough. Have you ever been stuck behind someone at a grocery store who was paying for groceries with WIC and had to put back half their food and debate with the clerk over what was covered and what wasn't? Yeah, that was us, tonight, despite spending a couple of hours carefully studying the WIC brochures and making a plan for what we were going to buy. We had to put back about half the things we intended to buy through our WIC card.

Here's what it says about fruits and vegetables. Note that organics are OK:

So this was just fine:

And so was this:

I find it interesting that sweet potatoes are covered, but white potatoes aren't. Grace and I like sweet potatoes, but for some reason the kids prefer white potatoes, so we don't eat them very often. Well, the kids are going to have to get used to them. We're not going to spend our rapidly dwindling savings to buy white potatoes if we can get sweet potatoes for free. Besides, they have more beta-carotene.

The produce stuff was pretty easy. But it got a lot harder. Here's the refrigerated juice section:

We stared at this section for quite some time, and as far as we could determine, although WIC is supposed to provide various types of juice, only one of these actually qualifies. It was the generic store-brand juice at the bottom left. We chose the version with added calcium, which is supposedly allowed.

Fine, we thought -- although we don't drink fruit juice, at least not un-diluted, typically, because they are very sweet, and the kids just will drink glass after glass until it is gone, and the combination of acids and fructose tends to rot the kids' teeth. But we'll try it. Except that when we went to check out, it wasn't covered.

The brochure says they cover a large number of different kinds of non-refrigerated juices. Here's the section:

WIC would have covered a lot of syrupy-sweet grape juices or juice blends that are primarily white grape juice, but we really don't want to give that stuff to our kids, because again, they will just pound the whole bottle. So we chose a low-salt V8 that we thought would qualify, 100% vegetable juice in the appropriately sized bottle, and a fruit/vegetable blend. We were pretty confident that both of these would be good for the kids, and that they wouldn't drink them all in one day. Both were rejected by the system.

Here's the stuff we thought we were going to be able to buy:

And here's the stuff that the computer system didn't allow:

It's not actually clear to us why some of these items were rejected. In some cases, the wording of the WIC brochure was vague, so we may have thought an item was covered when it wasn't. It could be because some items weren't listed in the store's database as allowable by WIC at all. It could be that the specific categories and amounts of food types we thought we were approved for weren't correctly set up in our account. The cashier just sees a single error code that says something like "not approved/not a WIC item," which could mean any of those things. I think the manager we spoke to was trying to explain to us that the whole system wasn't actually set up by the store at all, and Meijer had nothing to do with tagging items as allowable or not allowable by under WIC. Maybe all WIC transactions go out to an entirely separately-administered system for approval. I'm not entirely clear on how it works.

The kale wasn't actually rejected, we had just exceeded our dollar amount for covered produce (I think it was $22 worth of produce we were allowed). The brochure says you can exceed that and pay for the excess produce yourself, but in practice it seems that you can only exceed that and pay the overage on a single item. If you want to pay for more produce items yourself as part of the same order you can't; you have to run them through as a separate order.

And so we had to try to charge $2.20 on our regular debit card, which for some reason would not go through. At one point we had four different cashiers and a manager trying to figure out why the items we thought WIC would cover, weren't covered, and then why we were unable to complete a $2.20 charge on our debit card. So, yeah, we were those folks tonight. The ones you don't want to get stuck behind in the grocery store. The ones who were driving an SUV and taking pictures of their food with an iPod, but buying their groceries with food assistance. (And we bought a second small cart-load of groceries, with cash, to get some items the WIC card wouldn't cover, like half-and-half, butter, soy sauce, salad dressing, hamburgers, almonds, more produce, and a few other things; I think when we get our regular food benefits, most of that will be covered, and so we can, with luck, stretch our savings to keep us afloat until I have a new job).

We are genuinely curious about the food items that were refused. We talked to someone in customer service for a while, and a manager, and we're supposed to get a call back from someone at Meijer tomorrow. We'll also try to follow up with WIC. I think we might try again at Kroger. At Kroger, items that are covered by WIC are marked, right on the shelf, so you don't have to stare at the pamphlet and try to puzzle out exactly what is covered and what isn't.

I think Grace and I are going to record a podcast about this topic. The selection of what is and isn't covered is interesting, and maybe revelatory. We have a lot more to say on the whole process.

Thursday, April 11, 2013

The Situation (Day 32)

My wife and our two youngest children have been approved for WIC. We have a debit card. That was an interesting process. It's not food assistance per se, it's just _supplemental_ food assistance. It's a relatively small amount of assistance, with some extremely complicated and arbitrary limitations on what you can purchase. The idea is to get very young children and pregnant mothers extra nutrition. I think Grace and I will be recording a podcast about the process and what they cover because it is really revelatory, about the clashing priorities of the social safety net and corporate food vendors.

I'm talking to more recruiters. That's encouraging. There is actually a fair amount of software development work that I could probably get. The difficulty is that much of it is in the Detroit area. So we are considering how we might make that work, perhaps with an alternate living arrangement where I spend the work weeks in a small apartment nearer to the job, rather than drive 3 hours a day. But I'd have to earn enough to help pay for that. The salary numbers the recruiters have been mentioning are not stellar. In fact they're pretty average. I wonder if that's because, in part, that the companies have factored in what they have to pay the recruiter? And on the one hand, I can't be too precious and hold out for a salary that just isn't realistic at all. But I also don't want to take a job that will pay just enough to allow us to slowly crash our finances while being unable to pay for things like home repairs.

One recruiter asked me to fill out some interview questions via e-mail. One question in specific caught my eye. She wrote "What are you best at in your profession or most importantly WHAT DO YOU ENJOY DOING? Please be detailed."

Here's what I wrote back (well, I'll edit slightly).

OK -- you said detailed, right?

I like to solve problems through software design, and I like to learn. The quality of a job for me is directly related to how much I can learn while doing it. Over the course of my career I have taught myself many new programming languages as well as design tools such as object-oriented programming, hierarchical state machines, UML, etc. I also have an ongoing interest in digital audio, which is related to my hobby as a musician and producer. At Lectronix I was primarily responsible for the code that handled audio, from IIS inputs and sample-rate conversion and mixing, through to the high-level control interfaces for controls like bass, treble, balance, and fade. I also have an ongoing interest in designing good user interfaces.

A lot of software is unreliable and hard to maintain because there is no clarity to its design; the design has grown over time with contributions from different programmers of different skill levels and might contain problems like: un-handled input conditions; hard-coded timings that are not reliable; race conditions; support for vestigial features; poor functional or object decomposition.

Sometimes moving from an excess number of threads to an event-driven model can dramatically simplify code. Sometimes splitting code _into_ multiple threads, that then serialize inputs and outputs through shared event queues, can dramatically simplify code. Sometimes moving to an explicit state machine, flat or hierarchical, can dramatically simplify code. I recently worked on a design where there were a number of instances of a hierarchical state machine running in separate threads, consuming serialized inputs and producing serialized outputs via message queues.

I like designing software from scratch, but I also like handling legacy code -- studying, documenting, refactoring, and debugging it. I consider it to be time well-spent when I can _remove_ hundreds or thousands of lines of code from a program while also fixing bugs and improving readability.

I have also been pushing for the use of advanced languages: languages such as Dylan, which I've used for modeling object-oriented designs that use multiple inheritance, since it was simpler to model the design in Dylan, test it, and then port it to C++ than it is to write it from scratch in C++, and Haskell, which may not run on the target but can be useful for generation of code and validation of algorithms, and lightweight scripting languages such as Lua or Squirrel that can be embedded as interpreters, allowing the non-time-critical "business logic" of an embedded system to be written in a more expressive way, perhaps by domain specialists. While working with the Health Media Research Lab I did this sort of thing using Kawa (a Scheme implementation that executes on the JVM) and also used NewtonScript as a dialect of Lisp where the blurry distinction between data and code allowed me to create a script "engine" that could execute different "scripts" to administer surveys. NewtonScript is sadly dead and buried but the principle survives in the use of domain-specific languages like Ruby on Rails.

Years ago I read about the phenomenon of "Greenspunning." If you're not familiar with that idea, you can read about it here.

I've seen engineers essentially implementing interpreters in C++. This sounds like a good idea, except that these engineers typically have no experience in language design, and may even never have _used_ a language such as Scheme or Haskell. They start with something very simple. Sometimes it's based on byte-codes, or XML, or even objects (if they are new to C++ and want to play around with class hierarchies). But inevitably they find that they need to handle iteration, and numbers, and pretty soon they have something that is a horrible mess, built entirely in an impenetrable heap of C++ instead of just writing in a simple language. Sometimes, as far as the code design goes, it looks like BASIC circa 1977: spaghetti code.

There's no syntax. Lisp would have been easier to understand. And the company's critical business logic is implemented in this horrible, over-engineered, buggy mess. Sometimes the "not invented here" syndrome is a part of it (see Sometimes it's a pet project. It's usually something that has to be thrown away completely when the key engineer leaves.

C first came into popularity around the mid-1980s. That's a long, long time ago in computer years. C is incredibly useful but our processors have increased in speed by many, many powers of ten. Some applications will continue to need strictly optimized C or assembly language for performance, but in many other cases this abundance of cycles and memory gives us great opportunities to use other languages for business logic and graphical user interfaces. I am an expert C (and C++) programmer but I would consider a work situation that allowed me to also work with languages such as Scala, Python, Lua, etc. For what it's worth, game designers have figured this out, and a lot of game engines are scriptable in the way I just described. No one could say they don't worry about optimization.

I realize this isn't the type of thing that a typical warm-body-in-a-cube embedded software engineers often get to do. They want someone to implement code in C on an RTOS and they honestly spend more time writing specs and making sure things are MISRA or AUTOSAR- or whatever- compliant. I'll do that sort of work if it is all I can get but if there was something that looked more like "software architect" designing _systems_ across multiple languages that would be far more interesting.

So -- where can I find a job like that? Oh, the truck's "check engine" light is now on. Ugh!

The Situation (Day 31)

Tonight I got my first little iOS application running. It's just a standard piece of demo code, but it's something. There is a fairly complicated process you have to go through to, basically, give yourself the right to compile and execute code using the computer you bought, the device you bought, and the compiler tools you downloaded. You have to set up a key, and to do that you have to have an active developer program membership, which you have to pay for. It's $99. I had purchased a membership a few years ago but never actually got around to using it, what with the new baby at the time and all. So I had to buy another year. And a new iPod Touch, since my first-generation device was just hopelessly out of date (they're currently on generation five, and much has changed).

So I'm an iOS developer now. Well, sort of. I don't really know how to do very much, yet. I've got some books to study. There's an iTunes University class. I don't have anything you can download from the App store yet. If you want me to develop something for you, get in touch; maybe we can work something out. I'm going to attempt a puzzle game. Although I'm a very experienced developer in general, and on Apple platforms in specific, I'm new to both iOS and Objective-C, so keep that in mind.

Distribution of iOS applications has a few complications as well. If I were consulting with you and you wanted to pay me to develop an app that you planned to eventually distribute through the App Store, you could bring me your iOS device and I could set it up ("provision" it) so that I could install a build of the application in progress for you to try out. But I don't think I could, say, e-mail it to you in a form such that you could easily install it yourself. But that isn't really for developing "in-house" apps -- say, something you want to write just for people in your own company to use. There's a different program for that -- the $299 Enterprise version, that gives you the means to distribute an app within your organization. I'm still coming up to speed on how this all works. I'm really not very happy with this code-signed, digital-rights model where I can't just send you a program I wrote, but I guess that's how it is with iOS development. It seems I'll have to accept that model, at least long enough to learn more.

Learning iOS development seemed like a natural thing, given that I've been, at various points, a developer for MacOS, MacOS X, and Newton. The question is whether this might actually open up any more useful opportunities. Will it pay for its own (small) cost in money, and (potentially large) cost in time? Maybe. In 1993, it did, but I was able to spend my evenings and weekends teaching myself Newton programming. That's a lot harder in 2013, with a wife and kids, even while unemployed, since I'm finding that even a fairly inept job search is extremely time-consuming. But let's assume I can get good at it. Maybe what I want to do is be an in-house iOS developer. The question then becomes "where?" and "how much will they pay me?"

Tuesday, April 09, 2013

The Situation (Day 30)

We have miserable weather here today. Yesterday was ugly, but today is just an endless, pouring rain. My mood has been commensurate with the weather. When I'm done with this, I'm going to hit the gym to try to get some dopamine pumping.

There's some good news and a bunch of non-news. The good news is that Grace's doctor has finished examining her recent imaging, and concluded that there is a small scarring problem with her pancreatic duct -- but her pancreas itself looks fine. That's great news, and in the context of the past couple years, what it seems to mean is that she has healed quite a lot from the effects of the mis-placed stent. This is encouraging because it indicates a probably trajectory of further improvement, if she does nothing except continue to use the pancreatic enzymes.

In non-news, I'm waiting for any followup to my phone interview last week. I've requested a college transcript I can send. I found my high school grades, if they want those too, although that would be a first. [Short form: I clearly just didn't care that much about grades as a goal in itself, at least for my first couple of years of high school. When I was applying for colleges and realized I needed better grades, I brought them up to 4.0, but they slipped back down a little bit in my senior year. That pattern more-or-less continued in college.]

Skimming over my old report cards, I realized that the value of a class, to me, in terms of what I learned and how much I was inspired. That didn't necessarily correlate strongly with my grade in the class. I still remember how much I loved taking Chemistry and Physics and how very, very much I got out of those classes. It makes a certain sense, if you consider that I tended to enjoy a challenge, the struggle and the process -- and the teachers that graded harder tended to be better teachers.

Anyway, I continue to refine my résumé and apply for other jobs. Some of them are actually recruiters or staffing agencies and don't actually represent an open, funded job. I don't expect much, if any, follow-up from these. It's become very clear that living in Saginaw is a big liability in this job search. There just isn't much, locally. I'd consider a fairly long commute, but I just don't think driving 200 miles a day or more would be bearable. For one thing, I'd have to earn an awful lot to pay for that much gas. There is work in Dearborn and Farmington Hills and those environs -- work I could probably get, but work I'm not sure I can afford to take.

Grace and I are facing some hard choices about whether to consider moving, or whether it might be bearable for me to go off to live in, say, Boston, work there, live in the tiniest and cheapest accommodations I can find, and send money home. It's a little heart-breaking to contemplate separating from my family like that. But it's also a little heart-breaking to consider trying to get out of our house and move the whole family again.

Speaking of hard choices, we also have to decide soon whether to pay COBRA. For the three months including May, that would cost us over $4,000. That's in addition to co-pays. We... could go without. The state has ruled that Grace and the kids are eligible for Medicare coverage. I'm not. We could cover just me on COBRA, and let everyone else go onto Medicaid. Or I could go without health insurance of any kind.

There's a scene in The Muppet Movie where Steve Martin plays a waiter. Kermit orders a 95-cent sparkling Muscatel from Idaho, and tells the waiter "You may serve us now, please." Martin says "Oh... may I?" It sort of captures my feelings about health insurance. Take $480 a month from my paycheck for insurance? Why, yes please! Still leave me with hundreds of dollars a month in co-pays? I'd be ever so grateful! I have to pay $1,600 a month for COBRA? Why... [backing away slowly, bowing deeply, over and over] "thank you... thank you very much... thank you..."

Grace continues the process of applying for food assistance, so we can stretch our remaining savings a little further. We should also know soon if we can get the lead testing. I'm still waiting on promised paperwork from Metropolitan Life to finish doing our 2012 taxes. It looks like I've got to harass them on the phone all over again. So that's the news, that isn't.

Thursday, April 04, 2013

The Situation (Day 25)

Today I took Grace down to Ann Arbor for some more medical imaging of her pancreas and the associated ductwork. So she spent a couple of hours in an MRI machine in the sub-basement of the University of Michigan Medical Center, surrounded by super-conducting magnets, while I finished reading one of Kage Baker's novels about immortal cyborgs, but found that my iPod battery was dead and I could not get a cell phone signal.

Anyway, the radiologist's initial assessment was that they can't see anything wrong, and her pancreas and the ducts seem to be working the way they are supposed to. But they will go over the images some more. This result is both very encouraging and quite frustrating. It's great to hear that they don't see a lot of damage, and she may not need any more medical intervention. But we're left a little baffled -- why can she not eat food without getting strange feelings and waves of nausea, unless she takes pancreatic enzymes? We're just not sure. However, the situation has improved -- after a couple years, she is no longer getting stabbing pains if she eats food without taking enzymes. Waves of nausea are marginally better than stabbing pains. We are feeling more optimistic that we might be able to get her off the enzymes altogether, and that she might even be able to have a glass of wine with a meal again one day. Has she healed up, somewhat? Was the pancreas itself never actually badly damaged? Her symptoms have been indicating chronic pancreatitis for some time now, but we just don't know.

Anyway, we were gone all day and the appointment took much longer than we expected, and then we ran some very un-exciting additional errands while we were down in Ann Arbor. We got back quite late. So there is not much other news... but that's what happened. Oh, I guess we did have some additional news -- we determined that Grace and the kids are be eligible for Medicare if we are not able to keep my health insurance through COBRA. I'm not. But there might be some kind of catastrophic coverage I can get through the county. Our applications for food assistance and help with lead testing and/or remediation are in progress.

I got a couple of textbooks I ordered, on the subject of digital signal processing, specifically the theory and practice of filters, and a book on CoreAudio. Almost a decade ago I wrote the MacOS X CoreAudio driver for the Aardvark Direct Pro Q10 product, in C++, but CoreAudio has evolved a lot since then. You probably are not terrible interested... but I will be reading these books with considerable interest, as time allows.

Wednesday, April 03, 2013

The Situation (Day 24)

So, first some positive news. I've confirmed that my first unemployment compensation check was deposited in the right account.

Our 2012 taxes are mostly done, waiting on a single form to verify a number. We should be getting a modest refund, so that will help with things a bit.

I have a rescheduled phone interview this morning -- this time hopefully without any confusion over phone lines.

On the lead exposure issue, we've applied to get our house and property thoroughly tested for any lead hot-spots, but the office wants documentation that our property taxes are fully paid up. Because I guess that's the most important public health priority when dealing with children with lead poisoning...

A reporter from the Saginaw News has expressed in talking with us about this issue, so we're thinking that over. I don't really want to be part of another story about what a disaster Saginaw is, although it is hard not to feel like this place with its crappy city government and fleeing professional class has been doing its best to either poison us or drive us away.

I finally got that damned antique shorted-out light fixture re-wired. It took forever to find wire of the appropriate size to thread into it. I tried four or five pieces of regular 16- and 18-gauge lamp cable, but they would not fit because the squared-off insulation made them too fat to pass through the fixture. Yesterday I bought several different gauges of single-conductor wire, in case I could not find any zip cord that would work. I wasn't looking forward to trying to stuff all that through the hardware and what it would do when I had to twist it. But I finally found some 18-gauge zip cable that would fit, so I'll be returning four different spools of wire un-opened.

This fixture has what I consider to be the dumbest design imaginable -- you have to pass the cabling through a a sharp-edged hole, then through a chain, then through a threaded tube, and the socket screws on to the end of the threaded tube. You have to have the wire ends screwed onto the socket, but then as you screw the socket onto the threaded tube you can't see the wires, and if you screw the socket on too tightly it will cut through the insulation on the wires and short it out. And meanwhile you are twisting the wires as you screw the socket on, which makes it likely to either pull them out of the screws, or break the wire, or scrape through the insulation. So I was trying to find a dental mirror so that I could inspect the wiring once it was out of view.

I can think of at least three minor design changes that would make the whole thing far, far easier to rewire. I wound up breaking the first replacement socket, and I had to look far and wide to find a ceramic socket that seemed better-constructed. Did I mention that the original parts are all very old and corroded? I was sorely tempted just to put up a new fixture altogether, but I think this one might date back as far as 1927, and it's pretty, so I wanted to preserve it, just bringing it more-or-less up to modern code.

I had to wrap the interior of the brass lamp components and the back of the socket in insulating tape because the exposed tabs on the back of the new ceramic socket might come into contact with the shell otherwise. That's why the lamp was shorting out -- the ancient insulating paper had burned away, probably due to someone using too hot a bulb at some point in the past. I now have a Philips LED bulb in the fixture. It should not generate enough heat to cause any trouble. These bulbs, though, have suddenly become incredibly scarce in the stores, and the ones I saw for sale were no longer about $25, but $45. That's crazy. Especially since they are all made in China. But that's a pet peeve to vent about another time.

It was continuing to flake away to the point where the wiring was arcing against the brass shade. I actually noticed this happening the very first time we toured the house, but I attributed it to the old knob-and-tube wiring in the upstairs, which we had replaced -- I thought the knob and tube wiring was shorting whenever there was a heavy vibration. It wasn't that. It was this lamp. Hopefully it should be good for another 86 years now.

UPDATE: completed the phone interview -- it went, I thought, pretty well. I'm supposed to hear back from their HR department as to whether they want me in for a face-to-face interview. Please keep me in your thoughts!

UPDATE 2: Password for the state unemployment site came in the mail (finally) so I was finally able to get signed in and update my work search contact notes. LinkedIn profile updated, too, and I'm in conversations with a couple of other recruiters. Got some additional errands run this evening -- unused cable returned. Also, bought some new work clothes! Stuff on sale from Macy's. It's been a busy day... tomorrow will involve a trip down to Ann Arbor with Grace.

Monday, April 01, 2013

The Situation (Day 22)

Grace took the kids out of the house for a while, specifically to eliminate the risk of noise and interruptions during a phone interview I had scheduled for 11:30 this morning. But 11:30 came and went and I did not get a call. At 11:40 I tried to call my contact person, and left her voice mail. I've tried again, but it just goes to voice mail. I'll send an e-mail and try calling after 1 p.m. I'm not sure what happened. It seems like a very promising job lead. If this was an April Fool's joke it is in very poor taste.

So I waited around, and waited around... and then of course the downstairs phone started ringing, and I was scrambling to get down there in case they were calling _that_ number for some reason. (I took pains to try to make sure _which_ number they'd be calling -- specifically, my wireless home office phone). Anyway I missed that call on our MCI wired line, and then by that point I really, really needed to pee, and of course it rang again while I was in, ummm, mid-stream... but it was my father calling, not my interviewer.

I was supposed to get (in the mail) a password for the MI Unemployment Insurance Agency web site. It should have come last week. It didn't come, so yesterday I went on the web site to request a new one. The web site then said that it was only available 7 a.m. to 7 p.m. Monday through Friday. I guess the state's web servers are unionized and demand overtime if they have to answer HTTP requests after-hours. Today I tried again and it said a new password would be e-mailed to me... but then it asked me for my e-mail address again and said a new password would be physically mailed. I haven't seen anything in my e-mail in-box or junk mail folder, so I'm guessing the first claim is a lie -- or else maybe the mail queue on the state's server is taking its mandated lunch break. I guess I'll give it a few days to see if the second claim is also a lie. I have a sinking feeling this is going to turn into something really stupid, like today I get the physically-mailed password I was supposed to get a week ago but because I requested a new one, it's been reset... or else I'll get an e-mail with my new password which has also been invalidated because they are mailing a new one, and when I get that one I'll find my account is blocked due to excess password requests.

I need this password because I'm supposed to be reporting on my job search contacts. I was able to report my first week using an online form. I guess I could switch to mailing in paper forms, but I've already gotten my notes typed into a text file. What (another) tedious thing this has turned into!

Yesterday I completed paperwork for the job that I was supposed to be interviewing for this morning. That involved grinding my teeth trying to figure out who would be the best references. They want "transcripts and diploma." Finding my diplomas took a good chunk of yesterday. I scanned them and printed out copies. I am still looking for my college transcript. I have not had to produce that in many years. I might have to see if I can get the College of Wooster to mail them a newly printed copy, assuming they still have that paperwork on hand after 24 years. I hope they do not demand my high school grades. That would be a first, and I am doubtful that I can even find them. They would have been with my mother's papers that I acquired when she died in 2007. If they still exist, some of them might be boxed up in our storage unit still languishing back in Ann Arbor.

Digging was actually kind of fun -- in the process, Grace and I unpacked a bunch of boxes we had put in our storage room, and that was exciting -- oh, look, a lot of books we haven't seen in quite some time! And a bunch of them we don't really care to see ever again! So we'll be giving some books away. I thought I had already unpacked all my CDs, but I was happy to find a box I missed, and so there are a bunch of CDs I have not heard in a few years. But I also discovered that, since packing up that box, I've re-bought a few CDs I already owned but which I thought were lost. Oops! Still, getting more stuff unpacked has to be counted as a win. I just hope I'm not going to have to pack it all up again in a month or two.

FOLLOWUP: my interviewer did call -- he called my cell phone... which I had shut off to avoid interruptions, since it often rings with people calling me when they can't get hold of Grace. The woman who scheduled the call had put put my office phone number in the meeting notice, but apparently the interviewer wasn't looking at that. In any case, I've re-scheduled.