Sunday, August 28, 2016

A dream come true...teaching - Professional Java developer: Tools and best practices

I always enjoyed sharing knowledge. One of the reasons I blog is to share my knowledge on things around my job as a software engineer. Founding and running (with a handful of friends) the first Java User Group in Greece back in 2003, was due to the fact that we could not get sufficient training or access to personal development around our work, so we wanted to shared and re-use the knowledge we had as a small developer community. When I get to work, at any job, in any place, one of the things I look for during my first days, is how much knowledge is there for me, so I can read and get up to speed. I always enjoy, 'training' young developers, show them what I know, bringing them up to speed, shaping their 'developer' personality. 

I am really happy and excited that in a month's time I am going to fulfill a big dream, teaching. I am not an academic, I am a professional, a software engineer and under this context I am going to share some my views, experiences and knowledge, in a short course at the City University of London. You can find the link here. The title is ' Professional Java developer: Tools and best practices ' . My main goal is not to become a teacher, for me the whole initiative is mostly giving back some of my passion and love for my work as a software engineer,  to people that are willing to walk the same road and join me-us in the software development market/world.

The course's main target is to infuse the experiences and standards of today's Java developer job market into a short  course. I am planning a more hand's on learning experience, with an opinionated agenda rather a classic academic computer science course, that you will get as an undergraduate computer science student. I want to provide (as much as possible) the main skills and knowledge that any junior Java developer is nice to have and be familiar with, when he/she joins for the first time a company and a software development team. At least introduce them and then let the student expand on this knowledge.

The agenda and course content is almost finalized (with some minor exceptions) but I am planning to go through topics like
  • Modern Java IDE's - using effectively a Java IDE
  • Using code versioning tools like Git.
  • Latest Java  language's features.
  • Build tools for the Java related, walking through the basics of Maven or Gradle.
  • Testing with Java, using frameworks and libraries towards test driven or behavior driven development
  • Modern enterprise development with Java, a walk through to the available enterprise level micro frameworks, like Spring Boot, Wildfly Swarm, Vertx etc.
  • Development of RestFul API's in Java, using available tools and libraries. 
  • Cloud and Devops tools for the Java developer, a walk through tools like Vagrant, Docker, Amazon Webservices, the cloud.
  • Coding dojo's where we will investigate and learn about, 'famous' Java libraries that you most probably going to 'use' in your Job and it would be nice to know about them.
  • Tips and exercises similar to many interview questions a junior java developer might encounter during his/her job hunt. 
The course is suitable for different kinds of people
  • Computer science undergraduates that are preparing to enter the market
  • IT professionals that they want to have a quick intro to the practices and tooling of the Java world
  • Non IT professionals that are converging to the IT industry and specifically to software development using Java - but are already familiar to developing code with Java

I am very excited, I hope we could start on the 8th of October (assuming that there is enough interest and students). The class is going to be every Saturday from 10 to 5 (or so) and is a 5 part course, meaning 5 Saturdays.

Special thanks to my friend Dionisis Dimakopoulos, who eventually was the one that had the idea and gave me this opportunity, to share my passion through this course. 

Saturday, May 28, 2016

Soldo, my first step as a customer to the 'smart' payments world.

As I have written many times in this blog, from the moment I had the chance to work in the development of 'traditional' retail banking software, I immediately became interested as a 'customer' & software engineer to this new wave of rival services and applications, especially those related with micro-payments and 'electronic' wallets. Despite the fact that traditional banks, today move forward modernizing most of their 'retail' service offering, I still believe they are less flexible and a bit slower  comparing to other companies in the field.

For a month or so, I have been using 'daily' the e-payment solution of Soldo. The company is one of the newcomers in the electronic-micro payments world. Currently their service is in beta, so I was very happy to be one of the  few to try and evaluate their offering. Special thanks to my friend M.Charatzas.

So how does it work? When I 'entered' the service, I simply had to download an iOS application, complete the registration (adding my personal details). Upon activation, I got an 'electronic' wallet where I could see my balance, top up my account, search my transactions, get a virtual credit card (Mastercard) and a new real card (sent via post).  My new wallet (or account), can be credited either by regular bank account transfer, or by using one of my regular 'cards' from my traditional bank and 'debit' it. The overall process took just a few minutes, and the real card was sent within one week. Sweet!

