Bewerbung zum Developer - WarIX

  • Soll WarIX als Entwickler ins Team aufgenommen werden? 10

    1. Ja (10) 100%
    2. Nein (0) 0%

    WarIX@maficraft.de: ~$ cd Forum/Maficraft/Bewerben

    WarIX@maficraft.de: ~/Forum/Maficraft/Bewerben$ less "Bewerbung zum Developer - WarIX"

    Bewerbung zum Developer

    0> Vorwort und Infos zu meiner Person


    Zitat von MaFiMa, April 2020

    "Du weißt, wie Programmierer sind: faul! Also schreib eine einfache Bewerbung, du musst dir auch nicht viel Mühe dabei geben!"


    1> Welche Erfahrungen habe ich auf anderen Servern sammeln dürfen?

    Eine nennenswerte Erfahrung außerhalb von Maficraft habe ich im Serverteam von Emmossdra, einer Abspaltung des Maficraft-Teams aus 2016, erfahren. Da war ich aber nur für kurze Zeit drin, bis ich das Team verlassen habe, weil mir zwischenzeitlich die Lust an Minecraft verflogen war.

    Aber hinsichtlich des Plugin-Developments habe ich soweit noch keine Erfahrungen gesammelt, da ich die letzten Jahre sehr mit der Schule und weiteren Softwareprojekten beschäftigt war.

    2> Warum sollte genau ICH ins Team kommen?

    Ich habe 5 Jahre Programmiererfahrung. Diese habe ich in erster Linie in der Schule erlernt, die sich besonders auf Software Engineering, Projektmanagement und zum Teil auch auf Wirtschaft fokussiert1), und weiters in mehreren (Pflicht-)praktika, Hackathons, Coding Contests und größeren Softwareprojekten eingesetzt und gefestigt. Durch den praxisnahen Unterricht habe ich ein fundiertes Grundwissen zu Softwareentwicklung aufgebaut und kann das in vielerlei Hinsicht anwenden.


    Ich war auch schon bereits im Team und bin auch ehemaliger Co-Admin, weshalb mir die Strukturen des Teams vertraut sind. Darüber hinaus habe ich keinerlei Probleme damit, Verantwortung übernehmen zu können. Das habe ich auch im Real-Life gemacht, indem ich mich als Schulsprecher-Stellvertreter für ein Jahr engagiert und einige Softwareprojekte in Kooperationen mit Firmen durchgeführt habe.


    Da ich damals sehr viel Spaß mit dem Server hatte, möchte ich gerne meine Skills, die ich in den letzten Jahren erworben habe, dazu nutzen, um neuen Spielern diesen Spaß "weitergeben" zu können.

    3> Wo liegen meine Stärken und Schwächen in der Programmierung?

    a) Stärken

    Meine größte Stärke liegt in der Backend-Programmierung und dem Entwickeln von verteilten Systemen. Ich habe in der Hinsicht mit sehr vielen Systemen gearbeitet. Mir fällt es sehr leicht, diese vielen Systeme miteinander zu kommunizieren zu bringen.

    Darüber hinaus kann ich mich, auch aufgrund der Programmiererfahrung, sehr schnell in neue Programmiersprachen und Frameworks einfinden.

    Dem ist hinzuzufügen, dass ich sauber programmiere und stets um eine ausreichende Dokumentation meines Programmcodes bemüht bin, und ich wende auch Design Patterns an, um das zu erzielen. Ein Beispiel für mein Programmierstil lässt sich im Sourcecode meines Vorzeige-Plugins finden.

    Ich versuche auch immer, die beste und nachhaltigste Lösung zum Lösen eines Problems zu finden, von der ich selbst überzeugt bin...

    b) Schwächen

    ..., aber dieses Denken kann mir in manchen Situationen echt zum Strick werden, vor allem, wenn die erstbeste Lösung tatsächlich die optimalste war und ich davon nicht überzeugt gewesen bin.

    Da ich mich als Full-Stack-Developer bezeichnen würde, könnte man mich auch für die Frontend-Entwicklung einsetzen. Um permanente Augenschäden zu vermeiden, sollte man mich lieber nicht an die GUI-Schicht ranlassen!

    Was die Programmierung von Spigot-Plugins angeht, habe ich selbst nicht viel Erfahrung. Die geringe Erfahrung sollte jedoch kein großes Hindernis darstellen, weil ich mir schnell neue Sachen einprägen und mich in neue Systeme einfinden kann.

    4> Wenn ich Developer wäre, was würde ich als Erstes verändern?

    Es ist ein Punkt, in dem ich mich ordentlich austoben könnte. Aber ich versuche mich, so knapp wie möglich zu halten, um den Rahmen der Bewerbung nicht zu sprengen. Das nachfolgende Thema, ist nämlich genug Stoff für einen eigenen Forenbeitrag!


    Eine der Probleme, die Maficraft derzeit hat, ist ein fehlendes Konzept, die Spieler längerfristig an den Server zu binden. Eine gute Serverpromotion, die jetzt anvisiert wird, ist zwar ein sehr wichtiger Aspekt, aber das führt ad absurdum, wenn neue User, die im Zuge einer Marketingaktion hier hergelockt wurden, wegen einem fehlenden Spielkonzept nicht lange bleiben, was schade ist! Daher muss eine Lösung her, womit die Spieler langfristig auf dem Server bleiben! Eine Art "Mission auf dem Server" muss her!


    Eine Idee, die mittlerweile angenommen wurde, ist das Erfassen, welche Jumps ein Spieler geschafft hat. Abhängig davon, welche Jumpkategorien jemand geschafft hat, bekommt man dafür besondere Belohnungen in Form von Mafis, MafiBoxen, kosmetische Items, ... So wird den Spielern der Anreiz geschaffen, länger auf dem Server zu spielen.

    Ich biete mich dazu an, die Entwicklungen, wenn sich so ein System bereits in der Programmierung befindet, mit vollem Einsatz zu unterstützen, oder das Projekt selbst zu koordinieren.


    Aber habe ich sehr viele wunderbare Vorschläge von der Maficraft-Community gelesen, die das Potenzial haben, den Server in einem neuen Glanz erstrahlen zu lassen. Da jedoch ein Großteil dieser Vorschläge von einem Entwickler implementiert werden muss, würde ich mich ebenso dafür anbieten, die Implementierung dieser Features vorzunehmen.

    5> Welche Programme/Plugins habe ich bereits entwickelt?

    Eine der Säulen der Reife- und Diplomprüfung (Matura bzw. Abitur) steht dafür, eine Diplomarbeit, passend zur Fachrichtung, die man besucht (in meinem Fall Informatik), zu schreiben. Meine Grundlage dazu war das Durchführen eines Softwareprojekts zur Entwicklung einer Full-Stack-Webapplikation für eine Bank, mit der sie die Qualität der Stammdaten in ihren Datenbanken ermittelt werden kann. Ich habe hierzu einen Webserver mit Node.js mit Express sowie als Weboberfläche eine Single-Page-Application mit Vue.js entwickelt.


    Im Zuge des Erlernens des Programmierens des Spigot-Frameworks habe ich einige simple Plugins geschrieben, um mich einzufinden. Mit dem Plugin "NameMCVote" ist es möglich, ein sehr, sehr einfaches Vote-Reward-Management durchzuführen2). Dieser kommuniziert mit dem REST-Endpunkt unter api.namemc.com.

    Der Link zum GitHub-Repository: NameMCVote-Plugin


    Wenn ich zu einem Vorstellungsgespräch eingeladen werde, kann ich weitere Projekte ansprechen, die ich durchgeführt habe, und auch genauere Infos bekanntgeben!

    6> Mit welchen Systemen habe ich gearbeitet?

    Ich habe bis jetzt mit sehr vielen Systemen gearbeitet. Jedoch werde ich nachfolgend nur auf die wichtigsten für den Developer-Rang anführen. Um meine Skills in den einzelnen Programmiersprachen und Systemen zu beschreiben, werde ich folgende Begriffe verwenden:

    • Grundlegend: Ich habe ein wenig damit gearbeitet. Die absoluten Basics habe ich verstanden. Damit habe ich zwar einige kleinere Wegwerfprojekte erstellt, aber nichts, was man wirklich als "production ready" bezeichnen kann. Ich brauche noch etwas Übung, um damit sicher umgehen zu können.
    • Fortgeschritten: Damit bin ich vertraut und kann durchaus größere Projekte erstellen. Hier und da kann es zu kleineren Problemen kommen, besonders, wenn ich versuche, das mit einem weiteren System oder Framework einzubinden.
    • Kompetent: Da kenne ich mich sehr gut aus. Es gibt durchaus einige Aspekte an dem System, die ich noch nicht kenne, aber das Weiterlernen und das Einbinden von neuen Systemen mit jener Programmiersprache sollte überhaupt kein Problem für mich darstellen. Ich brauche lediglich bei neuen Frameworks ein wenig Einarbeitungszeit.

    Allgemein

    • wichtigste Programmiersprachen:
      • Java (kompetent - relevant für das Minecraft-Plugin-Development),
      • TypeScript und JavaScript mit Node.js (kompetent - relevant für das Entwickeln von Discord-bezogenen Applikationen),
      • PHP (grundlegend - relevant für das Webdevelopment)
    • Containervirtualisierung mit Docker und Scaling mit Kubernetes (grundlegend)
    • Modellierung mit UML und ERD (fortgeschritten)

    Webdevelopment

    • Die "heilige Dreifaltigkeit der Websiteentwicklung" (HTML, CSS, JS).
    • Frontend-Frameworks: Vue.js (fortgeschritten)
    • Tiefgehendes Wissen zur Webentwicklung (Authentifizierung mit Cookies, JSON Web Tokens und OAuth 2.0; Autorisierung; Speichern von Daten am Client; Funktionsweise des HTTP-Protokolls; Modellierung von REST-Endpunkten; CORS; Webangriffe mit XSS, CSRF, ...)

    Datenpersistenz (Speichern von Daten)

    • SQL-Datenbanken (fortgeschritten)
      • Oracle + PL/SQL + Trigger
      • Microsoft SQL Server + T/SQL + Trigger
      • MySQL, MariaDB
    • NoSQL
    • Lokal (mit Java)
      • Binär (Serializable)
      • als XML
      • als JSON (mit Google Gson)

    Spigot-Plugin-Development

    • Spigot-Plugins (grundlegend - fortgeschritten)
    • Integration mit Bungeecord (noch nicht behandelt)

    7> Abschlieẞnde Worte

    Da ich selbst in Vergangenheit auf die Bewerbungen anderer ein strenges Auge gehabt habe, habe ich kein Problem damit, selbst "kritisch beäugt" zu werden!

    Vielen Dank, dass Du dir die Zeit genommen hast, die Bewerbung durchzulesen! Wenn Du irgendwelche offene Fragen hast, stelle sie mir unter diesem Forenbeitrag!


    Mit freundlichem Quack

    WarIX | Kevin


    Empfehlenswerter Thread (bitte anschauen!): Revolution der Jumpränge?

    Einmal editiert, zuletzt von WarIX () aus folgendem Grund: Ich kleiner I-Tüpfel-Reiter habe einige Fehler in der Überschrift gefunden und behoben.

  • Moin WarIX !
    + Programmier Erfahrung is da

    + Code, bei dem ich länger hinschauen kann, ohne dass mir auf Dauer die Augen ausfallen würden

    + Konkreter Plan was du erreichen willst

    + Schon Erfahrung im MafiTeam


    - Nicht viel Spigot Erfahrung (definitiv ganz kleines Minus, das ganze Zeug lernt man schnell)
    Weil mir nix mehr einfällt, was noch negativ ist:

    - Kommentare in deiner JSON File.

    - Parse Error on Line 6.


    Also so eng wie das is, musste ich richtig nachdenken, aber nach langem überlegen, kriegst 'nen Ja von mir.

  • Hi :D

    Danke euch für das Feedback! :)


    Das Plugin habe ich übrigens tatsächlich in 3-4 Stunden geschrieben, obwohl ich quasi von 0 weg gestartet bin. Ich habe gemerkt, dass Spigot vieles vereinfacht, z.B. das Arbeiten mit dem Config-File. Vor allem, das System bei Spigot-Plugins kann man in bestimmten Aspekten auch mit dem System bei Webservern, womit ich mich sehr gut auskenne, vergleichen!


    Wegen dem JSON-File:

    Ich habe zwar gewusst, dass Kommentare in einem JSON-File nichts zu suchen haben, aber ich wollte die Info, dass ich 19 bin, für Nicht-Programmierer recht einfach darstellen :D Da habe ich einen Stilbruch in Kauf genommen.

    Und wegen dem Parse-Error: Peinlich von mir ._. Aber sowas kann mir als Programmierer nur zur Laufzeit auffallen xD


    Ich habe vergessen zu pushen, der aktuellste Sourcecode vom Plugin müsste jetzt oben sein! Ich werde noch bald eine Release-Version bei GitHub anbieten. Und die Bewerbung habe ich auch geringfügig überarbeitet :)


    und Niklas: :*