Die Welt der CAD-Entwicklung: Ein Blick hinter die Kulissen mit einem Softwareentwickler
Frank ist Diplom-Informatiker und bereits seit 16 Jahren bei SPI. Frank lebt mit seiner Frau in Hamburg, hat eine Tochter und bringt sich in seiner Freizeit selbst Gitarre spielen bei.
Kannst du uns zuerst erklären, was ein Softwareentwickler für CAD-Systeme genau macht?
CAD steht für Computer-Aided-Design. CAD-Software hilft Ingenieuren und Designern, komplexe Produktdesigns oder ganze Maschinen aus großen Baugruppen zu erstellen und zu optimieren. Wir arbeiten eng mit Anwendern zusammen, um ihre Anforderungen zu verstehen und diese in benutzerfreundliche CAD-Tools umzusetzen. Unsere Arbeit reicht von der Programmierung von 2D- und 3D-Zeichenwerkzeugen bis hin zur Integration fortschrittlicher Simulations- und Kalkulationstechnologien.
Und wie bist du zur CAD-Entwicklung gekommen?
Ich habe mich schon während des Studiums für Computergrafik interessiert, war dann aber erst in anderen Bereichen der Softwareentwicklung unterwegs. Aufmerksam wurde ich damals klassisch durch eine Annonce. Softwareunternehmen mit dem Schwerpunkt CAD gibt es hier in Norddeutschland selten. Ich war erstaunt und glücklich, mit SPI eines gefunden zu haben!
Was sind die Besonderheiten der CAD-Entwicklung?
Als CAD-Entwickler bei SPI haben wir ein breit gefächertes Aufgabengebiet. Wir tragen nicht nur Verantwortung für die Lösung von Problemen, sondern gestalten auch die Konzepte und setzen anspruchsvolle Algorithmen um. Der Anwender will schnell zum Ziel kommen, daher spielt das Design der Benutzeroberfläche (GUI) ebenfalls eine wichtige Rolle.
Unsere eigenen Produkte sind sogenannte Add-Ins, die auf gängigen CAD-Systemen (konkret SolidWorks und Autodesk Inventor) aufsetzen. Man kann sich das so vorstellen: Ein Basis CAD-Programm wird 80% der Anforderungen eines Konstrukteurs gerecht. Aber häufig sind die letzten 20% entscheidend. Es gibt ja viele Werkstoffe, SPI hat sich für die Vertiefung in der Blechfertigung entschieden. Und genau da liefern wir Entwickler Lösungen für das, was ein Allround CAD-System nicht oder nicht so gut kann. Wir machen aber auch Auftragsentwicklung.
Ich selber bin z.B. in einem Team, das für die Firma TRUMPF eine Software für das Design von Rohren programmiert. Diese wird dann von TRUMPF mit ihren Rohrlasermaschinen ausgeliefert.
Was war deine kniffeligste Aufgabe, die du lösen musstest?
Eine meiner kniffligsten Aufgaben war die Extraktion parametrischer Geometriemodelle aus einem CAD-Modell (BREP). Ebenso herausfordernd war der Aufbau eines 2D-Geometriecontainers mit performanten Algorithmen für Verschneidungen, boolesche Operationen und Vergleiche.
Was unterscheidet einen CAD-Entwickler von anderen Entwicklern?
Ein CAD-Entwickler muss in der Lage sein, aus der Problemstellung selbständig geeignete Ideen zur Umsetzung zu entwickeln. Es geht weit über das reine Programmieren hinaus. Man muss auch bereit sein, alles über den Haufen zu werfen, wenn ein Ansatz nicht funktioniert.
Was macht dir an deiner Arbeit besonders Spaß?
Was mir besonders Spaß macht, ist die Möglichkeit, den kompletten Weg von der Aufbereitung der Problemstellung bis zum fertigen Endprodukt zu gehen. Es ist unglaublich befriedigend, die Ergebnisse unserer Arbeit in Aktion zu sehen.
Unser Kunde zeigt uns regelmäßig, wie mit unserer CAD-Lösung designte Teile an der Maschine gefertigt werden. Das ist schon ein gutes Gefühl, den praktischen Nutzen der eigenen Arbeit zu sehen.
Welche technische Herausforderung möchtest du gerne noch lösen?
Eine technische Herausforderung, der ich gerne begegnen würde, ist die breitere Einführung und Umsetzung von Unit Tests, um die Qualität unserer Software weiter zu verbessern.
Würdest du deinen Job wieder wählen?
Ohne Zweifel, ja! Die Arbeit als CAD-Entwickler bei SPI ist erfüllend und spannend, und ich würde mich immer wieder für diesen Weg entscheiden.
Was muss man für deinen Job mitbringen?
Für diesen Job benötigt man analytisches Denken in abstrakten Modellen, Kenntnisse in Computational Geometry, Erfahrung und Kenntnisse in C++, die Bereitschaft zum konstruktiven Diskurs, Durchhaltevermögen und die Bereitschaft zum Perspektivwechsel. Eine Leidenschaft für die Lösung komplexer Probleme und die höhere Mathematik ist ebenfalls von Vorteil.
Was rätst du jungen Entwicklern, wie sie sich in der Vielfalt der Jobangebote orientieren können?
Jeder ist einzigartig, daher sollten junge Entwickler nach Jobs suchen, die zu ihrem Charakter passen. Das Geschäftsmodell und die Tätigkeit sollten mit ihren eigenen Interessen und Fähigkeiten in Einklang stehen. „What makes me tick – wofür stehe ich morgens auf?“ Und wo immer sich die Möglichkeit bietet, sollte man die Kollegen und Kolleginnen vorab kennenlernen. Fragt sie alles, was euch auf der Seele liegt. Fragt auch, wie die Führungskräfte so drauf sind.
Als gut ausgebildeter Developer müsst ihr keine Kompromisse machen!