I am a passionate software developer that enjoys working on software projects in the broad spectrum between low-level machine coding to high-level architecture design.

I started programming at the age of nine (1984) to develope my own games. Then, after a longer period of learning Assembly and C on the Commodore Amiga, I joined the demo scene where I got into coding multimedia player frameworks and effects on machine level.

In 1988 I finally got my first modem (2400 baud at that time) and went online. In 1992 I started my own BBS and wrote my own support tools.

The open-source philosophie stroke my mind around the mid-nineties where I learned more on system design, un*x philosophy and networking.

In 2003 I finished university (Diploma in Business Administration and Computer Science) and started working as software developer. The software that I wrote got awarded by the American Software Association.

A year later I realized that I need more time so I went back to university to enjoy the mental freedom. In 2012, I finally finished my PhD after doing a couple of open-source software projects related to interoperability, high-performance computing and interactive user-interfaces.

At the moment I develop a middleware system for interoperability between scripting languages and run-time environments.

Between 2013 and 2017 I worked at the GWDG wit focus on authentication/authorization (e.g. passport.js, Shibboleth) and cloud computing IaaS (e.g. Keystone/OpenStack). Currently I'm looking for a new job.

Name Daniel Adler
Birthday 1975-06-23, Germany
Address Theaterstr. 11A
37073 Göttingen Germany
Email dadler at NO SPAM uni-goettingen NO dot SPAM de
  • Dynamic Interoperability between Programming Languages and Run-Times
  • Cross (Web, Mobile, Desktop, Console) Software Frameworks and Tools (e.g. Meta-Programming)
  • Privacy-Preserving Social Networks
  • Cross-platform Development: Platforms, Languages and Tools
    OS AmigaOS, Android, BeOS/Haiku, DOS/DESQview, Dragonfly BSD, ElateOS/Tao Intent OS, FreeBSD, GNU/Linux, Mac OS X, Microsoft Windows, MINIX, NetBSD, OpenBSD, Plan9, QNX, RISC OS
    Languages C/C++, D, Erlang, Forth, Go, Java, JavaScript (HTML5,Node), Lua, Objective-C, Perl, Python, R, Shell (DOS,Korn,POSIX), Tcl
    Compilers/SDKs Android NDK/SDK, Apple iOS/Mac OS X SDK & XCode, Borland C/C++, CLang/LLVM, Eclipse CDT/JDT, GCC, IBM Jikes, Intel C++, Microsoft Visual C++ Studio & Windows Platform SDK, Netbeans, PCC, Watcom
    Build Systems Ant, CMake, Make (BSD,GNU,SUN), Nmake, Scons
    GUI APIs Mac OS X Carbon and Cocoa, Win32 DirectX and GDI API, X Window System
    References: rgl, dyncall
  • Assembly with focus on native code interoperability
    ISAs ARM (v3-v7,Thumb,NEON), X86 (32/64-bit,MMX,SSE,AVX), MIPS (32/64-bit), PowerPC (32-bit,Altivec), SPARC (32/64-bit)
    VM Design Forth (JIT unroller and compression), Lisp, LLVM, Java, VP
    System-Level ABIs PE, Mach-O, ELF
    ISA-Level ABIs C ABI calling conventions (fixed, variable args) across architectures incl. Win32- and PPC32 specific quirks (stdcall, pascal and fastcall variants), System V variants, system calls, ARM/MIPS EABIs, C++ this call variants, Plan9
    C/C++ Type Information Tools GCC XML/XSTL, CLang

    Implementation of fundamental low-level techniques for interoperability between dynamic and static code chunks such as dynamic call facilities and dynamic handling of callbacks via call kernels, trampolines and structured processing of arguments in register sets and on stacks.

    References: dyncall, f4k

  • Interoperability between Programming Languages
    Component Middleware CORBA (mico), COM (Win32/ActiveX), Eclipse Plug-Ins, Mozilla (XPConnect,XPCOM)
    Run-Time Environments JavaScript Engines (SpiderMonkey, V8/Node), Erlang NIFs, Java JNI, Lua Extension/Embedding, Netscape Plug-In API, .NET 4.0 dynamic, Mono Run-Time, Objective-C Run-Times (GNUstep,Cocoa), Perl XS, Python Extensions/Embedding, R Extensions and Embedding, Ruby (MRI) Extensions, Tcl Extensions

    Development of FFIs and Run-Time Bridges.

    References: rdyncall, luadyncall

  • 3D Graphics
    Rendering Interfaces OpenGL, OpenGL ES, WebGL, DirectX, custom software-based Gouraud Shaders
    Techniques Terrains, Physics Simulation (hand-written or using ODE, Bullet)
  • Embedded Systems and Low-Memory Footprint Designs
    Hardware Platforms ARM-based (Raspberry Pi, Beagleboard, Gumstix), AMD Geode (Soekris, PC Engine ALIX), MIPS-based (Linksys WRT54)
    Micro-Controller LPC1343 (ARM Cortex-M3)
    Video Game Consoles GCE Vectrex, Sony Playstation Portable Homebrew
    Frame buffer Interfaces Linux Frame Buffer, Nokia 1200 LCD/PCB8841
    Development Platforms Gentoo Linux Cross-Dev, OpenELEC, OpenEmbedded/bitbake

    References: dyncall ports for ARM and MIPS, toying with the r0ket

Year System Activity
Atari 2600
  • Fun
Commodore C116
  • Basic 3.5
Commodore C128
  • Basic 7.0
  • C-64 Mode :)
