Bei Avaloq zu arbeiten, kann für verschiedene Menschen verschiedene Dinge bedeuten.

Für Sie könnte es die Chance sein, mit State-of-the-Art-Technologie und agilen Entwicklungsmethoden zu arbeiten, in einer energiegeladenen, sich schnell bewegenden Umgebung. 

Es könnte auch die Gelegenheit bedeuten, das Banking der Zukunft mitzugestalten. 

Vielleicht ist es aber auch einfach der Nervenkitzel, wenn Sie Teil eines echten, kollaborativen Teams sind, das hart arbeitet, zusammen viel Spass hat und das einfach weiss, wie man Dinge erledigen muss.

Einer der attraktivsten IT Arbeitgeber

Universum Ranking Schweiz

Avaloq steht im Universum Studenten Ranking 2019 auf Platz 46 der attraktivsten IT Arbeitgeber der Schweiz. Über 12'500 Studenten haben an der Umfrage teilgenommen.

Innovation mitgestalten

“Wir sind immer auf der Suche nach neuen Talenten, Spezialisten, Software-Ingenieuren, Business-Analysten – und ganz besonders nach innovationsfreudigen Mitarbeitern. Denn Innovation liegt uns im Blut.”

Thomas Beck

Group CTO

Kultur, die inspiriert

“Die Kultur bei Avaloq ist einzigartig. Es ist eine Kultur geprägt von Neugier, Innovation, Tatendrang und sehr viel Leidenschaft.”

Pascal Foehn

