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

Skills Ontario Coding CompetitionCompeting 2026

Skills Ontario – Representing Niagara College in the provincial software development competition

Technical Judge2026

DSBN Regional Coding Skills Challenge – Evaluated and graded technical submissions for regional high school competitors

J Coders Coding Competition Organizer2026

Niagara College – Led technical organization for a school-wide competition; designed multi-level algorithmic challenges

Associate Dean's Award of Excellence2026

Niagara College – Distinguished for exceeding technical expectations and professional diligence

Keith Segal guard.me International Scholarship2026

Niagara College – Awarded three times; an honour extended to only 13 students college-wide

President's Honour Roll2026

Niagara College – Academic distinction for outstanding achievement

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)PythonSQL (T-SQL, SQLite)DartTypeScriptJavaScriptHTML/CSSR

Frameworks

ASP.NET CoreFastAPI.NET MAUIFlutterEntity FrameworkReact (Next.js)Tailwind CSS

Tools

GitGitHub ActionsDockerAzureVercelVisual StudioVS CodeAndroid Studio

Music Tech

Audio Signal Processing (ADC/DAC)Bitwig StudioLogic Pro

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.

Movement Unlimited Client Management System

Healthcare Client Charting and Staff Operations Platform

ASP.NET Core MVCC#RazorEntity Framework CoreSQLiteQuestPDF

Problem

Clinic staff were managing client notes, session history, and operational reporting across spreadsheets and disconnected records, creating friction in day-to-day charting and follow-up.

Solution

Built an ASP.NET Core MVC platform for client intake, SOAP-based session charting, staff account administration, report generation, and PDF/Excel export workflows to replace spreadsheet-driven operations.

Tuning

Separated business logic into focused services with role-based access control, added import/export and reporting pipelines for administrative workflows, and backed critical validation and export behavior with automated tests.

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 GuitarClassical 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