Senior Software Engineer

Neurotech & AI Platform Engineering

Building real-time EEG signal processing pipelines, HIPAA-compliant AWS serverless backends, ONNX/SageMaker ML inference, and LLM-powered neurofeedback platforms. 12+ years architecting production systems at cloud scale.

.NET 8 C# AWS Lambda Kinesis Data Streams Amazon SageMaker Amazon Bedrock LLM ONNX Runtime WebSocket Closed-Loop QEEG Analysis Neurofeedback Protocols HIPAA / GDPR AWS CDK DynamoDB

Core Capabilities

End-to-end neurotech platform engineering

From wearable EEG device ingestion to personalized AI-driven neurofeedback — architected for clinical-grade reliability, real-time performance, and full compliance.

Real-Time EEG Signal Processing

Build streaming ingestion pipelines on AWS Kinesis Data Streams for wearable EEG devices. Implement artifact removal (EOG, EMG, 50/60 Hz line noise), bandpass filtering (Butterworth/IIR), FFT-based spectral analysis, and band power extraction across all clinically relevant frequency bands in .NET 8 C#.

ONNX & SageMaker ML Inference

Deploy ONNX-format neural models for real-time biomarker inference (focus, relaxation, stress states) on Amazon SageMaker real-time endpoints. Package custom inference containers, configure auto-scaling, and invoke endpoints from Lambda with sub-100ms P99 latency. Experienced with ONNX Runtime, model optimization, and quantization.

LLM-Powered Protocol Recommendations

Integrate Amazon Bedrock to generate personalized neurofeedback protocol recommendations from session biomarker data. Design structured prompts using session metrics (TBR, Alpha peak frequency, coherence, asymmetry index), patient history, and normative database comparisons to generate clinician-level protocol adjustment suggestions.

WebSocket Closed-Loop Neurofeedback

Architect WebSocket-based closed-loop feedback systems using API Gateway + Lambda + DynamoDB (connection store). Process 250ms EEG epochs, infer brain state, and push real-time feedback events to mobile clients with <100ms end-to-end latency. Handle reconnection, session state, and multi-device concurrency at scale.

HIPAA & GDPR Compliance Architecture

