GrowIT is a brand new, 2-days long IT conference. The concept of this event consists of gathering IT professionals and those who are looking to become IT professionals around a few common causes – knowledge, technology and career.

Saturday 1st December 2018

Slow Down To Go Faster Than Ever, But How?
Keynote by Lemi Orhan Ergin in Track A (45 minutes)

Software development has evolved so quickly throughout the years. New tools, methodologies, practices, even new disciplines and principles have been introduced. From single individuals to tens of inter-connected development teams, from co-located teams to fully-remote distributed teams, software development professionals have developed new ways of doing their professions to achieve one single target: Building successful products. Regardless of the technologies we use and the structures we build, our biggest challenge remain still: Catching deadlines, building high-qualified software that lasts long and being in the market earlier than our competitors. Going fast without control could be the biggest enemy of software development. After working as Agile Practice Lead for years and touching hundreds of teams in my career, I now believe the only way to go fast is going slow efficiently. Going slow could destroy your career, your product, even your company, but it is the only way to go faster to succeed. In this talk, you will learn: * how to build a development culture that builds software faster than ever. * the principles and techniques behind slowing down under control. * the myths and fallacies of development practices and the realities behind. * real life examples of establishing an environment for efficient continuous delivery. By the end of the talk, you will be able to know how you can change the way you and your team should work to go faster than ever.

Multiplayer games with WebXR
Talk by Tanay Pant in Track A (45 minutes)

Virtual Reality is a technology used for building realistic experiences for games, environments, content display as well as marketing. In this session, I will teach the participants about 3D objects in the web, virtual reality, VR devices, WebVR, WebVR API and finally building games with A-Frame. In this talk, I will also showcase creating a multiplayer game similar to Pokemon Go using WebXR in a live coding session. The live coding session will cover topics such as creating the game scene, importing 3D objects, interaction with objects, adding animations, implementing WebAR and adding multiplayer capability to the game with real time databases. By the end of the session, the participants will have a complete understanding of what WebXR is and they will be able to create cross-browser WebXR experiences as well as multiplayer games similar to Pokemon Go.

Testing & RxJava2
Talk by Sasa Sekulic in Track B (45 minutes)

With RxJava you can write some complex, multithreaded code – and testing it is easy!

So, you're writing code one line at a time? Yeah, right.
Talk by Zoran Horvat in Track C (45 minutes)

Iterative development is one of those agile techniques that so often turn into their opposite: blinded by the very iterations, developers cannot see the upfront design they are implicitly following. Isn’t there anything we can do to improve iterative development? In this presentation, you will see how code can grow one line at a time, literally, and yet every next line will add one complete, and often final, feature to the design. A good design – the one with responsibilities separated, components loosely coupled, with good naming and other qualities we prefer.

Enterprise grade React application - A refactoring journey
Talk by Bogdan Begovic in Track A (45 minutes)

Have you ever wondered how modern Front End frameworks and libs are used in huge enterprises systems? What is the way to reduce complexity, improve maintainability and reduce technical debt? This talk will present you a journey of refactoring huge enterprise-grade system with more than 4000 web pages, from ExtJS to React library. You will learn why it is a good thing to keep your core vanilla (JS) and how can you structure such a huge project. You will see how we can remove coupling and reduce technical debt, how Redux library can help you with refactoring and how can you document the whole process with a Storybook project. And finally, you will learn some architectural tips and tricks to make your code easier to maintain, test and build upon. P.S. Also, as a bit of sprinkle on top, you will see what processes have been put in place so that the code quality is preserved and improved over time.

Making the cloud event-driven and orchestrated
Talk by Ivan Čuljak in Track B (45 minutes)

