"""
I’ve spent 20+ years at the intersection of optimization, software engineering, and operations. I love turning messy reality into clean models, algorithms, and measurable KPIs. Julia fan and Operations Research evangelist.
I’ve built production systems for ports and logistics (including a Julia solver for the Maritime Inventory & routing optimization problem at V2T, and a C++ engine for barge & pilot scheduling at Innovez One), taught Operations Research and Machine Learning as a professor, and led research on hybrid optimization–simulation. I’m fluent in Julia, and have experience with Python and C++.
When dealing with decision problems, my approach blends Theory of Constraints (bottleneck-first), simulations, solid MILP/CP, and pragmatic heuristics with clear, actionable KPIs. Remote-first, happy to travel occasionally for discovery or go-lives.
Optimization engineer and OR researcher with PhD in Engineering (Optimization & Simulation) and extensive industry delivery.
Expert at identifying bottlenecks and translating them into algorithms & metrics, designing MILP/CP/heuristics for scheduling, routing, and capacity planning. Teaching & research in OR and ML; hands-on software (APIs/microservices, dashboards) used by global clients.
Peer-reviewed work in OR & logistics (Operations Research Perspectives, IEEE LATAM Trans., TRIP, JFDS). Member: INFORMS, System Dynamics Society.
What’s this? A two-stage queueing simulation for embark: Gangways → Elevators. Arrivals are Poisson (rate λ), and each stage has a pool of identical servers with exponential service times. It’s a classic M/M/c pipeline. You’ll see average and P95 waits, throughput, and stage utilizations ρ. The model is intentionally lightweight to run in-browser and explain decisions quickly.
How to read it: If ρ ≥ 1 in any stage, queues explode. Even with ρ < 1, high utilizations (e.g., 0.9–0.99) mean long tails (large P95). The panel below also computes a simple staffing suggestion to keep both stages under a target utilization and runs two automatic what-if scenarios: add one gangway or one elevator.
Symbol | Description | Value |
---|---|---|
λ | Arrival rate (passengers/min) | – |
G | Gangways (servers) | – |
1/μ₁ | Mean service per passenger at gangway (min) | – |
E | Elevators (servers) | – |
1/μ₂ | Mean service per passenger at elevator (min) | – |
T | Simulation horizon (min) | – |
Seed | Random seed | – |
Case | ρgangway | ρelev | Avg wait | P95 | Throughput |
---|
Optimization: Julia/JuMP, Python (OR-Tools), C++ (custom engines), Gurobi, CPLEX, HiGHS.
Heuristics & ML: NSGA-II, ALNS, SA, Tabu, GRASP; MLJ/Flux, scikit-learn; RL integrations.
Software Engineering: SQL, Docker, REST/gRPC, CI/CD, Linux; reproducible research & teaching (Pluto/Jupyter).
Programming: Julia, Python, R, Lisp, FreePascal, C++, Javascript.
Simulation: Julia, Anylogic, Vensim, IThink.