During my initial week I did transfer a small amount of money to my new wallet, and started using the e-card and the regular one (it is contact less as well) in different places. In general I did not have any problem, only in one place the contact- less payment was not working). The real added value of these services is not the regular debit/credit card use. This is something already provided by traditional services. 

So the more you get to use the app, the more you get addicted to the plethora of information around your payments. The notifications upon each payment (or failed payment) are instant, the transaction history is simple enough and easy to use, so I can scroll through my payments and check available details. I am able to see during the previous month, when and how much money I did spent. I really like the 'today' view, where you get to check how much money you spent this very day.

Also I am able to control many aspects of the regular and virtual card like, like the max amount I can debit the card in each transaction (I guess parents would really love that kind of feature), or the basic types of payments my card can be used for. For example I can enable or disable my Sold Card, for 'Online' payments, 'cash points' or payments 'abroad'. Of course at the end of the day, in case someone, steals your card, with the switch you can completely de-activate it and report that has been compromised.

The more I use, this kind of interactive payments, the more I get a feeling that I am in control of the overall process. So kind of 'security'. This is the main reason I am eventually switching to a 100% daily use of my Sold wallet. For example, there are a few cases, that I do feel a bit unsure when my card is 'walking' around 'shops' or restaurants, or when you get to a very busy place where a dozen of people 'attack' the point of sales, example a bar, and the personnel just swipe 1000 cards per minute trying to serve the people. In all these cases, I have stopped using my regular card in favor of Soldo, the moment my card is debited I get the notification and I can see what is happening or double check. 

Also, during traveling out of the UK, I can complete my transactions, based on the current 'exchange' rate of GBP and the Euro, with no extra fees! How cool is that!
Up until now the experience was very nice and I am very happy with this kind of services and offerings. I find my self to use this card more often comparing to my regular bank's card and it I think I might switch completely for day to day use and online shopping.
I am sure there are other products and services out there and I am very excited in general, because retail banking and micro-payments is a world where I totally believe there is room for improvement and innovation, both in the IT (software development) and business wise. 

So hello new world of micro-payments and e-wallets! 

Tuesday, May 24, 2016

Kubernetes London Meetup - picking up momentum #kubernetes #london


One of the great things, when living in London is that you have access to meetup's and communities  for almost every technology you will ever manage to get interested in. After attending the first EU Kubernetes Conference - KubeCon (2 months ago), this was my second time attending the 'Kubernetes London Community' in one of their regular meetup's at the premises of SkillsMater.

I would like to give credits to the 2 main organizers Peter Idah & Milos Gajdos for working towards, building a vibrant community for a technology that IMHO is not only trending but will become very relevant. I am might be a bit biased, but Kubernetes is one of the few 'things' out of this DevOps / Containers / Microservices tsunami of technologies, that is going to make a change - market wise. Thumbs up to 'GoogleCloud' for sponsoring beers and pizzas before the talks - good job. I would be very happy next time with an uber cool 'Kubernetes TShirt' for my summer vacation!


The Dev in the DevOps

I always feel, like a silent minority in that kind of meetups, especially the Kubernetes one. Despite the fact that I totally relate to the concepts and the technology, I do belong more to the Dev side of the DevOps culture rather than the Ops. As I have stated numerous times and in some of my 'introductory' talks around Kubernetes, I came 'close' to this technology and evaluated it's potential strengths, from the software developer's / architect perspective rather the Ops or DevOps developer. For me Kubernetes is an excellent abstraction for concerns that as a software developer I don't have to worry about, especially when I need to focus on delivering  / writing business code. These abstractions safeguard concerns and mitigate risks that I will have in the future, when my solution potentially will need to be flexible, scale-able, deployment environment neutral etc. I do follow the developments of the go language, I do try to relate to the complexities and specifics of AWS or Google Container Engine, but the main priority for me is the 'code' the solutions me and the team I belong to, needs to write and architect. I am not glorifying the Ops centric technologies, I see them as an enabler and a problem solver for 'business and technical concerns' many software solutions will face. But, as you might have experienced before, a lot of software projects do die, or never get to the mainstream in order to phase challenges that technologies or environments like Kubernetes or the Cloud have to offer. I do worry about the fact that 'we' the developers, have found a new 'box' of emerging technologies, that for sure are relevant but we kind of settle (or we consider uncool) the actual code written to provide the solutions. Still out main concern should be whatever lives within the container - and not the container neither the infrastructure around it. Yes they are important but not the main priority. Enough for my devs first rant - I hope I don't get flamed by the 'Ops' audience - which I have total respect.

