Masterclass: React component patterns

Date: 9-10 May 2018, Iasi
Days: 2 (16 hours)

Target audience: Intermediate developers (basic React and Redux knowledge

Training fee: €330/participant plus VAT, only 15 seats available
To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).


1. Stateless functions
a. What are stateless functions?
b. When to use
c. Drawbacks
2. JSX spread attributes
3. Destructuring arguments
4. Conditional rendering
a. If
b. Unless
c. If / Else block
5. Arrays as children
a. Usage with functional methods (mapfilter, etc.)
b. Explanation of React keys
6. Controlled vs. uncontrolled components
a. What are controlled components?
b. What are uncontrolled components?
c. Dealing with controlled vs. uncontrolled
d. When to use controlled vs. uncontrolled
e. Drawbacks
7. Container vs. presentational components
a. What are container components?
b. What are presentational components?
c. Reasons behind the split
d. Practice with container vs. presentational in simple React
e. Practice with container vs. presentational in React + Redux
8. State hoisting
a. Advantages of hoisting state
b. Drawbacks and possible gotchas
9. Provider / Consumer pattern
a. New context API in React 16
b. When to use Provider / Consumer pattern
c. Drawbacks
10. Higher Order Components
a. What are HOCs?
b. Practice with HOCs
c. Example of HOCs in the wild (withRouter, connect, etc.)
d. When to use HOCs
e. Drawbacks
11. Functions as child components
a. What are functions as child components?
b. Practice with functions as child components
c. Differences between functions as child components and HOCs
d. When to use functions as child components
e. Drawbacks
12. Short recap

This agenda represents the contents for a 2 days (16 hours) based training, covering a great number of React related concepts, knowledge and practical applications. Although the training content can be tweaked on a per case by case basis, for maximum results we recommend sticking with the complete agenda.

