Junior Software EntwicklerIn JAVA
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Tech stack
Job description
Entwicklung unserer Standardsoftware: Du programmierst an unserer Software QS1 mit und lernst in der Praxis, wie ein komplexes Produkt stetig erweitert wird. Mitgestaltung von Kundenlösungen: Du begleitest Konzeption und Entwicklung individueller Modifikationen und siehst direkt, wie dein Code Prozesse beim Kunden unterstützt. Technische Konzepte & Architektur: Im Team übersetzt du Anforderungen in saubere Konzepte und Architekturbeschreibungen als solides Fundament für die Umsetzung. Moderner Tech-Stack & Innovation: Du hast bei uns Raum, Neues auszuprobieren und dich kontinuierlich weiterzuentwickeln.
Requirements
Daten- und Objektmodellierung: Du übernimmst analytische Aufgaben, strukturierst Systemanforderungen und lernst, wie man komplexe Datenmodelle sauber für die Entwicklung vorbereitet. Unsere Wünsche an dich Abgeschlossene technische Ausbildung (HTL, FH, Universität oder vergleichbar). Erste Programmierkenntnisse in Java oder C#.NET. Teamfähigkeit, Kommunikationsstärke und Verantwortungsbewusstsein. Strukturierte Arbeitsweise und hohes Qualitätsbewusstsein. Freude am Programmieren, Interesse zu lernen und immer wieder Neues in der Software-Entwicklung mit zu machen. Du übernimmst Verantwortung für deine Aufgaben und arbeitest lösungsorientiert. Sehr gute Deutschkenntnisse, Englisch von Vorteil. Nice to have: Kenntnisse mit WPF, Blazor, .NET Framework, MS-SQL-Server, ORACLE.
Benefits & conditions
Die Flexibilität Das Team & Soziales
Echte 4-Tage-Woche für die optimale Balance zwischen Code und Freizeit
Flexible Zeiteinteilung ohne starres Stechuhr-Denken
Großzügige Home-Office-Lösung, perfekt an deinen Alltag angepasst
Volles Vertrauen in deine Arbeitsweise und deinen Output
Schließen
Echtes Miteinander durch flache Hierarchien und ein kollegiales DU vom ersten Tag an
Regelmäßige “Social Breaks”: Ob entspanntes Beisammensein, Brettspiele oder eine Runde Darts nach Feierabend
Gemeinsame Teamevents und Aktivitäten für den perfekten Ausgleich zum fokussierten Code-Alltag
Attraktive Meal Vouchers für gemeinsame Mittagessen im Team
Schließen Dein Workspace Karriere & Perspektive
Moderner, heller Arbeitsplatz direkt an unserem Standort in Krems
Attraktiver Hardwarebonus für dein persönliches Wunsch-Setup
Unlimitierter Nachschub an Kaffee, Tee, frischem Obst und Süßem
Ruhige Zonen für Deep Work und offene Bereiche für den Austausch
Schließen
Maßgeschneidertes Mentorenprogramm für deinen reibungslosen Einstieg
Klare Perspektive: Übernahme der fachlichen Leitung für 2-3 Personen
Maximaler Freiraum, um eigene technische Standards und Architektur-Ideen umzusetzen
Langfristige Stabilität und sicherer Arbeitsplatz beim Marktführer, letter-spacing: 0px} .main { padding: 0px0px0px} .progressCompact { display: grid; gap: 0pxmargin-bottom: 0px} .progressTop { display: flex; align-items: center; justify-content: space-between; gap: 0pxcolor: var(-muted); font-size: 0pxfont-weight: 800; } .progressTop strong { color: var(-qsc-dark); font-weight: 900; } .dots { display: flex; gap: 0pxalign-items: center; justify-content: flex-end; flex-wrap: wrap; } .dot { width: 0pxheight: 0pxborder-radius: 0pxbackground: rgba(36,74,134,0.18); transition: 0.2s ease; } .dot.done { background: rgba(244,165,28,0.86); } ..track { height: 0pxborder-radius: 0pxbackground: rgba(255,255,255,0.55); border: 0pxsolid rgba(255,255,255,0.65); overflow: hidden; box-shadow: inset 00px0 rgba(255,255,255,0.88), 00px0pxrgba(15,44,88,0.08); } .bar { height: 100%; width: 0%; border-radius: 0pxbackground: linear-gradient(90deg, var(-qsc-orange), var(-qsc-orange-light), var(-qsc-blue)); box-shadow: 0 00pxrgba(244,165,28,0.45); transition: width 0.28s ease; } .panel { min-height: 0pxpadding: clamp(22px, 3vw, 38px); border-radius: var(-radius-lg); background: var(-glass); border: 0pxsolid var(-border); box-shadow: var(-shadow-soft); backdrop-filter: blur(24px) saturate(160%); -webkit-backdrop-filter: blur(24px) saturate(160%); position: relative; overflow: hidden; } .panel::before { content: “”; position: absolute; inset: 0; background: linear-gradient(145deg, rgba(255,255,255,0.66), rgba(255,255,255,0.18)); pointer-events: none; } .stage { display: none; position: relative; z-index: 1; animation: rise 0.24s ease both; } .@keyframes rise { from { opacity: 0; transform: translateY(10px) scale(0.995); } to { opacity: 1; transform: translateY(0) scale(1); } } .questionHead { display: grid; grid-template-columns: auto 1fr; gap: 0pxalign-items: center; margin-bottom: 0px} .bigIcon { width: 0pxheight: 0pxborder-radius: 0pxdisplay: grid; place-items: center; color: white; background: linear-gradient(145deg, rgba(36,74,134,0.94), rgba(15,44,88,0.76)); border: 0pxsolid rgba(255,255,255,0.48); box-shadow: 00px0pxrgba(36,74,134,0.24), inset 00px0 rgba(255,255,255,0.45); } .bigIcon i { width: 0pxheight: 0pxstroke-width: 2.2; } .kicker { color: var(-qsc-orange); font-size: 0pxtext-transform: uppercase; letter-spacing: 0pxfont-weight: 900; margin-bottom: 0px} .title { margin: 0; color: var(-qsc-dark); font-size: clamp(27px, 3.1vw, 43px); line-height: 1.05; letter-spacing: 0px} .options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0px} .option { min-height: 0pxpadding: 0pxborder: 0pxsolid rgba(255,255,255,0.72); border-radius: 0pxbackground: rgba(255,255,255,0.56); box-shadow: 00px0pxrgba(15,44,88,0.11), inset 00px0 rgba(255,255,255,0.8); color: var(-text); cursor: pointer; text-align: left; position: relative; overflow: hidden; backdrop-filter: blur(22px) saturate(150%); -webkit-backdrop-filter: blur(22px) saturate(150%); transition: 0.18s ease; } .option::before { content: “”; position: absolute; inset: 0; background: radial-gradient(circle at 16% 8%, rgba(255,255,255,0.95), transparent 22%), linear-gradient(145deg, rgba(255,255,255,0.58), rgba(255,255,255,0.12)); pointer-events: none; } .option::after { content: “”; position: absolute; right: 0pxbottom: 0pxwidth: 0pxheight: 0pxborder-radius: 0pxbackground: rgba(36,74,134,0.06); transition: 0.18s ease; } …option.selected { color: white; background: rgba(36,74,134,0.88); border-color: rgba(255,255,255,0.78); box-shadow: 00px0pxrgba(15,44,88,0.26), inset 00px0 rgba(255,255,255,0.35); } .option.selected::before { background: radial-gradient(circle at 16% 8%, rgba(255,255,255,0.25), transparent 22%), linear-gradient(145deg, rgba(36,74,134,0.92), rgba(15,44,88,0.76)); } .option.selected::after { background: rgba(244,165,28,0.24); } .optionTop, .optionText { position: relative; z-index: 1; } .optionTop { display: flex; justify-content: space-between; gap: 0pxalign-items: flex-start; } .optionIcon { width: 0pxheight: 0pxborder-radius: 0pxdisplay: grid; place-items: center; color: var(-qsc-blue); background: rgba(255,255,255,0.76); border: 0pxsolid rgba(255,255,255,0.76); box-shadow: inset 00px0 rgba(255,255,255,0.9), 00px0pxrgba(15,44,88,0.08); } .optionIcon i { width: 0pxheight: 0px} .check { width: 0pxheight: 0pxborder-radius: 0pxdisplay: grid; place-items: center; color: transparent; background: rgba(255,255,255,0.48); border: 0pxsolid rgba(36,74,134,0.18); } .check i { width: 0pxheight: 0pxstroke-width: 3; } .option.selected .optionIcon { color: white; background: rgba(255,255,255,0.16); border-color: rgba(255,255,255,0.25); } .option.selected .check { color: white; background: var(-qsc-orange); border-color: rgba(255,255,255,0.35); } .optionText { display: block; margin-top: 0pxfont-size: 0pxline-height: 1.25; font-weight: 850; letter-spacing: 0px} .nav { display: flex; justify-content: space-between; align-items: center; gap: 0pxmargin-top: 0px} .btn { min-height: 0pxborder: 0; border-radius: 0pxpadding: 00pxdisplay: inline-flex; align-items: center; justify-content: center; gap: 0pxcursor: pointer; font-size: 0pxfont-weight: 900; transition: 0.18s ease; white-space: nowrap; } ..btn: disabled { opacity: 0.38; cursor: not-allowed; } .btn i { width: 0pxheight: 0px} .btnPrimary { color: white; background: linear-gradient(145deg, var(-qsc-blue), var(-qsc-dark)); box-shadow: 00px0pxrgba(36,74,134,0.25), inset 00px0 rgba(255,255,255,0.25); } .btnSecondary { color: var(-qsc-dark); background: rgba(255,255,255,0.58); border: 0pxsolid rgba(255,255,255,0.72); box-shadow: 00px0pxrgba(15,44,88,0.1), inset 00px0 rgba(255,255,255,0.85); } .btnOrange { color: #2d1c00; background: linear-gradient(145deg, var(-qsc-orange-light), var(-qsc-orange)); box-shadow: 00px0pxrgba(244,165,28,0.30), inset 00px0 rgba(255,255,255,0.42); } .formGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0pxmargin-top: 0px} .field { display: grid; gap: 0px} .field.full { grid-column: 1 / -1; } label { color: var(-qsc-dark); font-size: 0pxfont-weight: 900; padding-left: 0px} input, textarea { width: 100%; border: 0pxsolid rgba(255,255,255,0.74); border-radius: 0pxpadding: 0px0pxfont: inherit; color: var(-text); outline: none; background: rgba(255,255,255,0.64); box-shadow: inset 00px0 rgba(255,255,255,0.85), 00px0pxrgba(15,44,88,0.08); backdrop-filter: blur(18px); transition: 0.18s ease; } textarea { min-height: 0pxresize: vertical; } input: focus, textarea: focus { background: rgba(255,255,255,0.84); border-color: rgba(36,74,134,0.34); box-shadow: 0 0 00pxrgba(36,74,134,0.09), inset 00px0 rgba(255,255,255,0.9); } .note { color: var(-muted); margin: 0px0 0; font-size: 0pxline-height: 1.45; } .error { display: none; margin-top: 0pxcolor: #b42318; font-weight: 800; background: rgba(180,35,24,0.08); border: 0pxsolid rgba(180,35,24,0.15); border-radius: 0pxpadding: 0px0px} .details { margin-top: 0pxborder-radius: 0pxbackground: rgba(255,255,255,0.5); border: 0pxsolid rgba(255,255,255,0.72); box-shadow: 00px0pxrgba(15,44,88,0.09); overflow: hidden; } summary { cursor: pointer; padding: 0px0pxfont-weight: 900; color: var(-qsc-dark); } .summary { margin: 0; padding: 00px0px0pxcolor: var(-muted); line-height: 1.55; } .sent { text-align: center; padding: 0px0px0px} .sentIcon { margin: 0 auto0pxwidth: 0pxheight: 0pxborder-radius: 0pxdisplay: grid; place-items: center; color: white; background: linear-gradient(145deg, #067647, #075e45); box-shadow: 00px0pxrgba(6,118,71,0.20); } .sentIcon i { width: 0pxheight: 0px} .sent h2 { margin: 0; color: var(-qsc-dark); font-size: clamp(30px, 4vw, 48px); letter-spacing: 0px} .sent p { max-width: 0pxmargin: 0pxauto 0; color: var(-muted); line-height: 1.55; font-size: 0px} @media (max-width: 720px) { body { background-attachment: fixed; } .page { width: min(100% - 14px, 1040px); padding: 0px0; place-items: start center; } .shell { border-radius: 0px} .hero { padding: 0px0px0pxalign-items: flex-start; flex-direction: column; gap: 0px} .brandText a { font-size: 0px} .brandText span { font-size: 0px} .heroText { text-align: left; } .pill { font-size: 0pxpadding: 0px0px} .hero h1 { font-size: 0pxletter-spacing: 0px} .main { padding: 0px0px0px} .progressCompact { margin-bottom: 0px} .progressTop { font-size: 0pxalign-items: flex-start; } .dots { gap: 0pxmax-width: 0px} .dot { width: 0pxheight: 0px} ..panel { min-height: auto; padding: 0px0px0pxborder-radius: 0px} .questionHead { grid-template-columns: auto 1fr; gap: 0pxmargin-bottom: 0px} .bigIcon { width: 0pxheight: 0pxborder-radius: 0px} .bigIcon i { width: 0pxheight: 0px} .kicker { font-size: 0pxmargin-bottom: 0px} .title { font-size: 0pxletter-spacing: 0px} .options, .formGrid { grid-template-columns: 1fr; gap: 0px} .option { min-height: 0pxpadding: 0pxborder-radius: 0px} .optionIcon { width: 0pxheight: 0pxborder-radius: 0px} .optionIcon i { width: 0pxheight: 0px} .optionText { margin-top: 0pxfont-size: 0px} .nav { flex-direction: column-reverse; align-items: stretch; margin-top: 0px} .btn { width: 100%; min-height: 0px} textarea { min-height: 0px} } www.qsc-systems.com with quality to success Dein Karrierestart in wenigen Klicks Werde Teil unseres Teams! Frage 1 von 7 FRAGE 1 Zurück Weiter KONTAKT Fast geschafft - wie erreichen wir dich? Name * Telefon-Nr. optional E-Mailadresse * Optionale Nachricht / Link zu GitHub etc.
Pflichtfelder sind Name und E-Mailadresse. Die Telefon-Nr. kannst du freiwillig ergänzen. Beim Klick auf “Senden” wird dein E-Mail-Programm geöffnet und die Nachricht bereits fertig vorbereitet.
Bitte fülle Name und eine gültige E-Mailadresse aus. Antwort-Zusammenfassung anzeigen Zurück zu den Fragen Senden E-Mail wurde vorbereitet
Dein Mailprogramm sollte sich geöffnet haben. Bitte prüfe die Nachricht kurz und sende sie ab. Wir melden uns schnellstmöglich bei dir bezüglich der Junior-Position!
Neu starten von ${total}’ : ‘Frage ${current + 1} von ${total}’; $(“bar”).style.width = ‘${now / total * 100}%’; renderDots(stage); } function renderQuestion() { const q = questions[current]; $(“questionIcon”).setAttribute(“data-lucide”, q.icon); $(“kicker”).textContent = ‘Frage ${current + 1}’; $(“title”).textContent = q.title; const options = $(“options”); options.innerHTML = “”; q.options.forEach((opt, index) = > { const btn = document.createElement(“button”); btn.type = “button”; btn.className = “option” + (answers[current] === index ? “ selected” : “”); btn.innerHTML = ‘ ${opt[0]} ‘; btn.addEventListener(“click”, () = > selectAnswer(index)); options.appendChild(btn); }); $(“backBtn”).disabled = current === 0; $(“nextBtn”).disabled = answers[current] === null; $(“nextBtn”).innerHTML = current === questions.length - 1 ? ‘Zu den Kontaktdaten ‘ : ‘Weiter ‘; updateProgress(“questions”); drawIcons(); } function selectAnswer(index) { answers[current] = index; renderQuestion(); setTimeout(() = > { if (current < questions.length - 1) { current += 1; renderQuestion(); } else { showContact(); } }, 170); } function showContact() { $(“questionStage”).classList.remove(“active”); $(“sentStage”).classList.remove(“active”); $(“contactStage”).classList.add(“active”); updateProgress(“contact”); renderSummary(); drawIcons(); } function showQuestion() { $(“contactStage”).classList.remove(“active”); $(“sentStage”).classList.remove(“active”); $(“questionStage”).classList.add(“active”); renderQuestion(); } function renderSummary() { const list = $(“summary”); list.innerHTML = “”; questions.forEach((q, i) => { const li = document.createElement(“li”); li.textContent = ‘${q.title}: ${answers[i] === null ? “Keine Auswahl” : q.options[answers[i]][0]}’; list.appendChild(li); }); } function isValidEmail(value) { return value.includes(“@”) && value.includes(“.”) && value.length > 5; } function emailBody(data) { const NL = String.fromCharCode(10); const lines = [ “Neue Kontaktanfrage \u00FCber den QSC Karriere-Fragebogen (Junior Position)”, “”, “Kontaktdaten”, ‘Name: ${data.name || “-“}’, ‘Telefon-Nr.: ${data.phone || “-“}’, ‘E-Mailadresse: ${data.email}’, data.message ? ‘Nachricht: ${data.message}’ : “Nachricht: -“, “”, “Antworten” ]; questions.forEach((q, i) = > { lines.push(‘${i + 1}. ${q.title}’); lines.push(‘Antwort: ${answers[i] === null ? “Keine Auswahl” : q.options[answers[i]][0]}’); lines.push(“”); }); return lines.join(NL); } $(“backBtn”).addEventListener(“click”, () = > { if (current > 0) { current -= 1; renderQuestion(); } }); $(“nextBtn”).addEventListener(“click”, () = > { if (answers[current] === null) return; if (current < questions.length - 1) { current += 1; renderQuestion(); } else { showContact(); } }); $(“contactBackBtn”).addEventListener(“click”, () => { current = questions.length - 1; showQuestion(); }); $(“contactForm”).addEventListener(“submit”, event = > { event.preventDefault(); const data = { name: $(“name”).value.trim(), phone: $(“phone”).value.trim(), email: $(“email”).value.trim(), message: $(“message”).value.trim() }; if (!data.name || !isValidEmail(data.email)) { $(“error”).classList.add(“active”); return; } $(“error”).classList.remove(“active”); const subject = ‘Bewerbung Junior Java Entwickler - ${data.name}’; const mailto = ‘mailto: ${recipient}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(emailBody(data))}’; window.location.href = mailto; $(“contactStage”).classList.remove(“active”); $(“sentStage”).classList.add(“active”); updateProgress(“contact”); drawIcons(); }); $(“restartBtn”).addEventListener(“click”, () = > { current = 0; answers.fill(null); $(“contactForm”).reset(); $(“error”).classList.remove(“active”); showQuestion(); }); renderQuestion(); Das sagen unsere Mitarbeitenden “Bei der QSC hast du die Möglichkeit, selbständig Aufgaben innerhalb toller, dynamischer Teams zu erledigen. Das Arbeitsklima ist hervorragend und jeder einzelne Mitarbeiter hat die Freiheit, Ideen und Verbesserungsvorschläge vorzubringen und umzusetzen. An meiner Tätigkeit als Leiter des Client-Teams schätze ich vor allem die abwechslungsreichen und fordernden Aufgaben, durch welche ich mich stets fachlich sowie persönlich weiterentwickeln und verbessern kann.” Lukas Höllriegl “Freude und Spaß bei der Arbeit in einem wertschätzenden und sympathischen Umfeld haben bei uns oberste Priorität! Wir feiern regelmäßig unsere Erfolge und organisieren abwechslungsreiche Firmenevents auf freiwilliger Basis. Dadurch kann man sich mit Kollegen auch auf privater Ebene austauschen. Das trägt zu unserem produktiven und entspannten Arbeitsklima bei!” Oliver Bauer “Bei uns herrscht eine sehr angenehme Arbeitsatmosphäre. Unsere Tätigkeit ist sehr abwechslungsreich aufgrund der unterschiedlichsten Branchen unserer Kunden. Es ist ein selbstverwirklichendes Gefühl zu wissen, dass die Arbeitsprozesse unserer Kunden durch unsere Lösungen erleichert wird. Feedback, Wertschätzung und Zusammenhalt wird bei uns gelebt - innerhalb des Teams und auch seitens der Geschäftsführung.” Raphael Baumgartner Bereit für den nächsten Schritt?
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Apply on indeed.comGood distractions
Talks and stories from around this role — technically off-topic, practically not.
Moments
Explore playlistsVideos
See allRelated articles
See all
The Most Popular IT Jobs on the Market
System change: restart as developer?
Where to Find Entry-Level Software Engineering Jobs
Software Developer Salary in Austria [2023]