Years have passed since serverless started being a hype. Tensions are lowered now, we’ve learned a lot in the mid time, we’ve figured out what for is serverless useful, and how to use it, but we’ve also figured out what are we missing, at least out-of-the-box. One of the things we are/were missing is the ability to react on a broad spectrum of events in the same way, whether we’re talking abut a click on a web page, a message between parts of our system, an information that a virtual machine has spun up, or even that our credit card has bounced… The other major pain is/was chaining of serverless functions, keeping track what, and where failed, decently handle errors, basically… having the whole system make us proud, instead of looking like something that MacGyver patched up during a single episode to flee from some narco boss. Azure gave us EventGrid to solve the first pain while allowing us to event react to inter-cloud events, and we’ve got Durable Functions to orchestrate whatever we feel like. The goal of this talk is to give you an overview what can you expect when you start playing with serverless more seriously, as to give you some advices how to make your serverless architecture more serious, more stable, and less demanding to constantly watch over your e-mail to see if something has crashed, and degraded. If you want to hear stories from 18 months of serverless “trenches”, please join.

Grow it! Grow your product, save both time and money!
Talk by Dušan Zamurović in Track C (45 minutes)

This is the story about building a business analytics platform – growing fast to satisfy business needs, measuring signals to understand impacts and racing around to be the first in the market. And keeping the wallet fat, saving both time and money, standing on shoulders of giants. Let’s talk money! Let’s talk tech money! We want to win, to be the first so we have to think about solutions that save us time, money and maintenance efforts while providing solid foundation to answer business requests. This talk is the story of functional data engineering, idempotent computations and highly scalable cloud based business analytics. Audience will hear about serverless architecture, reactive functions, replayable, idempotent computations and underlying storage models. And we will talk what tech people do not talk enough – we will talk about money – how much do we cost, how to make more and how to cut down even more…

Panel - Developers’ career life cycles
Event Related by Jasmina Nikolić, Milan Puvača, Michiel de Wit, Jure Cuhalev in Track A (1 hour)

In this Conversation on Developers’ Career Life Cycles our moderator and panelist Jasmina Nikolić, Milan Puvača, Jure Čuhalev and Michiel de Wit will talk about some real global problems concerning the challenges and opportunities for developers’ personal and career growth from becoming to staying relevant. Together with the participants, our moderator and panelists will try and answer question such as: How do you figure out that you’re stuck? What are trade-offs between being consultant, freelancer, business owner, architect, technical manager (or quitting it all and becoming goat farmer)? How and where do you learn and acquire new skills? How do you choose your next career move? What are the prospects for older developers? How do you turn your gray hairs to your advantage? And how agility can help?

15:30 Empathy as a Service: Supporting Mental Health in the Tech Workplace
Talk by Nara Kasbergen in Track A (45 minutes)

At any given time, 1 in 5 adults is living with a mental illness, such as depression, bipolar disorder, generalized anxiety disorder, substance use disorder, burnout, or ADHD. At the same time, the tech industry is often characterized by high stress, long hours, workplace pressure to be available by phone and e-mail after-hours or sometimes even while on vacation, social pressure to constantly network and attend conferences and make a name for yourself, and the precarious balance between trying to do good by contributing to open-source and maintaining some semblance of free time that doesn’t involve coding. Given how this demanding environment increasingly blurs the line between our professional and personal lives, how can we ensure that the most vulnerable among us aren’t being left behind? As a community, the single most damaging thing we can do is continue to treat mental health as a personal shortcoming that can’t be talked about openly. We shouldn’t think of it as “somebody else’s problem”; the 4 in 5 of us who don’t currently have mental health disorders must do our part to help end the stigma. This talk will begin with an overview of key statistics about mental illness, followed by the efforts of the non-profit organization Open Sourcing Mental Illness to gather more data about mental health in the tech industry, and finally conclude with ideas and strategies for making our tech workplaces more accommodating and inclusive.

Tech bankruptcy: Looking back on a decade of bad decision making
Talk by Luka Kladaric in Track B (45 minutes)

Since the dawn of software development, we’ve been faced with the same impossible choice every single day: do it quickly or do it well. We do our best to make the right choice for the task at hand, and we move on. Then came the lean startups & “Move fast and break things” and put their thumbs on the scale in the favor of the hacks, the MVPs, the just-ship-its, and the Product Managers just ate. it. up. That’s great, for proving a concept or finding a market fit. But what happens when that’s all you do? When the entire organization, top to bottom, has collectively forgotten how to write quality software. When you become unable to make the correct technical decision even by accident. We will take a deep dive on a mission-critical web application that is basically unusable on its best day, and trace the trivial bad decisions that got it there. You will never take a shortcut again.