Implement complete HIPAA-compliant AWS infrastructure: PHI encryption at rest with AWS KMS, TLS 1.3 in transit, CloudTrail audit logging, VPC isolation, AWS BAA-covered service selection, IAM least-privilege, automated compliance checks via AWS Config, and GDPR data residency controls. Infrastructure as Code with AWS CDK (C#).

AWS Serverless & Infrastructure as Code

Design and deploy HIPAA-compliant serverless microservices using .NET 8 C# on AWS Lambda, API Gateway, Kinesis, DynamoDB, and S3. Own full infrastructure lifecycle with AWS CDK (C#) or SAM. CI/CD via GitHub Actions with automated testing, staging environments, and zero-downtime deployments.

EEG Domain Expertise

QEEG & Neurofeedback Deep Knowledge

Clinical-grade understanding of EEG frequency bands, neurofeedback protocols, electrode placement, and biomarker interpretation required to build accurate, therapeutically valid neurofeedback platforms.

EEG Frequency Bands

Delta
0.5 – 4 Hz
Deep sleep, unconscious processing, brain injury marker. Excessive Delta during waking state associated with cognitive slowing, head trauma, or developmental issues. Target for inhibition in ADHD protocols at Cz.
Theta
4 – 8 Hz
Drowsiness, creativity, memory encoding. Frontal Theta (Fz) related to cognitive control. Elevated Theta at Cz = inattention/daydreaming. Central to Theta/Beta ratio (TBR) — most validated ADHD biomarker.
Alpha
8 – 12 Hz
Relaxed alertness, cortical idling, visual suppression (O1/O2). Alpha peak frequency (APF) is marker of cognitive efficiency. Alpha asymmetry at F3/F4 associated with depression/emotional regulation. Target of Alpha/Theta training.
SMR
12 – 15 Hz
Sensorimotor Rhythm. Idle motor cortex inhibition. Trained at C3/C4/Cz. SMR up-training improves sleep quality, seizure resistance, physical calmness. First neurofeedback protocol developed (Sterman, 1970s). Key for anxiety reduction.
Beta
15 – 30 Hz
Active thinking, focus, alertness. Low Beta (15–18 Hz) = relaxed focus. High Beta (20–30 Hz) = anxiety, rumination when excessive. Beta up-training at Cz/Fz improves attention and cognitive processing in ADHD. Counter-band to Theta in TBR.
High Beta
30 – 40 Hz
Excessive activation, anxiety, OCD rumination, hypervigilance. Often inhibited in trauma and anxiety protocols. Muscle artifacts (EMG) frequently contaminate this band — critical to apply artifact rejection before computing High Beta power.
Gamma
40+ Hz
Cognitive binding, conscious perception, peak performance. 40 Hz gamma (especially auditory steady-state response) being studied for Alzheimer's intervention. Very susceptible to muscle noise — requires ICA or strict artifact rejection for valid measurement.

Standard Neurofeedback Protocols

SMR Up-Training

Sites: C3, C4, Cz. Reward SMR (12–15 Hz), inhibit Theta (4–8 Hz) and High Beta (20–30 Hz). Improves sleep, reduces anxiety, builds calm focus. Classic protocol for ADHD without hyperactivity.

Beta Up-Training / Theta Down-Training

Sites: Cz, Fz. Reward Beta (15–18 Hz), inhibit Theta (4–8 Hz). Targets elevated TBR. Primary protocol for ADHD inattentive type. Often combined: TBR ratio training for efficiency.

Alpha/Theta Training

Sites: Pz, O1. Eyes-closed. Cross-over training where Theta rises above Alpha — induces hypnagogic/theta state. Used for PTSD, trauma, addiction, creativity. Associated with deep memory processing.

Alpha Asymmetry Training (F3/F4)

Reward reduced Alpha at F3 (increase left prefrontal activation) while increasing Alpha at F4 (reduce right prefrontal hyperactivation). Targets depression where left hemisphere is hypoactive. Most evidence-based protocol for mood disorders.

Theta Down-Training

Sites: Fz, Cz. Standalone inhibition of Theta (4–8 Hz). Used when cognitive slowing or mental fatigue is primary complaint. Often combined with SMR up-training for comprehensive ADHD intervention.

Z-Score Neurofeedback

Live normative database comparison (e.g., NeuroGuide, HBImed). Trains ALL deviant metrics simultaneously toward z=0 (population norm). Requires QEEG normative database, coherence metrics, and absolute/relative power calculations. More complex but faster protocol convergence.


10-20 International Electrode Placement System

Fz Frontal Midline Executive function, attention, working memory. Primary site for ADHD, cognitive performance protocols.
Cz Central Midline Sensorimotor integration, general arousal. Most common site for SMR and TBR training.
Pz Parietal Midline Sensory integration, spatial processing. Alpha/Theta training site. Strong Alpha amplitude.
F3 / F4 Left / Right Prefrontal Emotional regulation, motivation. F3=approach (left), F4=withdrawal (right). Alpha asymmetry training for depression.
T3 / T4 Left / Right Temporal Language (T3 left), auditory processing, memory. PTSD and language disorder protocols.
O1 / O2 Left / Right Occipital Visual cortex. Strong resting Alpha. Eyes-open Alpha suppression = normal. Persistent Alpha = visual processing issues.

Architecture

Real-time EEG processing pipeline on AWS

Serverless, HIPAA-compliant architecture for ingest → signal processing → ML inference → closed-loop feedback, built for sub-100ms end-to-end latency at clinical scale.

01 — Ingest

EEG Stream Ingestion

BLE device → mobile SDK → REST/WebSocket → API Gateway → Kinesis Data Streams. Raw EEG samples at 250 Hz, buffered into 1-second shards. Dead-letter queue for packet loss recovery.

Kinesis · API Gateway · Lambda
02 — Process

Signal Processing

Lambda consumer: artifact detection (EOG/EMG thresholds), Butterworth bandpass filters, FFT, band power extraction for all 7 clinically relevant bands, coherence and asymmetry metrics.

.NET 8 C# · Math.NET · Lambda
03 — Infer

ML Biomarker Inference

Processed feature vectors → SageMaker real-time endpoint running ONNX model → brain state classification (focus/relaxation/stress) → biomarker scores stored in DynamoDB.

SageMaker · ONNX · DynamoDB
04 — Feedback

Closed-Loop Response

Lambda retrieves WebSocket connection ID from DynamoDB → sends real-time brain state event to mobile client via API Gateway WebSocket. Protocol thresholds trigger reward/inhibit signals.

API Gateway WS · Lambda · DynamoDB
05 — Store & Audit

PHI Storage & Compliance

Raw EEG → S3 (KMS-encrypted). Session metadata → DynamoDB (KMS-encrypted). All API calls audited via CloudTrail. VPC isolation. AWS BAA-covered services only. CloudWatch alerting.

S3 · KMS · CloudTrail · CloudWatch

Signal Processing

EEG signal processing in .NET C#

Production-grade implementations of FFT, IIR filters, ICA artifact removal, and band power ratio computation — the core signal processing primitives for any QEEG/neurofeedback platform.

Butterworth Bandpass Filter (C#)

IIR Butterworth filters provide maximally flat passband response — standard for EEG band extraction. Implemented as cascaded biquad sections via Direct Form II Transposed for numerical stability.

// Theta bandpass: 4-8 Hz at 250 Hz sample rate // Using Math.NET Numerics or custom IIR var filter = new ButterworthBandpass( order: 4, lowCutHz: 4.0, highCutHz: 8.0, sampleRateHz: 250.0 ); double[] filteredEpoch = filter.Apply(rawEpoch); double thetaPower = ComputeBandPower(filteredEpoch);

FFT Band Power Extraction

Fast Fourier Transform converts time-domain EEG epochs to frequency domain. Band power = sum of squared magnitudes within frequency range. Absolute vs relative power both clinically relevant.

// 1-second epoch at 250 Hz = 250 samples var fft = Fourier.Forward(epoch, FourierOptions.Matlab); double freqRes = sampleRate / epoch.Length; // 1 Hz double thetaPower = 0; for (int i = 4; i <= 8; i++) { // 4-8 Hz bins int bin = (int)(i / freqRes); thetaPower += Math.Pow(fft[bin].Magnitude, 2); } double tbRatio = thetaPower / betaPower;

ICA Artifact Removal

Independent Component Analysis separates EEG into statistically independent components. Eye blink artifacts show characteristic frontal topography — automatically detected and zeroed before back-projection.

// ICA pipeline: decompose → classify → reconstruct var ica = new FastICA(components: channelCount); var components = ica.Fit(rawEegMatrix); // Classify each component (rule-based or ML) var artifacts = ClassifyArtifacts( components, topographies, powerSpectra); // Remove artifact components, reconstruct clean EEG var cleanEeg = ica.Reconstruct( components, excludeIndices: artifacts);

Line Noise Removal (Notch Filter)

50 Hz (Europe/Asia) or 60 Hz (Americas) power line interference is a dominant artifact. Implemented as a narrow notch (band-stop) filter before any spectral analysis to avoid contaminating Beta/Gamma bands.

// 60 Hz notch filter for US power grid // Q factor controls bandwidth narrowness var notch = new NotchFilter( centerHz: 60.0, qualityFactor: 35.0, // very narrow band sampleRateHz: 250.0 ); // Apply before any bandpass or FFT analysis double[] cleanSignal = notch.Apply(rawChannel);

Clinically Validated Band Power Ratios

Theta/Beta Ratio
TBR = Θ(4-8Hz) / β(15-30Hz) @ Cz
Most clinically validated ADHD biomarker. TBR > 2.5 indicates inattention. Neurofeedback target: reduce TBR by inhibiting Theta while rewarding Beta. Normative range: 1.5–2.0 for adults.
Alpha Peak Frequency
APF = peak frequency in α band @ O1/O2
Marker of cognitive efficiency and processing speed. APF < 9 Hz associated with cognitive decline. Increases with training. Individual APF shifts predict working memory capacity.
Alpha Asymmetry Index
AI = ln(α-F4) – ln(α-F3)
Positive value = left hemisphere hypoactivation = depression risk. Neurofeedback target: shift asymmetry toward left activation by reducing F3 Alpha and/or increasing F4 Alpha.
Coherence Metrics
Coh(f) = |Sxy(f)|² / (Sxx·Syy) @ electrode pairs
Measures synchrony between brain regions. Abnormal coherence patterns indicate connectivity disorders. Used in Z-score neurofeedback and normative database comparisons (NeuroGuide, HBImed).

EEG Artifact Types & Removal Strategies

EOG

Eye Blink / Eye Movement

Large amplitude (~100-300 μV), frontally maximal, slow time course. Removed via ICA (characteristic frontal component), regression against EOG reference channel, or epoch rejection when threshold exceeded (>100 μV).

EMG

Muscle Noise

Broadband high-frequency noise (20–500 Hz), spatially localized near jaw/temples. Detected via spectral slope or RMS threshold in high-frequency band. Removed by ICA, filtering, or contaminated epoch rejection. Critical for valid High Beta and Gamma measurements.

Line Noise

50/60 Hz Power Line Interference

Sinusoidal artifact at electrical grid frequency. Removed with narrow-band notch filter (Q~35) centered at 50 or 60 Hz. Apply before any spectral analysis. Harmonics (100/120 Hz) may also need filtering for Gamma analysis.

Movement

Motion / Electrode Pop

Sudden high-amplitude transients from electrode movement or connection issues. Detected via amplitude threshold (±100 μV peak-to-peak) or kurtosis on epoch. Contaminated epochs marked and excluded from analysis pipeline.

Compliance

HIPAA & GDPR on AWS — Full Architecture

Building healthcare platforms demands more than encryption — it requires a coherent compliance posture across data handling, access control, audit trails, and vendor agreements. Here's how I architect it.

PHI Encryption

  • AWS KMS Customer Managed Keys (CMKs) for all PHI at rest
  • S3 SSE-KMS for raw EEG storage; DynamoDB encryption with KMS
  • TLS 1.3 enforced for all data in transit
  • Key rotation policies (annual minimum), key usage auditing
  • Separate CMKs per data classification tier

Access Control

  • IAM least-privilege: Lambda roles scoped to specific resources only
  • Attribute-based access control (ABAC) for PHI resources
  • VPC with private subnets; no public internet access for data services
  • VPC endpoints for S3, DynamoDB, KMS (no internet traversal)
  • Multi-factor authentication enforced on all IAM users

Audit & Logging

  • AWS CloudTrail: all API calls logged, multi-region, immutable
  • CloudWatch Logs: Lambda execution, Kinesis consumer errors
  • S3 access logs for PHI bucket — all GET/PUT/DELETE tracked
  • KMS key usage audit: every decrypt/encrypt event logged
  • 6-year log retention (HIPAA requirement) with Glacier tiering

BAA & Service Selection

  • AWS Business Associate Agreement (BAA) required before PHI handling
  • Only BAA-covered services used in PHI data path (Lambda, S3, DynamoDB, KMS, Kinesis, SageMaker, CloudWatch, CloudTrail)
  • Amazon Bedrock: BAA available — verify before using for PHI summaries
  • Third-party services excluded from PHI flow unless BAA in place

GDPR Compliance

  • Data residency: AWS region selection matches user jurisdiction (EU-WEST for EU users)
  • Right to erasure: soft-delete with scheduled hard-delete via DynamoDB TTL + S3 lifecycle
  • Consent management: consent timestamp stored with user record
  • Data minimization: raw EEG compressed and purged after feature extraction
  • DPA (Data Processing Agreement) with AWS in place

Infrastructure as Code

  • AWS CDK (C#) for all infrastructure — reviewable, version-controlled
  • CDK Aspects enforce compliance on every stack: "no unencrypted S3 bucket" guards
  • GitHub Actions CI/CD: compliance checks run on every PR
  • AWS Security Hub + GuardDuty for continuous threat detection
  • Separate CDK stacks per environment (dev/staging/prod) with environment-specific CMKs

Technical Deep Dives

Neurotech platform engineering: key questions & answers

Core technical knowledge for designing real-time EEG processing systems, ML inference pipelines, and HIPAA-compliant neurofeedback platforms on AWS.

SYSTEM DESIGN How would you architect a HIPAA-compliant real-time EEG data ingestion pipeline on AWS from scratch?
The pipeline has five layers:
  • Ingestion: Mobile SDK sends EEG frames via WebSocket to API Gateway → Lambda producer → Kinesis Data Streams (1 shard per device). Raw samples at 250 Hz land in shards with sequence numbers for ordering.
  • Processing: Lambda consumer (triggered by Kinesis) buffers 250ms epochs → applies notch filter (60 Hz) → Butterworth bandpass per band → FFT → band power extraction. Artifact thresholds reject bad epochs before persisting.
  • Storage: Raw EEG → S3 (SSE-KMS); processed features + session metadata → DynamoDB (KMS-encrypted); patient identity stored separately with table-level encryption and IAM scope.
  • Inference: Feature vectors sent to SageMaker real-time endpoint running ONNX model → brain state returned in <50ms.
  • Compliance: CloudTrail logs every API call. VPC with private subnets. All services BAA-covered. CDK Aspects enforce encryption checks on deploy.
The separation of raw PHI (S3) from computed features (DynamoDB) is intentional — different retention periods and access patterns.
SIGNAL PROCESSING How do you implement bandpass filtering for EEG in C# .NET 8?
I implement Butterworth IIR filters — maximally flat passband, no ripple, standard for EEG. The approach: design filter coefficients using bilinear transform of the analog prototype, then apply as Direct Form II Transposed biquad sections for numerical stability.
  • For each of the 7 bands (Delta through Gamma), I create a separate 4th-order bandpass filter at 250 Hz sample rate
  • Coefficients are pre-computed at startup (not per-epoch) — they're fixed for a given sample rate
  • I use Math.NET Numerics for filter design utilities, or implement the bilinear transform manually for .NET Lambda where NuGet packages must be minimal
  • For real-time application: maintain filter state (zi) between epochs — do not reset per epoch or you'll get ringing artifacts at boundaries
  • Notch filter at 60 Hz is always applied first, before bandpass, to avoid Beta band contamination
Butterworth is preferred over Chebyshev for EEG because the flat passband preserves amplitude relationships between frequencies — important for valid band power ratios.
DOMAIN KNOWLEDGE Explain the Theta/Beta Ratio (TBR) — what is it, why does it matter, and how do you compute it?
TBR = absolute power in Theta (4–8 Hz) ÷ absolute power in Beta (15–30 Hz), measured at Cz.

It's the most clinically validated EEG biomarker for ADHD. The logic: ADHD brains show excess slow-wave (Theta) activity and insufficient fast-wave (Beta) activity at the central midline, resulting in a TBR typically >2.5 (normative adult range: ~1.5–2.0). The brain is in a low-arousal, daydreaming state instead of focused alertness.

Computation pipeline:
  • Take a 1-second EEG epoch at Cz (250 samples at 250 Hz)
  • Apply notch filter (60 Hz) → apply Butterworth bandpass for Theta (4–8 Hz) → compute RMS or sum of squared FFT magnitudes → Theta power
  • Same for Beta (15–30 Hz) → Beta power
  • TBR = ThetaPower / BetaPower
Neurofeedback protocol: Reward when Theta drops below threshold AND Beta rises above threshold simultaneously (two-channel threshold). Typical session: 30 minutes, 3×/week, 40+ sessions for clinical effect.

Important caveat: TBR is a screening biomarker, not diagnostic. Should be compared against QEEG normative databases (NeuroGuide, HBImed) for clinical validity.
ML / DEPLOYMENT How do you deploy and serve an ONNX model on Amazon SageMaker for real-time EEG inference?
Step 1 — Container: Package the ONNX model in a custom SageMaker inference container (Docker) or use the pre-built SageMaker ONNX Runtime container. The inference script: deserialize JSON input (feature vector array) → run InferenceSession.Run() → serialize output (class probabilities or brain state label).

Step 2 — Model artifact: Upload the .onnx file to S3 in the expected directory structure (model.tar.gz with model/model.onnx).

Step 3 — Endpoint deployment via CDK (C#):
new CfnModelnew CfnEndpointConfig (instance type: ml.m5.large sufficient for lightweight EEG classifiers) → new CfnEndpoint. Auto-scaling policy based on InvocationsPerInstance.

Step 4 — Lambda invocation: Lambda calls AmazonSageMakerRuntimeClient.InvokeEndpointAsync() with serialized feature vector. Target latency P99 <50ms — achievable with ml.m5.large for models under ~10MB.

HIPAA consideration: SageMaker is BAA-covered — use VPC mode for the endpoint so inference data never traverses the public internet.
ARCHITECTURE Design a WebSocket closed-loop neurofeedback system using API Gateway + Lambda with sub-100ms latency.
Connection management: On $connect, Lambda stores connectionId + userId + sessionId in DynamoDB. On $disconnect, Lambda removes the record and flags session as ended.

Data flow (per 250ms EEG epoch):
  • Device → Mobile app → POST /sessions/{id}/eeg → API Gateway HTTP → Kinesis producer Lambda
  • Kinesis consumer Lambda (triggered per shard): filter → FFT → feature extraction → InvokeEndpoint (SageMaker)
  • Brain state result → feedback Lambda → look up connectionId from DynamoDB → PostToConnection() via API Gateway Management API
Latency breakdown (achieving <100ms): Kinesis trigger ~5ms | Lambda cold start mitigated via provisioned concurrency | SageMaker inference ~30ms | DynamoDB lookup ~2ms | PostToConnection ~5ms. Total: ~50ms warm path.

Cold start mitigation: Provisioned concurrency on the feedback Lambda (it's on the critical path). Consumer Lambda can tolerate slightly higher latency.

Reconnection handling: Mobile app stores sessionId locally. On reconnect, new connectionId is written to DynamoDB — the feedback pipeline automatically uses the new connection. Session state (thresholds, protocol) loaded from DynamoDB.
DOMAIN KNOWLEDGE Explain Alpha asymmetry training at F3/F4 — the science and the protocol implementation.
The science: The prefrontal cortex shows hemispheric specialization for emotional motivation. Left prefrontal (F3) activity is associated with approach motivation and positive affect. Right prefrontal (F4) with withdrawal and threat vigilance. Alpha is inversely related to cortical activation — high Alpha = low activation.

In depression, the pattern is: high Alpha at F3 (left hypoactivation) and often low Alpha at F4 (right hyperactivation). The asymmetry index = ln(α-F4) - ln(α-F3). Positive values indicate left hypoactivation. Goal: shift index toward negative (left brain more active).

Protocol implementation:
  • Compute 2-second epochs of absolute Alpha power (8–12 Hz) simultaneously at F3 and F4 using linked-ears reference (A1+A2)
  • Reward criterion: Alpha_F3 < F3_threshold AND Alpha_F4 > F4_threshold simultaneously
  • Thresholds set at patient's own rolling baseline (±1 SD) updated every 10 minutes
  • Feedback: visual/audio reward signal sent via WebSocket when criterion met in ≥70% of the last 2 seconds
Artifact note: F3/F4 are frontal sites — highly susceptible to eye blink (EOG) artifacts that inflate Alpha estimates. ICA or strict blink rejection (>80 μV) is mandatory for valid asymmetry training.
LLM INTEGRATION How would you use Amazon Bedrock to generate personalized neurofeedback protocol recommendations?
The architecture: After each session (or batch of sessions), a Lambda function constructs a structured prompt containing the session's biomarkers and sends it to Bedrock (e.g., Claude Sonnet via the Bedrock Converse API).

Prompt structure includes:
  • Current session metrics: TBR at Cz (2.8 vs norm 1.8), Alpha peak frequency (9.2 Hz), F3/F4 asymmetry index (+0.4), coherence deviations from NeuroGuide norms
  • Session history: 12 sessions, TBR trend (improving: 3.2 → 2.8), subjective reports
  • Treatment goals: attention/focus (ADHD protocol)
  • Current protocol: Beta Up-Training / Theta Down-Training at Cz
Output parsing: Instruct Bedrock to return structured JSON: { "protocol_adjustment": "...", "new_thresholds": {...}, "add_sites": ["Fz"], "rationale": "..." }. Parse with System.Text.Json in Lambda.

HIPAA note: Bedrock supports AWS BAA. However, to minimize PHI exposure, send only aggregated numerical metrics (not patient name/DOB) and use patient alias IDs in prompts. Enable Bedrock model invocation logging only to HIPAA-compliant CloudWatch with appropriate retention.
ICA How does ICA work for EEG artifact removal, and what are its practical limitations in a real-time pipeline?
How ICA works: Independent Component Analysis assumes the observed EEG signals are linear mixtures of statistically independent sources (neurons, eye muscles, heart, power line). ICA finds the unmixing matrix W such that S = W × X, where sources S are maximally non-Gaussian (independent). Sources corresponding to artifacts have characteristic signatures: eye blinks → large amplitude, frontal topography, slow time course; EMG → high-frequency, spatially localized near electrodes.

Offline (QEEG) workflow: Run ICA on an entire recording → manually or automatically classify artifact components → zero out artifact component activation → project back to sensor space: clean_EEG = A × mask × W × raw_EEG.

Real-time limitations:
  • ICA requires large samples to converge (typically 20× channels × samples). For 4-channel BrainBit: ~80+ samples. This creates a buffering delay before ICA is valid.
  • Standard approach: pre-compute ICA weights offline on baseline calibration data → apply fixed unmixing matrix in real-time. The unmixing matrix is learned once per session during a 2-minute eyes-open/closed calibration.
  • Alternative for real-time with fewer channels: simpler methods work better — amplitude thresholding (reject epochs >100 μV), variance-based rejection, or regression against a dedicated EOG reference channel.
For a 4-channel device (BrainBit: O1, O2, T3, T4), full ICA with automated component classification is challenging — only 4 components. Simpler epoch rejection thresholds are more robust at this channel count.
INFRASTRUCTURE Walk me through your AWS CDK (C#) pattern for a HIPAA-compliant neurotech platform.
Stack separation pattern — one stack per domain:
  • ComplianceStack: KMS CMKs, CloudTrail trail, AWS Config rules, VPC, security groups, IAM roles. Everything else depends on this stack.
  • IngestionStack: Kinesis Data Stream, API Gateway WebSocket, producer Lambda, DLQ (SQS). Imports KMS key ARN from ComplianceStack.
  • ProcessingStack: Consumer Lambda, SageMaker endpoint, DynamoDB tables (PHI encrypted with CMK). Imports Kinesis stream ARN.
  • FeedbackStack: Feedback Lambda, API Gateway Management API permissions, connection DynamoDB table.
  • StorageStack: S3 bucket (SSE-KMS, versioning, lifecycle), DynamoDB tables (session history, patient records — separate tables with separate CMKs).
CDK Aspects for compliance enforcement:
Implement IAspect that visits every S3 bucket → throws if encryption is not SSE-KMS. Same for DynamoDB → throws if encryption is not AWS_OWNED_KMS or CUSTOMER_MANAGED. This runs on App.Synth() and blocks deployment if any resource violates policy. Compliance is enforced by the compiler, not by documentation.

Environments: CDK context variables per environment (dev, staging, prod). Prod uses separate AWS account (account-per-environment pattern recommended for HIPAA). GitHub Actions deploys to dev on every PR merge, staging on release branch, prod on manual approval gate.
BEHAVIORAL Tell me about building a 0→1 platform — what were the hardest decisions?
Building from zero to production involves three categories of hard decisions: architecture bets, scope control, and team coordination.

The hardest architecture decision is always synchronous vs. asynchronous at the core data path. On a real-time AI platform (at Blitz), we chose event-driven Kinesis → Lambda over REST endpoints for the inference path. The payoff: horizontal scalability with zero application code changes as throughput grew 10×. The cost: increased operational complexity debugging the event chain. Worth it.

Scope control: the 0→1 phase always surfaces feature requests that feel critical but aren't. My filter: "Does this block the first 10 users from getting value?" If no, it waits. HIPAA compliance was non-negotiable from day one — not because we had users who needed it yet, but because retrofitting encryption and audit logging onto an existing data model is a rewrite, not a feature.

The specific lesson from the AI platform: the hardest thing isn't the code, it's agreeing on what "done" means for a real-time ML system. Inference latency benchmarks, model accuracy thresholds, artifact rejection rates — these need to be defined and agreed before the first sprint, not discovered at launch.

Due Diligence

Questions to ask before joining a neurotech team

"What is the current state of the EEG processing pipeline — on-device, cloud-first, or hybrid? What's the target latency for closed-loop feedback?"

Reveals architecture maturity and whether real-time constraints are defined or aspirational.

"Are you pursuing FDA clearance as a medical device, or staying in the wellness/consumer regulatory lane? How does that affect the compliance architecture?"

FDA SaMD pathway vs. wellness determines security posture, audit requirements, and feature scope.

"What QEEG normative database do you integrate with — NeuroGuide, HBImed, or proprietary? How does Z-score neurofeedback fit the roadmap?"

Signals whether clinical validation is in scope and how deep the domain expertise requirement goes.

"What does the engineering team look like today, and who owns the signal processing layer vs. the infrastructure layer?"

Helps scope ownership and flag if you're the first dedicated infra/backend engineer.

"What are the accuracy benchmarks for the current ML models — what F1 scores / AUC targets have been set for focus, stress, and relaxation classification?"

Establishes whether ML is production-validated or still research-grade, and what you'd inherit.

"What does the first 90 days look like? Is there an existing AWS environment I'm inheriting, or is this a greenfield build?"

Critical to understand scope and pace — greenfield HIPAA from scratch is a very different engagement than enhancing existing infra.

Technology Stack

Full neurotech platform stack

Every technology layer from EEG device ingestion to ML inference, LLM integration, HIPAA compliance, and CI/CD deployment.

Backend
.NET 8 C#
Compute
AWS Lambda
Streaming
Kinesis Streams
API
API Gateway
API
WebSocket API
Database
DynamoDB
Storage
Amazon S3
ML
SageMaker
ML Format
ONNX Runtime
LLM
Amazon Bedrock
Security
AWS KMS
Audit
CloudTrail
IaC
AWS CDK (C#)
IaC
AWS SAM
CI/CD
GitHub Actions
Networking
AWS VPC
Monitoring
CloudWatch
Signal
FFT / Spectral
Signal
Butterworth IIR
Signal
ICA Decomposition
EEG Domain
QEEG Analysis
EEG Domain
Neurofeedback
EEG Domain
10-20 System
EEG Domain
Band Power Ratios
Compliance
HIPAA / PHI
Compliance
GDPR
Compliance
AWS BAA
ML Library
TensorFlow
ML Library
PyTorch
Math
Math.NET Numerics
Container
Docker / ECR
Container
Kubernetes
Mobile SDK
Flutter / React Native
Protocol
Bluetooth LE (BLE)
BCI
BrainFlow SDK
Frontend
React.js / Next.js
Backend Alt
Node.js / NestJS
Database
PostgreSQL
Cache
Redis
LLM
LangChain

Available for Projects

Building a neurotech or digital therapeutics platform?

Available for senior engineering roles, fractional CTO engagements, and platform architecture consulting in neurotech, digital health, and AI-driven biosignal processing.

Start a Conversation