← combined signal  ·  move cursor to decompose  ·  isolated modes →

trondheim, no/exploring fmri bold analysis

Ian Philip Eglin

MSc Student and Software Developer

MSc Signal Processing · NTNU

About

I am a software engineer with a background in electronics systems design — pursuing a MSc in signal processing from NTNU, and soon-to-be R&D Developer at Appear. I work across the stack: TypeScript, React, and Next.js on the front end; Rust, Go, and Python wherever the problem calls for it. My thesis work on frequency-resolved fMRI BOLD processing is where engineering rigour meets creative output, and that dual discipline shapes how I approach every system I build.

Projects

Featured project

etdagene.no

etdagene.no is a website for the yearly MTELSYS career fair, Elektronikk & Teknologidagene. Built with NUXT, TypeScript, and Firebase DB, it supports user event signups, information on potential employers, company job listings and resumé distribution. Deployed on DigitalOcean using Docker.

TypeScriptNUXT 3FirebaseSASS

MSc Thesis — Frequency-Resolved Patterns in fMRI BOLD

Multivariate Variational Mode Decomposition (MVMD) can be used to decompose multichannel fMRI BOLD signals into a set of intrinsic frequency modes that are aligned across brain regions, enabling frequency-resolved functional connectivity analyses within and between large-scale networks. This allows investigation of whether anhedonia-related alterations emerge preferentially in specific slow-frequency bands (e.g., slow-4, slow-5) rather than in the full-band signal. Complementarily, the Continuous Wavelet Transform (CWT) provides a time–frequency representation of BOLD signals, enabling the study of transient and scale-dependent connectivity patterns across time. By combining MVMD (for mode-aligned band separation) with CWT (for fine-grained time–frequency characterization), the thesis can assess how frequency-specific neural dynamics and cross-network interactions differ as a function of anhedonia severity across task-based and resting-state paradigms.

RustSignal ProcessingDSPMVMD

Omega Skrytelister

Skrytelister is a digital platform launched for Helingball that allows students to exchange anonymous compliments and tokens of appreciation. To participate as a recipient, users must register, as you will only appear in the searchable directory once your account is active. The service is designed to build anticipation leading up to the ball; all messages remain hidden in a locked inbox and are only revealed to the recipients once the designated writing window has closed.

TypeScriptNUXT 3Supabase

Kefli

Kefli is a Rust crate implementing the Raft consensus protocol from scratch. The project prioritises correctness over performance, with a clean public API and comprehensive test coverage for leader election, log replication, and membership changes. Designed as an educational reference and drop-in building block for distributed Rust applications.

RustConsensus

Elevator Control System

The Elevator Project focuses on designing and implementing a robust, fault-tolerant control system for n elevators operating across m floors in a distributed environment. The system must guarantee that all hall and cab calls are serviced, that button lights represent a service guarantee, and that no calls are lost — even under failure conditions such as network disconnection, packet loss, software crashes, or temporary power loss. A key requirement is resilience: elevators must continue operating independently when disconnected from the network, retain active calls across crashes or power interruptions, and recover automatically without manual reinitialization. The system must ensure consistent behavior of hall button lights across workspaces under normal conditions, while maintaining correct operation even during unreliable networking. Cab calls are local to each elevator, whereas hall calls must be coordinated across the distributed system. In addition to reliability, elevators must behave sensibly and efficiently. They should avoid unnecessary stops, respect travel direction semantics when clearing hall calls, and manage door timing and obstruction logic correctly. Once the core guarantees are satisfied, the system should distribute calls among elevators to minimize service time and optimize overall efficiency. The project emphasizes distributed systems design, state synchronization, failure recovery, real-time control logic, and scalable configuration (supporting variable numbers of elevators and floors without hard-coding). It represents a practical exercise in building a resilient, concurrent control system with strong service guarantees under realistic operational constraints.

RustConcurrent Systems

Work Experience

  1. 2025
    Studentmediene i Trondheim·Board Member

    Aug 2025 – Present

    • 2025
      Appear·Software Developer (Summer Intern)

      Jun 2025 – Aug 2025

      • Developed a confidence monitor in Rust displaying rapidly updating image streams.
      RustWASM
    • 2024
      Bekk·Backend Developer (Summer Intern)

      Jun 2024 – Jul 2024

      • Developed alternative login methods for Posten’s document signing platform
      • Participated in secure development workshops focused on minimising risk of critical security vulnerabilities
      • Contributed to backend feature development in a production-grade system
      JavaEntra IDReactJS
    • 2023
      Elektronikk- & Teknologidagene·Board Member & Head of IT

      Mar 2023 – Mar 2024

      • Responsible for technical infrastructure and digital platforms for the yearly career fair
      • Contributed to strategic planning and execution of events for 3rd-year engineering students
      • Led IT-related decision-making and system improvements
      TypeScriptNUXT 3Firebase
    • 2023
      NTNU·Teaching Assistant — Experts in Teamwork

      Jan 2023 – Jun 2023

      • Guided students in analysing teamwork processes and improving collaboration strategies
      • Created structured reflection spaces for handling conflicts and challenging team decisions
      • Supported development of professional communication and teamwork skills
      FacilitationTeam DynamicsProject Guidance
    • 2022
      Adresseavisen·Web Developer (Summer Intern)

      May 2022 – Aug 2022

      • Improved and renewed internal tools for searching national tax records
      • Implemented a new solution for uploading tax figures, significantly improving processing speed over the previous system
      • Collaborated with designers and DevOps engineers, gaining experience in cross-functional development workflows
      TypeScriptVueMongoDB

    Skills

    Languages

    · core
    TypeScript
    Rust
    Python
    Go

    Frameworks & Libraries

    · core
    React
    Next.js
    Node.js
    Tailwind CSS

    Tools & Platforms

    · core
    Git
    Docker
    Vercel

    Languages, Hardware & Embedded

    · familiar
    Java
    MATLAB
    Embedded C

    From the blog

    Read more on the blog →

    Get in touch

    ·--:--

    The best way to reach me is by email.

    philip@eglin.no