Custom modeling and simulation for decisions that off-the-shelf analytics can’t answer. Every recommendation comes with the reasoning and the uncertainty made explicit, so you can stand behind the decision it supports.
ron@sw.gyStochastic models for decision-making under uncertainty. Hidden Markov models with EM-based parameter estimation, parametric bootstrap for inference, system dynamics with proper calibration, and OpenMPI-parallel policy search. Built for the questions simple analytics can’t answer.
Quantitative modeling paired with experimental instrument design and qualitative methods. I design measurement tools and fit dynamic models to the behavioral data they produce. Every conclusion comes with its uncertainty quantified.
Large-scale data analysis and infrastructure forecasting at 5B+ document scale. ETL pipelines and the cloud infrastructure that makes everything else possible.
Retrieval-augmented generation, graph-database architectures, and applied machine learning. Systems that run in production.
Security assessments, audit readiness, and controls work for regulated environments. CISSP and CISA.
Every project below is a working artifact rather than a case study. The links go to annotated source and, where written up, the papers, so you can check the reasoning for yourself.
Inventory ordering under uncertain demand, where today’s order constrains tomorrow’s options. A compact C implementation searches the policy space for sequential inventory decisions, parallelized with OpenMPI in a leader/worker scheme and built to run unattended on OpenBSD or a Slurm cluster. After Powell’s Reinforcement Learning and Stochastic Optimization.
When households actually evacuate after a warning goes out, and how much to trust the recovery estimate. Applicable to insurance, emergency management, and utility storm planning. An input-output hidden Markov model simulates household state trajectories under different warning timelines and fits its parameters via EM with multiple restarts. A parametric bootstrap puts a confidence interval around the recovery estimate.
Keeping traffic flowing to whichever parts of a system are healthy right now, without a person watching dashboards and reacting to every incident. Each cycle it reads live health signals and shifts load away from degrading capacity, down to a configured floor, then feeds it back gradually as the capacity recovers. This was built for proxy pools, where routing weight is pulled off a degrading pool and fed back once the pool recovers. When an entire service is degraded, the governor suspends its own cuts so it never guts something that has nowhere better to send the load. It runs on OpenBSD against a simulation-and-replay harness, and its design doc draws a hard line between what the rules implement today and what is still intended.
How much blast impulse actually reaches a soldier’s torso, and does the armor configuration change the answer? Monte-Carlo ray-traced overpressure simulation casts reflective rays through MICH helmet and SAPI plate meshes and integrates a Friedlander pulse at each ray hit. Outputs paired-design CSVs ready for repeated-measures ANOVA in R, so the comparison across four armor configurations holds up as a statistical result you can defend.
How do you measure attention control cleanly without dragging in a whole psychology framework? A lightweight X11 suite in C implementing the “squared” Stroop paradigm of Burgoyne et al. (2023). It administers timed cognitive tasks and logs every trial response in an analysis-ready format. A reproducible measurement instrument you can audit end to end, for the cases where the data you need does not exist yet and has to be collected properly.
Three that show the range of methods. The full set, including replay-mining notebooks, data bundles, and the league tooling, is on the publications page.
Across 995 games, which lever decides the result? Two things make that hard to answer honestly. 64% of wins are wipes, so any whole-game statistic mostly restates the outcome, and a strong policy wins while also doing more of everything. The design here handles both: every metric is measured in the first 25 seconds of play, so the measurement precedes the result, and teams are compared only against the same matchup, which the complete round-robin of 11 policies over all 55 pairs makes possible. Early damage and net kills turn out to be the only levers that move the outcome, and three behavioural numbers from the opening predict the winner more accurately than knowing which two policies are on the field.
Learning behavior from logs, validating on held-out data, and testing changes in a simulator before they are deployed. That methodology applies wherever you need to recover decision policies from observational data. Here the league’s bots are the worked examples: each policy’s movement and kill behavior is learned from replays as an input-driven hidden-state model, validated, then dropped into a calibrated simulator to compare how well each impostor converts its opportunities. The notebook renders every behavioral fingerprint card and a live playground that runs the simulator from the bundled models.
A calibrated system-dynamics model that predicts match reward from team composition and two tunable policy parameters. Its four coupled subsystems (resource economy, territory, agent loss, and scheduled adversary events) are fit against roughly 13,000 match outcomes. Aligner cycle time emerges as the dominant lever, and scout-inclusive teams carry a consistent reward penalty of about 1.3 units. A companion notebook reimplements the AnyLogic model in plain Python for anyone who wants to run parameter sweeps of their own.
Organizations that face hard problems of risk and uncertainty and need an answer they can defend.
Ron Dahlgren has over 20 years of engineering leadership experience, including eleven years building clinical decision support systems in healthcare IT, and is currently pursuing a PhD in Modeling & Simulation at the University of Central Florida. He is a former Army paratrooper with the 504th Parachute Infantry Regiment.
He founded SWGY to bring senior-level engineering to clients who need it without the overhead of a large firm.
I take on a limited number of engagements at a time, which keeps the work senior and hands-on. Three ways to start:
Not sure whether modeling is the right tool? I review your data and decision context, tell you what questions it can and cannot support, and deliver a short memo with a recommended scope or a recommendation not to proceed. $6,500, which most directors can approve without a procurement cycle.
A defined problem and a fixed price. We scope the question together and agree up front on what a useful answer looks like. You get a working model and a writeup clear enough to put in front of decision-makers.
Hands-on sessions for teams that want to build the capability in-house. We work through a problem your team actually owns, so your analysts leave able to rerun the methods on their own.
Every engagement starts with a short scoping call about the decision you’re trying to make and whether modeling is even the right tool for it. Currently taking on a limited number of new projects.