Someone was having trouble with the Linkage software and sent me an email. They were very nice about telling me that the software was convoluted and difficult to use. Since they were working with gears, I am in total agreement that the software is difficult to use. But I am at a loss as to how to fix it. The problem is that I have no experience with other gear train design software. Or more specifically, how that software would make a link with multiple other connectors move with it. here’s the thing, a person can build a mechanism in real life that has a shaft with a gear on it. And that gar could mesh with some other gear and would turn. And they cold also stick a link of some sort on that same shaft and have it spin freely with no relationship to the gear movement. Or they could mechanically connect the link to the gear with a pin or solder or by welding them together. Those are the things that the Linkage software needs allow.

I went aead and created a version of the Linkage program that lets the user add connectors to a gear. The gear is, after all, a link on a connector that just happens to have some gear-like properties like meshing with other gears. It seems to work ok and might make things easier in the one tough case where the link needs to be fastened to the gear. If this works, I will be able to make the “Fasten” feature only be a way to make drawing elements move with the mechanism.


My boss is trying to design new icons for our app. The app has been used by businesses in the past but it will now have some features that consumers will be interested in. He asked for feedback on his icon design and now that I gave feedback, I’m starting to regret it. Just about every time I give feedback, we are in disagreement. It’s a bit frustrating because I like my boss and he treats me very well. Our differences of opinion are more along aesthetic lines most of the time and it is difficult for me to come up with aesthetics in the apps that get both our approvals. So if anyone ever says “Give me your feedback on this,” make sure to figure out what level of feedback they want and what feedback is not going to be welcome. You can guess that I didn’t like much at all about the proposed icons. You can also guess that my suggestion to get a professional to work on it was not taken well.

Writing Software for a Living

I write software for a living. I almost always enjoy it. I think that sometimes I’m really good at it. One of the things I do to evaluate my benefit to an employer is think about what I provide that they cannot get elsewhere. Often the answer is that I often provide a deep knowledge of the company product and replacing me would result in someone else taking many months to get up-to-speed with what they need to do and how to do it. My previous job lasted 18 year and I wrote hundreds of thousands of lines of code in that time. Replacing me would have probably cost them a years pay to the replacement before that person cold have dealt with things I handled quickly and easily. It was both satisfying and terrifying being in that position. It’s hard to take vacations when no one else can get the work done while I’m gone.

My current job is very different from my previous job. I write mobile apps on my 13 inch laptop instead of writing complicated data comparisons algorithm code on a giant 64 processor desktop machine with multiple giant monitors. I switch between C#, Java, JavaScript, and Swift languages instead of writing in C++ all day. And although I like to think differently, I could probably be replaced with two half-the-price programmers with only a month of down-time for the company for what I work on. I like to think that I provide them with a single person that can deal with more than two or three programming languages on three or four different platforms without having to have meetings with myself to coordinate what the various apps will look and and what they will do.

All of this brings up an interesting question; How does one gauge their success at their job? Would you measure your success purely by how often you get a raise, even if it’s just a cost-of-living raise? I can’t do that because I am paid the exact same amount I was when I was hired a few years ago. But we are sort of like a very old startup company with just a few employees so the lack of raises isn’t meaningful. What about gauging success in other ways like by how much others appear to benefit from the work you do? I’m at a loss at the moment because them relying on me in times of need doesn’t necessarily mean that someone else couldn’t do my job better than me.