Senior Embedded Software Test Lead (w/m/d)

Állás info
Város
Winterthur
Cégnév
Kistler Instrumente GmbH
Céginfo
57 állás a cégnél
Cég címe
None None
Cég weboldal
Cég link
https://ch.indeed.com/cmp/Kistler-Instrumente-Gmbh
Hirdetés aktiválása
Feb. 24, 2022, 2:38 p.m.
Hirdetés utoljára aktív
Dec. 10, 2022, 4:24 p.m.
Link
https://ch.indeed.com/viewjob?jk=8774134028eda891
Farkas Kiss Endre Senior Embedded Software Test Lead (w/m/d) bei  nudist vlogger
Pontszám
jquery
7
Lead
7
java
5
javascript
5
sap
-5
python
-10

Farkas Kiss Endre legjobb állása Kistler Instrumente GmbH

Kistler Instrumente GmbH email

Email tárgya

Bewerbung fur Vertriebsingenieur/Vertriebsmitarbeiter (m/w/d) im Außendienst - industrielle Mess- und Prüftechnik

Levél szövege

Lieber Kistler Instrumente GmbH!

Ich möchte mich bei Ihrem Unternehmen als Senior Embedded Software Test Lead (w/m/d) bewerben. 
Ich bin ein Fullstack-Entwickler, bei dem ich meine 10-jährige Erfahrung mit verschiedenen Technologien einsetzen kann.

Ich habe meinen Lebenslauf an diese E-Mail angehängt.

Wir freuen uns darauf, von Ihnen zu hören!


Endre Farkas Kiss "Sodika"
Java and PHP Fullstack Developer, Nudist, Vlogger

https://www.linkedin.com/in/farkas-kiss-63bb9210a
https://sodika.org

Álláshirdetés szövege

In unserer Abteilung Embedded Device Software im Bereich Sensor & Electronics, entwickeln wir die Software für unsere Elektronikprodukte und Systeme (piezoelektrische Sensoren, Messsystemen und Kalibrierverfahren) welche in der Champions League der Messtechnik zum Einsatz kommen.

Wir wollen unsere Leader Position weiter ausbauen und festigen sowie unsere Produkte und Systeme weiterhin auf höchstem Niveau positionieren. Deshalb entwickeln wir unsere Geräte-Software gemäss den neusten Entwicklungsansätzen und setzen auf CI/CD mit vollautomatisierten Tests.

Infolge des starken Geschäftswachstums suchen wir eine vernetzt denkende, auf Standardisierung ausgerichtete sowie konzeptionell starke Persönlichkeit als

Senior Embedded Software Test Lead (w/m/d)

Ihre Aufgaben
Aufbau und Entwicklung des Test-Engineerings innerhalb des Embedded Software Teams sowie entwickeln von modularen Test-Strategien und -konzepten
Entwurf und Implementierung von Integrations- und Systemtests, sowie Test-Tools gemäss Systemanforderungen
Mithilfe beim Requirements Engineering und Produktrealisierungskonzepten, inkl. Suchen, Betreuen und Leiten von externen Entwicklungspartnern
Sicherstellen der Software-Qualität mittels CI/CD sowie Unterstützung der Prüfmittelentwicklung und Produktion bei der Produktionseinführung als auch bei Herstell- und Qualitätsabweichungen

Ihr Profil
Studium in Elektrotechnik / Informatik oder Ähnliche (ETH, Uni, FH, HTL, etc.), gepaart mit mehrjähriger Berufserfahrung in Embedded-Software-Testing
Konzeptionell starke, analytisch denkende, kreative und selbständig agierende Persönlichkeit
Initiativer, Teamplayer, mit sehr guten Englischkenntnissen in W+S welcher gerne Verantwortung übernimmt, Wissen teilt und Dinge vorantreiben kann
Erfahren in Python, shell-scripting, C sowie gängiger Entwicklungswerkzeuge idealerweise mit Testframeworks wie z.B. pytests, Robot Framework, oder Ähnliche
Sicherer Umgang mit DevOps-Platformen wie Gitlab, Jenkins oder ähnliche sowie in embedded Betriebssysteme (Yocto Linux, Zephyr). Grundkenntnisse in HTML5, Lua, JavaScript, JSON, YAML wären von Vorteil.

Wir bieten
Interessante, technologisch anspruchsvolle Projekte sowie ein eingespieltes Team beim Weltmarktführer mit topmoderner Entwicklungsumgebung
Spannende, interdisziplinäre Zusammenarbeiten mit in- und externen Stakeholdern
Die Möglichkeit mit uns mitzuwachsen und mit Ideen und Vorschlägen aktiv auf die Entwicklung von zukunftsweisenden Produkten Einfluss zu nehmen
Breites Angebot an internen und externen Weiterbildungsmöglichkeiten
Flexible Arbeitszeitmodelle, diverse Sport- und Freizeitangebote, gute ÖV-Anbindung und Parkplätze vor der Türe sowie überdurchschnittliche Sozialversicherungsleistungen

