Working again

I started a full time job last November. I’m a UCAR employee working for USGS. The job is 100% remote. I’m working on a project to modernize and replace legacy water use tracking and reporting software. The stack is PostgreSQL, Node.js, Nest.js, Vue.js. All deployed on Amazon web services.

I wasn’t able to get them to hire me as a contractor, but I’ve had very little interaction with UCAR outside of timecards and benefits. UCAR has good benefits and seem to be a good company. My only complaint is that the base salary is a bit below market.

This has been a large change from touch game development in many ways:

  • Working 9-5. There is certainly a lot of flexibility in my schedule, but much less than before. This took a while to get used to again and I’m still not thrilled with needing to be up at particular times for meetings and needing to coordinate vacations around work.
  • Javascript. The backend is typescript, but this has still been a big change from working in C#. Modern javascript/typescript is much better than it was in 2007 when I last worked with it. However, it is still a downgrade from C# and Linq. I do have to admit that it is a useful skill to improve.
  • Working with other people
  • Getting paid

The difference between this job and my last full time job is also significant:

  • Not having to dress up, pack a lunch, commute, and be trapped at the office makes the work so much nicer.
  • When I want to take a break, I can do something that I really enjoy instead of wandering around at the office.
  • It is harder to leave work behind at the end of the day, and I’m using my own hardware and A/C.
  • Zoom meetings are less frustrating than in-person. If they start on a topic I don’t care about, I can get some other work done.
  • I also feel like this job is doing something useful for the world. I’m more motivated by making a system for scientists than I was creating software at Raytheon. Even when I was working on the GPS project (which I though was going to feel useful), I was working on such a tiny component and the pace was so slow that it still didn’t seem like a good use of time.

Overall, the job is going well. I tentatively plan to stick with it for a while. I’d like to work fewer hours and have more flexibility on time off. I hope they will be OK with some leave without pay for the occasional long trip.

Distract-O-Vision Video

We were interviewed by Distract-O-Vision at Conclave of Gamers this year. We talked about the games that we’ve been making and the basic ideas behind the touch table. They put together a great video that shows off the touch table and games.

Continue reading “Distract-O-Vision Video”

Contracting Job at Mercury

In February I was contacted by Mercury, a company that I worked for five years ago, about helping them with a project. The contract would last three months and offered good pay. They caught me at a good time and I agreed to take the job, starting right after we got back from PAX East.

Beyond saying that it was not a government contract and involved writing a distributed message processing system in Java, I don’t really have anything interesting to say about the job itself. It was better than many jobs that I have had (except for the commute).

I was surprised by how easily I switched back into the work routine. It made me notice some of the things that are “hard” about being retired. Not that I am complaining about being retired – it is truly a luxury. Continue reading “Contracting Job at Mercury”

GenCon 2013

We attended GenCon in Indianapolis with Mesa Mundi. Mesa Mundi had a booth setup in the vendor room where they had two Monolith touch screens and a Microsoft PixelSense screen. They also had a table in the exhibit hall with another touch screen where attendees could come for hour long games on the table. We spent most of our time in the exhibit hall running games of Hansa Teutonica, Bio Infiltrators and the rest of our touch games. I enjoyed the convention and really liked watching people playing Hansa.

Continue reading “GenCon 2013”

PAX East

We went to PAX East to represent Machine Code Games at the Mesa Mundi booth. PAX East is held each year at the Boston convention center and draws some 90,000 people.

Machine code games was assigned one of the touch tables at the booth and we ran demos of our software. The booth was very busy and people were playing our games almost all the time. We were very happy with the reactions that we got from people. They seemed to really like the games and were always impressed with the touch hardware. You can see more pictures of the booth during PAX here.

Continue reading “PAX East”

Games for sale!

We have the first set of multi-touch games ready for sale! We are going to be giving away “Bubble Defender” and selling “Concentration Sweep”, “Temple Raiding”, “Yacht” and “Solitaire Dice”. Initially, they will be for sale  at Peau Productions and bundled with tables sold by Mesa Mundi.