About the meet-up 


The first talk was from Martin Devlin, from Pearson Plc, Bitesize PaaS Project. They are using Kubernetes for then 'upcoming' platform. I did keep some notes regarding some of the 'solutions' they keep in the mix for their platform. Unfortunately I did not have the chance to elaborate, but I kind of wondered, why you would need to use services like Consul, or Vault within Kubernetes where actually the framework already abstracts and provides in some extend this needs. Maybe at Pearson they do have special cases and requirements, which of course I can not relate to. The 'Vault' section was interesting enough. A kind and positive reminder to the 'Martin' for any future presentation, it would be nice he could add some more diagrams and more slides so that we can have a better idea of their solution and what was presented.






The second talk, was from Justin Santa Barbara. Really great talk, from one of the most important committers of Kubernetes, responsible for the AWS support. One of the many questions I get to have or hear in talks regarding Kubernetes adoption, is 'Can we use this in AWS, can we use this feature of AWS with Kubernetes? etc. So it was really great to have Justin presenting and passing his views and describing the current state and road map towards this area.

I really liked his 'all kubernetes' view of things, which totally makes sense for me. Kubernetes is  providing a rich set of functionality in different 'areas' around application deployment, that eventually containerized applications that will be 'living' inside this environment could be aware of these (capabilities) or even use them. 

Very nice interactive presentation and I do hope the London Kubernetes community to host more committers and devs of Kubernetes in the future. In my notes from Justin's presentation was, the 'PetSet' Controllers that is coming soon enough, and will eventually answer the question ' How about hosting my cluster-aware  MySQL  or ElasticSearch within kubernetes. Last but not least, there were a lot of questions around the applicability and availability of the 'Ubernetes' type of deployment (meaning multiple kube clusters in different regions/zones - acting as one).

It was really, time well spent yesterday and I am really looking forward for the future meetups and developments of this 'emerging London community'. If you are considering adopting, or trialing Kubernetes within your company in London, I totally encourage you to join this community and share the experience. 



Go Kube!



 

Sunday, May 15, 2016

Ένας χρόνος μακριά απ' την Ελλάδα.

Πριν από 4 μέρες κλείσαμε 1 χρόνο ως νεο-μετανάστες, όπως πολλοί που διαβάζουν αυτό το blog είναι ήδη υποθέτω. Θεωρώ ότι ανήκουμε στην κατηγορία,  'αργήσατε αλλά τα καταφέρατε' μιας και αρκετός κόσμος την είχε ήδη κάνει την τελευταία πενταετία. Θυμάμαι εκείνο το πρωινό στον Ελ.Βενιζέλος, νόμιζα ότι πάω διακοπές και θα ξαναγυρίσω. Αλλά δεν γύρισα, ίσα ίσα ήταν η αρχή για ακόμα μεγαλύτερες αλλαγές.

Φύγαμε απ' την Ελλάδα κυρίως για επαγγελματικούς λόγους, οι οποίοι έχουμε άμεση σχέση με το γενικότερο well being και φυσικά το μέλλον μας. Εγώ προσωπικά στα όρια της απογοήτευσης μετά από πολλά χρόνια στην Ελληνική αγορά να πολεμάω για τα αυτονόητα ή να έχω αυταπάτες (όπως πολλοί manager-τέτοιοι μου είχαν πει). Δεν ξέρω τελικά τι ήταν σωστό ή λάθος. Για να μην γίνομαι κακός με ανθρώπους, καταστάσεις, κουλτούρα και εταιρίες θα καταλήξω στην πιο ώριμη εκδοχή.