Mob Programming - Or why it’s a good idea to have only one computer per team
Talk by Lars Haßler in Track C (45 minutes)

Software development is hard, especially because everything can and will change as everybody has to become more agile. Problems are getting bigger and bigger for one brain to comprehend, this is why many companies are already working in a pair programming approach. So why not turn this all the way up? This talk will be an introduction into mob programming, when to use it and how to use it correctly. Within it, I’ll talk about my experience while trying mob programming with different teams within Trusted Shops, what the benefits are and what gotchas to look for, when trying it.

Auditing Smart Contracts: Beyond Code and Into Godmode Backdoors
Talk by Bruno Škvorc in Track A (45 minutes)

Auditing code for security is important. But what about auditing for logic? How many tokens do you own? And how many tokens have you inspected, source-code style? How many tokens can you actually store on a paper or hardware wallet without fear of someone grabbing them, just like that, even when offline? You’d be surprised to learn that you don’t actually “own” many tokens. In this talk, I’ll show you what I mean by this and how to check for these pitfalls.

Running applications in a production environment
Talk by Nikola Krgovic in Track B (45 minutes)

What can the developers expect when IT Grows. How does the environment in which the applications run change, once the growth of business and the flow of income, or the SLA’s with clients, move the production system into a highly available setup, what should the developers expect and what changes will they have to make.

Why Scrum doesn’t work for many teams? What we should do to make it work?
Talk by Nenad Laskovic in Track C (45 minutes)

Most of the software companies these days are using some variant of the Agile approach, mostly Scrum. The experiences vary. From implementing only some of the elements (“we do daily meetings, use Jira and sprints of various length”), to the excitement and a religious zeal (“Scrum is the only way. Thou shalt have no other ways.”), to abandoning of Scrum approach. Most common complaints are that Scrum meetings are taking too much time and that Scrum is not efficient. Because all those different experiences, there is a lot of discussions whether Scrum is just another passing fad and predictions about “the end of Scrum”. The goals of this talk are to revisit what are the reasons for using Scrum and what are the essential requirements needed for Scrum to be successful. Especially, what is the relationship between the business (“how to build the right product”) and engineering (“how to build the product right”). Finally, we’ll discuss what each of us, being in development or business, can do to make the process of building software successful.

17:00 There and Back Again: e2e Testing React with Cypress
Talk by Nikola Đuza in Track A (45 minutes)

“Argh, e2e tests, not again” – you must be saying to yourself. But this time it will be fun and less stressful than usual, I promise. Get ready to find more about Cypress – tool for e2e testing by testing React code with a backend. Pack your backpack, we’re going on an adventure! This talk would introduce Cypress and its features to the audience. The talk will show how to properly test React front end and connect it to the back end. It would also teach a couple of philosophies that come with using Cypress and best practices for its use. Cypress was designed to be fast and lightweight as much as it can be – which is especially helpful as e2e test are expensive to write and run. One of the philosophies is how to handle your data, since most front end apps show data. I’ll answer questions like when and why to stub the back end / make fixtures / or seed the data.

Server not found / Serverless Adventures
Talk by Dragan Stefanov in Track B (45 minutes)

Containers, serverless and orchestration, are concepts that are now the cornerstone of modern tech architectures. When do we use what and can we combine these best of bread notions? In this talk, we will explore possibilities of infrastructure abstraction and complete automation of provisioning, deployment, running, and monitoring of our processes using Docker, K8s and FaaS. We, as business/product developers will try to get away as far as possible from the “metal” and as close as possible to the business and consumer.

Finding a way to grow the team
Talk by Milan Puvača in Track C (45 minutes)

