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

Ian Philip Eglin

Software Engineer

MSc Signal Processing · NTNU

About

I am a software engineer with a background in electronics systems design — 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

Live site ↗

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

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

WaveFormsTk

WaveFormsTk is a Python toolkit for simplifying plotting of Waveforms data exports. It provides visualisation via matplotlib for the most typical uses during early years in the MTELSYS master's programme at NTNU.

PythonNumPyMatplotlib

MSc Thesis — Frequency-Resolved Functional Connectivity

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

omega-kok is an internal recipe and meal-planning application built for Omega, the electronics student society at NTNU. The full-stack TypeScript application manages a shared recipe library, weekly meal plans, and shopping list generation. Features role-based access for society members and a clean, accessible UI.

TypeScriptNext.jsSupabase

Work Experience

  1. Studentmediene i Trondheim·Board Member

    Aug 2025 – Present

    • Appear·Software Developer (Summer Intern)

      Jun 2025 – Aug 2025

      • Developed a confidence monitor in Rust displaying rapidly updating image streams.
      RustWASM
    • 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
    • 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
    • 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
    • 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

    TypeScript
    Rust
    Python
    Go

    Frameworks & Libraries

    React
    Next.js
    Node.js
    Tailwind CSS

    Tools & Platforms

    Git
    Docker
    Vercel

    Hardware & Embedded

    Signal Processing
    MATLAB
    Embedded C

    From the blog

    Read more on the blog →

    Get in touch

    I am open to new opportunities. The best way to reach me is by email.

    philip@eglin.no