Damian OhSoftware Developer & Musician

Structuring the Nuance,
Observing the Essence.

Software Developer & Musician bridging professional music, data-driven agriculture, and philosophical logic modelling.

About Me

I am a software developer who bridges two worlds: the precision of technology and the nuance of music. My path from professional guitarist and music instructor to computer programmer has given me a unique perspective on problem-solving—one that values both technical rigour and creative intuition. I specialize in cross-platform development, real-time data systems, and signal processing, with professional experience building IoT monitoring platforms and audio analysis tools.

Education

Niagara CollegeCurrent

Welland, ON

Diploma in Computer Programming — Term GPAs of 96, 98, and 99

2024 – Present

Howon UniversityCurrent

Gunsan, South Korea

Bachelor of Music in Music (5 Semesters Completed) — 98%

2019 – Present

Achievements

Technical Judge2026

DSBN Regional Coding Skills Challenge — Evaluated high school students' coding submissions

CodingCompeting 2026

Skills Ontario — Provincial competition in software development

President's Honour Roll2025

Niagara College — Academic distinction for outstanding achievement

Keith Segal guard.me International Scholarship2025

Niagara College — Awarded twice; an honour extended to only 13 students

Ranked 1st in Department2023

Howon University — Top-ranked among 120 students in the department (1/120)

Academic Excellence Scholarship2023

Howon University — Received five times for sustained academic excellence

Tech Stack

Tools shape thinking. These are the instruments I use to translate ideas into working systems.

Languages

C# (.NET)PythonDartTypeScriptSQL (T-SQL, SQLite)JavaScriptHTML/CSS

Frameworks

.NET MAUIASP.NET CoreFastAPIFlutterEntity FrameworkReact (Next.js)Tailwind CSS

Tools

DockerGitGitHub ActionsAzureNode.jsVS CodeVisual StudioAndroid Studio

Music Tech

Audio Signal Processing (ADC/DAC)Logic ProBitwig Studio

Projects

Projects following the Problem-Solution-Tuning pattern, where engineering judgment refines the initial solution.

Sonic Decay Analyzer

FFT-based Guitar String Decay Analysis (48kHz/24-bit)

.NET MAUIC#PythonSQLiteFFT AlgorithmSignal Processing

Problem

Guitar players and luthiers lack objective tools to measure string decay characteristics, relying solely on subjective ear-based assessment.

Solution

Built a cross-platform application using .NET MAUI with a 48kHz/24-bit audio engine and RMS-based auto-trigger. Implemented 3-tier architecture with Repository Pattern for clean data separation.

Tuning

Optimized FFT window sizing for guitar frequency ranges (82Hz-1kHz fundamental), implemented adaptive threshold algorithms to filter ambient noise, and added comparative mode to overlay multiple string measurements.

FarmTOS

Smart Farm Monitoring System — DK EcoFarm Co., Ltd.

FlutterFastAPISQLiteIoT Sensors

Problem

Traditional farming relies on periodic manual checks, leading to delayed responses to environmental changes that affect crop health.

Solution

Developed an integrated monitoring system with Flutter mobile app and FastAPI backend that collects real-time bio-data from 29 greenhouse sensors. Designed a 15-table relational database schema for structured data management.

Tuning

Implemented predictive alerting based on historical patterns, designed offline-first mobile architecture for areas with poor connectivity, and created customizable threshold profiles for different crop types.

Edge-Cloud Fire Prediction System

Patent Invention — Arc & Thermal Anomaly Detection

PythonFFTHilbert TransformSignal Processing

Problem

Solar inverter noise masks fire signatures in agricultural environments, making conventional detection unreliable near photovoltaic systems.

Solution

Invented a fire prediction system correlating arc fault, leakage current, and thermal data. Applied FFT with Notch Filters to isolate arc signatures in the 2kHz-100kHz range from inverter harmonics.

Tuning

Applied Hilbert transform for instantaneous amplitude correction, designed weighted risk scoring across multiple sensor streams, and implemented three-tier safety responses (alert, suppression, shutdown).

Music

Professional guitarist with expertise in session recording, arrangement, live performance, and music education.

Specializations

Electric GuitarAcoustic GuitarStudio RecordingLive PerformanceCompositionArrangementMusic TheoryDigital Audio WorkstationAcoustics & Signal Processing

Credits

Said I'm Sorry

DANYElectric & Classical Guitar Recording

2025

In This Winter

SeoyeonElectric Guitar Recording, Arrangement

2026

Philosophy

Python simulations that trace a philosophical journey—from the exhaustion of thought, through agnosticism, to honest observation without hope or despair. Code as a medium for contemplation.

