I’m not really an engine, tools, build, automation, localization, or audio engineer.
I’m a Get It Done engineer, which informs the kind of work that I typically do. I like working on projects where I can interact with my customers directly, and I also deeply like projects that help others get their work done.
Three aspects have stood out that I find compelling:
Visibility
I like setting up feedback loops so the knowability of the basic state of the product is readily available. Does it compile? Is content all present and working? Do tests pass? Do the people who have a stake in the state of the product have the means to know what it is? Are the people who have made changes confident that their change works correctly and doesn’t impact others?
Productivity
I am fond of the quote, ‘The most powerful force in the universe is compound interest’ (apocryphally attributed to Einstein). A percentage improvement to the engine, processes, assets, and/or toolchain that results in faster development times is a win, as that percentage difference accumulates for each person daily.
Availability
I want to maximize the reach of whatever I work on. I want what I do to connect with the largest audience possible. This is why I love localization, dialogue, and narrative systems. I want everyone to hear the story, connect, and feel represented.
I do not favour elaborate frameworks or attempting to design everything beforehand. I’ve seen numerous attempts to do so fail because those efforts lose sight of the problem being solved. I prefer organic growth and feedback loops with whoever is using the system being built to progressively refine to actual needs. I think that various coding methodologies are useful in proportion to the churn in the code, facilitating scaling up code to maximize clarity and resilience to change. This is why I like Kanban: it is clear what the most important tasks are and targeting them.