Was macht eigentlich ein Java-Software-Entwickler?
Lars (44) kam 2021 zur conplement Familie und ist dort Team Lead und Fullstack-Entwickler (Java). Sein Fokus sind Backend-Applikationen, DevOps und Cloud Infrastrukturen, es gehört aber oft auch ein wenig Frontend Arbeit dazu.
Der Kölner "Imi" kennt sich am besten aus mit Java, Spring und IaC, und ein wenig mit Angular & Flutter. Seine Freizeit gehört seiner Familie, dem Kochen und der Natur, wo er entweder wandert oder im Kleingarten Möhren, Kartoffeln und Co. hegt und pflegt.
Eine neue Softwareentwicklung ist wie eine Wundertüte: spannend und herausfordernd zugleich."
Was macht eigentlich ein Senior Java-Software-Entwickler bei der conplement? Welche Skills muss man für die Projektarbeit mitbringen? Wie sieht der Arbeitsalltag aus? Mit welchen TechStacks arbeiten Java-Software-Entwickler bei der conplement?
In unserer neuen "Job-Story"-Reihe teilt diesmal Lars seine wertvollen Erfahrungen, die er als Senior Java-Software-Entwickler bei der conplement gesammelt hat.
Was macht eigentlich ein Java-Software-Entwickler bei der conplement?
Ich bin Techlead in Projekten, also habe ich bei der Projektumsetzung oft eine Führungsrolle. Aber natürlich bin ich Mitglied eines Teams, kein Einzelkämpfer. Ich kümmere mich hauptsächlich um die Backend-Entwicklung. Meist kommt dabei das Spring Framework zum Einsatz – alles von Java 8, aber auch 11 bis 18, kommt ins Spiel. Aber auch Kotlin oder Quarkus können vorkommen.
Als Fullstack-Entwickler versuchen wir uns im Projekt so aufzustellen, dass wir möglichst viel von den Aufgaben, die zu erledigen sind, abdecken können. D.h. wenn eine Aufgabe Frontend Anteile hat, dann wird von den Senior Developern erwartet, dass sie den Frontend Part auch mitmachen oder implementieren können. Das geht vom Testing bis hin zu Dingen, die an Deployment Pipelines zu erledigen sind. Um das Deployment der Änderungen oder Features, die man entwickelt hat, bis in die Produktion zu begleiten. Also ich mache auch DevOps an der Stelle.
Ich kümmere mich dabei hauptsächlich um Applikationen, die auf Java basieren. Also REST-Endpunkte, die entwickelt werden, um Kundenanfragen zu bearbeiten. Dabei geht das Spektrum von überschaubaren Monolithen zu Mikroservice-Architekturen bis hin zu Serverless Applikationen, die auf Java basieren können, aber nicht müssen.
Wir entwickeln verschiedenste Webportale, sowohl für Business- Kunden als auch für den kommerziellen Endkunden oder Mobile Applikationen. Wir haben eine große Bandbreite.
Was sind die vier wichtigsten Soft Skills, die man als Java-Software-Entwickler mitbringen sollte?
Neugier, Flexibilität, Kommunikationsfähigkeit und Belastbarkeit sind die wichtigsten Soft-Skills, die ein Java-Software-Entwickler mitbringen sollte.
Gerade in einer Kundensituation kann es sein, dass es durch die gesetzten Timelines Druck gibt. Da kann es schon mal sein, dass man etwas mehr Einsatzbereitschaft mitbringen muss als in einem 9-to-5-Job, die Regel ist das aber nicht.
Neugier ist ein wichtiger Aspekt in meinem Job, weil wir in einem Projektgeschäft immer wieder mit neuen Problemstellungen konfrontiert werden. Gerade eben musste ich mir etwas anlesen, wovon ich vorher noch nie gehört hatte, um es für mein Implementieren zu nutzen. Die Bereitschaft neue Technologien kennenzulernen und anzuwenden ist in meinem Job ganz wichtig. Man sollte am Ball bleiben, sonst überholt einen die Technologie. Denn auch der Kunde erwartet von uns Lösungen, die auf dem aktuellen Stand der Technik sind.
Flexibilität ist als Fullstack-Entwickler auch wichtig. Weil man sich nicht nur auf einen Part fokussiert, sondern versucht, in vielen Bereichen Fähigkeiten zu haben.
Gerade im Team und in Kundensituationen sind Kommunikations-Skills relativ wichtig. Ich muss viel mit meinem Kunden reden. Gerade wenn ich für oder mit meinem Team Entscheidungen gegenüber meinem Kunden begründen will. Die Workshop-Arbeit macht mir dabei auch viel Spaß. Herauszufinden, was hinter der technischen Domäne steckt und was der Kunde eigentlich möchte. Je besser ich verstehe, was er will, desto eher habe ich ein Bild davon, wie ich es später technisch umsetzen kann.
Mit welchen Tech Stacks arbeitest du am häufigsten bei der cp?
Java & Spring Framework, Angular & TypeScript, Flutter & Dart, Pulumi, IaC mit AWS CDK, AWS Cloudformation, Gitlab CI und Azure DevOps CI.
Was sind die wichtigsten Hard Skills, die man als Java-Software-Entwickler mitbringen sollte?
Man sollte ein gutes Verständnis von objektorientierter Programmierung mitbringen, denn Java ist eine objektorientierte Programmiersprache. Dazu gehört Wissen über Abstraktion von Problemen, Vererbung und alles was zu objektorientiertem Programmieren dazugehört. Man sollte einen Überblick über die gängigsten Frameworks haben. Beispielsweise ist das Spring-Framework viel im Einsatz. Hier sollte man gute Vorkenntnisse mitbringen.
Was macht dir an deiner Arbeit besonders viel Spaß?
In pandemischen Zeiten schätze ich an meinem Job sehr, dass ich ortsungebunden arbeiten kann. Überall wo ich Internet habe, kann ich arbeiten. Ich kann mich sogar auf dem Weg zur Arbeit ins W-LAN einloggen und programmieren.
Ich mag es, mich in neue Sachverhalte einzuarbeiten. Ein neues Projekt ist wie eine Wundertüte. Man lernt immer etwas Neues dazu: wie jeder Kunde arbeitet, was ihm wichtig ist und welche Lösung am besten für ihn passt. Und dann gemeinsam mit dem Kunden daran zu arbeiten - das macht mir Spaß. Wenn ich nur dasitzen würde und irgendein Projektleiter gäbe mir Aufgaben, die ich abarbeiten müsste, das würde mich nicht ausfüllen. Ich mag an meinem Job, dass sich etwas verändert und ich immer wieder etwas Neues kennenlerne.
Was schätzt du an der Zusammenarbeit im Projektteam am meisten?
Hilfsbereitschaft im Team finde ich sehr wichtig. Ich fühle mich am wohlsten, wenn jeder im Team bereit ist, dem anderen zur Seite zu stehen, wenn es eine schwierige Aufgabe gibt, die es zu lösen gilt. Nicht jeder kann alles wissen. Ich weiß oft viele Dinge nicht, die andere viel besser wissen, weil sie sich besser auskennen oder eingelesen haben. Es geht nicht darum, im Team zu zeigen, dass man die meisten Fortschritte in einem Sprint schafft, sondern dass wir als Team erfolgreich sind.
Arbeitet ihr auch mit UX Designern zusammen?
Wir arbeiten bereits sehr früh im Prozess mit UX Designern zusammen, wenn der Kunde versucht, uns seine Idee klarzumachen. Damit er in der Lage ist, den User durch den Prozess durchzuführen und es für den User einen Sinn ergibt, wie er durch das Front-End durchgeführt wird. Der UX-Designer wird immer wieder integriert, wenn wir ein neues Feature integrieren wollen. Wir gehen gemeinsam durch die verschiedenen Integrationsschritte. Wenn es passt, kriegen wir von ihm eine Vorlage, an die wir uns halten sollen.
Was gefällt dir besonders gut an der conplement?
Ich finde das agile Mindset, die Transparenz und die kurzen Entscheidungswege großartig. Bei der conplement ist alles von oben bis unten sehr durchlässig und jeder hat ein offenes Ohr. Die Mitarbeiter erfahren, was die kurzfristige und langfristige Vision des Unternehmens ist und wie die conplement da hinkommen möchte. Dies wird durch den Vorstand in den Mitarbeiterversammlungen sehr gut transportiert, so dass es für jeden transparent ist. Das ist bei der conplement ganz anders als in einem großen Konzern, wo irgendjemand die Entscheidung trifft und man nicht so viel Einfluss oder Einblick in die Unternehmensstrategie hat.
Was war dein letztes Projekt? Was hat dir daran besonders gut gefallen?
Wir haben eine mobile App für einen Energieversorger entwickelt. Daran hat mir gefallen, dass ich mich in eine komplett neue Technologie einarbeiten konnte. Vorher habe ich mobile Apps mit anderen Technologien entwickelt. In diesem Projekt haben wir den Flutter Framework neu ausprobiert. Dadurch habe ich wieder etwas Neues gelernt. Die Java Entwicklung ist daher nur eine Facette meines Jobs. Denn ich bin jetzt auch ein bisschen Dart-Entwickler und auch ein bisschen Java-Script-Entwickler - was eben gerade gefordert ist.
Auch die .net Fullstack-Entwickler haben mit Front-End-Technologien zu tun, sowie mit DevOps Aufgaben. Für den Java-Entwickler oder den Open-Source-Entwickler ist nur der Unterschied, dass wir eben Open-Source Technologien verwenden wie Java, Python, NodeJS. Das ist der Unterschied – das Backend unterscheidet sich.
Wenn du deine Arbeit mit drei Adjektiven beschreiben müsstest, welche wären das?
Spannend, herausfordernd, immer wieder Neues kennenlernen.
Es wird in meinem Job nie langweilig. Die Herausforderung ist immer da. Es ist kein „Malen nach Zahlen“. Ich muss mich manchmal Problemen stellen, wo ich anfangs noch nicht weiß, wie sie zu lösen sind. Das ist auch ein besonderer Aspekt bei der conplement: wir versuchen auf Augenhöhe mit dem Kunden zu arbeiten, denn wir wollen es gemeinsam mit ihm entwickeln.
Wie wird man eigentlich Java-Software-Entwickler?
Ich habe Informatik studiert. Davor habe ich mich aber schon für Computer und alles drum herum interessiert. Im Laufe meines Studiums bin ich auch ein bisschen in die Java-Schiene gekommen, als ich Java als Programmiersprache hatte. Während meines Studiums bin ich über meine studentischen Tätigkeiten mit dem ganzen Ökosystem rund um Java näher vertraut geworden, habe das Spring Framework kennengelernt und so bin ich da reingewachsen. Viel „Learning by Doing“.
Kann man auch als Quereinsteiger Java-Software-Entwickler werden?
Ja, ein Quereinstieg ist natürlich auch möglich. Es ist keine Voraussetzung, dass man Informatik studiert haben muss, um ein guter Programmierer zu sein. Es gibt auch den Ausbildungsberuf des Anwendungsentwicklers. Wir haben viele Kollegen, die eine Ausbildung haben oder Ausbildung plus Studium. Es gibt aber auch Autodidakten, die das einfach gerne gemacht haben und sich viel selber beigebracht haben. Mir hat mein Studium geholfen, dass ich kopfmäßig vorbereitet bin, wie ich Lösungen umsetzen will und was ich für „Werkzeuge“ zur Verfügung habe.
Wie sehen die nächsten Schritte deiner persönlichen und beruflichen Weiterentwicklung aus?
Zukünftig möchte ich gerne mehr in Richtung Architektur, also dem Begleiten oder Aufsetzen von Cloud Infrastrukturen gehen. Cloud Architektur und Implementierungen in verschiedenen Cloud Ökosystemen begleiten gehört jetzt schon zu meinen Aufgaben.
Das ist der nächste Entwicklungsschritt vom Senior Entwickler zum Solution Architekten.
Was für Hardskills oder Weiterbildungen benötigst du für diese Entwicklung?
DevOps wird ein immer wichtigerer Teil, wenn es darum geht, Lösungen in der Cloud bereit zu stellen. Infrastruktur als Code ist etwas, das wir nutzen, um automatisiert eine Cloudumgebung aufzusetzen und nicht durch einfaches Klicken. Damit habe ich schon viel zu tun. Da habe ich schon viel „Learning by Doing“. Architektur Design ist das, wo ich noch Wissen aufbauen muss, um bei den jeweiligen Cloud Anbietern wie Azure oder AWS den Überblick zu haben. Wie funktionieren die Lösungen? Wie kann ich eine Lösung bereitstellen? Welche Services bietet mir der Cloud Anbieter? Worauf muss ich achten, beispielsweise Security?
Hast du bei conplement diese Weiterbildungsmöglichkeiten?
Ja, zusammen mit meinem direkten Vorgesetzten machten wir am Ende des vergangenen Jahres einen Plan, wo es hingehen soll und welche Maßnahmen wir ergreifen sollen, dass ich mich weiterentwickeln kann. Da ich selber Teamlead bin, habe ich auch Leute, die ich begleite und wir überlegen dann eben, ok, wenn du dich in diese Richtung entwickeln willst, was können wir denn da machen. Brauchst du eine Schulung? Möchtest du auf eine Konferenz gehen, um dich in ein Thema einzuarbeiten? Oder sei es Zertifizierung: welche Grundlagen brauche ich, um die Zertifizierung zu schaffen? Stehenbleiben ist keine Option und conplement bietet mir dafür viele Weiterbildungsmöglichkeiten, die ich für meinen Job und meine persönliche Weiterentwicklung nutzen kann. Wenn ich stehenbleibe, wäre es über kurz oder lang obsolet.
Hinweis: Aus Gründen der besseren Lesbarkeit wurde im Interviewtext die männliche Form gewählt. Jegliche Angaben beziehen sich auf alle Geschlechter.
Das könnte dich auch interessieren
Iryna Gross
Recruiting Managerin
Sarah Chovanec
Recruiting Managerin