Ivan Urenda, Senior Talent Acquisition Business Partner, 052 224 12 21, freut sich auf Ihre vollständige, aussagekräftige Bewerbung (CV, Diplome/Zertifikate und Arbeitszeugnisse, ein Motivationsschreiben ist optional) über unser Online-Karrieretool.
By the way, your documents are also welcome in English.

Für diese Stelle prüfen wir aktuell ausschliesslich Direktbewerbungen.

Die Kistler Gruppe ist Weltmarktführer in dynamischer Messtechnik. Entlang der Megatrends von Emissionsreduktion, Qualitätskontrolle, Mobilität und Fahrzeugsicherheit erbringen wir Spitzenleistungen für eine zukunftsfähige Welt. Indem wir gemeinsam die Grenzen des Möglichen verschieben, ermöglichen wir unseren Kunden Innovation, Fortschritt sowie Wachstum und schaffen ideale Voraussetzungen für Industrie 4.0.

www.kistler.com/careers
"); });
', forceRevert: true, server: { url: BASE_URL, process: (fieldName, file, metadata, load, error, progress, abort, transfer, options) => { /* store file somewhere and call `load` when done */ let returns = preUploadFile(file, 'resume', progress); returns[0] .then(response => { load(JSON.stringify(response)); }) .catch(() => { // resumeUploaded = false; error(); }); return { abort: () => { returns[1](); abort(); } }; }, revert: { url: '/revert-pre-uploads', headers: { 'content-type': 'application/json', }, } }, }); const inputsElement = document.querySelector('#uploadAddDocs'); pondAddDocs = FilePond.create(inputsElement, { credits: false, required: false, dropOnPage: true, allowFileTypeValidation: true, maxFileSize: '10MB', maxFiles: 20, acceptedFileTypes: ['application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'], fileValidateTypeLabelExpectedTypesMap: { 'application/pdf': '.pdf', 'application/msword': '.doc', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': '.docx' }, labelIdle: 'Ziehe deinen zusätzlichen Dokumente hier rein oder Durchsuche', forceRevert: true, server: { url: BASE_URL, process: (fieldName, file, metadata, load, error, progress, abort, transfer, options) => { /* store file somewhere and call `load` when done */ let returns = preUploadFile(file, 'attachment1', progress); returns[0] .then(response => { load(JSON.stringify(response)); }) .catch(() => { error(); }); return { abort: () => { returns[1](); abort(); } }; }, revert: { url: '/revert-pre-uploads', headers: { 'content-type': 'application/json', }, } }, }); //delete pre-uploaded data if tab closed window.onbeforeunload = function () { if (!uploadId) { //TODO: check if already sumbitted? return; } else { jQuery.ajax({ url: BASE_URL + "/delete-pre-uploads", data: JSON.stringify({ uploadId: uploadId }), contentType: "application/json", success: function () { return; }, error: function () { return; }, method: "DELETE" }); return undefined; } }; function preUploadFile(file, fileType, progress) { let abortFunc = () => { }; let callback = new Promise((resolve, reject) => { getBase64File(file) .then(fileBase64 => { let payload = { fileName: file.name, fileContent: fileBase64.split(',')[1], fileType: fileType }; if (uploadId) { payload.uploadId = uploadId; execute(payload, progress, abortFunc) .then(resolve) .catch(oError => reject(oError)); } else { if (uploadPromise) { uploadPromise .then(() => { payload.uploadId = uploadId;; execute(payload, progress, abortFunc) .then(resolve) .catch(oError => reject(oError)); }) .catch(oError => reject(oError)); } else { uploadPromise = execute(payload, progress, abortFunc); uploadPromise .then(resolve) .catch(oError => { uploadPromise = undefined; reject(oError); }); } } }); }); return [callback, abortFunc]; function execute(payload, progress, abortFunc) { return new Promise((resolve, reject) => { let xhr = $.ajax({ method: 'POST', url: BASE_URL + "/pre-upload", data: JSON.stringify(payload), contentType: "application/json", success: function (data) { uploadId = data.uploadId; // resumeUploaded = true; // load(); resolve(data); }, error: function (jqXHR, textStatus, errorThrown) { console.log("error while sending data", jqXHR, textStatus, errorThrown); // resumeUploaded = false; // error(); reject(errorThrown); }, xhr: function () { var xhr = $.ajaxSettings.xhr(); if (progress) { xhr.upload.onprogress = function (e) { progress(e.lengthComputable, e.loaded, e.total); }; } return xhr; } }); abortFunc = xhr.abort; }); } } function revertUpload(payload, fileType) { return new Promise((resolve, reject) => { $.ajax({ method: 'DELETE', url: BASE_URL + "/revert-pre-uploads", data: payload, contentType: "application/json", success: function () { // resumeUploaded = true; // load(); resolve(); }, error: function (jqXHR, textStatus, errorThrown) { console.log("error while sending data", jqXHR, textStatus, errorThrown); // resumeUploaded = false; // error(); reject(errorThrown); } }); }); } }); let queryString; let redirectTimeout; $('document').ready(function () { $('.clear').hide(); // $('.applylink').empty(); // $('.visible-phone').empty(); }); function sendQuickApplyData() { var $btn = $('#submit-btn'); if (!checkRequiredInputs()) { $btn.removeClass('submit-animation animated'); // document.getElementById('submit-btn').style.animationPlayState = 'paused'; $btn.width(); $btn.addClass('submit-animation'); document.getElementById('submit-btn').style.animationPlayState = 'running'; return; } $btn.button('loading'); $("#thank-you").hide(); $("#error").hide(); let fileItem = pondCV.getFile(); let addFiles = pondAddDocs.getFiles(); let payload = { careerSiteUrl: document.URL, primaryEmail: document.querySelector('#email').value, firstName: document.querySelector('#firstName').value, lastName: document.querySelector('#lastName').value, candidate: { cellPhone: document.querySelector('#cellPhone').value, agreeToPrivacyStatement: document.querySelector('#chkDataPrivacy').checked.toString(), } }; if (jobReqCountry) { payload.candidate.country = jobReqCountry; } if (fileItem.status != 5) { payload.resumeName = fileItem.filename; //TODO: normal fallback payload.resumeContent = fileItem.getFileEncodeBase64String(); } else { payload.uploadId = uploadId; } let application = { jobApplicationQuestionResponse: { results: [] }, }; let comment = document.querySelector("#comment").value; if (comment && comment != "") { application.jobApplicationComments = { results: [ { content: comment, } ] }; } let sourcePrimary = document.querySelector("#sourcePrimary").value; if (sourcePrimary && sourcePrimary != "") { application.customSourcePrimary = { __metadata: { uri: "https://api12preview.sapsf.eu/odata/v2/PicklistOption(" + document.querySelector("#sourcePrimary").value + ")" } }; } payload.application = application; let attachments = { results: [] }; for (const file of addFiles) { if (addFiles.status != 5) { let obj = { __metadata: { type: "SFOData.Attachment" }, fileName: file.filename, fileContent: file.getFileEncodeBase64String(), module: "RECRUITING", moduleCategory: "ATTACHMENTS", ownerIdType: "CANDIDATE_ID", viewable: true, searchable: true }; attachments.results.push(obj); } else { payload.uploadId = uploadId; } } if (attachments.results.length) { payload.application.attachment1 = attachments; } $.ajax({ method: 'POST', url: BASE_URL + "/new-application", data: JSON.stringify(payload), contentType: "application/json", success: function (data) { console.log("success"); $("#thank-you").show(); $btn.button('reset'); redirectTimeout = window.setTimeout(redirect, 3000); }, error: function (jqXHR, textStatus, errorThrown) { console.log("error while sending data", jqXHR, textStatus, errorThrown); $("#error").show(); $btn.button('reset'); }, }); } function readFile() { return new Promise(function (resolve, reject) { let file = document.querySelector('#uploadFile').files[0]; var reader = new FileReader(); reader.readAsDataURL(file); reader.onloadend = function () { resolve({ file: reader.result, name: file.name }); }; reader.onerror = function (error) { reject(error); }; }); } function getBase64File(file) { return new Promise(function (resolve, reject) { var reader = new FileReader(); reader.readAsDataURL(file); reader.onloadend = function () { resolve(reader.result); }; reader.onerror = function (error) { reject(error); }; }); } function redirect() { let jobpage = document.referrer || "/viewalljobs/"; window.location.href = jobpage; } function checkRequiredInputs() { let inputsFilled = true; let firstName = document.querySelector('#firstName').value; if (firstName.length > 0) { $('#firstName').removeClass('is-invalid-input'); } else { $('#firstName').addClass('is-invalid-input'); inputsFilled = false; } let lastName = document.querySelector('#lastName').value; if (lastName.length > 0) { $('#lastName').removeClass('is-invalid-input'); } else { $('#lastName').addClass('is-invalid-input'); inputsFilled = false; } let email = document.querySelector('#email').value; if (email.length > 0 && email.includes('@')) { $('#email').removeClass('is-invalid-input'); } else { $('#email').addClass('is-invalid-input'); inputsFilled = false; } let cellPhone = document.querySelector('#cellPhone').value; let cellPhonePtrn = /\+[0-9]+/; if (cellPhone.length > 0 & cellPhonePtrn.exec(cellPhone) == cellPhone) { $('#cellPhone').removeClass('is-invalid-input'); } else { $('#cellPhone').addClass('is-invalid-input'); inputsFilled = false; } let checkbox = document.querySelector('#chkDataPrivacy').checked; if (checkbox) { $('#chkDataPrivacyLabel').removeClass('is-invalid-box'); } else { $('#chkDataPrivacyLabel').addClass('is-invalid-box'); inputsFilled = false; } let file = pondCV.getFile(); if (file && (file.status == 2 || file.status == 5 || file.status == 6)) {// 2-IDLE, 5 - PROCESSING_COMPLETE $('#uploadFile > .filepond-drop-label').removeClass('is-invalid-box'); } else { $('#uploadFile > .filepond-drop-label').addClass('is-invalid-box'); inputsFilled = false; } let files = pondAddDocs.getFiles(); if (files) { let filesOk = true; for (const addFile of files) { if (addFile.status != 2 && addFile.status != 5 && addFile.status != 6 && addFile.status != "") { //if not idle/finished - means error or still loading //TODO: ""? filesOk = false; break; } } if (filesOk) { $('#uploadAddDocs > .filepond-drop-label').removeClass('is-invalid-box'); } else { $('#uploadAddDocs > .filepond-drop-label').addClass('is-invalid-box'); inputsFilled = false; } } else { $('#uploadAddDocs > .filepond-drop-label').removeClass('is-invalid-box'); } let questionFields = document.getElementsByClassName("question-input"); for (let item of questionFields) { let question = $('#' + item.id)[0]; if (question.getAttribute('required') == 'true') { if (question.value.length > 0 && question.value != dropDownPlaceholder) { question.classList.remove('is-invalid-input'); } else { question.classList.add('is-invalid-input'); inputsFilled = false; } } } return inputsFilled; } function getPicklists() { return new Promise(function (resolve, reject) { $.ajax({ method: 'GET', url: BASE_URL + "/picklists", success: function (data) { resolve(data); }, error: function (jqXHR, textStatus, errorThrown) { console.log("error while getting picklist values", jqXHR, textStatus, errorThrown); reject(errorThrown); }, }); }); } function getJobReqField(sFieldId) { let payload = { fieldId: sFieldId }; if (jobReqId) { payload.jobReqId = jobReqId; } else { payload.careerSiteUrl = document.URL; } return new Promise(function (resolve, reject) { $.ajax({ method: 'POST', url: BASE_URL + "/get-job-req-field", data: JSON.stringify(payload), contentType: "application/json", success: function (data) { if (data && data[sFieldId]) { resolve(data[sFieldId]); } else { resolve(); } }, error: function (jqXHR, textStatus, errorThrown) { console.log("error while getting picklist values", jqXHR, textStatus, errorThrown); reject(errorThrown); }, }); }); } function preLoadReqId() { return new Promise(function (resolve, reject) { if (jobReqIdGathered || jobReqId) { resolve(); return; } else { $.ajax({ method: 'POST', url: BASE_URL + "/pre-decrypt-jobreq", data: JSON.stringify( { careerSiteUrl: document.URL }), contentType: "application/json", success: function (data) { resolve(); }, error: function (jqXHR, textStatus, errorThrown) { console.log("error while display control value", jqXHR, textStatus, errorThrown); // reject(errorThrown); }, }); } }); } function fillPicklists(aData) { if (!aData) { return; } for (const oPicklist of aData) { let oInput = document.querySelector('#' + oPicklist.id); if (!oInput) { continue; } let option = document.createElement('option'); option.innerHTML = dropDownPlaceholder; option.setAttribute('disabled', ''); option.setAttribute('selected', ''); option.setAttribute('hidden', ''); option.setAttribute('value', ''); oInput.appendChild(option); if (oPicklist.data && oPicklist.data && oPicklist.data.length > 0) { for (const oOptionData of oPicklist.data) { let option = document.createElement('option'); option.value = oOptionData.optionId; option.innerHTML = oOptionData["label_" + appLocale] || oOptionData["label_defaultValue"]; oInput.appendChild(option); }; } } }
Jetzt bewerben
Um deine Karriere bei Kistler zu beginnen, gib einfach deine Informationen in das folgende Formular ein:
Vorname: *
Nachname: *
E-Mail-Adresse: *
Telefonnummer (mit Ländervorwahl): *
Lebenslauf: *
Zusätzliche Dokumente:
Wie hast Du von dieser Stelle erfahren?:
Kommentar:
Ich habe die Datenschutzerklärung gelesen und akzeptiere sie.*
Absenden