Blog

  • Mindustry

    Pretty good game. I think it is worth playing around with. I haven’t gotten into any of the more complex conveyor belt setups but just the few beginning levels were a lot of fun. The graphics make me think of lemmings.

    I just generally don’t think the graphics are a meaningful way to determine the quality of a game. I do love the new Doom games and should try out Doom: The Dark Ages.

    Whatever design you are going with it should synergize well with the gameplay to be successful. Sim City, Roller Coaster Tycoon, and Mindustry all present themselves in a blueprint like manner. They focus on presenting information in a very clear and concise way. I don’t think these games would be improved by trying to make them as lifelike as possible.

    Mini Metro I have really enjoyed and it takes this approach to the most minimalistic way possible, but it excels in sound design that is very satisfying. The shapes are minimalist but are also responsive to what you are doing. It is just very pleasing UI with min-maxing as the main puzzle you are trying to solve.

    As some game industries move more towards AI, I can see myself playing mostly games that don’t go much further than what Halo 2 was in terms of graphics. Original playstation style graphics has become almost its own horror genre for indie developers.

  • My hosting setup

    https://github.com/russjohnson09/docker-basic-website

    I’ve got a single droplet on DigitalOcean. I named it test-helm because I was thinking I would try to have a kubernetes cluster setup but the minimum requirements are far too large for that. Instead I just have a single docker compose file.

    The nginx server is on the host machine and I have just the one docker compose up -d command running. This is the easiest way I know to integrate the nginx server with letsencrypt.

  • Slay the Spire II

    Very good game. Silent is my favorite again. The sly cards are really neat. That combined with Master Planner and I’ve gotten very close to going through my deck multiple times in a single turn. I’d love to get an infinite loop going but I don’t think I’ve every quite gotten there.

    Most of the playstyle is unchanged, but I like the way the extra abilities are presented to the player at the end of each act. Instead of them being a part of a loot chest, they are instead given to the player from one of the gods / entities that inhabit the spire. It makes the world really feel more lived in, the atmosphere is great. It is like the first game just more. I hadn’t played the first game when it was in early access. I really like seeing the new beta art before it has finished. It is already very well done for an early access game, but I know that by the time it gets out of early access there is going to be more art, better balancing, and most likely another act with the new villain.

    Ironclad is also still really good and fun to play as.

  • Working Remote

    I think working remote is a pretty simple benefit that can be given towards software developers. If you are putting restrictions on work from home, you are already showing that you don’t trust that they are able to complete work without constant supervision. This problem is unlikely to be solved by forcing people to come into work.

    There was a big push for work from home during the start of the covid pandemic, but there has been another push to reverse that and get employee’s back in the office. I think this push is more ideological and starts to make a lot less sense when there are already some employees that work fully remote and some that are required to come into work because they are within driving distance.

    It may start to make even less sense with the current war with Iran and the potential for gas prices to rise. Whenever there is a change in the status quo, I think this is often the catalyst for employees to start looking for work elsewhere. This happened for me at Merkle Inc., when a received a reduction in my salary at the start of covid. I felt more of an obligation to work at least a year longer because I had benefited from the pretty generous parental leave policy, but reducing my salary made me feel a lot less guilty about looking for another job. I found a job at Semanticbits which did CMS contracts that I felt had a more positive impact.

  • Friction and Learning

    I heard someone comment that the friction that you find when trying to implement an idea is useful as a learning exercise and also as a way of giving you hints that maybe you are going about things the wrong way. I think that is pretty accurate from my experiences.

    My code process is normally:

    1. Reading the existing documentation, playing around with the code, and creating some minimal working examples of the thing I want to accomplish without much regard to clarity or best practices. I’m just playing in the space.
    2. Rough draft of what it is I want to accomplish and taking the path of least resistance towards that goal. This will often times mean going back to step 1 again and reading through more documentation.
    3. Writing any required tests around the code. Allowing these tests to fail first and then writing code that gets the tests passing. These may be actual unit tests but they could also just be a list of manual steps I go through.
    4. Commenting is done throughout 1 – 3 but at this point I’m explaining as much as possible usually in an overly verbose manner with myself as the only intended audience of these comments.
    5. Finalizing whatever tests I think need to be in place, pushing up the PR to github and reviewing the code there.
    6. Writing a summary in the PR description in what new features are being added / bugs fixed. This should include some of the reasoning behind decisions made whenever possible. If there are paths not taken, there should be an explanation as to why the path I did take is better.
    7. Going through the code, cleaning up comments that are overly verbose, cleaning up the language so that it is easily understood by everyone, deleting any unnecessary code, cleaning up the PR description, and doing a final retest before presenting the requested change to the rest of the team.
  • Thoughts on AI Use For Coding

    I still remain pretty skeptical that AI tools like Claude for example speed up development time in the long run. I don’t think enough research has really been done to show that this is the case, and just anecdotally I haven’t seen it. What I have seen is a new class of bugs created that are specific to generative AI use which is similar to one of the major pitfalls in other areas where AI is used which is reasonable sounding answers that prove to be false.

    When a person does this they are usually misremembering or lying, but these AI models can’t do either. It’s important that whatever output is generated is confirmed by a person. But this constant need to verify the output, severely limits its usefulness.

    It takes away a lot of job satisfaction to hand over critical thinking and planning over to a machine, I don’t think the output is correct most of the time, and it reduces my understanding of the codebase in the long-run. It seems like these AI tools potentially give the biggest burst to productivity in areas that the developer is unfamiliar with but this creates a couple issues:

    1. Because they are unfamiliar with the subject matter, it is difficult to confirm the output is correct. (I’ve seen examples of this happening where configuration variables are created which don’t exist now or in the past, but seem reasonable based on other similarly named config variables. I’ve also seen the harder to catch configurations which were valid in the past, but have been deprecated).
    2. It creates technical debt in the future for the developer working in the area because they don’t understand it. Other developers can’t ask the original implementer about it, and they can’t really ask the AI because the AI will give a different response based on the phrasing of the question and a bunch of other factors which shouldn’t matter to the answer but will impact the answer receieved.

    I’ve seen a few small studies on the use of AI in software development. These aren’t super big groups and aren’t enough to prove one way or the other. I think more research will be necessary in the future. The impacts I am confident AI has had have been mostly negative. The use of AI to cut contracts deemed to be DEI.

    https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study

  • Mega Man ZX Advent

    I feel like the Mega Man ZX series doesn’t get enough love. If there is a new Mega Man game I think adding another ZX title would be nice. Advent’s full boss transformations feel really nice. The fact that Model-A turns out not to be Axel feels a little bit like an intentional misdirect and disrespectful towards Axel, but I also never really liked his character.

  • Hello world!

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!