Internship Product Development
Keylane, Netherlands

Experience
1 Year
Salary
0 - 0
Job Type
Job Shift
Job Category
Traveling
No
Career Level
Telecommute
No
Qualification
Bachelor's Degree
Total Vacancies
1 Job
Posted on
Feb 24, 2021
Last Date
Mar 24, 2021
Location(s)

Job Description

Bij Keylane zijn we continu bezig om onze processen te verbeteren voor onze klanten. Er liggen een aantal opdrachten op de plank die wij erg belangrijk vinden en perfect zijn voor een student om op te pakken. Als jij bij ons stage loopt help je direct mee aan de ontwikkeling van onze producten.

We hebben momenteel twee stage opdrachten liggen en dus plek voor twee stagiaires.

Als je bij ons stage komt lopen krijg je een eigen laptop en een stagevergoeding van 500,- op basis van 5 dagen per week.

Synchronisatie

In ons product Axon zijn productdefinities van verzekeringsproducten volledig configureerbaar. Axon bevat een synchronisatiecomponent waarmee productdefinities gesynchroniseerd kunnen worden van de ene omgeving naar een andere omgeving, bijvoorbeeld van een testomgeving naar een productieomgeving. We willen deze synchronisatiefunctionaliteit verbeteren.

Mogelijke deelonderzoeken:

  • Probleemanalyse: welke problemen ervaren huidige gebruikers?
  • Literatuurstudie: welke oplossingen zijn in de markt beschikbaar?
  • Schrijven van een functioneel amp; technisch ontwerp
  • Uitwerken proof of concept
  • Uitwerken plan voor rest van implementatie

Eisen aan de oplossing:

  • De oplossing moet rekening houden diverse database merken, waaronder Oracle en DB2.
  • De oplossing moet een heldere interface bieden voor eindgebruikers.
    • Het moet bijvoorbeeld mogelijk zijn om een consistente subset van de wijzigingen te synchroniseren.
  • De oplossing moet transaction consistency ondersteunen.
  • De oplossing moet instantaan resultaten teruggeven. Performance speelt een belangrijke rol.
  • De oplossing moet eenvoudig uit te breiden zijn met oog op de toekomst.
  • De oplossing moet goed testbaar zijn binnen een CI/CD pipeline.

ORM Introduceren

Binnen Keylane gebruiken we veel queries en in-house abstracties om met databases te praten (met name Searchlists). Echter, in de laatste 10 jaar heeft de industrie vooral gewerkt aan ORMs en gelijke concepten, om communicatie tussen code en database zo vloeiend en mogelijk te maken. Meerdere developers vragen zich af of een overstap mogelijk is, wat hiervoor gedaan moet worden en wat de voordelen en nadelen zijn.

Bekende voordelen van een ORM:

  • Ondersteuning verschillende RDMS vendors. Een ORM hanteert dialecten.
  • Compiler: goede ORMs maken gebruik van de compiler om query syntax te checken. Hierdoor ben je niet langer afhankelijk van strings, welke zeer foutgevoelig zijn. De compiler is de eerste lijn van verdediging, welke we nu niet hebben.
  • Versimpeling van het inlezen van data en verwerken tot objecten.
  • Community: omdat de meeste ORMs open source zijn en gebruikt worden door meerdere bedrijven, is informatie makkelijker te vinden.
    • Samen met de versimpeling zorgt dit voor makkelijkere onboarding van nieuwe developers.

Bekende nadelen van een ORM t.o.v. vanilla SQL:

  • Performance. Door abstractie verliest de developer een hoop kracht/controle, wat mogelijk leidt tot performance drops.
  • Ondersteuning. Gegeven dat ORMs vaak open source zijn, kan functionaliteit missen.

Gegeven de nadelen en nadruk op performance, zou een onderzoeker meerdere ORMs vergelijken. Ook t.o.v. de bestaande in-house oplossing. Punten van belang zijn hierbij:

  • Reductie / toevoeging aantal lijnen code / klassen / methodes.
  • Performance meten (cold start, max load, doorlooptijd per executie).
  • Kwalitatief onderzoek (hoe denken gebruikers (developers), wat zijn lastig/onmeetbare plus- en minpunten, welk invloed had het op de pipeline).
  • Specifieke gevallen in-depth bekijken (cross-schema queries, schema updates, joins met meer dan 3 tabellen, etc.).

Mogelijke conclusies van het onderzoek zijn:

  • In-house frameworks werken sneller dan bestaande ORMs (developers die een ORM suggesteren hebben nu een concreet antwoord waarom we er geen gebruiken)
  • Er zit weinig verschil tussen in-house framework en een ORM w.b. performance.
  • Veel van de Axon database kan opgeschoond worden met gebruik van een ORM.
  • Een ORM is niet de oplossing, maar concepten van een ORM kunnen wel overgenomen worden.
  • Etc.

Mogelijke tools om te onderzoeken zijn:

  • Hibernate
  • Jooq
  • Ktorm (Kotlin): https://github.com/kotlin-orm/ktorm
  • Exposed (Kotlin, van makers IntelliJ): https://github.com/JetBrains/Exposed

Job Specification

Job Rewards and Benefits

Keylane

Information Technology and Services - Amsterdam, Netherlands
© Copyright 2004-2024 Mustakbil.com All Right Reserved.