"Στο τέλος της ημέρας όσο πιο μικρή είναι η αγορά, τόσο λιγότερο ανταγωνιστική, οσο λιγότερο ανταγωνιστική τόσο πιο φτωχή σε ευκαιρίες, όσο πιο λίγες ευκαιρίες τόσο πιο βαρετή και σκληρή για να σε βοηθήσει να εξελιχθείς σε γνώσεις ή και οικονομικά. Όσο πιο πολλά θέλω, απαιτήσεις, αυταπάτες (πες το όπως θες) έχεις από την δουλειά σου και την καριέρα σου, τόσο πιο πιεσμένος θα νιώθεις σε ένα τέτοιο περιβάλλον. Όσο πιο απογοητευμένος νιώθεις τόσο πιο πολύ πιέζεσαι να αποδεχθείς την κατάσταση και να αγκαλιάσεις το 'σύστημα' ή απλά να φύγεις."

Ήταν τελικά στο εξωτερικό καλύτερα τα πράγματα- επαγγελματικά; 

Ναι και όχι. Στην πρώτη μου απόπειρα όχι δεν ήταν (για τα δικά μας θέλω). Βρεθήκαμε σε μια χώρα όπου κατάλαβα πόσο στρεβλή είναι η ελληνική αίσθηση της ποιότητας ζωής, που κατάλαβα πως είναι να λειτουργούν οι βασικές δομές του κράτους και του γενικότερου συστήματος. Αυτό μου άρεσε, μπόρεσα να ξεπεράσω το σοκ και την ιδέα ότι έφυγα από την χώρα μου, είδα ότι υπάρχει μέλλον και ζωή έξω. Μου άρεσε αυτή η αίσθηση της οργάνωσης, της ηρεμίας, του προγράμματος, της σταθερότητας.

Επαγγελματικά  βέβαια (IT), βρέθηκα σε μια ακόμα πιο μικρή χώρα σε ευκαιρίες, με εντελώς στρεβλή αγορά εργασίας (μονόπατη για να το πω λαϊκά, ή μονοθεματική), λογικούς μισθούς για τους newcomers (οι πιο παλιοί θα είχαν ζήσει χρυσές εποχές) αλλά σε γενικές γραμμές κανένα σημάδι ότι θα μπορούσα να 'συμπληρώσω' στο βιογραφικό μου εμπειρίες και ονόματα που θα με βοηθούσαν στο μέλλον ή θα ένιωθα ότι 'ξεδίψασα' άπ' τα επαγγελματικά μου θέλω. Correction time.

Έτσι χωρίς πολλά πολλά είπαμε να αποχαιρετήσουμε την χώρα των euro-δημοσίων υπαλλήλων (Λουξεμβούργο) και να πάμε σε μια αγορά που μπορούμε να παίξουμε με τις ευκαιρίες της και μάλλον να εκπληρώσουμε πολλά απ' τα θέλω μας. Enter London, UK.

Είναι καλύτερα;

Ναι, αν και η κίνση αυτή είχε μεγάλη ταλαιπωρία και άγχος τώρα μετά από 3 μήνες, νιώθουμε ότι κάναμε το σωστό. Είμαστε αρκετά πιο αισιόδοξοι επαγγελματικά, νιώθουμε ότι σιγά σιγά γινόμαστε πιο ανταγωνιστικοί και το πιο σημαντικό, παρόλο που πουθενά δεν υπάρχουν οι τέλειες ευκαιρίες, οι τέλειες εταιρίες, μας δημιουργεί ένα αίσθημα ασφάλειας το γεγονός ότι μέσα στην εβδομάδα τα τηλέφωνα θα χτυπήσουν 2-3 φορές για προτάσεις. Βαρέθηκα; δεν θεωρώ ότι η τωρινή μου δουλειά με καλύπτει από θέμα, φιλοδοξιών και  χρημάτων; Είναι μια απόφαση απλά καθαρά δική μου, για ξεκινήσω και να μπω στο ξανά στο job hunt. Δεν είναι εύκολο, ούτε ευχάριστο αλλά είναι καθαρά δική μου απόφαση, και αυτό με κάνει να νιώθω ήρεμος. No dependencies, αν θέλεις κάτι καλύτερο, αν πιστεύεις ότι αξίζεις κάτι καλύτερο, 'ιδού η Ρόδος, ιδού και το πήδημα'. 

