Start with the workload
Choose algorithms and data structures from the actual access pattern. Complexity is a tool for reasoning, not a scorecard in isolation.
I work where algorithms, scientific software, AI/ML, and real-world constraints meet — designing computational systems that are explainable, efficient, and built to be verified.
See the technical lensThe interesting problems are rarely confined to one layer. I move between the algorithm, the data, the device, and the software — and try to keep the whole system legible.
Experience on-device signal processing. Toggle the noise frequency below to see how a real-time low-pass dataflow filter extracts the clean biological signature in real-time.
A theoretically elegant implementation is not automatically the right implementation. Hardware, data volume, latency, memory, reliability, and the cost of being wrong all change the answer.
Choose algorithms and data structures from the actual access pattern. Complexity is a tool for reasoning, not a scorecard in isolation.
Time, space, I/O, power, latency, and engineering complexity compete with one another. A good design states what it is optimizing.
Especially in consequential systems, correctness is not “the code looks right.” Build tests, invariants, review points, and failure handling into the design.
AI changes implementation economics. The value shifts toward specifying the problem, decomposing the work, choosing the right tools, and knowing which parts require deep human review.
Understanding still matters. Code you rely on should be explainable, modifiable, and predictable when it fails — whether it was typed by a person or generated by a model.
A career built around moving between computation and the real world — and teaching the fundamentals that make that movement possible.
National Institute of Mental Health · NIH
Computational analysis, software design, algorithm development, and real-time sensing work across research problems in behavioral and neuroscience settings.
University of Maryland, College Park
Teaching undergraduate-level C++ object-oriented programming in spring and algorithms in fall — helping students build a practical mental model of computation, data structures, and algorithmic reasoning.
University of Maryland School of Medicine
Research spanning computational methods, machine learning, and neural/behavioral data analysis.
University of Maryland, College Park
Research in dataflow-oriented signal processing, embedded computing, algorithm implementation, and hardware/software co-design.
U.S. Army Research Laboratory
Real-time sensing, detection, and tracking systems under embedded and resource-constrained conditions.
Teaching at UMD: ENBC312 Object-Oriented Programming in C++ · ENBC322 Algorithms & Data Structures
The work lives in different places. Start with the one that matches what you want to inspect.
Research collaborations, engineering conversations, algorithms, software, or a hard systems problem worth thinking through.