It’s been a long time since all web agencies are aware that finding new people is a real challenge. I’d say we are talking not just about challenge, but real global problem. In last years we managed to set up a small model about how to deal with renewing out team. Considering fluctuation rate and employ-ability options on labor market especially for developers it was more than clear that we need a “”backup incubator”" for juniors. Presentation would cover processes how did we handle those problems, how successful we were and what were main denominators for most of the volunteers/practitioners/juniors which were in our program. Example would be one recent blog on our web site: Pros and cons about this approach together with best outcomes would be presented and discussed. Most interesting examples of issues young people are having in knowledge (no matter formal/informal) and handling first job will be studied. Comparison with Erasmus and faculty obligatory programs will be also mentioned.”

Sunday 2nd December 2018

Evolving into Agility
Keynote by Andrea Provaglio in Track A (45 minutes)

In organizations, change comes from leadership. That’s not necessarily connected with status and authority and, in fact, leadership can be manifested in many different ways (i.e. individual or collective) and styles. Still, the main force behind change is leadership. I’ve been coaching teams, organizations, leaders and managers along their path to agility for years. In this talk I’d like to point out how leadership in adaptive organizations is much subtler and pervasive than what we usually think and that its foundation lies in some character qualities that are frequently overlooked or underrated. Among this qualities we can find curiosity, empathy, courage and an attitude to listen deeply (which are in itself a personal journey of self-discovery and self-awareness) and that we need to be connected with ourselves as well as with others, before we can even start to think how to influence our environment from a leadership position. Active listening is also a practice that enables system-awareness and dialogue at the organizational level, something that adaptive organizations are in dire need of, if they want to to operate in innovation and adaptation rather than recycling old paradigms over and over again. This is a critical aspect if we want to create organizations that operate, internally and externally, on different assumptions than post-industrial, mechanistic organizations. Indeed, I believe this is the main reason behind many of the failures I’ve witnessed in Agile adoptions — namely, introducing change at the superficial, operational level, while being unable or unaware of changing the fundamental paradigms by which people operate and interact. In this talk I’d like to explore all that, share real-life stories and examples, mixed with a little bit of science, philosophy and practical advice, hoping that this will help organizations to better understand and create the kind of leadership that will let them thrive in a complex, adaptive world.

Angular Change Detection - When you see it
Talk by Ahsan Ayaz in Track A (45 minutes)

Angular is a great framework and one of the most popular choices for building both small-scale and large-scale applications. When the application grows and becomes complex, it becomes necessary to take important measures to keep the application be performant. Having a good understanding of Angular Change Detection can help to build the app in a way that it is optimized for performance. We will go through how the Change Detection works in Angular and what we can do to make it even smarter.

Git Legit
Talk by Pauline Vos in Track A (45 minutes)

If you’re fighting with Git on a regular basis, you might not be using it optimally. This talk will lay out how to make your life easier only by changing your daily Git usage through atomic commits and other best practices. Next time you’re pulling your hair out from rebase hell, remember this talk. Many Git users tend to use Git as a save point, like in a video game; chronologically making checkpoint commits as they go. This spreads out changes to the same areas in the code over several commits, necessitates merging and resolving conflicts, and generally just making an incomprehensible jumble of your history. This talk makes a case for atomic commits and how to use them while only minimally affecting your workflow. Using pre-recorded demos, you’ll learn how to properly interactively rebase, fix up, reset, bisect, and more. By the end of the talk, you’ll have seen how this Git flow will make your life easier and how it will affect your ability to cherry pick, drop unwanted commits, and most importantly: not spend hours resolving conflicts in rebase hell. A little change in habits can go a very long way!

MySQL Scalability and Reliability Considerations for Replicated Environment
Talk by Jean-François Gagné in Track B (45 minutes)