Ωραία τα επαγγελματικά στο IT και η ζωή;

Είναι η πιο συνήθης ερώτηση. Δεν υπάρχει σαφής απάντηση. Μάλλον υπάρχει για εμάς, αλλά δεν σημαίνει ότι είναι συμβατές με τον καθένα. Προσπαθώ πάντα να 'καταλάβω' ή να μάθω το background του καθένα που με ρωτάει για να του φέρω απλά παραδείγματα ή στοιχεία που μπορεί να συγκρίνει. 

Δεν υπάρχει η τέλεια κατάσταση. 


Φεύγεις από την χώρα σου, από το σπίτι σου. Σου λείπει πάντα η οικογένεια σου, οι φίλοι σου, η γειτονιά σου και πόλη σου (σαν αίσθηση) . Πρέπει να μάθεις να ζεις σε ένα διαφορετικό περιβάλλον, να επικοινωνήσεις, να προσπαθήσεις να ενταχθείς σε όποιο νέο κοινωνικό σύνολο. Αν δεν έχεις διάθεση ή δύναμη να ασχοληθείς με πράγματα που δεν είχες σκεφτεί ότι θα σε απασχολήσουν στην ζωή σου θα δυσκολευτείς.

Αρκετός κόσμος, αναζητά ένα καλύτερο αύριο. Νομίζω από τις πιο πολλές ερωτήσεις που δέχομαι σε email και facebook, το βασικό κίνητρο (μετά από λίγο συζήτηση) και η μεγάλη ερώτηση είναι 'Θα βγαίνω οικονομικά;' . Είναι σύνθετη η απάντηση, αλλά μια γρήγορη απάντηση είναι, 'θα μπορείτε να έχετε 2 μισθούς στο σπίτι;'. Δεν είναι μακρυά και από την κατάσταση στην Ελλάδα, 2 μισθοί στο σπίτι σημαίνει μεγαλύτερες αντοχές, μεγαλύτερη ευελιξία. Το ίδιο ισχύει για έξω απλά επειδή τα ποσά είναι μεγαλύτερα και τα έξοδα πολλαπλάσια, δεν υπάρχει ευκολα χώρος για να συμβιβαστείς. 1 μισθός σε μια ακριβή χώρα ή πόλη σημαίνει συμβιβασμοί, ποιοί θα είναι αυτοί είναι σχετικό με το lifestyle και τις απαιτήσεις του καθένα. Εξαιρώ φυσικά  καταστάσεις όπου 1 μισθός μπορεί να συντηρήσει σε υψηλά standard ολόκληρη οικογένεια. Υπάρχουν και αυτές οι περιπτώσεις (δεν είναι πολλές) αλλά υπάρχουν. Δεν ανήκω σε αυτή την κατηγορία.

Να φύγω;

Ναι
αλλά για τους σωστούς λόγους. Ποιοι είναι οι σωστοί λόγοι; Εσύ θα αποφασίσεις αλλά προσπάθησε να μην σκέφτεσαι με το κλασικό Ελληνικό μεγαλείο. Όχι δεν είμαστε πιο έξυπνοι από άλλους λαούς, και δεν μας περιμένουν στο εξωτερικό για να μας δώσουν κουβάδες λεφτά και να μας δοξάσουν. Πρέπει να προσπαθήσουμε και εμείς όπως όλοι οι άλλοι. Όχι δεν έχουμε πιάσει τον πάπα από τα @@, που είμαστε μετανάστες (αρκετοί Έλληνες ιδιαίτερα εδώ στο Λονδίνο έχουν αυτή την τάση, να λένε πόσο φοβεροί είναι που ζουν εδώ, λες και είναι οι πρώτοι που ανακάλυψαν την Αμερική). Αυτή η  βλαχοποζεριά δεν μας αφήνει ποτέ. Ναι υπάρχουν ευκαιρίες παντού, και ανάλογα με τα skill σου, και σε ποια αγορά θα πας, θα πρέπει να κάνεις και τους κατάλληλους υπολογισμούς. Όσο δύσκολο είναι να διατηρήσεις το Α επίπεδο ζωής με έναν μισθό στην Ελλάδα και χωρίς δικό σου σπίτι, είναι διπλάσια δύσκολο έξω. Ρώτα και ψάξε όσο πιο πολύ μπορείς. Δεν είναι κακό ούτε ντροπή. Έλληνες υπάρχουν παντού, γνωστοί γνωστών, προσπάθησε να παίρνεις πληροφορίες από ανθρώπους που είναι φρέσκοι σε έναν τόπο και όχι από κάποιους που είναι πάνω από 10-15 χρόνια γιατί οι απόψεις τους και τα επίπεδα σύγκρισης είναι πια διαφορετικά και μακρυά από την πρόσφατη ελληνική κατάσταση.

