Steffen Schulze, M.Sc.
- Status
- open to suggestions
- Original source of this page
- co3.de/cv/index.html
- Last update
- 5th of February 2023
Personal
- Name
- Steffen Schulze
- Telephone
- +49 160 633 49 30
- E-mail
- cv@co3.de (best way for contact)
- Date of Birth
- 26th August 1980
- Address
- Chausseestr. 1, 03051 Cottbus
- Nationality
- German
Education
Credentials
- Scans of "Abitur", Bachelor and Master Credentials
- scans as ZIP
Schools
- 1987 - 1990
- 26. POS Olga Benario Prestes, Cottbus, Germany
- 1990 - 1993
- 27. POS Dr. Richard Sorge, Cottbus, Germany
- 1993 - 1996
- Sportschule, Cottbus, Germany
- 1996 - 2000
- Fuerst Pueckler Gymnasium, Cottbus, Germany
Academic
- 2001 - 2009
- Brandenburg University of Technology
- Specialisations
- Distributed and parallel systems ( network/multicore/grid etc )
- Operating systems ( memory management/multitasking etc )
- Software architecture
- Bachelor of Science - Information and Media Technology
- Topic of Bachelor's thesis: Compression and aggregation in a network layer
- Master of Science - Information and Media Technology
- Topic of Master's thesis: Analysing and refactoring of a application source (Sacred 2)
Career history
- 2003
- WebDynamix
- Programming - PHP /SQL
- Extending the CSM-Enging with polling and dynamic graphical chart templates
- 2007 - 2009 (studio closed)
- Studio2 / Ascaron Entertaiment
- Network programming - C++
- Manage ingame network
- Fixing the network subsystem
- Fixing consistency problems
- Optimize traffic
- Logic programming - C++
- Engine programming - C++
- Debugging code - C++ / XML / C#
- Runtime debugging of bugs
- Tools to analyse traffic from event driven system at runtime (xml api -> c# tool)
- Intranet - PHP / SQL / BASH
- Connect phpBB, MediaWiki with intern Databases and local tools
- For example: MediaWiki extensions as tag, which shows als item informations from database
- For example: daily updates of analyses from project code
- 2010-2011 (studio closed)
- 49 Games
- Game programming - C++
- Input for Wiimote, Gamepad, Kinect, Move
- Game logic
- GUI
- In a "unique" Framework
- 2011-2013
- Fishlabs Entertainment
- Engine Programming - C++
- Network basing on RakNet
- Physics
- Engine architecture
- Backend Teamlead - Java and SQL
- Stateless game server based on Netty using JPA on Postgres
- Software Architect - C++
- Setup and expand code base for a arcade space shooter
- Type safe entity system
- Interface for real time editing by external editor
- Intranet
- Setup automated build chain for front and back end game infrastructure (based on jenkins, xcode, liquibase, bash scripts, maven, protobuf)
- Install and administrate Jenkins, Postgres, OpenFire
- 2014-2016
- Bravis International GmbH
- Backend Programming - PHP
- Database with RedBean as ORM
- Admin Panel with AngularJS and Bootstrap
- RESTful api
- Automated deployment with jenkins, bash and liquibase
- Library Programming - C++
- Adding direct and group encryption for p2p communication (perfect forward secrecy)
- Adding generic authentication interface
- Application Programming - C++/QML
- Multiplatfrom client for p2p video conference
- Intranet
- Setup automated multiplattform build chain for libs, applications and web projects
- Install and administrate Proxmox, Jenkins, GitLab, Nginx, Observium
- 2016-
- BTU Cottbus Senftenberg
- IT Specialist
- Migration of the service and data of the ELearning platforms of BTU Cottbus and the Lausitz University of Applied Sciences to a common instance
- Academic Employee in "Exzellenz von Studium und Lehre: Individueller Studieneinstieg, innovative Studienmodelle, Forschendes Lernen"
- Setup, roll out and maintain a virtualized hosting platform for project-wide use
- Setup, roll out and maintain a collaborative wiki system for project wide use
- Setup, roll out and maintain a media platform for university-wide use
- Anonymized analysis and processing of user data of offered services
- Academic Employee in "Mittelstand 4.0-Kompetenzzentrum Cottbus"
- Workshops for the qualification to evaluate and introduce Augmented- and Virtual Realitiy in own institutions or enterprises
- Development of augmented and virtual reality demonstration systems for smartphones, as well as stand-alone VR and AR glasses
- Collaborative, recordable and replayable learning and exchange platform in virtual spaces
- Evaluation and information building for the application of modern photogrammetry methods in the everyday production scenarios of medium-sized companies
- Academic Employee in "KI@Mint"
- Evaluation of the possibilities of machine learning and deep learning in the context of learning analytics
- Setting up a service pipeline for processing and analyzing incoming learning activity data with a focus on data protection
- 2017-
- BitSpree GmbH
- CEO
- Founding and managing a small software engineering company
- Project Lead "Pico Islands"
- Full-Stack Developer C++/QML
- Game Design
- Producing
- DevOps
- Marketing
Products Involved
Skills
Software engineering
- Software architecture
- Refactoring in large software projects
- Code quality management
- Automated runtime and static code testing
- Automated multiplatform build pipeline
Programming
- C++/C
- Since 1997 - Excellent knowledge
- for example:
- parallel and distributed computing - university
- Multitasking operating system - university
- Optimized wireless network code for embedded systems - university
- Network, logic, engine, debugging code for AAA computer game product (pc, xbox, ps3) - Sacred2, Ascaron Entertaiment
- Graphic, gameplay and several input controller (wii, xbox, ps3, pc) - 49 Games
- Complete Client/Server prototype with physics, network, input - Fishlabs Entertaiment
- Setup and expand code base for a arcade space shooter - Fishlabs Entertaiment
- Several graphic opengl graphic demos - private
- Modern C++
- experience when to use OO, functional or other paradigmas instead of doing one for all
- Compiler output of code -> performance and memory usage
- Qt/QML
- And much more
- PHP
- Since 2001 - Good knowledge
- for example:
- Community Portal to exchange files and informations - 600+ members
- Extensions and modifications in mediawiki - intranet for Ascaron Entertaiment
- Tools for extended informations based on xml api - eve-online community
- C#
- Since 2007 - Average Knowledge
- live debugging tools for AAA computer game product - Sacred2, Ascaron Entertaiment
- Additional Game Logic for a multiplayer title - Fishlabs Entertaiment
- Java
- Since 2001 - Good knowledge
- for example:
- 2011-2012: Backend Teamlead - MMO Client-Server Mobile Game - Fishlabs Entertaiment
- Evaluation and setup of game server architecture and code base
- Implementing stateless game server in Java with SQL database ( Netty, Protobuf, JPA, Postgres)
- Leading development of tools and lobby server for live production
- Docker / Docker-Compose / Proxmox
- Since 2017 - Good knowledge
- Private Homepages
- Professional services
- Services for academic usage
- Destribution and CI Workflows
- HTML / CSS / Javascript
- Since 1995 - Good knowledge
- Private Homepages
- Debugging interfaces for serveral development projects
- Frontends with Angluar 1/2 and Bootstrap
- Realtime collaborations with Client/Server
- AR and VR on Smartphones and AR/VR Devices
- Shells / Gnu-Tools
- Average knowledge
- Regularly usage on desktop and server systems in private and professional contexts
- LUA
- Average knowledge
- Integration on C++ side
- Scripting
- Python
- Average knowledge
- Scripting
- Tool for data preparation and analysis in the context of machine learning
Hardware and operating systems
- CPU
- Good Knowledge
- for example:
- Interna of modern RISC and CISC -> differences of console and PC programming
- Multicore and caches -> dont forget the hardware while coding
- Windows
- MacOS
- Average knowledge
- Current Desktop workplace
- Linux
- Good knowledge
- First choice if i have the option
- Target Platforms
- Windows, Linux, MacOS, Playstation, Move, XBox, Kinect, Wii, Android, iOS, Web, SteamDeck, VR-Devices, AR-Devices
Tools and Apps
- for example:
- Docker
- Git
- GitKraken
- GitLab
- Gnu tools
- Liquibase
- MariaDB
- Nginx
- Postgres
- Proxmox
- QtCreator
- Visual Code
- Valgrind
- Wireshark
Middleware and Libs
- for example:
- Boost
- Hibernate
- Java Spring
- Lua
- Node.js
- Ogre
- OpenGL
- OpenSSL
- ProtoBuf
- Python
- Qt/QML
- RakNet
- RedBean
- Tensorflow
- Three.js
- WebXR
Languages
Misc
- wide spectrum of technology knowledge
Awards
- Best International Game - Sacred 2, 2008, https://www.deutscher-entwicklerpreis.de/
- Best Action Game - Sacred 2, 2008, https://www.deutscher-entwicklerpreis.de/
- German Championship Handball B-Jugend 1997... yeah :)
Interests
- Sport
- Computer games
- Family
- Technology
My evolution (german)
- C64
- Ich bekomme meine Brotkiste mit 10 Jahren von meiner Mutter geschenkt.
- Ueber Freunde bekommt man mit, das diese Kiste auch tut, was man ihr sagt. Basic heisst das Zauberwort.
- Nach dem Manipulieren von zahlreichen Public Domain Spielen, welche in Basic geschrieben waren, kommen erste einfache eigene Spiele mit circa 12 Jahren.
- PC - Anfaenge
- Nachdem ich den Winter 92/93 fast komplett bei einem Nachbarn verbracht habe, um dort auf dem 386 Sachen wie Mad TV, Gunship 2000 und Indy 3 zu zocken, bekomme ich 1993 mit 13 meinen ersten 486er.
- Anfangs wurden wieder die mitgelieferten QBasic Spiele manipuliert und Spiele wie Day of the Tentacle und Eishockey Manager bis zum GetNoMore gezockt.
- Als meine Grafikkarte defekt war und statt VGA nur noch Text ausgeben wollte, programmierte ich mir meinen eigenen Kaiser-Clone, um irgendwie beschaeftigt zu sein.
- Mit der Zeit kamen neue Spiele, neue Prozessoren und vor allem neue Freunde, die Sachen wie Turbo Pascal und Mode13h mitbrachten.
- Mein Interesse an der Demoscene wurde geweckt. Es entstanden Rotozoomer, Plasmas, Bumbs und andere 2D Spielereien
- Mit 16 kam der erste Informatikunterricht, nachdem ich von der Sportschule spaet auf das Gymnasium gewechselt bin. Der Lehrer erlaubte es mir, nachdem ich die Aufgaben erfuellt hatte, mich selbst zu beschaeftigen. So entstand zum Beispiel ein Chatclient, mit dem man ueber das Netzwerkfilesystem getunnelt, untereinander chatten konnte. Spaeter auch ein Skispiel mit Pseudo3D und Animationsphasen in Mode13h und Pascal.
- Die Limitierungen von Pascal wurde mir bald deutlich, daher war ich schnell von C begeistert, auch wenn es auf den ersten Blick wie eine Formelsammlung aussah.
- Es kam die Zeit wo ich mit dem Wechsel des Compilers und neuen Inspirationen wie zum Beispiel Carsten Dachsbachers Artikeln und NeHe anfing komplexere Programme mit C++ und OpenGL zu Programmieren. Dies muss etwa mit 18 oder 19 Jahren gewesen sein.
- Waehrend der Wehrpflicht hatte ich das Glueck auf einen Dienst-PC zurueckgreifen zu koennen. In dieser Zeit entstand unteranderem ein Moorhuhn-Clone mit SDL.
- Universitaet
- Aus finanziellen und familiaeren Gruenden konnte ich mich nur an der Universitaet in meiner Heimatstadt einschreiben. Rueckblickend allerdings eine glueckliche Entscheidung, da man direkten Kontakt zu den Professoren und Uebungsleitern pflegen konnte.
- Da das Grundstudium am Anfang sehr trocken war, wendete ich mich unter anderem Techniken fuer das Web zu. PHP, SQL, Flash waren Basis fuer einige Projekte. Wie zum Beispiel ein Portal fuer Studenten mit der Moeglichkeit Informationen, Links und Dateien auszutauschen.
- Diese Kenntnisse setzte ich waehrend meines ersten Industriepraktikums fuer den Bachelor ein. Bei WebDynamics erweiterte ich das firmeneigene CMS um zahlreiche Funktionalitaeten.
- Mit der Moeglichkeit die Vorlesungen auszuwaehlen begann die Spezialisierung auf Betriebssysteme, sowie Verteilte und Parallele Systeme.
- Durch Uebungen dieser Vorlesungen bekam auch das Verstaendnis fuer C++ einen deutlichen Schub. Im speziellen, wie Konstrukte im Speicher aussehen und was zur Compile, wie auch Laufzeit passiert.
- Parallel zur Universtaet entstanden privat Spielprototypen, welche insbesondere Netzwerktechniken und Laufzeitoptimierungen testeten.
- Fuer die Bachelorarbeit implementierte ich eine Kompressions- und Aggregationsschicht, fuer das Netwerk im Betriebssystem Reflex. Dieses lauft auf eingebetteten Systemen wie Sensorknoten, auf denen auch die Praxistests stattfanden. Dabei kam es auf extrem ressourcenschonendes Programmieren an.
- Auch wenn die Uebungsgruppen nie sonderlich gross waren, kann ich behaupten, stets die Laufzeitstaerkste Implementierung abgeliefert zu haben. Pruefungen und Uebungen wurden stets im ersten Anlauf geschafft. Auch wenn eine 4.0 in Pyrotechnik dafuer spricht, dass ich nicht fuer Feuerwerke eingesetzt werden sollte.
- Ascaron
- Da ich den Grossteil der Masterrelevanten Pruefungen bereits vor dem Bachelor abgeschlossen hatte, begann ich bereits 1 Jahr nach der Bachelorarbeit mit der Suche nach einem Industriepraktikum fuer das Masterstudium. In meiner Liste von Spielestudios, bei denen ich mich bewerben wollte, hatte ich bereits beim ersten Anruf Glueck und bekam nach einem Vorstellungsgespraech die Chance fuer ein Praktikum bei Ascaron/Studio2.
- Waehrend des Praktikums wurde ich mir die Analyse und Fehlersuche im Netzwerk des aktuell entwickelten Titels Sacred 2 anvertraut.
- Danach wurde mir eine Vollzeitstelle angeboten, welche ich angenommen habe. Mit dieser Entscheidung war mir allerdings klar, dass sich dadurch auch mein Studienabschluss verzoegern wird.
- Waehrend dieser Zeit konnte ich mir stetig mehr Vertrauen erarbeiten und damit auch mehr Verantwortung uebernehmen. Von der Ueberarbeitung des Netzwerksubsytems ueber die Verantwortung fuer die Ingame-Multiplayerfunktionalitaet bis zur Mitverantwortung bei der Uebarbeitung die Enginearchitekur.
- Daneben habe ich eine Intranetloesung aufgebaut, zahlreiche Funktionalitaeten in Gamelogik und Engine erstellt und ueberarbeitet.
- Anfang 2009 habe ich mit meiner Masterarbeit bei Ascaron begonnen. Ziel war es Defizite in der Softwarearchitektur zu finden und Architektur-Refactorings auszuarbeiten. Waehrend der Beendigung des praktischen Teiles des Arbeit kam leider auch die Nachricht der Insolvenz von Ascaron, weshalb ich den bewertenden Teil an der Universitaet beendet habe.
- 49 Games
- Nach einem kurzem Intermezzo bei einer Firma (The Games Company), die bereits 1 Tag vor meinem geplanten Arbeitsbeginn in der Insolvenz endete, heuerte ich in Hamburg bei 49 Games an.
- Dort nahm ich an der Entwicklung von "Summer Stars 2012" teil. Ich war bei den Disziplinen Turmspringen, Stabhochspruch, Hochsprung und Bogenschiessen fuer die komplette Programmierung (Input, Darstellung, Gui und Gamemechanik) verantwortlich.
- Neben dem Produktionsaufwand war ich in dieser Zeit vor allem damit beschaeftigt, den Code der Disziplinen zu vereinheitlichen. Diese wurden bis dahin jeweils von unterschiedlichen Programmierern betreut.
- Leider endete auch dieses Anstellung verfrueht die Insolvenz des Arbeitsgebers.
- Fishlabs
- Darauf schloss ich mich dem Entwickler Fishlabs an, welcher sich Premium Mobile Spielen verschrieben hat.
- Die ersten Monate entwickelte ich auf Basis der hauseigenen C++ Engine eine Prototypen fuer ein Server-Client-Netzwerkspiel. Dabei entwickelte ich ein Netzwerkmodul auf Basis von RakNet und modifizierte die Engine um in solchen Szenarien nutzbar zu bleiben.
- Folgend uebernahm ich die Lead-Position fuer den Aufbau des Backends des MMO-Strategy Titels "Galaxy on Fire - Alliances". In dieser Funktion baute ich ein Backend das auf Stateless-Serverinstanzen auf Basis von Java, Master-Slave relationale Datenbank und Protobuf als Protokoll zum Client fusste. Der Server konnte spaeter zur Laufzeit dynamisch skalieren und Zusaetzlichen Spielinstanzen automatisert aufgesetzt werden. Die Spieldaten wurden ueber speziell dafuer entwickelte Webfrontends administriert. Zusaetzlich fuehrte ich, fuer die Firma erstmals, automatische Buildserver, Unit Tests und Testinstanzen mit automatisierten Bot-Clients ein.
- Ein halbes Jahr vor Release wechselte ich das Projekt um fuer einen Weltraum-Shooter die Code-Basis aufzubauen. Dabei setze ich, auch neu fuer die Firma, auf getrennte Architekturschichten fuer Gamelogik, Rendering, Daten und Applikation. Dies ermoeglichte unter anderem einen eigentstaendigen Editor der zur Laufzeit die Spielinhalte ueber Netzwerk bearbeiten konnte.
- Im Oktober 2013 musste die Firma nach durchlaufen eines Schutzschirmverfahrens 1/3 seiner Mitarbeiter entlassen. Da ich einen Monat vorher der Geschaeftsleitung offenbart hatte, Hamburg Mitte 2014 aus familaeren Gruenden zu verlassen, trennte man sich nachvollziehbarerweise auch von mir.
- Bravis International
- Direkt nach meinem Umzug in meine alte Heimat Cottbus, schloss ich mich der Bravis International an. Hauptprodukt ist zu diesem Zeitpunkt die Peer2Peer Videokonferenzloesung Bravis 2.0.
- Als erstes Projekt setzte ich ein Backendloesung fuer vico.secure, einer Videokonferenzloesung fuer die Zahnmedizin mit zentral verwalteten Nutzer- und Kontaktlisten um. Vorausgesetzt waren PHP und MySQL. Dabei kamen RedBean als ORM-Middleware zum Einsatz und unter anderem Liquibase und Jenkins fuer das Deployment.
- Darauf erweiterte ich die firmeneigene P2P-Videokonferenztechnik um Authentifizierung und Verschluesselung. Dabei kamen unter anderem AES im Counter Modus und Diffie-Hellman-Schluesselaustausch zum Einsatz um Perfect Forward Secrecy zu ermoeglichen. Die Authentifizierung ist dabei generisch und kann um verschiedenste Verfahren erweitert werden.
- Das bis dahin groesste Projekt war das Aufsetzen des komplett neuen Bravis 3.0 Projektes, welches aufbauend auf die vorhandene Basistechnologie fuer Videotelephonie, eine moderne und portierbare Videokonferenzanwendung zum Ziel hat. Mit Hilfe von Qt/QML wurde dabei eine Software umgesetzt, welche alle noetigen Integrationen und Logik in C++ umsetzt und dessen Oberflaechen per QML erstellt und dynamisch ausgetauscht werden koennen. Dabei wurde von Anfang an grossen Wert auf komplett automatisierte Build-Schritte gelegt.
- Leider musste sich Bravis aus betriebswirtschaftlichen Gruenden von mir trennen.
- BTU Cottbus-Senftenberg
- Insbesondere um in den Kontakt und Austausch zu technisch und wissenschaftlich interessierten Menschen in Cottbus zu suchen, habe ich mich danach fuer eine Anstellung an der Universitaet entschieden.
- Zwar war die erste Aufgabe mit dem Zusammenfuehren der Onlineplattformen der beiden Standorte Senftenberg und Cottbus ein eher ungewohntes Metier fuer mich, allerdings ergaben sich dadurch weiter Aufgaben im Projekt "Exzellenz von Studium und Lehre" in denen ich mein Wissen im Aufbau von Serverinfrastruktur und Diensten, sowie deren Administration ausbauen konnten. Ergebnis dessen waren zum Beispiel eine uniweite Videoplattform, welche insbesondere durch die Pandemiesituation hohe Nachfrage fand und dieser auch stand hielt.
- Im Projekt "Mittelstand 4.0-Kompetenzzentrum Cottbus" konnte ich vor Allem mein Wissen in der konzeptionellen und technischen Entwicklunge von Multimedialen Projekten einbringen. Auf diese Weise konnten innerhalb begrenzten Zeitraumes mehrere Demonstratoren auf verschiedenen Plattformen fuer Augemented und Virtual Reality umgesetzt werden. Ziel war hier vor Allem das hervorheben von unterrepraesentierten Aspekten dieser Technik wie zum Beispiel Kollaboration (Netzwerk), Digitale Welten (Playback), guenstige Geraete und Entwicklung (Webtechniken auf Smartphones und autarken Brillen)
- BitSpree
- Seit Anstellungen an der Universitaet habe ich bewusst nur als Teilzeit aufgenommen, um parallel die Selbstaendigkeit auszuprobieren. Ziel war es sich hier in einen komplett neuen Aspekt einzuarbeiten und kennenzulernen, um damit dann ein "Spielfeld" zu haben auf denen ich meine erworbenen Expertisen kombinieren und weiter interessensgetrieben ausbauen kann.
- Gerade mit der Anstellung an der Universitaet hat sich gezeigt, dass so beide Metiers gegenseitig von aufgebauten Erfahrungen profitieren koennen.
- Fuer mehr Informationen zur BitSpree GmbH kann man sich auf deren Webseite auf bitspree.de anschauen.
Work samples
- Bachelor thesis - Compression and aggregation in sensor networks
- Academic: To reduce energyconsumption in deep embedded systems the network communitcation should be aggregate and compressed. The goal was achieved and brings also a networkperformance boost in most of the scenarios. Final version was fastest ever written in this exercise course.
- thesis PDF | source ZIP
- Master thesis - Analysing and refactoring of a application source (Sacred 2)
- Academic: Analysis of repeating problems in a given architecture and find common refactorings. The given subject was the code of Sacred 2 - Fallen Angel. A multi-platform computer game with multiplayer
- thesis PDF
- Game Prototype - C++ (circa 2010)
- Private: P2P Bomberman clone with rendering based on Dark GDK and network by RakNet.
- source ZIP
Other work
- Object Description Language - GarAtom
- Private/Professional: Pipeline to describe Objects and auto generate serveral tools, code and data for differant target languages.
- Custom Memory Management C++
- Academic: dynamic memory management with various strategies.
- Linux Shell
- Academic: A shell that supports ipc through pipes.
- Preamptive Multitasking OS
- Academic: The preamptive multitasking OS, which was coded from
scratch in Operating Systems 1 gets separate address spaces for every
process and virtual memory.
- Game Of Life for Grid Computing
- Academic: Game Of Life in a distributed and parallel system.
- Distributed Shared Memory
- Academic: Distributed dynamic memory. A process gets Memory from a
subsytem which holds the memory data consistent on all distributed
machines.
- 3kb OpenGL/C++ Framework
- Private: A framework for OpenGL applications which in C++. The executable only needs 3kb. ( windows )
- Runtime Texture Generator
- Private: Generates Textures from a small scriptcode (circa 4 - 10 byte). ( windows )
- co3.de/uni - university community page
- Private: My first bigger project with PHP/SQL. On this page students of my university share scripts, links and so on. Before i was enforced to close it, there was more than 600 active members.
- Game Prototype
- Private: A Spaceship OpenGL-Game with Iso-View. Objects was LUA controlled (i.e. enemy KI). ( windows )
- Game Prototype
- Private: A Spaceship OpenGL-Game with Top-View. System independent code (clanlib) and prepared for P2P multiplayer ( distributed Objects ).
- EVE-Notes
- Private: Some webpages with PHP/SQL/XML to calculate various things for Eve-Online.