Continue reading “Games for sale!”

Goodbye paycheck

Today was our last day at Raytheon/Solidyn. After about 15 years as a software developer in the aerospace industry, I am retiring to pursue my own interests. I plan to do more reading, play the violin, and write the software that I want to write.


I’ve had some good experiences, made some friends, and learned some skills at work. But it has been a long time since I have enjoyed the job or found it fulfilling.


I will mostly miss the non-work parts of work. The opportunity to meet interesting people, the daily walks by the golf course, and the geese.

SimFinance Progress Update

The SimFinance application is mostly done.

As is always the case, the software was more complex than I thought it would be. The main complications were due to the fact that my partner and I aren’t married. So the application had to try to optimize who paid the bills to manage the size of each of our accounts and how much taxes we each had to pay. The other big complication was trying to manage our traditional and Roth IRAs to minimize taxes each year.

There are some big things yet to do:

  1. Come up with a model for stock dividends. Right now, dividends are simply included in the return of the S&P. However, that is not really accurate, as the yield of dividends lags behind changes in stock prices. Also, taxes are due on dividends the year they are paid instead of the year the stock is sold. Those two differences may end up balancing each other out in the overall results.
  2. Investment strategy comparison. Would dividing our money between bonds, i-bonds, and stocks be better overall than having everything in stocks? Does the reduction in volatility pay off? Or is it better to just accept the volatility and maximize returns?
  3. More optimization post 60. The order of IRA withdraws should change after 60. Need to model medicare.

The model is giving us an 85% chance of success right now. I don’t really think that the things that are left to do will change this number significantly. It is surprising how much money we have to have to get a 95% chance of success and how much variation there is in the possible outcomes.

It is possible that treating the S&P 500 as a random distribution is wrong. While the historic data looks random, there probably are some underlying “fundamentals” that keep the stock prices within a range. I am not sure how to add that to the model besides trying to put an overall cap on the market returns.

Student-t distribution for stock returns

I have been working on the SimFinance 2.0 application and have been struggling to find a way to simulate the stock market. (Note: I am not trying to predict the stock market, I just need a way to generate a random stock market return that is similar to historic returns)

My first idea was to use a normal distribution centered around the average return with the same standard deviation that the real data has. This was close to correct, but if I plotted sample returns from history against the normal distribution, the historical returns had much longer tails. Meaning that, in reality, there are more really bad and really good years than there would be in a normal distribution.

After doing some research (I am not the only one interested in simulating the stock market), I found that some people are using a Student-t distribution. After playing with the parameters of that distribution I was able to get a much more realistic curve. Based on the historical data for the S&P 500, I am using the following parameters for the distribution: DOF = 3.40234, SCALE = 35, OFFSET = 0.00725

In software, I am using the boost library to generate random numbers according to the student-t distribution.

SimFinance 2.0

I am starting work on SimFinance 2.0.

A long time ago, I tried to create a retirement analyzer/simulator. It would allow a user to enter everything about their finances, including their plans for the future. It then simulated the future by generating thousands of possible scenarios and displaying your odds of still having money when you die. It built these futures probabalistically based on historic performance of different investment types, the user’s life expectancy, etc. The project was too ambitious and I never completed it.

Now, as I consider retirement, I’d like to have this tool. And I realized that I could complete the project if I would limit the scope to just my own situation. It wouldn’t be useful for other people, but it would give me a better idea if I can really retire.

The old project was created with C++ and wxWidgets. I would like to build the new version in C# because it would be easier to create the user interfaces. But C++ would be faster for simulating thousands of futures month by month. It would also let me re-use some of the code from the original project. So I am going to compromise and build it with C++/CLI. I can use the GUI builder and the .NET libraries and also have the speed of native C++ for the time critical parts of the code.