DevStory: Senior Unity Developer, Gottfried Eibner von Innerspace

DevStory: Senior Unity Developer, Gottfried Eibner von Innerspace

Background

Wie bist du zum Programmieren gekommen?

Als mein älterer Bruder sich einen Computer gekauft hat (VIC-20). Damals hießen sie noch Home Computer, obwohl so manche besser waren als PCs.

Ich habe mich schon damals für 3D Grafik interessiert, und auf 8bit Computern war das schon eine Herausforderung, da die Rechenleistung bei weniger als 1/4000 von heutigen Rechnern lag.

In welchem Alter hast du damit begonnen?

Mit 12 habe ich meine ersten Spiele in Basic auf einem C64 geschrieben. Da die Rechner damals aber sehr, sehr langsam waren, bin ich schon bald auf Assembler umgestiegen.

Für welche Programmiersprache konntest du dich zuerst begeistern?

Assembler! Damit war man Herr über die ganze Maschine und konnte jede Routine optimieren, um das besten aus den damaligen Rechnern heraus zu holen.

Später folgten C++, C und C#.

Dein DevJob

Warum hast du dich für dieses Team entschieden?

Das Team und der Teamspirit bei Innerspace sind genau das, wonach ich gesucht habe. Hier arbeiten alle zusammen, um ein großes Produkt zu bauen.

Worum geht's in deinem Job?

Simulation und Training in VR. Wir verwenden VR, um Menschen den Einstieg in Ihren Beruf zu erleichtern. Von diesen Menschen werden komplexe Abläufe verlangt. Diese Abläufe sind in kleinen Einheiten viel schneller zu erlernen, als dann später am ‘großen’ Arbeitsplatz.

VR ermöglicht es uns und unseren Kunden, maßgeschneidert einzelne Abläufe zu trainieren und analysieren, um später Fehler in der realen Umgebung zu vermeiden. Gleichzeitig bietet VR die Möglichkeit, den Arbeitsplatz ins 'Wohnzimmer' zu holen. Somit müssen keine extra Räume oder Maschinen für die Lerneinheiten reserviert oder blockiert werden.

Worum geht es in deiner Rolle als „Senior Unity Developer“ genau?

An erster Stelle steht die Entwicklung des Simulators und der einzelnen Fähigkeiten, die später erlernt werden sollen. Somit besteht die tägliche Arbeit hauptsächlich aus Programmieren. Hinzukommen Implementierungsdetails, die mit dem Team besprochen und entworfen werden. Performance-Optimierung des Codes sind genauso gefragt wie Anpassungen von Shadern. Somit kann ich mein ganzes Interessensspektrum abdecken. Von VR über Shaderprogrammierung bis hin zum Entwerfen und Entwickeln von Programmen und Programmbibliotheken, die dann ihren Einsatz im Produkt finden.

Was gefällt dir besonders an deinem Job?

Wir arbeiten nach agilen Methoden. Das gibt jeden von uns genug Freiraum zum Entwickeln und auch die nötige Verantwortlichkeit für die Funktionalität der erstellten Software.

Gleichzeitig wird hier bei innerspace auch der geschriebene Code von Teammitgliedern durchgesehen. Eine Methode, die ich sehr schätze und nicht nur Beginner*innen hilft, sondern auch mir als ‘Neuankömmling’ die richtige Richtung weist, wie ich meinen Code organisiere und umsetze.

Was gefällt dir besonders gut in deiner Rolle als Unity Developer?

Mit einem erfahrenen und zuverlässigen Team zu arbeiten und die Herausforderungen, die das Projekt mit sich bringt.

Welche Herausforderungen gibt es speziell als Unity Developer?

Zum einen ist es herausfordernd, einen performanten Code zu schreiben, gleichzeitig aber auch lesbaren Code zu entwickeln. Hier greift dann wieder das Review meiner Kolleg*innen. Wenn sie meinen Code nicht ‘lesen’ können, habe ich in erster Linie nicht gut entwickelt. Zu guter Letzt kommt mir das wieder zugute, denn in zwei bis drei Monaten weiß ich wohl auch nicht mehr, was ich mir bei betreffendem Code gedacht habe.

Was sind deine bevorzugten Technologien?

Unity, Visual Studio, Blender, Krita

Windows oder Mac?

Windows

Weiterentwicklung

Welche Dev Projekte hast du außerhalb deiner Arbeit?

Home Automation – Raspberry Pi, ESP8226

Wheeled and legged Robots – Arduino

Drones & Camera gimbals

Wie hältst du dich für deinen Job am Laufenden?

Unity Events und Blogs, Blogs von anderen Entwicklern (nicht nur Unity bezogen!), Udemy, Meetups, GDC Events

Wo siehst du dich in der Zukunft?

Erstellen von Simulatoren und Trainings für die Raumfahrt.

Tipps für Anfänger*innen

Wie beginnt man Programmieren und womit sollte man beginnen?

Zuerst gilt “Learning by doing” - eine Aufgabe in kleinere Aufgaben teilen und diese zuerst lösen, bevor man die große Aufgabe löst. Außerdem ist es hilfreich, viel zu lesen und auszuprobieren, sowie Konzepte zu erarbeiten (Design Patterns, Uncle Bob). Unity Blogs können einem dabei helfen. Oder man schaut sich das Unity Manual und den Code an und durchforstet die existierenden Infos: Was gibt es schon und was muss ich selbst programmieren?!

Welche Skills sollte man als Unity Developer mitbringen?

Zum einen braucht es Verständnis von Code Design Patterns und Unit Testing. Hilfreich ist auch ein prinzipielles Verständnis von Geometrie und Trigonometrie. Man sollte einen guten Überblick über die Unity Engine und ihren Code haben, sowie ein gutes Verständnis von C#.

Welche Ausbildung ist deiner Meinung nach sinnvoll um Unity Developer zu werden?

Software-Entwickler*in, Game Design, UI/UX Design und/oder Computergrafik.

 

Erfahre mehr zum DevTeam von Innerspace

Gottfried Eibner

Senior Unity Software Developer

Interview im March 2021