Résumé
- About 30 years of experience developing advanced system level and scientific software in the industry, an academic setting, and in the free software community
- Through scientific background and experience with a wide range of languages and techniques, very proficient with domain-specific modeling and design
- Very experienced with portable, platform independent development, from prototyping over testing to deployment
- Experience with medical software development, as well as standardization work
- Many years of experience in mentoring developers and coordinating projects
Skills
Software Engineering:
- Programming languages:
C++, Python, Java, bash, …
- Scientific programming:
Molecular dynamics, Monte Carlo, Dynamical Systems, Signal- and Image Processing
- System programming:
- Embedded Systems (Yocto), GNU/Linux, Windows
- Distributed Systems (IPC, RPC, HTTP, sockets)
- Parallelism (SIMD, threads, OpenMP, MPI, CUDA)
- Libraries and frameworks: Qt, VTK, boost, SciPy, Jupyter
- Software engineering and project administration:
- OOP, OOA/D, UML, Multi-Paradigm design, Generic Programming
- Project coordination and administration using github, bitbucket, JIRA, …
- Daily use of development tools like git, gcc, cmake, python, jupyter, postgresql, docbook, docker
- Standardization work
Languages
- German, English, French:
spoken fluently and daily
Experience
THINK Surgical (2018 – present)
Principal Software Engineer
- Design and develop build infrastructure and software supply-chain management
- Design and develop 3D tracker simulator and test methodology for navigation software system
- Design interfaces and data models for patient records and implant modules, to support entire workflow from preoperative planning to post-market surveillance
Continuum Analytics (2015 - 2017)
Senior Software Engineer
- Design and develop numerical and data-processing libraries and support tools using a combination of Python, C,and C++.
- Develop build and packaging infrastructure in support of the Anaconda distribution.
Mentor Graphics (2010 - 2015)
Software Architect
- Design and develop numerical libraries in the High Performance Embedded Computing (HPEC) space.
- Port HPC code to various platforms including Cell/B.E. and NVidia CUDA.
- Develop integrated development workflows from prototyping (Matlab, SciPy) to target-specific optimization (C++, compiler intrinsics, etc.)
- Manage releases for various products.
- Coordinate architecture-level efforts related to various projects.
- Work on VSIPL++ standardization within OMG.
- Co-chair HPEC Working Group within OMG.
CodeSourcery (2005 - 2010)
Sourcerer
- Design and develop numerical libraries in the High Performance Embedded Computing (HPEC) space.
- Port HPC code to various platforms including Cell/B.E. and NVidia CUDA.
- Manage Sourcery VSIPL++ releases.
- Work on VSIPL++ standardization.
ORTHOsoft (2001 - 2004)
Software Developer
- Design and develop a new document-centric architecture based on an Electronic Patient Record.
This includes various services such as persistence, recording / playback, and logging, and is based on XML (using DOM and SAX APIs).
- Design and develop a portable component model that was used to refactor (i.e. modularize)
the whole product suite.
- Develop and maintain the Motion Capture component with its principal implementation using
the NDI Polaris Tracking System. Bind this component to a scene graph (based on openGL and OpenSceneGraph) for real-time rendering of tracked surgical instruments.
- Develop a scripting frontend (python) for a number of components using boost.python
- Enhance the development environment by writing a new build system (using MSVC++, gcc, MipsPro, make, autoconf), a new unit testing framework (using qmtest), code documentation tool (using synopsis), and internal web site (using apache, a wiki, in-house cgi scripts, etc.).
- Enhanced the software’s portability to now support MS Windows, GNU/Linux, and IRIX.
The Berlin / Fresco Project (1998 - 2003)
Architect and Principal Developer
Fresco is a highly modular, multi-threaded, distributed 3D enabled windowing system, based on a persistent scene graph with server-interpolated high color/spatial resolution and server-side UI components.
- I designed and implemented most of the system using CORBA IDL, C++, Python. The implementation contains various system level and graphics libraries to make it highly portable, scalable and extensible. Lower level APIs that are being used include openGL, POSIX, CORBA 2.3, etc.
- I implemented the build system for Berlin using tools such as make, autotools, perl
- I presented the project at various international conferences, such as the Ottawa Linux Symposium (Canada) or the LinuxTag (Germany)
SIGGRAPH Montreal (2001 - 2002)
Member of the founding comitee
The Synopsis Project (2000 - present)
Coordinator and Lead Developer
Synopsis is a modular source code inspection tool, mainly designed to generate reference manuals from inlined documentation. It supports a variety of languages through the use of pluggable parsers, as well as a wide range of output generators, such as HTML, XML, or UML graphs.
- I designed the overall layout of the framework, the data flow, as well as the class hierarchy used.
- I implemented the core of the application (in python), as well as some of the parsers and formatters (C++, python).
Education
-
Université de Montréal (1996 - 2000)
graduate studies in biophysics about ion transport through biological membranes
-
Humboldt Universität zu Berlin (1993 - 1996)
M.Sc. Physics, Cluster Formation in Non-Equilibrium Systems
-
Humboldt Universität zu Berlin (1989 - 1992)
B.Sc. Physics
Publications and conferences
-
Stefan Seefeld, Faheem Sheikh, Brooks Moses,
A MATLAB-to-Target Development Workflow using Sourcery VSIPL++,
IEEE HPEC Conference 2012
-
Stefan Seefeld,
Hybrid Programming with C++ and Python using Boost.Python,
Talk at Bossa Conference 2009
-
Stefan Seefeld,
Fresco,
Talk at FOSDEM 2004
-
Stefan Seefeld, Daniel Odermatt,
Computer Assisted Surgery,
SIGGRAPH Montreal conference 04/2002
-
Wonpil Im, Stefan Seefeld, Benoît Roux,
A Grand Canonical Monte Carlo-Brownian Dynamics Algorithm for Simulating Ion Channels,
Biophys. J. 2000 79: 788-801
-
L. Schiemansky-Geier, S. Seefeld, V. Buchholtz,
Making spatial structures by ratchets,
Ann. Phys. 2000 9: 705-712
-
Stefan Seefeld,
Berlin - neue Wege für grafische Benutzeroberflächen,
LinuxTag 2000, Proceedings
-
Stefan Seefeld, Graydon Hoare,
Berlin: taming premature rasterization with structured graphics,
Talk at the Ottawa Linux Symposium 2000
-
Stefan Seefeld, Graydon Hoare,
Berlin: a Structured User Interface,
Ottawa Linux Symposium 2000, Proceedings