{"id":29298,"date":"2023-05-18T14:46:45","date_gmt":"2023-05-18T12:46:45","guid":{"rendered":"https:\/\/fairmanager.de\/?page_id=29298"},"modified":"2025-11-11T11:45:34","modified_gmt":"2025-11-11T10:45:34","slug":"softwareentwickler-typescript","status":"publish","type":"page","link":"https:\/\/fairmanager.de\/en\/softwareentwickler-typescript\/","title":{"rendered":"Senior Fullstack Typescript Entwickler (m\/w\/d)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"29298\" class=\"elementor elementor-29298\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4f96a41a elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"4f96a41a\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-705c10f5\" data-id=\"705c10f5\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b1067f5 elementor-widget elementor-widget-template\" data-id=\"b1067f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"section\" data-elementor-id=\"31611\" class=\"elementor elementor-31611\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6a7f3de elementor-section-height-min-height elementor-section-boxed elementor-section-height-default elementor-section-items-middle\" data-id=\"6a7f3de\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-07da0ad\" data-id=\"07da0ad\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7187ba3 seite-section-des elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"7187ba3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Der FairManager ist die erste Adresse, wenn es um Software- und IT-Ausstattung f\u00fcr die Effizienzsteigerung bei der Planung und Durchf\u00fchrung von internationalen Messeauftritten geht. Ob es bei den Ausstellern um Hersteller von Fenster- und Fassadenelementen, Schalungssystemen, Flugzeugsitzen, B\u00e4ckereimaschinen, LKWs oder LKW-Auflieger geht, in vielen F\u00e4llen ist der FairManager das Tool mit dem der Messeauftritt organisiert wird.<\/p>\n<p>Digitalisierung ist f\u00fcr uns Alltag und unsere Produkte unterst\u00fctzen unsere Kunden bei der Einf\u00fchrung digitaler Prozesse im Messe- und Eventbusiness. Aus dem beschaulichen B\u00fcckeburg heraus geh\u00f6rt zu unseren Kunden das Who-is-Who der internationalen Konzerne der unterschiedlichsten Branchen. Sie alle vertrauen auf die erstklassigen FairManager Softwarel\u00f6sungen, unsere IT-Hardware und unsere professionellen Dienstleistungen im Eventbusiness und bei tempor\u00e4ren IT-Installationen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dd0ddf0 elementor-section-height-default elementor-section-boxed elementor-section-height-default\" data-id=\"dd0ddf0\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-854bf17\" data-id=\"854bf17\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-db8f66d block-title elementor-widget elementor-widget-text-editor\" data-id=\"db8f66d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Deine Aufgaben<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-833cf6d seite-section-des elementor-widget elementor-widget-text-editor\" data-id=\"833cf6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Du bist ma\u00dfgeblich an der Weiterentwicklung unserer FairManager Messestand Management Software beteiligt und sorgst weiterhin f\u00fcr die hohe Qualit\u00e4t unseres Softwarecodes.<\/p><ul type=\"disc\"><li>Weiterentwicklung der bestehenden FairManager Anwendungen<\/li><li>Wartung der bestehenden FairManager Anwendung<\/li><li>Du arbeitest eng mit unserem Product Owner und unserem interdisziplin\u00e4ren<br \/>Team an der Auslieferung von Features, die unsere Kunden begeistern<\/li><li>Du baust und konzipierst architektonisch anspruchsvolle Softwarel\u00f6sungen<\/li><li>Du stellst den Code mit Deinem Team per Continuous Integration in der Cloud bereit und \u00fcberwachst ihn<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1bcd867 invert elementor-section-height-min-height elementor-section-items-top elementor-section-boxed elementor-section-height-default\" data-id=\"1bcd867\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;shape_divider_top&quot;:&quot;tilt&quot;,&quot;shape_divider_bottom&quot;:&quot;tilt&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t<div class=\"elementor-shape elementor-shape-top\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 100\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M0,6V0h1000v100L0,6z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t<div class=\"elementor-shape elementor-shape-bottom\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 100\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M0,6V0h1000v100L0,6z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-24193f69\" data-id=\"24193f69\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-220cbfb0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"220cbfb0\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-2c655edc\" data-id=\"2c655edc\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-69c92d15 block-title elementor-widget elementor-widget-text-editor\" data-id=\"69c92d15\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Das bringst du mit!<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-72f84084 seite-section-des elementor-widget elementor-widget-text-editor\" data-id=\"72f84084\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n \t<li>Abgeschlossenes Studium der Informatik, eine Ausbildung zum Fachinformatiker f\u00fcr Anwendungsentwicklung und mehrj\u00e4hrige Berufserfahrung<\/li>\n \t<li>Fundierte Erfahrung in der Backend-Entwicklung in TypeScript und SQL<\/li>\n \t<li>Idealerweise ebenfalls Erfahrung mit\u00a0GraphQL, Webcomponents, Lit, PostreSQL, Apollo GraphQL Server und Azure<\/li>\n \t<li>Fit im Umgang mit Git und Jira<\/li>\n \t<li><span>Du \u00fcbernimmst gern Verantwortung und hast Lust darauf verschiedene Komponenten von Anforderungsmanagement \u00fcber L\u00f6sungsdesign, Softwareentwicklung bis hin zum Monitoring zu erstellen<\/span><\/li>\n\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-6275777e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6275777e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-1f575ea7\" data-id=\"1f575ea7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-2d8b60e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2d8b60e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-520e0a89\" data-id=\"520e0a89\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6832db2e block-title elementor-widget elementor-widget-text-editor\" data-id=\"6832db2e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Das bieten wir Dir!<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ca3f894 seite-section-des elementor-widget elementor-widget-text-editor\" data-id=\"7ca3f894\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>Ein Team, das zu 100% immer hinter dir steht!<\/li><li>Hierarchien? Ein Fremdwort!<\/li><li>Du hast eine Idee? Stelle sie dem Team vor, sag uns wieso wir das brauchen und setz sie um!<\/li><li>Ein langfristiges, unbefristetes Besch\u00e4ftigungsverh\u00e4ltnis<\/li><li>Eine leistungsgerechte Verg\u00fctung<\/li><li>Flexible Arbeitszeitgestaltung, zus\u00e4tzlich\u00a0M\u00f6glichkeit der Voll- und Teilzeitarbeit,\u00a0 4 oder 5 Tage Woche<\/li><li>Abwechslungsreiche Aufgabenbereiche und Projekte<\/li><li>Vor Ort Arbeitsplatz, Homeoffice oder wechselnd, individuell m\u00f6glich<\/li><li>Freie Hardwareauswahl<\/li><li>Kostenlose Mitarbeiter Parkpl\u00e4tze<\/li><li>Betriebliche Altersvorsorge<\/li><li>Kein langwieriger Bewerbungsprozess. Bei uns musst du nicht durch eine Endlosschleife von Assessment Centern. Hier entscheidet unser gemeinsames Bauchgef\u00fchl.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6cf29e90 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6cf29e90\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-31ba4692\" data-id=\"31ba4692\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-57b33747 elementor-widget elementor-widget-spacer\" data-id=\"57b33747\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b1e330f elementor-widget elementor-widget-spacer\" data-id=\"4b1e330f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-287a8d8 block-title elementor-widget elementor-widget-text-editor\" data-id=\"287a8d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Konnten wir Dich \u00fcberzeugen?<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1dda435 elementor-widget elementor-widget-spacer\" data-id=\"1dda435\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3920141e seite-section-des elementor-widget elementor-widget-text-editor\" data-id=\"3920141e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<span>Bist Du interessiert an dieser abwechslungsreichen und herausfordernden T\u00e4tigkeit als Softwareentwickler?<\/span><span>\u00a0Dann freuen wir uns auf Deine Bewerbung inklusive einer Angabe Deines fr\u00fchestm\u00f6glichen Eintrittstermins.<\/span>\n\nDu kannst nicht alle unsere Anforderungen erf\u00fcllen? Das sollte Dich nicht davon abhalten, Dich trotzdem zu bewerben. Nicht zuletzt stehen bei uns Begeisterungsf\u00e4higkeit und der Wille sich in verschiedene Fachgebiete einzuarbeiten im Vordergrund.\n\n*Die Gleichberechtigung aller Geschlechter liegt uns sehr am Herzen. Gleichzeitig sind wir \u00fcberzeugt, die Lesbarkeit durch das generische Maskulinum zu erh\u00f6hen und wenden es daher in allen Texten an. Zudem sind alle personenbezogenen Formulierungen in dieser Stellenanzeige geschlechtsneutral zu betrachten.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-155d2b29 elementor-widget elementor-widget-spacer\" data-id=\"155d2b29\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1317cc8e invert elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1317cc8e\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;shape_divider_top&quot;:&quot;tilt&quot;,&quot;shape_divider_bottom&quot;:&quot;tilt&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t<div class=\"elementor-shape elementor-shape-top\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 100\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M0,6V0h1000v100L0,6z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t<div class=\"elementor-shape elementor-shape-bottom\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 100\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M0,6V0h1000v100L0,6z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-28b21be0\" data-id=\"28b21be0\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f77461c elementor-widget elementor-widget-shortcode\" data-id=\"f77461c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div id=\"dynamic-content-7600\" class=\"ajax-content loading\">\n        <div class=\"loading-spinner\">\n            <div class=\"spinner\"><\/div>\n            <div class=\"loading-text\">Loading Bewerbungsformular...<\/div>\n        <\/div>\n    <\/div>\n    \n    <script type=\"text\/javascript\">\n    jQuery(document).ready(function($) {\n        \/\/ Execute AJAX to load content immediately\n        loadDynamicContent('dynamic-content-7600');\n        \n        function loadDynamicContent(elementId) {\n            $.ajax({\n                url: ajax_object.ajax_url,\n                type: 'POST',\n                data: {\n                    action: 'load_dynamic_shortcode_content',\n                    nonce: ajax_object.nonce,\n                    element_id: elementId,\n                    timestamp: Date.now() \/\/ Prevent cache\n                },\n                beforeSend: function() {\n                    \/\/ Loading state is already active from HTML\n                },\n                success: function(response) {\n                    if (response.success) {\n                        \n                        $('#' + elementId).removeClass('loading').html(response.data.content);\n                        \n                        \/\/ Load dynamic dependencies first\n                        loadDynamicDependencies(response.data.dependencies, function() {\n                            \/\/ After dependencies are loaded, handle forms\n                            var $container = $('#' + elementId);\n                        \n                        \/\/ Wait for DOM to settle\n                        setTimeout(function() {\n                            console.log('Initializing forms in AJAX content...');\n                            \n                            \/\/ Look for ALL possible form types\n                            var $allForms = $container.find('form');\n                            var $elementorForms = $container.find('.elementor-form, .elementor-widget-form');\n                            var $elementorTemplates = $container.find('.elementor');\n                            \n                            console.log('Found forms:', {\n                                'total_forms': $allForms.length,\n                                'elementor_forms': $elementorForms.length,\n                                'elementor_templates': $elementorTemplates.length\n                            });\n                            \n                            \/\/ Universal form handler for ANY form\n                            $allForms.each(function() {\n                                var $form = $(this);\n                                var formId = $form.attr('id') || 'form-' + Math.random();\n                                \n                                console.log('Processing form:', formId);\n                                \n                                \/\/ Remove existing handlers\n                                $form.off('.ajax-handler');\n                                \n                                \/\/ Add universal AJAX handler\n                                $form.on('submit.ajax-handler', function(e) {\n                                    console.log('Form submit intercepted:', formId);\n                                    \n                                    \/\/ Check if this is an Elementor form with AJAX already handled\n                                    if ($form.closest('.elementor-form').length > 0 && typeof elementorFrontend !== 'undefined') {\n                                        console.log('Letting Elementor handle the submission');\n                                        return; \/\/ Let Elementor handle it\n                                    }\n                                    \n                                    \/\/ Otherwise, prevent default and handle manually\n                                    e.preventDefault();\n                                    console.log('Handling form submission manually');\n                                    \n                                    var $submitBtn = $form.find('[type=\"submit\"], .elementor-button');\n                                    var originalText = $submitBtn.val() || $submitBtn.text() || 'Submit';\n                                    \n                                    \/\/ Show loading state\n                                    $submitBtn.prop('disabled', true);\n                                    if ($submitBtn.is('input')) {\n                                        $submitBtn.val('Sending...');\n                                    } else {\n                                        $submitBtn.text('Sending...');\n                                    }\n                                    \n                                    \/\/ Get form data\n                                    var formData = new FormData(this);\n                                    \n                                    \/\/ Simulate AJAX submission (you can replace this with real AJAX)\n                                setTimeout(function() {\n                                        console.log('Form data:', formData);\n                                        \n                                        \/\/ Reset button\n                                        $submitBtn.prop('disabled', false);\n                                        if ($submitBtn.is('input')) {\n                                            $submitBtn.val(originalText);\n                                        } else {\n                                            $submitBtn.text(originalText);\n                                        }\n                                        \n                                        \/\/ Show success popup\n                                        showResponsePopup('success', 'Form submitted!', 'Your message has been sent successfully.');\n                                        \n                                        \/\/ Reset form\n                                        $form[0].reset();\n                                        \n                                    }, 1500);\n                                });\n                            });\n                            \n                            \/\/ Try to initialize Elementor if available\n                            if (typeof elementorFrontend !== 'undefined' && $elementorTemplates.length > 0) {\n                                console.log('Initializing Elementor frontend...');\n                                \n                                try {\n                                    \/\/ Initialize all Elementor elements\n                                    $elementorTemplates.each(function() {\n                                        var $element = $(this);\n                                        elementorFrontend.hooks.doAction('frontend\/element_ready\/global', $element);\n                                    });\n                                    \n                                    \/\/ Specifically initialize forms\n                                    $elementorForms.each(function() {\n                                        var $form = $(this);\n                                        elementorFrontend.hooks.doAction('frontend\/element_ready\/form.default', $form);\n                                    });\n                                    \n                                    console.log('Elementor initialization completed');\n                                } catch(e) {\n                                    console.log('Elementor initialization failed:', e);\n                                }\n                            }\n                            \n                            \/\/ Always check for reCAPTCHA elements and initialize them\n                            console.log('Checking for reCAPTCHA elements...');\n                            \n                            \/\/ Wait for reCAPTCHA script to load\n                            var checkRecaptcha = function() {\n                                console.log('Checking for grecaptcha API...');\n                                \n                                if (typeof grecaptcha !== 'undefined') {\n                                    console.log('reCAPTCHA API available, scanning for widgets...');\n                                    \n                                    \/\/ Find ALL possible reCAPTCHA elements with different selectors\n                                    var recaptchaSelectors = [\n                                        '.g-recaptcha',\n                                        '.elementor-g-recaptcha', \n                                        '[data-sitekey]',\n                                        '.elementor-recaptcha',\n                                        '.recaptcha',\n                                        '.elementor-field-type-recaptcha_v3',\n                                        '.elementor-field-type-recaptcha',\n                                        '[data-widget-type*=\"recaptcha\"]'\n                                    ];\n                                    \n                                    var foundElements = false;\n                                    \n                                    recaptchaSelectors.forEach(function(selector) {\n                                        $container.find(selector).each(function() {\n                                            var $recaptcha = $(this);\n                                            foundElements = true;\n                                            \n                                            console.log('Found reCAPTCHA element:', selector, $recaptcha[0]);\n                                            \n                                            var sitekey = $recaptcha.data('sitekey') || \n                                                         $recaptcha.attr('data-sitekey') ||\n                                                         $recaptcha.find('[data-sitekey]').attr('data-sitekey');\n                                            \n                                            console.log('Sitekey found:', sitekey);\n                                            \n                                            if (sitekey && !$recaptcha.hasClass('recaptcha-rendered')) {\n                                                try {\n                                                    console.log('Rendering reCAPTCHA with sitekey:', sitekey);\n                                                    \n                                                    var widgetId = grecaptcha.render($recaptcha[0], {\n                                                        'sitekey': sitekey,\n                                                        'callback': function(response) {\n                                                            console.log('reCAPTCHA verified:', response);\n                                                        },\n                                                        'expired-callback': function() {\n                                                            console.log('reCAPTCHA expired');\n                                                        },\n                                                        'error-callback': function() {\n                                                            console.log('reCAPTCHA error');\n                                                        }\n                                                    });\n                                                    \n                                                    $recaptcha.addClass('recaptcha-rendered').data('widget-id', widgetId);\n                                                    console.log('reCAPTCHA rendered successfully, widget ID:', widgetId);\n                                                    \n                                                } catch(e) {\n                                                    console.log('Error rendering reCAPTCHA:', e);\n                                                    \n                                                    \/\/ Try alternative rendering method\n                                                    try {\n                                                        console.log('Trying alternative render method...');\n                                                        grecaptcha.ready(function() {\n                                                            var widgetId = grecaptcha.render($recaptcha[0], {\n                                                                'sitekey': sitekey\n                                                            });\n                                                            $recaptcha.addClass('recaptcha-rendered').data('widget-id', widgetId);\n                                                            console.log('Alternative render successful, widget ID:', widgetId);\n                                                        });\n                                                    } catch(e2) {\n                                                        console.log('Alternative render also failed:', e2);\n                                                    }\n                                                }\n                                            } else if (!sitekey) {\n                                                console.log('No sitekey found for element:', $recaptcha[0]);\n                                            } else {\n                                                console.log('Element already rendered:', $recaptcha[0]);\n                                            }\n                                        });\n                                    });\n                                    \n                                    if (!foundElements) {\n                                        console.log('No reCAPTCHA elements found in container');\n                                    }\n                                    \n                                    \/\/ Check for reCAPTCHA v3\n                                    if (typeof grecaptcha.execute === 'function') {\n                                        console.log('reCAPTCHA v3 API available');\n                                    }\n                                    \n                                } else {\n                                    console.log('reCAPTCHA API not yet available, retrying in 500ms...');\n                                    setTimeout(checkRecaptcha, 500);\n                                }\n                            };\n                            \n                            \/\/ Start checking for reCAPTCHA immediately\n                            setTimeout(checkRecaptcha, 100);\n                            \n                            \/\/ Listen for Elementor form events\n                            $container.on('form_send_success', function(event) {\n                                console.log('Elementor form success event received');\n                                showResponsePopup('success', 'Form submitted successfully!', 'Your message has been sent.');\n                            });\n                            \n                            $container.on('form_send_error', function(event) {\n                                console.log('Elementor form error event received');\n                                showResponsePopup('error', 'Submission failed!', 'There was an error sending your message. Please try again.');\n                            });\n                            \n                        }, 300);\n                        \n                        }); \/\/ End of dependency loading callback\n                        \n                    } else {\n                        $('#' + elementId).removeClass('loading').html('<p class=\"error\">Error loading content<\/p>');\n                    }\n                },\n                error: function() {\n                    $('#' + elementId).removeClass('loading').html('<p class=\"error\">Server connection error<\/p>');\n                },\n                complete: function() {\n                    \/\/ Loading state removed in success\/error handlers\n                }\n            });\n        }\n        \n        \/\/ Function to show response popup\n        function showResponsePopup(type, title, message) {\n            \/\/ Remove any existing popup\n            $('.elementor-response-popup').remove();\n            \n            \/\/ Create popup HTML\n            var popupHtml = '<div class=\"elementor-response-popup ' + type + '\">' +\n                '<div class=\"popup-overlay\"><\/div>' +\n                '<div class=\"popup-content\">' +\n                '<div class=\"popup-header\">' +\n                '<h3 class=\"popup-title\">' + title + '<\/h3>' +\n                '<button class=\"popup-close\">&times;<\/button>' +\n                '<\/div>' +\n                '<div class=\"popup-body\">' +\n                '<p>' + message + '<\/p>' +\n                '<\/div>' +\n                '<div class=\"popup-footer\">' +\n                '<button class=\"popup-ok-btn\">OK<\/button>' +\n                '<\/div>' +\n                '<\/div>' +\n                '<\/div>';\n            \n            \/\/ Add popup to body\n            $('body').append(popupHtml);\n            \n            \/\/ Show popup with animation\n            setTimeout(function() {\n                $('.elementor-response-popup').addClass('show');\n            }, 10);\n            \n            \/\/ Close popup handlers\n            $('.popup-close, .popup-ok-btn, .popup-overlay').on('click', function() {\n                $('.elementor-response-popup').removeClass('show');\n                setTimeout(function() {\n                    $('.elementor-response-popup').remove();\n                }, 300);\n            });\n            \n            \/\/ Auto close after 5 seconds for success messages\n            if (type === 'success') {\n                setTimeout(function() {\n                    if ($('.elementor-response-popup').length) {\n                        $('.elementor-response-popup').removeClass('show');\n                        setTimeout(function() {\n                            $('.elementor-response-popup').remove();\n                        }, 300);\n                    }\n                }, 5000);\n            }\n        }\n        \n        \/\/ Function to dynamically load dependencies\n        function loadDynamicDependencies(dependencies, callback) {\n            if (!dependencies || Object.keys(dependencies).length === 0) {\n                console.log('No dependencies to load');\n                callback();\n                return;\n            }\n            \n            var loadedCount = 0;\n            var totalCount = 0;\n            \n            \/\/ Count total scripts and styles to load\n            for (var type in dependencies) {\n                if (dependencies[type].scripts) {\n                    totalCount += dependencies[type].scripts.length;\n                }\n                if (dependencies[type].styles) {\n                    totalCount += dependencies[type].styles.length;\n                }\n            }\n            \n            if (totalCount === 0) {\n                callback();\n                return;\n            }\n            \n            console.log('Loading ' + totalCount + ' dependencies...');\n            \n            function onDependencyLoaded() {\n                loadedCount++;\n                console.log('Loaded dependency ' + loadedCount + '\/' + totalCount);\n                if (loadedCount >= totalCount) {\n                    console.log('All dependencies loaded successfully');\n                    callback();\n                }\n            }\n            \n            \/\/ Load each dependency type\n            for (var type in dependencies) {\n                var dep = dependencies[type];\n                \n                \/\/ Load scripts\n                if (dep.scripts && dep.scripts.length > 0) {\n                    dep.scripts.forEach(function(scriptUrl) {\n                        \/\/ Check if script is already loaded\n                        if ($('script[src=\"' + scriptUrl + '\"]').length > 0) {\n                            console.log('Script already loaded:', scriptUrl);\n                            onDependencyLoaded();\n                            return;\n                        }\n                        \n                        console.log('Loading script:', scriptUrl);\n                        var script = document.createElement('script');\n                        script.src = scriptUrl;\n                        script.onload = onDependencyLoaded;\n                        script.onerror = function() {\n                            console.log('Error loading script:', scriptUrl);\n                            onDependencyLoaded(); \/\/ Continue even if one fails\n                        };\n                        document.head.appendChild(script);\n                    });\n                }\n                \n                \/\/ Load styles\n                if (dep.styles && dep.styles.length > 0) {\n                    dep.styles.forEach(function(styleUrl) {\n                        \/\/ Check if style is already loaded\n                        if ($('link[href=\"' + styleUrl + '\"]').length > 0) {\n                            console.log('Style already loaded:', styleUrl);\n                            onDependencyLoaded();\n                            return;\n                        }\n                        \n                        console.log('Loading style:', styleUrl);\n                        var link = document.createElement('link');\n                        link.rel = 'stylesheet';\n                        link.href = styleUrl;\n                        link.onload = onDependencyLoaded;\n                        link.onerror = function() {\n                            console.log('Error loading style:', styleUrl);\n                            onDependencyLoaded(); \/\/ Continue even if one fails\n                        };\n                        document.head.appendChild(link);\n                    });\n                }\n            }\n        }\n        \n    });\n    <\/script>\n    \n    <style>\n    .ajax-content.loading {\n        opacity: 1;\n        pointer-events: none;\n    }\n    \n    .loading-spinner {\n        text-align: center;\n        padding: 40px 20px;\n        margin: 20px 0;\n    }\n    \n    .spinner {\n        width: 40px;\n        height: 40px;\n        border: 4px solid rgba(255,255,255,0.3);\n        border-top: 4px solid #ffffff;\n        border-radius: 50%;\n        animation: spin 1s linear infinite;\n        margin: 0 auto 15px auto;\n    }\n    \n    @keyframes spin {\n        0% { transform: rotate(0deg); }\n        100% { transform: rotate(360deg); }\n    }\n    \n    .loading-text {\n        color: #ffffff;\n        font-size: 14px;\n        font-weight: 500;\n    }\n    \n    .error {\n        color: #dc3232;\n        font-weight: bold;\n        text-align: center;\n        padding: 20px;\n        background: #fff;\n        border-radius: 8px;\n        box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n    }\n    \n    \/* Elementor Form Response Popup Styles *\/\n    .elementor-response-popup {\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        z-index: 999999;\n        opacity: 0;\n        visibility: hidden;\n        transition: all 0.3s ease;\n    }\n    \n    .elementor-response-popup.show {\n        opacity: 1;\n        visibility: visible;\n    }\n    \n    .popup-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        background: rgba(0, 0, 0, 0.5);\n    }\n    \n    .popup-content {\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        transform: translate(-50%, -50%);\n        background: #fff;\n        border-radius: 12px;\n        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\n        min-width: 300px;\n        max-width: 500px;\n        width: 90%;\n        animation: popupSlideIn 0.3s ease;\n    }\n    \n    @keyframes popupSlideIn {\n        0% {\n            transform: translate(-50%, -50%) scale(0.8);\n            opacity: 0;\n        }\n        100% {\n            transform: translate(-50%, -50%) scale(1);\n            opacity: 1;\n        }\n    }\n    \n    .popup-header {\n        padding: 20px 20px 10px 20px;\n        border-bottom: 1px solid #eee;\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n    }\n    \n    .popup-title {\n        margin: 0;\n        font-size: 18px;\n        font-weight: 600;\n        color: #333;\n    }\n    \n    .popup-close {\n        background: none;\n        border: none;\n        font-size: 24px;\n        color: #999;\n        cursor: pointer;\n        padding: 0;\n        width: 30px;\n        height: 30px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        border-radius: 50%;\n        transition: all 0.2s ease;\n    }\n    \n    .popup-close:hover {\n        background: #f0f0f0;\n        color: #666;\n    }\n    \n    .popup-body {\n        padding: 20px;\n    }\n    \n    .popup-body p {\n        margin: 0;\n        color: #555;\n        line-height: 1.5;\n    }\n    \n    .popup-footer {\n        padding: 10px 20px 20px 20px;\n        text-align: right;\n    }\n    \n    .popup-ok-btn {\n        background: #007cba;\n        color: white;\n        border: none;\n        padding: 10px 20px;\n        border-radius: 6px;\n        cursor: pointer;\n        font-weight: 500;\n        transition: background 0.2s ease;\n    }\n    \n    .popup-ok-btn:hover {\n        background: #005a87;\n    }\n    \n    \/* Success popup styling *\/\n    .elementor-response-popup.success .popup-title {\n        color: #28a745;\n    }\n    \n    .elementor-response-popup.success .popup-ok-btn {\n        background: #28a745;\n    }\n    \n    .elementor-response-popup.success .popup-ok-btn:hover {\n        background: #218838;\n    }\n    \n    \/* Error popup styling *\/\n    .elementor-response-popup.error .popup-title {\n        color: #dc3545;\n    }\n    \n    .elementor-response-popup.error .popup-ok-btn {\n        background: #dc3545;\n    }\n    \n    .elementor-response-popup.error .popup-ok-btn:hover {\n        background: #c82333;\n    }\n    \n    \/* Warning popup styling *\/\n    .elementor-response-popup.warning .popup-title {\n        color: #ffc107;\n    }\n    \n    .elementor-response-popup.warning .popup-ok-btn {\n        background: #ffc107;\n        color: #212529;\n    }\n    \n    .elementor-response-popup.warning .popup-ok-btn:hover {\n        background: #e0a800;\n    }\n    \n    \/* Mobile responsive *\/\n    @media (max-width: 768px) {\n        .popup-content {\n            width: 95%;\n            min-width: unset;\n        }\n        \n        .popup-header {\n            padding: 15px 15px 10px 15px;\n        }\n        \n        .popup-body {\n            padding: 15px;\n        }\n        \n        .popup-footer {\n            padding: 10px 15px 15px 15px;\n        }\n        \n        .popup-title {\n            font-size: 16px;\n        }\n    }\n    <\/style>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Deine Aufgaben Du bist ma\u00dfgeblich an der Weiterentwicklung unserer FairManager Messestand Management Software beteiligt und sorgst weiterhin f\u00fcr die hohe Qualit\u00e4t unseres Softwarecodes. Weiterentwicklung der [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":31931,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-29298","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Senior Fullstack Typescript Entwickler (m\/w\/d)<\/title>\n<meta name=\"description\" content=\"Du bist auf der Suche nach einer neuen und spannenden Herausforderung? Dann bewirb dich jetzt bei uns als Softwareentwickler (m\/w\/d)\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fairmanager.de\/en\/softwareentwickler-typescript\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Senior Fullstack Typescript Entwickler (m\/w\/d)\" \/>\n<meta property=\"og:description\" content=\"Du bist auf der Suche nach einer neuen und spannenden Herausforderung? Dann bewirb dich jetzt bei uns als Softwareentwickler (m\/w\/d)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fairmanager.de\/en\/softwareentwickler-typescript\/\" \/>\n<meta property=\"og:site_name\" content=\"FairManager\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/FairManager\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-11T10:45:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fairmanager.de\/wp-content\/uploads\/2025\/11\/shutterstock_7101910-scaled-e1762857815183.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2550\" \/>\n\t<meta property=\"og:image:height\" content=\"1348\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fairmanager.de\\\/softwareentwickler-typescript\\\/\",\"url\":\"https:\\\/\\\/fairmanager.de\\\/softwareentwickler-typescript\\\/\",\"name\":\"Senior Fullstack Typescript Entwickler (m\\\/w\\\/d)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fairmanager.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fairmanager.de\\\/softwareentwickler-typescript\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fairmanager.de\\\/softwareentwickler-typescript\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fairmanager.de\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/shutterstock_7101910-scaled-e1762857815183.jpg\",\"datePublished\":\"2023-05-18T12:46:45+00:00\",\"dateModified\":\"2025-11-11T10:45:34+00:00\",\"description\":\"Du bist auf der Suche nach einer neuen und spannenden Herausforderung? Dann bewirb dich jetzt bei uns als Softwareentwickler (m\\\/w\\\/d)\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fairmanager.de\\\/softwareentwickler-typescript\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fairmanager.de\\\/softwareentwickler-typescript\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/fairmanager.de\\\/softwareentwickler-typescript\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fairmanager.de\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/shutterstock_7101910-scaled-e1762857815183.jpg\",\"contentUrl\":\"https:\\\/\\\/fairmanager.de\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/shutterstock_7101910-scaled-e1762857815183.jpg\",\"width\":2550,\"height\":1348},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fairmanager.de\\\/softwareentwickler-typescript\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/fairmanager.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Senior Fullstack Typescript Entwickler (m\\\/w\\\/d)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fairmanager.de\\\/#website\",\"url\":\"https:\\\/\\\/fairmanager.de\\\/\",\"name\":\"FairManager\",\"description\":\"Messeorganisation par excellence!\",\"publisher\":{\"@id\":\"https:\\\/\\\/fairmanager.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fairmanager.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fairmanager.de\\\/#organization\",\"name\":\"FairManager\",\"url\":\"https:\\\/\\\/fairmanager.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/fairmanager.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/fairmanager.de\\\/wp-content\\\/uploads\\\/2017\\\/10\\\/logo_dark_transparent_720x200.png\",\"contentUrl\":\"https:\\\/\\\/fairmanager.de\\\/wp-content\\\/uploads\\\/2017\\\/10\\\/logo_dark_transparent_720x200.png\",\"width\":720,\"height\":200,\"caption\":\"FairManager\"},\"image\":{\"@id\":\"https:\\\/\\\/fairmanager.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/FairManager\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/fairmanager\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCsx8T4w_D2iBOGQtqY2EV_Q\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Senior Fullstack Typescript Entwickler (m\/w\/d)","description":"Du bist auf der Suche nach einer neuen und spannenden Herausforderung? Dann bewirb dich jetzt bei uns als Softwareentwickler (m\/w\/d)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fairmanager.de\/en\/softwareentwickler-typescript\/","og_locale":"en_GB","og_type":"article","og_title":"Senior Fullstack Typescript Entwickler (m\/w\/d)","og_description":"Du bist auf der Suche nach einer neuen und spannenden Herausforderung? Dann bewirb dich jetzt bei uns als Softwareentwickler (m\/w\/d)","og_url":"https:\/\/fairmanager.de\/en\/softwareentwickler-typescript\/","og_site_name":"FairManager","article_publisher":"https:\/\/www.facebook.com\/FairManager","article_modified_time":"2025-11-11T10:45:34+00:00","og_image":[{"width":2550,"height":1348,"url":"https:\/\/fairmanager.de\/wp-content\/uploads\/2025\/11\/shutterstock_7101910-scaled-e1762857815183.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fairmanager.de\/softwareentwickler-typescript\/","url":"https:\/\/fairmanager.de\/softwareentwickler-typescript\/","name":"Senior Fullstack Typescript Entwickler (m\/w\/d)","isPartOf":{"@id":"https:\/\/fairmanager.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fairmanager.de\/softwareentwickler-typescript\/#primaryimage"},"image":{"@id":"https:\/\/fairmanager.de\/softwareentwickler-typescript\/#primaryimage"},"thumbnailUrl":"https:\/\/fairmanager.de\/wp-content\/uploads\/2025\/11\/shutterstock_7101910-scaled-e1762857815183.jpg","datePublished":"2023-05-18T12:46:45+00:00","dateModified":"2025-11-11T10:45:34+00:00","description":"Du bist auf der Suche nach einer neuen und spannenden Herausforderung? Dann bewirb dich jetzt bei uns als Softwareentwickler (m\/w\/d)","breadcrumb":{"@id":"https:\/\/fairmanager.de\/softwareentwickler-typescript\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fairmanager.de\/softwareentwickler-typescript\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/fairmanager.de\/softwareentwickler-typescript\/#primaryimage","url":"https:\/\/fairmanager.de\/wp-content\/uploads\/2025\/11\/shutterstock_7101910-scaled-e1762857815183.jpg","contentUrl":"https:\/\/fairmanager.de\/wp-content\/uploads\/2025\/11\/shutterstock_7101910-scaled-e1762857815183.jpg","width":2550,"height":1348},{"@type":"BreadcrumbList","@id":"https:\/\/fairmanager.de\/softwareentwickler-typescript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/fairmanager.de\/"},{"@type":"ListItem","position":2,"name":"Senior Fullstack Typescript Entwickler (m\/w\/d)"}]},{"@type":"WebSite","@id":"https:\/\/fairmanager.de\/#website","url":"https:\/\/fairmanager.de\/","name":"FairManager","description":"Messeorganisation par excellence!","publisher":{"@id":"https:\/\/fairmanager.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fairmanager.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/fairmanager.de\/#organization","name":"FairManager","url":"https:\/\/fairmanager.de\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/fairmanager.de\/#\/schema\/logo\/image\/","url":"https:\/\/fairmanager.de\/wp-content\/uploads\/2017\/10\/logo_dark_transparent_720x200.png","contentUrl":"https:\/\/fairmanager.de\/wp-content\/uploads\/2017\/10\/logo_dark_transparent_720x200.png","width":720,"height":200,"caption":"FairManager"},"image":{"@id":"https:\/\/fairmanager.de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/FairManager","https:\/\/www.linkedin.com\/company\/fairmanager\/","https:\/\/www.youtube.com\/channel\/UCsx8T4w_D2iBOGQtqY2EV_Q"]}]}},"_links":{"self":[{"href":"https:\/\/fairmanager.de\/en\/wp-json\/wp\/v2\/pages\/29298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fairmanager.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fairmanager.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fairmanager.de\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/fairmanager.de\/en\/wp-json\/wp\/v2\/comments?post=29298"}],"version-history":[{"count":76,"href":"https:\/\/fairmanager.de\/en\/wp-json\/wp\/v2\/pages\/29298\/revisions"}],"predecessor-version":[{"id":31789,"href":"https:\/\/fairmanager.de\/en\/wp-json\/wp\/v2\/pages\/29298\/revisions\/31789"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fairmanager.de\/en\/wp-json\/wp\/v2\/media\/31931"}],"wp:attachment":[{"href":"https:\/\/fairmanager.de\/en\/wp-json\/wp\/v2\/media?parent=29298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}