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

Bachelor's Thesis Presentation (shortened)

Feb 10, 2017

Download

Documents

Nikita Kurpas
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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