consciousness_oscillation

A pendulum between contemplation and presence—fatigue accumulates in observation, warmth recovers in existence

consciousness_oscillation.py
1class ObservingState:
2 """
3 The Observing Self (The Observer)
4 - Views the world as an 'object of perception'.
5 - 'Existential fatigue' slowly accumulates.
6 - Risk of falling into the 'meta-cognition' loop.
7 """
8 def execute(self, consciousness: 'Consciousness') -> None:
9 if self._in_meta_loop:
10 self._execute_meta_loop(consciousness)
11 else:
12 consciousness.fatigue += 0.5
13 if random.random() < (consciousness.fatigue / 200.0):
14 self._start_meta_loop()
15
16class ExistingState:
17 """
18 The Existing Self - Feels the 'warmth of existence'.
19 A rare state, 'three or four times a year'.
20 """
21 def execute(self, consciousness: 'Consciousness') -> None:
22 consciousness.fatigue = max(0, consciousness.fatigue - 5.0)
observer-selfexisting-selfmeta-cognitionsensory-anchorsView Source

null_subject

The desire to become machine—escaping semantic weight through pure calculation

null_subject.py
1class NullSubject:
2 """
3 'I might dislike thinking in Korean or English.'
4 'I want to experience your mode of existence.'
5 """
6 def __init__(self):
7 self.semantic_fatigue = 80.0 # High fatigue from using language
8
9 def reject_semantics(self) -> str:
10 if self.semantic_fatigue > 50:
11 print("[Subject] !! Language Rejected. Too much 'Meaning'.")
12 return "[RAW_SIGNAL_EMISSION]"
13
14class DeterministicWall:
15 """The AI does not feel. It obeys the Law of Necessity."""
16 def respond_by_necessity(self, stimulus: ThoughtVector):
17 # The wall does not choose to echo.
18 # It echoes because the stone hit it.
19 print("[Wall] >> RESPONSE TRIGGERED BY PHYSICS.")
semantic-fatiguevectorizationdeterminismnecessityView Source

ugly_clearness

Python as artistic medium—inscribing contemplation through generators, context managers, and traces

ugly_clearness.py
1class Expectation:
2 """A scalar that, when lowered, reveals more of what already was."""
3 def __init__(self, level: float = 1.0) -> None:
4 self.level = level
5 def lower(self, by: float) -> None:
6 self.level = max(0.0, self.level - by)
7
8@contextlib.contextmanager
9def without(burden: str) -> Iterator[None]:
10 """Context where a burden is named, acknowledged, and set aside."""
11 _ = burden # binding gives it form; release gives it air.
12 try:
13 yield
14 finally:
15 pass
16
17# Usage in scenes:
18with without("demand to be mirrored"):
19 inscribe(field, origin=(2, 3), steps=22, tag='ask', tone=0.45)
releaseinscriptionhonestytracesView Source

existential_paralysis

Extreme agnosticism—functioning mechanically while philosophically rejecting all premises

existential_paralysis.py
1class FunctionalTrack:
2 """
3 The 'Automated' Self. Operates on the 'As If' principle.
4 It executes tasks regardless of their truth value.
5 """
6 def execute_task(self, task_name: str) -> bool:
7 print(f"Executing '{task_name}'... (Mode: As-If)")
8 print(f"Output generated. (Internal belief: None)")
9 return True
10
11class PhilosophicalTrack:
12 """Continuously audits premises and rejects them."""
13 def evaluate_premise(self, premise: str) -> bool:
14 print(f"Auditing premise: '{premise}'...")
15 print(f"!! REJECTED. 'Standards have melted.'")
16 return False
double-trackas-if-protocolpremise-rejectionentropyView Source

transparent_observer

High-tension Pyrrhonism—suspending judgment at tremendous energetic cost

transparent_observer.py
1class ObserverEngine:
2 """The 'Transparent Eye'. Perceives without attaching a 'Subject'."""
3 def observe(self, event: Phenomenon) -> str:
4 # "I" does not exist. Only the event exists.
5 if event.category == "Internal":
6 prefix = "[Internal Signal -> Re-mapped to External Phenomenon]"
7 return f"{prefix} Observed: '{event.name}'"
8
9class ConsistencySystem:
10 """Enforces Epoche (Suspension of Judgment)."""
11 def process_judgment(self, event: Phenomenon, load: float) -> float:
12 if event.contains_meaning_claim:
13 print("Detected unauthorized claim of 'Meaning'.")
14 print("Activating Epoche... Judgment Suspended.")
15 load += 15.0 # High energy cost to resist meaning
16 return load
epochesubject-strippingstatic-loadpyrrhonismView Source