Review του χρόνου ξανά! Καλή τύχη και καλό κουράγιο σε όσους το έχουν σκεφτεί ή έχουν πάρει ήδη την απόφαση. Καλή υπομονή και σε αυτούς που μένουν πίσω.
 

Tuesday, April 19, 2016

Judo ... στο Λονδίνο..και σκέψεις πίσω στον δικό μου σύλλογο.

 Το να βρω νέο dojo και να ξεκινήσω προπονήσεις είναι στιγμή ορόσημο σε κάθε αλλαγή χώρας. Εύχομαι ότι δεν θα χρειαστεί άλλη. 

Μετά απ΄το σύντομο πέρασμα σε ένα αρκετά συμπαθές και μικρό σύλλογο στο Luxembourg, σήμερα έκανα την πρώτη μου προπόνηση στο Sobell Judo Club, στην περιοχή του Isligton (κοντά στο emirates) που έχει γίνει και μια απ' τις αγαπημένες μου περιοχές γενικά, ιδιαίτερα απ' το Angel και προς τα πάνω.

Ο sensei Σ.Σαμσών  8 νταν , με εντυπωσίασε,  πραγματικά έμεινα ευχαριστημένος  από την ευγένεια  αλλά και τον τρόπο διδασκαλίας του.  Επίσης μπορούσα να ανταλλάξω και μερικά ελληνικά μαζί του πάνω σε τεχνικές. Ιδιαίτερα φιλικοί και ευγενικοί οι αθλητές, το τμήμα είναι mixed, άνδρες, γυναίκες και μικροί Judoka,  είχα την ευκαιρία να τους γνωρίσω όλους και να με κάνουν να αισθανθώ αρκετά άνετα. Ότι περιμένεις δηλαδή σε κάθε dojo.  Οι προπονήσεις είναι 2 φορές την εβδομάδα, από 1.5-2 ώρες. Το dojo είναι μέσα σε ένα μεγαλύτερο αθλητικό κέντρο με πολλές δραστηριότητες και χώρους - μου θύμισε το γυμναστήριο του πανεπιστημίου πριν πολλά χρόνια - αλλα 3 φορές μεγαλύτερο.

Αυτή είναι η μαγεία του Judo, μια παγκόσμια οικογένεια με τις ίδιες αξίες. Δεν έχει σημασία που θα πας, όταν πατήσεις το πόδι σου σε ένα dojo, θα σε αγκαλιάσουν σαν 'brother' όπως μου είπαν σήμερα και θα προσέξουν να ενταχθείς γρήγορα. Ανεξάρτητα απο θρησκεία, χρώμα ή καταγωγή.

Μιας και το γράφω αυτά δεν ξεχνώ να βοηθάω και να συμμετέχω οσο μπορώ ηλεκτρονικά στον 'αγαπημένο΄μου σύλλογο, τον Συλλογο Judo Περιστερίου - Dojo Club. Σε πιάνει μια μελαγχολία μερικές φορές όταν βλέπεις τους δασκάλους σου και παλιούς συναθλητές σου σε φωτογραφίες, να συνεχίζουν την προσπάθεια, να κάνουν δραστηριότητες και να μεγαλώνουν τον σύλλογο. Αν είστε απ΄ τα δυτικά και θέλετε να μάθετε για το judo, κάντε μια βόλτα πάνω στον Άγ. Βασίλειο στο Περιστέρι - υπάρχει μια θερμή judo παρέα.
hajimeee λοιπόν και στο Λονδίνο!