You have a working application that is using MySQL: great! At the beginning, you are probably using a single database instance, and maybe – but not necessarily – you have replication for backups, but you are not reading from slaves yet. Scalability and reliability were not the main focus in the past, but they are starting to be a concern. Soon, you will have many databases and you will have to deal with replication lag. This talk will present how to tackle the transition. We mostly cover standard/asynchronous replication, but we will also touch on Galera and Group Replication. We present how to adapt the application to become replication-friendly, which facilitate reading from and failing over to slaves. We also present solutions for managing read views at scale and enabling read-your-own-writes on slaves. We also touch on vertical and horizontal sharding for when deploying bigger servers is not possible anymore. Are UNIQUE and FOREIGN KEYs still possible at scale, what are the downsides of AUTO_INCREMENTs, how to avoid overloading replication, what are the limits of archiving, … Come to this talk to get answers and to leave with tools for tackling the challenges of the future.

The Tech Coach Strikes Back
Talk by Tobias Modig in Track C (45 minutes)

In the past years we have been overwhelmed by agile coaches bombarding us with important stuff like the optimal length of a sprint, how to rip off a Post-It and why we should use CAPITAL letters on story cards. The question is, will that help us write better code? Will it make our programs more maintainable? Probably not. Nevertheless, organizations spend barrows of money on agile coaches, but not a single dime on Technical Coaching. This lunatic must come to an end and now is the time for us developers to fight back and protect our right to grow in the art of creating code. Taking its starting-point in the XP-principles this session will explain what technical coaching is, why you should do it and how it could be done through mob programming sessions.

11:45 Time is an illusion (lunchtime doubly so)
Talk by Andreas Heigl in Track A (45 minutes)

Have you ever read a “Good morning” in an international IRC-Channel shortly before you leave the office for lunch? In international business, time is an illusion as everywhere is a different time. In this talk, we’ll dive into the depths of Timezones and how to handle them. We’ll see why timezones are important and why and how they started to exist. And of course, we’ll examine how to handle those little buggers efficiently in code and database.

Advanced databasing
Talk by Bogdan Kecman in Track B (45 minutes)

Advanced techniques in using RDBMS. Learn how to use your database as a pro, squeeze the last drop of performance from the same hardware. Design your system to be both high available and high reliable. Don’t get stuck in mediocrity, move your system further by learning secrets professionals won’t share on stackoverflow

Teams, what's in it for me? - How to (not) manage teams
Talk by Ben Linders in Track C (45 minutes)

Agile talks a lot about self-organized teams, where developers and testers work together to deliver software. But what can you do to make teams succeed? Ben Linders will explore why you want to work in a team, the benefits that teams bring, and how to (not) manage teams. What is an agile team (and what not) Why would you as a developer want to work in a team, what’s in it for me Which benefits do teams have for organizations, stakeholders, customers, etc How to manage teams, the do’s and don’ts How developers, managers, and business people, can effectively communicate and collaborate

10 Git Anti-Patterns Every Developer Should Be Aware Of
Talk by Lemi Orhan Ergin in Track A (45 minutes)

Git is one of the most powerful tool in developers’ toolbox. If you use it correctly, it dramatically increases productivity of developers and eliminates the waste products continuously. Developers cultivate a development culture on top Git most of the time. It’s powerful but its power is untamed. Many teams fall into several traps of misusing commands and therefore feel uncomfortable while using Git. We mess up Git history, the codebase and the whole preferred branching strategy in seconds. We use branches, merge/rebase strategies, creating commits in wrong ways. Even we never take committing paradigms into account while using Git. As a software craftsman, I’ve been using Git for years and I’ve already educated Git to hundreds of developers in all levels. I’m so lucky; I had a chance to experience huge amount of anti-patterns in time. In this talk, I will talk about what those anti-patterns are and what should we do in order not to fall into them.

Service workers are your best friends
Talk by Antonio Peric in Track B (45 minutes)

The main API for PWA creation is Service Workers, they are the heart of this “new web”. With Service workers, we can send push notifications to the user or do background sync and show data even when the user is offline. They are not some science fiction, but a script that is quite easy to use. In this talk, we will see overview what are service workers and when and how to use them.

Solving Real-World problem using machine learning in Python
Talk by Nikola Živković in Track C (45 minutes)