Group COO

Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> .vars["Content" + index][mediaType + index]  [in template "20116#20152#THREE-COLUMNS-MODULE" at line 81, column 25]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign mediaField = .vars["Content" ...  [in template "20116#20152#THREE-COLUMNS-MODULE" in macro "header" at line 81, column 3]
	- Reached through: @header headline, mediaType, index, m...  [in template "20116#20152#THREE-COLUMNS-MODULE" in macro "contentSectionWithMedia" at line 58, column 5]
	- Reached through: @contentSectionWithMedia "1"  [in template "20116#20152#THREE-COLUMNS-MODULE" at line 29, column 7]
----
1<#--The top-level if condition is a work-around to avoid the need of updating --> 
2<#--all current contents using the Content with Picture Structure.--> 
3<#--Remove this after the old template version is not necessary anymore.--> 
4<#if Content1.Media1??> 
5<#-------------------------------------------------------------------------------------------------> 
6<#--CURRENT TEMPLATE FOR THE NEW STRUCTURE--> 
7<#-------------------------------------------------------------------------------------------------> 
8<#assign isDarkBg = BackgroundColor.getData() == "bg-dark"> 
9<#assign additionalTextClass = isDarkBg?string(" white", "")> 
10<#assign additionalBtnClass = isDarkBg?string(" btn-hover-white", "")> 
11<#assign dLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
12<#assign articleId = .vars['reserved-article-id'].getData() /> 
13 
14 
15  <div class="row three-columns"> 
16  <div class="bg-container-fullwidth ${BackgroundColor.getData()}"></div> 
17  <div class="col-xs-12 ${PaddingTop.getData()} ${PaddingBottom.getData()}"> 
18    <div class="row"> 
19      <#if Headline.getData()?has_content> 
20        <div id="headline-element-${articleId}" class="col-sm-12"> 
21          <h2 class="three-columns-headline${additionalTextClass}">${Headline.getData()}</h2> 
22        </div> 
23      </#if> 
24      <#if ThreeColumnsContent.getData()?has_content> 
25        <div id="description-element-${articleId}" class="col-xs-12 three-columns-description${additionalTextClass}"> 
26          ${ThreeColumnsContent.getData()} 
27        </div> 
28      </#if> 
29      <@contentSectionWithMedia "1"/> 
30      <@contentSectionWithMedia "2"/> 
31      <@contentSectionWithMedia "3"/> 
32    </div> 
33  </div> 
34</div> 
35 
36<#macro contentSectionWithMedia index> 
37  <#assign content = .vars["Content" + index]> 
38  <#assign media = content["Media" + index]> 
39  <#--The following usages of ?remove_* are necessary due to Liferay being bugged--> 
40  <#assign mediaType = media.getData()?remove_beginning("[\"")?remove_ending("\"]")> 
41  <#assign mediaCaption = content["MediaCaption" + index]> 
42  <#assign headline = content["HeadlineColumn" + index]> 
43  <#assign image = content["Image" + index]> 
44  <#assign internalLink = content["InternalLink" + index]> 
45  <#if internalLink.getData()?has_content> 
46    <#assign internalLinkName = internalLink["InternalLink" + index + "Name"]> 
47  </#if> 
48  <#assign externalLink = content["ExternalLink" + index]> 
49  <#if externalLink.getData()?has_content> 
50    <#assign externalLinkName = externalLink["ExternalLink" + index + "Name"]> 
51  </#if> 
52 
53  <#assign internalLinkFallbackLabel = languageUtil.get(locale, "avaloq-language.go-to-page")> 
54  <#assign externalLinkFallbackLabel = languageUtil.get(locale, "avaloq-language.visit-website")> 
55 
56  <#if content.getData()?has_content || headline.getData()?has_content || image.getData()?has_content> 
57  <div  class="col-xs-12 col-md-4 three-columns-section content-element-${articleId}"> 
58    <@header headline mediaType index mediaCaption/> 
59    <#if content.getData()?has_content> 
60      <div class="three-columns-section-text ${additionalTextClass}">${content.getData()}</div> 
61    </#if> 
62    <#if internalLink.getData()?has_content> 
63      <div class="three-column-section-link"> 
64        <a class="btn btn-link btn-icon-link-internal${additionalBtnClass}" href="${internalLink.friendlyUrl}"> 
65          ${internalLinkName.getData()?has_content?string(internalLinkName.getData(), internalLinkFallbackLabel)} 
66        </a> 
67      </div> 
68    </#if> 
69    <#if externalLink.getData()?has_content> 
70      <div class="three-column-section-link"> 
71        <a class="btn btn-link btn-icon-link-external${additionalBtnClass}" href="${externalLink.getData()}" target="_blank"> 
72          ${externalLinkName.getData()?has_content?string(externalLinkName.getData(), externalLinkFallbackLabel)} 
73        </a> 
74      </div> 
75    </#if> 
76  </div> 
77  </#if> 
78</#macro> 
79 
80<#macro header headline mediaType index mediaCaption> 
81  <#assign mediaField = .vars["Content" + index][mediaType + index]> 
82  <#switch mediaType> 
83    <#case "Image"> 
84      <@imageElement mediaField/> 
85      <@headlineElement headline/> 
86      <#break> 
87    <#case "Video"> 
88      <#assign imageField = .vars["Content" + index]["Image" + index]/> 
89      <@headlineElement headline/> 
90      <@Html5Video mediaField imageField/> 
91      <@mediaCaptionElement mediaCaption/> 
92      <#break> 
93    <#case "YouTubeVideo"> 
94      <@headlineElement headline/> 
95      <@iframeVideo mediaField.getData()/> 
96      <@mediaCaptionElement mediaCaption/> 
97      <#break> 
98    <#case "BrightcoveVideo"> 
99      <@headlineElement headline/> 
100      <@iframeVideo mediaField.getData()/> 
101      <@mediaCaptionElement mediaCaption/> 
102      <#break> 
103  </#switch> 
104</#macro> 
105 
106<#macro headlineElement headline> 
107  <#if headline.getData()?has_content> 
108    <#if HeadlineColumnSize.getData()=="bigHeadline"> 
109      <h2 class="three-columns-section-headline${additionalTextClass}">${headline.getData()}</h2> 
110    <#else> 
111      <h3 class="three-columns-section-headline${additionalTextClass}">${headline.getData()}</h3> 
112    </#if> 
113  </#if> 
114</#macro> 
115 
116<#macro imageElement imageField> 
117  <#if imageField.getData()?has_content> 
118 
119    <#-- Get media description (which is used as alt text for images) --> 
120    <#assign mediaDescription = "" /> 
121    <#if imageField?? && imageField.getData()?has_content > 
122      <#attempt> 
123        <#assign mediaParams = imageField.getData()?split("/") /> 
124        <#assign mediaGroupId = mediaParams[2] /> 
125        <#assign mediaUuid = mediaParams[5]?split("?")[0] /> 
126        <#assign mediaFileEntry = dLFileEntryLocalService.getFileEntryByUuidAndGroupId(mediaUuid, mediaGroupId?number) /> 
127        <#assign mediaDescription = mediaFileEntry.getDescription() /> 
128        <#recover> 
129      </#attempt> 
130    </#if> 
131 
132    <div class="three-columns-section-image"> 
133      <img src="${imageField.getData()}" alt="${mediaDescription}"/> 
134    </div> 
135  </#if> 
136</#macro> 
137 
138<#macro Html5Video videoField imageField> 
139  <video preload="none" controls poster="${imageField.getData()}"> 
140    <source src="${videoField.getData()}" type="video/mp4"> 
141  </video> 
142</#macro> 
143 
144<#macro iframeVideo iframeAsString> 
145  <#assign matchWidthOrHeight = "\\s((width=(\"|')\\d*(\"|'))|(height=(\"|')\\d*(\"|')))"/> 
146  <#assign matchAutoplay = "autoplay; "/> 
147  <#assign normalizedIframe = iframeAsString?replace("(" + matchWidthOrHeight + ")|(" + matchAutoplay + ")", "", "rs")/> 
148  ${normalizedIframe} 
149</#macro> 
150 
151<#macro mediaCaptionElement mediaCaption> 
152  <#if mediaCaption.getData()?has_content> 
153    <div class="avlq-media-caption caption">${mediaCaption.getData()}</div> 
154  </#if> 
155</#macro> 
156 
157<#else> 
158<#-------------------------------------------------------------------------------------------------> 
159<#--DEPRECATED TEMPLATE FOR DEPRECATED CONTENT TO STILL WORK--> 
160<#-------------------------------------------------------------------------------------------------> 
161  <#assign isDarkBg = BackgroundColor.getData() == "bg-dark"> 
162  <#assign additionalTextClass = isDarkBg?string(" white", "")> 
163  <#assign additionalBtnClass = isDarkBg?string(" btn-hover-white", "")> 
164  <#assign dLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
165<div class="row three-columns"> 
166  <div class="bg-container-fullwidth ${BackgroundColor.getData()}"></div> 
167  <div class="col-xs-12 ${PaddingTop.getData()} ${PaddingBottom.getData()}"> 
168    <div class="row"> 
169      <#if Headline.getData()?has_content> 
170        <div class="col-xs-12"> 
171          <h2 class="three-columns-headline${additionalTextClass}">${Headline.getData()}</h2> 
172        </div> 
173      </#if> 
174      <#if ThreeColumnsContent.getData()?has_content> 
175        <div class="col-xs-12 three-columns-description${additionalTextClass}"> 
176        ${ThreeColumnsContent.getData()} 
177        </div> 
178      </#if> 
179      <@contentSection "1"/> 
180      <@contentSection "2"/> 
181      <@contentSection "3"/> 
182    </div> 
183  </div> 
184</div> 
185 
186  <#function getFilePath fileField> 
187    <#assign imageURL = "#"> 
188    <#attempt> 
189      <#assign imageData = fileField?eval> 
190      <#assign imageData = processFileData(imageData)> 
191      <#assign image = dLFileEntryLocalService.fetchDLFileEntryByUuidAndGroupId(imageData["uuid"],imageData["groupId"]?eval) > 
192 
193      <#if themeDisplay.getCDNHost()?? && themeDisplay.getCDNHost()?has_content> 
194        <#assign imageURL = themeDisplay.getCDNHost() + "/documents/" + imageData["groupId"] + "/" + image.getFolder().getFolderId() + "/" +  imageData["title"] + "/" + imageData["uuid"] /> 
195      <#else> 
196        <#assign imageURL = "/documents/" + imageData["groupId"] + "/" + image.getFolder().getFolderId() + "/" +  imageData["title"] + "/" + imageData["uuid"] /> 
197      </#if> 
198      <#recover> 
199        <#assign imageURL = fileField> 
200    </#attempt> 
201 
202    <#return imageURL> 
203  </#function> 
204 
205  <#function processFileData fileData> 
206    <#if fileData["data"]??> 
207      <#return processFileData(fileData["data"]?eval)> 
208    </#if> 
209    <#return fileData> 
210  </#function> 
211 
212  <#macro contentSection index> 
213    <#assign content = .vars["Content" + index]> 
214    <#assign image = content["Image" + index]> 
215    <#assign headline = content["HeadlineColumn" + index]> 
216    <#assign internalLink = content["InternalLink" + index]> 
217    <#if internalLink.getData()?has_content> 
218      <#assign internalLinkName = internalLink["InternalLink" + index + "Name"]> 
219    </#if> 
220    <#assign externalLink = content["ExternalLink" + index]> 
221    <#if externalLink.getData()?has_content> 
222      <#assign externalLinkName = externalLink["ExternalLink" + index + "Name"]> 
223    </#if> 
224 
225    <#if content.getData()?has_content || headline.getData()?has_content || image.getData()?has_content> 
226    <div class="col-xs-12 col-md-4 three-columns-section"> 
227      <#if image.getData()?? && image.getData() != ""> 
228 
229        <#-- Get media description (which is used as alt text for images) --> 
230        <#assign mediaDescription = "" /> 
231        <#if image?? && image.getData()?has_content > 
232          <#attempt> 
233            <#assign mediaParams = image.getData()?split("/") /> 
234            <#assign mediaGroupId = mediaParams[2] /> 
235            <#assign mediaUuid = mediaParams[5]?split("?")[0] /> 
236            <#assign mediaFileEntry = dLFileEntryLocalService.getFileEntryByUuidAndGroupId(mediaUuid, mediaGroupId?number) /> 
237            <#assign mediaDescription = mediaFileEntry.getDescription() /> 
238            <#recover> 
239          </#attempt> 
240        </#if> 
241 
242        <div class="three-columns-section-image"> 
243          <img src="${getFilePath(image.getData())}" alt="${mediaDescription}"/> 
244        </div> 
245      </#if> 
246 
247      <#if headline.getData()?has_content> 
248        <#if HeadlineColumnSize.getData()=="bigHeadline"> 
249          <h2 class="three-columns-section-headline${additionalTextClass}">${headline.getData()}</h2> 
250        <#else> 
251          <h3 class="three-columns-section-headline${additionalTextClass}">${headline.getData()}</h3> 
252        </#if> 
253      </#if> 
254      <#if content.getData()?has_content> 
255        <div class="three-columns-section-text ${additionalTextClass}">${content.getData()}</div> 
256      </#if> 
257      <#if internalLink.getData()?has_content> 
258        <div class="three-column-section-link"> 
259          <a class="btn btn-link btn-icon-link-internal${additionalBtnClass}" href="${internalLink.friendlyUrl}"> 
260          ${internalLinkName.getData()!"Go to page"} 
261          </a> 
262        </div> 
263      </#if> 
264      <#if externalLink.getData()?has_content> 
265        <div class="three-column-section-link"> 
266          <a class="btn btn-link btn-icon-link-external${additionalBtnClass}" href="${externalLink.getData()}" target="_blank"> 
267          ${externalLinkName.getData()!"Visit website"} 
268          </a> 
269        </div> 
270      </#if> 
271    </div> 
272    </#if> 
273  </#macro> 
274</#if> 
275<script> 
276 
277  if ("true" === "${(Animation?? && Animation.getData() == "true")?c}" && !Liferay.Browser.isIe()) { 
278    $(document).ready(function() { 
279      if($('#headline-element-${articleId}').length){ 
280        ($('#headline-element-${articleId}')).css('opacity', '0'); 
281
282      if($('#description-element-${articleId}').length){ 
283        ($('#description-element-${articleId}')).css('opacity', '0'); 
284
285      if($('.content-element-${articleId}').length){ 
286        ($('.content-element-${articleId}')).css('opacity', '0'); 
287
288    }); 
289    // Register animation 
290    Liferay.Loader.require('avaloq-animator', function (avaloqAnimator) { 
291      avaloqAnimator.fadeIn("#headline-element-${articleId}"); 
292      avaloqAnimator.fadeIn("#description-element-${articleId}"); 
293      avaloqAnimator.fadeIn(".content-element-${articleId}"); 
294 
295    }); 
296
297</script> 

“Das Avaloq Team ist grossartig. Hier einen Job zu bekommen ist so, als würde man für Inter Mailand, Bayern oder Barça spielen dürfen."

Marco Baragiola

IT-Spezialist und Head of AMS Development Transactional, Lugano

“Bei Avaloq zu arbeiten ist sehr erfüllend. Es gibt mir auch deswegen ein Gefühl von Zufriedenheit, weil unser enges Teamwork dazu beiträgt, unseren Kunden zu helfen und ihren Bedürfnissen gerecht zu werden.”

Tan Keng Guan

Team Lead - Security Transfers, Singapore

Wir sind aussergewöhnlich.
Sie auch?

Wir entwickeln Banking-Software mit einer einzigartigen Leistungsfähigkeit und Flexibilität. Zudem bieten wir Banking Outsourcing Services, die Best-in-Class sind. Weil wir unsere eigenen Systeme in unseren eigenen Service Centres betreiben, bekommen wir einen Einblick in die wirklichen Bedürfnisse unserer Kunden. Den hat so kein anderer Softwarehersteller. Wir sind schnell, flexibel und multikulturell. Avaloq hat mehr als 2'000 Menschen aus 66 verschiedenen Ländern zusammengebracht.
 

Also: Ist in Ihrer Zukunft ein Platz für uns?

OFFENE STELLEN

Als Consultant gehört es zu Ihrer Rolle, eng mit unseren Kunden zusammenzuarbeiten und sich aktiv am Design der Banking-Applikationen und technischen Lösungen zu beteiligen, die die Kunden brauchen. Zu Ihrem Verantwortungsbereich gehören die technische Umsetzung, das Customizing und die kontinuierliche Optimierung von Prozessen – entsprechend den Marktanforderungen und den sich verändernden Bedürfnissen unserer Kunden.

Als IT-Spezialist besteht Ihr Job darin, den Bau von Softwarelösungen, die Implementierung und die Systemintegration zu unterstützen und unseren Kunden hochqualitative Lösungen zu liefern. Wir werden Ihr Spezialisten-Know-how brauchen, um Anforderungen, Design, Implementierung, Produktionsprojekte und -aufträge umzusetzen. Darum werden wir Sie auch stets ermutigen, sich neue Bereiche zu erschliessen. 

Als Key Account Manager stärken Sie erfolgreich die Beziehung zu unseren bestehenden Kunden. Und Sie sind für alle geschäftlichen und vertraglichen Aspekte verantwortlich, die mit Ihren Kunden zu tun haben. Sie stellen eine konsistente Kommunikation sicher und fungieren als Brücke zwischen dem Kunden und den Service- und Entwicklungs-Teams von Avaloq. 

“Hier ist es nie langweilig. Im Laufe von sechs Jahren war ich schon Software-Ingenieur, Scrum Master, Team-Leader – und jetzt Architekt. Man lernt hier ständig. Und ich sehe, dass ich etwas bewirke.”

Roman Mitin

Software-Ingenieur, Zurich

“Die Atmosphäre hier ist stimulierend und kreativ, mit flachen Organisationsstrukturen und ohne Mikromanagement. Man arbeitet mit klugen und motivierten Profis zusammen, und die Leute an allen Avaloq Standorten auf der Welt helfen einander jederzeit aus.”

Manolo Polap

IT-Spezialist, Berlin