22
Individual Professional Practice in Tieto Czech s.r.o. Nikita Kurpas on the position of Software Developer Internship

Bachelor's Thesis Presentation (shortened)

Embed Size (px)

Citation preview

Page 1: Bachelor's Thesis Presentation (shortened)

Individual Professional Practice in Tieto Czech s.r.o.

Nikita Kurpas on the position of Software Developer Internship

Page 2: Bachelor's Thesis Presentation (shortened)

Contents

● Job description● Brief description of each project● Detailed description of project “Karellen”

○ Goals○ Architecture○ Technologies○ Modules○ Results

● Final notes

Page 3: Bachelor's Thesis Presentation (shortened)

Job description

● First month - System Engineer Internship○ Minor code fixes, template coding in XWiki platform○ Only a few tasks related to my position

● Later - Software Engineer Internship○ Primary role - Java developer○ Other roles - JavaScript developer, UI engineer○ Internal and client projects

Page 4: Bachelor's Thesis Presentation (shortened)

Projects

● Karellen● NEO Denmark● NEO Norway● TRIP

● Karellen - a monitoring system○ Role: backend developer, frontend developer○ Tasks:

■ Developing backend modules■ Developing GUI module

● NEO Denmark - backend for a mobile operator○ Role: backend developer, frontend developer○ Tasks:

■ Refactorings■ Bug fixes■ Rewriting existent project

● NEO Norway - backend for a mobile operator○ Role: frontend developer○ Tasks:

■ Integrating new technologies● TRIP - doc. search and indexing database and GUI

○ Role: backend developer, frontend developer○ Tasks:

■ Bug fixes■ Developing new features on backend and

frontend

Page 5: Bachelor's Thesis Presentation (shortened)

Project “Karellen”

Page 6: Bachelor's Thesis Presentation (shortened)

Project “Karellen”Goals

● Monitoring of applications, databases, web servers, web sites...

● Presenting data to the user in a concise way

● Alerting user via Email, SMS, TONE

● Exporting data to XML, Excel, CSV

● Reporting and analysis

Page 7: Bachelor's Thesis Presentation (shortened)

Project “Karellen”Definitions

● Snapshot● Entity

● Entity - a monitored “thing”: web server, database, application server, etc…

● Snapshot - state of an entity at some point in time

Page 8: Bachelor's Thesis Presentation (shortened)

Project “Karellen”Architecture

● Microservices architecture● Highly modular● Communication: HTTP REST● Modules (what was done):

○ Store○ Configurator + GUI○ Status engine○ Dashboard○ Collectors

■ Sniffers● Each module: 3 tier architecture

○ Presentation tier○ Logic tier○ Data tier

Page 9: Bachelor's Thesis Presentation (shortened)

Project “Karellen”Technologies

● Java 8● Spring framework

○ Spring boot○ Spring DI○ Spring MVC

● JPA○ Hibernate ORM○ Spring Data JPA

● JSF○ PrimeFaces

● MySQL

Page 10: Bachelor's Thesis Presentation (shortened)

Project “Karellen”Store module

● Responsibilities○ Store snapshots○ Provide a RESTish API to

access them● Architecture: 3 tier

○ Presentation tier■ RESTish

controllers○ Logic tier:

■ Services■ Mappers

○ Data tier■ Hibernate ORM■ Spring data JPA

Page 11: Bachelor's Thesis Presentation (shortened)

Project “Karellen”Dashboard module

● Responsibilities○ Present current status of

monitored entities to the user

● Architecture: 3 tier○ Presentation tier

■ JSF views and managed beans

○ Logic tier:■ Services

○ Data tier:■ Status Engine

connector■ Configurator

connector

Page 12: Bachelor's Thesis Presentation (shortened)

Project “Karellen”Status Engine

● Responsibilities○ Provide entity status

based on recent snapshots

○ Rate snapshots● Architecture: 3 tier

○ Presentation tier■ RESTish

controllers○ Logic tier:

■ Services■ Mappers

○ Data tier■ Store connector■ Configurator

connector

Page 13: Bachelor's Thesis Presentation (shortened)

Project “Karellen”

● Finished at ~75% of planned functionality

● New GUI written from scratch using Material Design and JavaScript

● Client refused to buy● Project status: used internally

Results

Page 14: Bachelor's Thesis Presentation (shortened)

Final notes

Page 15: Bachelor's Thesis Presentation (shortened)

Practice evaluation

● Work was done thoroughly, in the best possible way I was capable of● I have known or quickly learned the technologies needed to accomplish a

task● I have been promoted to 2 higher grade projects

○ NEO Denmark○ NEO Norway

Page 16: Bachelor's Thesis Presentation (shortened)

Personal benefits

● Advanced a lot in Java SE and EE, JavaScript + ECMAScript 6, HTML, CSS, Software Design

● Had intensive trainings from real professionals● Had experience with old, bad and obsolete code● Had experience rewriting projects from scratch and doing complex

refactorings● Was able to communicate daily in English

Page 17: Bachelor's Thesis Presentation (shortened)

Final notes

● Project “Karellen” - A+● Project “NEO Denmark” - B● Project “NEO Norway” - B● Project “TRIP” - E

Page 18: Bachelor's Thesis Presentation (shortened)

FOR YOUR ATTENTION

THANK YOU

Page 19: Bachelor's Thesis Presentation (shortened)

Q&A

Page 20: Bachelor's Thesis Presentation (shortened)

Microservices Architecture

● System is broken into multiple component services● Those services are

○ Small○ Independently deployable○ Modular○ Communicate through a well-defined interface

● Decentralized governance● Separate databases (NoSQL or micro-SQL)● Organises around business capabilities

Page 21: Bachelor's Thesis Presentation (shortened)

Agile

● Short iterations (1-4 weeks)● Customer Satisfaction● Welcome Change● Deliver a Working Software● Collaboration● Review the Work Regularly● Measure the Progress as per the Working Software

Page 22: Bachelor's Thesis Presentation (shortened)

Agile: The Manifesto

● Individuals and interactions over processes and tools

● Working software over comprehensive documentation

● Customer collaboration over contract negotiation

● Responding to change over following a plan