Predict Bike Sharing demand in Washington using Python and Sci-Kit Learn. At the moment machine learning is crossing the chasm, from early adopters to early majority. Even though concepts of this field can be traced back to the 50s, big breakthroughs have been made in the last five years. Apart from that, there are many machine learning libraries available, especially for data science languages like Python and R. That is one of the reasons why this field is more opened for general use. In this lecture, we will see how we can use one of those libraries in Python – Sci-Kit Learn. We will focus on issues that data scientist can face when presented with the problem. For this purpose, we will use the Bike-Sharing Demands dataset. This dataset is containing the data generated by the Capital Bikeshare program in Washington, D.C. In essence, Bike sharing systems are a means of renting bicycles where the process of obtaining membership, rental, and bike return is automated via a network of kiosk locations throughout a city. We will use this historical and weather data, machine learning, Sci-Kit Learn and Python to predict future bike-sharing demands for this city.

15:15 Technically DDD
Talk by Pim Elshoff in Track A (45 minutes)

You might have heard of Domain Driven Design. You may have heard DDD is a tool to write readable and change-ready code. You may have even heard DDD comes with a lot of talking, and modeling, and customers… Starting with DDD sounds big, and scary, doesn’t it? But getting started is not scary! Come to find out what DDD can do for your code, tomorrow. We’ll use value objects, entities and services to bring order to our mind and code. We’ll see how naming things can guide us, but also trick us. We’ll rework a piece of code together and improve what it means. And tomorrow you can tell your peers that, technically, you’re doing DDD.

When blockchain is(not) solution
Talk by Milos Solujic in Track B (45 minutes)

Is blockchain new tech snakeoil or it is the real solution for so many problems out there? Like many other technology hypes before, blockchain is one of the newest that is used in so many new products that promise us to have a revolutionary solution for all kind of problems, like transparency, trust, democratization, etc. We will try to demystify those claims, look closely at the state of the art projects in this space and make some conclusions from practice.

From programming languages to network protocols: lessons on API design
Talk by Andrey Salomatin in Track C (45 minutes)

API design is something programmers do daily. Every time we come up with a function interface or a method in our backend API – we make a design decision. Good decisions lead to code that is easy to evolve and maintain. Bad decisions can demolish the project. API design is something we learn by looking at more different systems. Unfortunately, that’s not something we are paid to do In this talk, I’d like to share the insights I’ve got from interviewing dozens of people for Code Podcast. We’ll go through examples from DOM API, BitTorrent, Ethereum, several programming languages and UI frameworks. We’ll see how those projects make tradeoffs, what are the characteristics of good and bad design, and how we can make our decisions better.

16:00 Cross-platforms: Xamarin.Forms vs OutSystems
Talk by Milan Keravica, Saša Grahovac in Track B (45 minutes)

Cross-platform is the buzzword when it comes to mobile app development. But since the community is still growing, it is hard to find the right answer for the question: which tools are the best for development on Windows, Android, iOS and other platforms? How to overcome the disadvantages they have, and what are the best ways to use their assets? In this presentation, we will discuss OutSystems and Xamarin. Forms, two cross-platform technologies whose popularity is rapidly growing. Their pros and cons and comparative analysis will be explained by two software developers, Milan Keravica and Saša Grahovac, who have been working with these platforms for several months while developing complex software solutions. In their talk, they will also be describing some of the more common use cases where Xamarin and OutSystems shine, and how they fare in tackling various problems in the development lifecycle.

Turning gray hairs to your advantage
Talk by Michiel de Wit in Track C (45 minutes)

These are interesting times. The IT domain is now over half a century old and a lot of pioneering is now in the past. Software engineering has become a much more traditional job, and not just some hobby for the youngsters. As a consequence, the IT workforce is starting to show some grey hairs. Since software development is still a relatively young discipline, older (35+) developers often struggle with their plans for the future. How do they fit in with the younger generation? Will they be able to continue developing softeware until their pension? What are the prospects for older developers? Do they have to start looking out for a job outside the field? Or can they put their grey hairs to their (and their team’s) advantage? In my talk I explore these issues, show examples of older developers and how they did or did manage to stay relevant. I question the traditional Developer – Team lead – Project leader carreer path and show how Agile actually opens up a whole new set of possibilities.