1. Every student will have his/her own laptop. For best results, it is not advisable to multiple people working on the same machine
2. Node v8.9.4 or greater installed (
3. Git v2.16.0 installed (
4. An IDE/code editor of choice (Sublime Text, Atom, Visual Studio Code,
WebStorm, etc.)

This training assumes the participants are already familiar with ES6 concepts
(classes, destructuring, default parameters, arrow functions, let/const, etc.), basic JavaScript knowledge and syntax, npm (interacting with the npm ecosystem, package.json), Git (basic commands) and that they have basic React and Redux knowledge (JSX, VDOM, state, props, event management, component lifecycle hooks, actions, reducers, store, mapStateToProps, mapDispatchToProps etc.). Thus, the aforementioned concepts will not be discussed or detailed during the training.

This training targets intermediate developers who would like to upgrade their
React knowledge by finding out more about React component patterns, when
and how to apply them and gain architectural knowledge useful in scaling
applications based on this technical stack.

The trainer
Vlad is a pragmatic software engineer, Google Developer Expert and an avid caffeine consumer. He loves surrounding himself with ever smiling people and he’s constantly pushing his limits in order to become a better professional. He always keeps an eye opened to the ever-changing landscape of technologies he’s interested in. A true believer in the power of sharing your knowledge and becoming a better individual through collaboration and feedback, Vlad regularly speaks at conferences and meetups where he shares his passion for everything tech related.

Vlad is co-organizer of CluJSers, being actively involved in the development of several tech communities and acting as an advisor for a couple of well known
Romanian conferences such as Codecamp and JSHeroes. In October 2016 he
joined the Google Developer Experts group as the second professional in the world with knowledge revolving around the React ecosystem. Shortly after, he founded KRAK3N, his own consultancy company and has been, since then, helping clients and individuals build amazing products, deliver business value, solve complex JavaScript challenges, learn and apply React and embrace Agile methodologies in their work environments.

His teaching experience is vast, Vlad being responsible for mentoring over 100 people while working for companies such as Yonder, 3PillarGlobal or acting as a Fullstack JavaScript Instructor for Viking Code School. For more information about him, feel free to follow him on Twitter, read his personal website, consult his company website or explore a short list of talks he has given so far.


Training fee: €330/participant plus VAT, only 15 seats available
To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).


Browse more masterclasses here.

See how Artificial Intelligence is changing the way we live our lives

AI as a strategic area of investment in order to stand out from the crowd. For instance, a survey conducted by Vanson Bourne, a research firm on behalf of Teradata on 260 IT and business decision-makers, reveals that more than 80% of companies are investing in AI.

Industries impacted by AI

Even if AI has an impact on all industries, there are several areas that will be revolutionized by it. The above-mentioned survey also shows that 59% of companies from IT and telecommunication expect to take advantages from AI, followed by 43% business and professional services and 32% of customer services and financial services.

AI will revolutionize medicine

2018 it’s considered the year when AI will expand more to medical diagnostics. “By the end of next year, I think around half of leading healthcare systems will have adopted some form of AI within their diagnostic groups. In 2018, we’ll begin the adoption of a technology that may truly transform the way providers work, and the way patients experience healthcare, on a global scale”, explains Mark Michalski, executive director, “Massachusetts General Hospital” and “Brigham and Women’s Hospital Center” for Clinical Data Science.

AI in everyday life

AI has changed so much our daily life that soon we will ask ourselves how we were able to live without it. 2018 is expected to be the year in which voice-based gadgets will work together and have personalized media – from reports to music playlists, according to our taste and interests.

AI will create new jobs

AI also seems to bring changes in the labor market. People are concerned that their jobs will be replaced with robots in the future. According to a Gartner report from December 2017, AI will replace only low-level, routine work. Besides this, AI is expected to generate more new jobs – 2.3 million by 2020, while eliminating only 1.8 million jobs.

Read this article and learn more about this topic.

HARMAN – A Samsung Company

Were you aware that Harman designs, manufactures and markets a wide range of audio, lighting and infotainment solutions for the automotive, consumer and professional markets?
For example, did you know they engineer the infotainments systems for BMW (iDrive), Mercedes-Benz (COMMAND), Audi (MMI), Chrysler (Uconnect) and many more?
Harman is a recognized world leader across its customer segments with premium brands including AKG, Harman Kardon, Infinity, JBL, Lexicon and Mark Levinson.
The company is admired by audiophiles across multiple generations and supports leading professional entertainers and the venues where they perform.
More than 25 million automobiles on the road today are equipped with Harman audio and infotainment systems.
More than 80 percent of the world’s luxury cars are equipped with our premium audio and infotainment systems.
Your favorite music, movie or television show was likely recorded or broadcast with our help. We share the stage with talented performing artists from every genre, and we fill the world’s premier sporting and entertainment venues with great sound and light.
But HARMAN stands for more than just great sound. We help create great lifestyle experiences for today’s connected generation.
Updates and enhancements are automatically downloaded as they become available, and real-time diagnostics alert you when routing services or repairs are indicated.
For more about our automotive cloud offerings, visit the Connected Services section of our website.
HARMAN’s innovative and highly integrated infotainment technologies offer automakers the most complete solutions for advanced navigation, intuitive user interfaces, integrated audio, device connectivity, cyber security, and connected safety, just to name a few. From Boston to Berlin to Bangalore, HARMAN is delivering a dynamic in-car experience for an increasingly connected world.

berg COMPUTERS – an IT company that brings enthusiasm among programmers

There are many cool IT firms in Timisoara, but berg COMPUTERS believes that its charm is the one that attracts more and more developers to be part of its team. berg COMPUTERS is one of the fastest growing IT companies in the region, specializing in technology consulting, software development and software outsourcing. Its team of software developers successfully implements complex and innovative projects for its global clients, since 1991.

The fact that berg COMPUTERS office is just outside the city makes it a perfect workplace for programmers who want a job in a relaxing and creative workspace. One of the attractions that impress all new colleagues is surely the company’s terrace where employees spend lunch breaks. Even the coffee tastes better when you enjoy it with your team in the crisp cool morning air.

The offices are invaded by natural light and the open space is perfect for sharing with your teammates assignment details or gossip about the last night’s movie. berg COMPUTERS works with technologies like Java, .Net, PHP, JavaScript on challenging global projects. Meetings are extremely creative because at berg COMPUTERS people use design thinking methods by which they gather their ideas on post-its on the board, then brainstorm and find together the best way to solve a problem.

Sometimes, in order to disconnect for a few minutes, employees enjoy a little friendly competition in the company’s ping-pong championship. Whoever wins the championship delegates bugs to other programmers. 😉 And because they are foodies, many of their internal events revolve around food.

Every month one of their teams takes control of the kitchen and cooks for everyone. They enjoy fresh fruit at the office and traditional delicacies from local producers. They’ve come to know each other very well in team buildings, at their summer/winter parties, themed events and outings at the cinema, bowling, karting, and more.

If you are motivated to work with international clients, on innovative projects, and you are good at programming, you can become their colleague. Go to and learn more about them!

Externalized Configuration with Spring Cloud Config and Vault

You start a new project. In the beginning, it’s mostly prototyping; you try out ideas and nothing is fixed yet, so you are very pragmatic when it comes to the configuration of your application. Some property files are stored next to the source code – at least you are not using hard-coded URLs and credentials! When you first deploy the application to a dev or demo environment, you simply copy and modify the property files. The prototype turns into production code, yet the configuration is still managed in an ad-hoc manner. Does this sound familiar to you? It was, at any rate, the situation I found myself in with one my of current projects somewhat more than a year ago.

Maintaining separate copies of the configuration files in different environments was probably never the best approach, even when we used to deploy onto few long-running snowflake servers. Given that we more and more learn to take advantage of cloud offerings, therefore often create short-lived application environments for, e.g., tests, and deploy even our production systems as phoenix servers, we need to do better.

Read this article if you want to find out how Haufe approached this issue in one of their Spring Boot-based projects using Spring Cloud Config and Spring Cloud Vault and how they customized these libraries to meet their needs.

Automate Amazon Machine Images(AMI’s) with Packer

What is an AMI?

An Amazon Machine Image (AMI) provides the information required to launch an instance, which is a virtual server in the cloud. You specify an AMI when you launch an instance, and you can launch as many instances from the AMI as you need. You can also launch instances from as many different AMIs as you need.

Let’s see what Packer is:

Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration. A machine image is a single static unit that contains a pre-configured operating system and installed software which is used to quickly create new running machines. Machine image format changes for each platform like: AMIs for EC2, VMDK/VMX files for VMware, OVF exports for VirtualBox, etc.”

The reason Packer is used to create our instances, instead of already existing AMI’s tools, provided by Amazon, is that we want to have the full control for our images creation, choosing how we want to install only the packages we need. Having full control on your AMI’s creation, will be more secure.

You can find out here how to create an AMI from scratch starting from an .iso you want, using your favorite OS.

Masterclass: Reactive and Asynchronous Java

Date: 15 – 16 March 2018, Cluj-Napoca
Training fee: €600/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

About the training

Reactive and Asynchronous applications are growing in popularity, but what is the best way to build them? This course teaches you how to apply the latest concurrency techniques to develop state of the art Java applications. With the rise of Microservices and Service Oriented Architectures, asynchronous concurrency is now critical to day-to-day Java development.

We start off by reviewing the differences between asynchronous and synchronous programming. You then build upon this theory by refactoring a project using different modern concurrency techniques including promises using Java 8’s CompletableFuture, actors using Akka and reactive streams using RxJava. You’ll learn the good, the bad and the ugly between these approaches in terms of compositionality, testability and simplicity.

Course Outline

Day 1

Asynchronous vs Synchronous Programming

Asynchronous Servlets (3.0) and Spring
Why use asynchronous communications?
Solving the C10K Problem and the Microservices Performance problem

Approaches to Concurrency

The Reactive Manifesto and Functional Reactive Programming
Models of Concurrency: Event Based, Promises, The Actor Model, Reactive Streams
The full stack – from application right down to the OS

Promises using CompletableFutures

What is a Promise?
Creation patterns
Composition patterns
Exception handling
Sequence patterns

Day 2

The Actor Model with Akka

What is the Actor model?
Why and when would you use actors?
Using Akka
Testing actors
Recovering from exceptions
Integration patterns

Reactive Streams with RxJava

Introducing Reactive Streams
Connecting Reactive streams to databases and web sockets
Pull vs. Push models
Using RxJava
Java 9 Flow API
Alternative Reactive Stream Implementations
Threading and Back Pressure

The trainer

Richard is an empirical technologist and solver of deep-dive technical problems. Recently he has written a book on Java 8 Lambdas for O’Reilly. He’s worked as a developer in many areas including Statistical Analytics, Static Analysis, Compilers and Networking.

He is a leader in the London Java Community and runs OpenJDK Hackdays. Richard is also a known conference speaker, having talked at JavaOne, Devoxx, JFokus, DevoxxUK, Geecon, JAX London and Codemotion. He has obtained a PhD in Computer Science from The University of Warwick.

Training fee: €600/participant plus VAT, only 25 seats available
To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

Browse more masterclasses here.

Energized for Knowledge at Codecamp Cluj 2017

This fall, we attended one of the season’s much-anticipated IT conferences in Cluj: Codecamp. A conference that targets and brings together people from all IT disciplines, from enthusiastic students to senior developers. The one-day event consisted in a series of talks held simultaneously throughout the day.

Codecamp Romania encourages the exchange of ideas and information amongst IT professionals all around the country. We strongly believe in this type of knowledge sharing, peer to peer learning, personal and professional development. We had to be present.

Sustaining the idea of professional growth, our colleague Bogdan Mursa held a talk about Artificial Intelligence techniques used in developing software for the real estate market. He described to the curious audience, how Yardi Kumo, a web crawler, aggregates real estate information from thousands of websites, solving complex tasks that might be impossible for classical programming.

Read everything about the Codecamp experience through the eyes of Yardi team here.

The Codecamp experience

“I’ve been with Codecamp for about five years now. It caught me in my early stages of my professional career. Even then, I knew I had something to share with an audience, but I didn’t know how. I was scared I would make a fool of myself. And I guess a little too proud to let my ego suffer a possible failure.

That’s when I met Florin. He is one of the core organizers of Codecamp and he also possesses this sometimes uncanny ability to encourage people to bring up the best in themselves and take action in doing what they want despite their conservation instincts. So he talked me into showing up for the next edition of the conference. And that’s how Responsive images in the wild was born.
Being part of this movement was one of the best things that happened to my professional career. It opened up roads I probably wouldn’t have explored on my own. I’ve grown to appreciate more the effort that goes into building a community like this over the years and organizing a conference. I’ve also had the chance to take all that knowledge and have my fair share of experiences organizing other conferences, building communities or putting together technical events. I couldn’t have done that without the proper context, without myself being part of a movement whose aim is to bring people together so they can share things.”

Read Vlad’s story here.

Meet Haufe Group

Haufe Group offers integrated and comprehensive workplace solutions to successfully manage tax, commercial and legal challenges. Their solutions cover content, applications, professional training and qualifications, services as well as Online communities and portals.

Their target groups are small, medium and large companies, self-employed/freelancers, as well as tax and legal advisers, public services and NGOs.

They have consistently developed into a specialist for digital and web-based services. Headquartered in Freiburg, Germany, Haufe employs approximately 1,800 people around the world.

As a provider of integrated enterprise and workplace solutions, they endorse a management approach that places employees at the center of entrepreneurial thinking and action. Their employees make our company successful!

With over 7 years of successful projects in software development, their team in Timisoara has now the target of becoming an Engineering Center.

They encourage a culture that allows you to:

Have courage

Be curious

Engage & Excel

Be part of a performing Team

Check them out:


Linkedin: Haufe Group

Facebook: Haufe-Lexware Romania

Youtube: Haufe-Lexware Development