Commodore Amiga 500
  • AmigaBasic
  • C (Aztec C Compiler)
  • Amiga OS GUI Programming
  • Amiga Hardware Programming
  • Assembly (MC68000)
1990 PC i286
(DOS, DESQview)
  • Pascal (Borland Turbo Pascal)
  • Demo Coding (Amiga)
Acorn 5000
Amiga 1200
  • Assembly (MC68020) and AGA
  • Offline Graphics Animation (Maxon Cinema 4D)
1997 PC i586
(RedHat 4, Window NT 4)
  • Linux
  • Windows
  • Web Design: TEK group homepage.
  • Freelancer: Web Design & Programming
  • ISDN Internet Router (Linux)
Voodoo 1
(3fx Glide/OpenGL)
  • BeOS
  • Glide/OpenGL 3D programming
  • research: GTK+ Magic
Voodoo 3000
(Mesa/OpenGL w/ X11)
  • contribution: TEKlib display module (BeOS port)
  • X11/OpenGL 3D programming
  • Assembly (VP) on Amiga SDK, Elate, Tao OS
  • DSL Internet Router (Linux)
  • Freelancer: C++ Text Rendering Component for Windows (FreeType2)
GeForce4 TI4200
  • Demoscene: Linux 4K Intro ``fork rulez'' (7th place)
  • Open source: R package rgl
  • Research: Forth Interpreters in Interactive 3D Environments, Particle Systems
  • Award: John M. Chambers Statistical Software Award from ASA
  • Employment: Software Developer (Java Swing GUI,C++) B & N Software AG
Mac PowerBook G4
(PowerPC 32-bit, GeForce FX Go5200,OS X 10.4)
PC i686
  • Demoscene: Forth JIT Compiler for 4K intros
  • Research: Shader programming, Perlin Noise, Gerstner Waves
Linksys WRT54GS
(Broadcom MIPS, OpenWRT Linux/WhiteRussian)
  • Release: Freeware Desktop Gadget DashMesh
  • Cross-Development: OpenWRT
  • Research: X3D
Playstation Portable
  • Research: X3D
  • Research: Implementation of Component Object Model 'ucom' for interoperability between R and C++
  • Award: Big Programming Competition for R package 'ff' 1.0 from R Foundation
  • Assembly: dyncall ports for
    • ppc32 ABI for Mac OS X
    • x86 ABIs (cdecl, stdcall, fastcall, thiscall) for Mac OS X, Windows, Linux
    • x64 system v (Linux, BSD, Mac OS X) and win64 (Microsoft Windows) ABIs
    • mips eabi ABI for PlayStation Portable using PSPSDK
(ARMv4T, OpenEmbedded/Angstrom)

(ARMv6, OpenEmbedded/Angstrom, Android)

MacBook Pro
(Model 4,1-Intel Core2 Duo, GeForce 8600M, OS X 10.5-10.6)

(Intel Core 2 Quad Q6700, GeForce GTX 270)

ALIX 3d3
(AMD Geode, Gentoo Linux)
  • Release: dyncall 0.1
  • Release: R package ff 2.0
  • Assembly: dyncall port for ARMv4T (openmoko, beagleboard)
  • Experience: Ångström Linux Distribution.
  • Experience: Cross-Building/Deployment with Gentoo
    (incl. frustration with libtool)
  • Shader Programming: Comparison between CPU (single/multi-core) and GPU shader-based
    (Mandelbrot Zoomer in Cg, Cuda (single/double float), OpenGL, OpenMP)
iPhone 3GS
(ARM Cortex-A8, iOS 3,ARM v6/v7, PowerVR SGX535)

Gumstix Overa Fire
(OMAP 3530/ARMv7, PowerVR SGX530)
  • Release: R package rdyncall 0.1 at useR!
  • Assembly: dyncall ports for iPhone ARMv6 ABI
  • Experience: Cross-Dev with OpenEmbedded / bitbake
  • Experience: Angstrom Linux
Soekris Net5501
(AMD Geode and 24/7 harddisk)

(Loongson MIPS-based 64-bit, OpenBSD)
[temp. access by a c4mp br0 - THANK YOU!]
  • Assembly: dyncall port for MIPS 64-bit n64 ABI
  • OpenBSD/Soekris-powered energy efficient Internet Server
Sun Fire V440
(4xUltraSPARC-IIIi, SPARC v7/v9 ABI, SunOS)
[remote access by GWDG - THANK YOU!]

r0ket @ Camp
(LPC1343, ARM Cortex M3, 8kb RAM, 32kb Flash)
  • Release: rdyncall 0.7.3 initial release on CRAN
  • Experience: SunPro compiler tool chain
  • Assembly: dyncall port for SPARC v7 (32-bit) and v9 (64-bit) ABI
  • Demoscene: cross-platform 'R scripted' SDL/OpenGL intro.
  • Language Interoperability: R, Lua
  • Hacking: graphics efx on r0ket (copper bars, noise, sin-tables, floyd steinberg dithering, zoom rotator)
MacBook Pro
(Intel Core i7, Radion HD 6750M, Mac OS X 10.7)

Efika MX Smartbook
(ARM v7, Debian armhf)

Raspberry Pi
(ARM v6, OpenElec/XBMC)
  • Assembly: dyncall port for ARM hardfloat ABI
  • Cross-Development with OpenElec
  • Experiences: Android NDK r8b, sdk
  • Language Interoperability: Objective-C Run-Time, JavaScript/V8