Have something to share about engineering practices, architecture or DevOps?
Become a speaker now

Archive for September, 2016


We offer round-the-clock excitement via classic games, in a free to play format, accessible everywhere.

Playtika is the world’s largest Social Casino games company. We captivate audiences with beautifully produced, highly immersive social games. Playtika was the first to introduce free-to-play casino-style games to social networks.
We are successfully applying our intuitive understanding of what players want and our mastery of marketing and monetization practices to slots, poker, bingo and other gaming categories. Playtika studios are hives of creativity, with the independence and flexibility to innovate along with the shared resources and gaming knowledge to produce best-sellers time and time again.
Collectively, we are 1500+ employees spread across 11 studios with offices in Israel, US, Canada, Belarus, Argentina, Japan, Australia, Ukraine & Romania.
We are oriented to dynamical growth and stunning popularity, and successfully cope with these tasks.
Below there are some links with different information about the company:

JIRA journey to cloud

How do you take a huge java monolith application and put it into Cloud? How do you provide independent continuous deployments of OSGi plugins and make sure everything was well tested together? How do you keep track of 1000 moving parts and still stay sane?

I will tell you the story how JIRA team answered those questions, what were the biggest challenges and easy wins. Presentation will be full of examples how we do things in JIRA like testing, branching, releasing and deploying, what tools we use and how we use them, how we keep our code in good shape and deliver it to almost 80,000 JIRA instances.

This will be continuation of story presented by Wojciech Seliga on XP Days in 2014. If you are interested what changed since then (even more tests and completely new challenges) I will gladly have you in the audience.

Arkadiusz Głowacki

Passionate about optimising everything that’s around him, interested in a variety of back-end technologies. Big fan of clean code and everything which helps programmer to faster deliver products with better quality. For almost two years worked on deployment pipeline for JIRA, now focusing on growing JIRA Cloud ecosystem.

Fear and Loathing after Production

Remember situation when on the next day after successful release your system goes crazy as well as your stakeholders? Endless meetings with angry customers when you have no idea what is wrong with your system. You either have no logs or they are full with useless messages giving no any glue to the root cause. Your monitoring either does not exists (was planned for the next release – yeah!) or shows that everything is OK. Remember all that? I bet every developer was in similar situation or at least heard of it.

In this talk Serhiy will tell how to avoid such unpleasant life experience. What and how should be logged. Where logs should be stored. What monitoring should be in place. How codes should be written. Tools, practices and so on. Basically speaking, things that should reduce your stress and make your life happier.

Interested? Come to my talk then!

Building better CI using Jenkins pipelines

This talk is about improving CI practices building pipelines. It will cover old practices and how they can be enhanced using custom DSL, code review and SCM.

Rostyslav Fridman

Skilled DevOps and network engineer with experience in design, implementation and maintenance of system infrastructure and networks of national and international levels.

The Sane way to Apps in the Cloud

Did you know that Netflix has now fully transitioned to the cloud. Ever wonder how you could do the same or sell it to your boss/clients/your pet? Do you often wonder how to chose the best provider out of all the different players in the market.
Well wonder no more. Join Paul as he guides you through how to build infrastructure on 2 different platforms. Watch as he uses both AWS and Azure to show you easy it is using the principles of infrastructure as code.

By the end of this session, you will have enough guidance and confidence to start automating your own infrastructure and be less afraid of that big bogeyman VENDOR LOCKIN.

Paul Stack

Paul Stack is a London based infrastructure coder and has spoken at various events throughout the world about his passion for continuous integration, continuous delivery and good operational procedures and why they should be part of what developers and system administrators do on a day to day basis.

He believes that reliably delivering software is more important as its development. Paul’s passions are the DevOps and Continuous Delivery movements and how they help the entire business and its customers.

Engineering Excellence in large service company

This talk is aiming to answer the following questions: What makes contractor-engineers of a vendor service provider to be different and competitive on a global IT market? How to incorporate all the technology diversity and successfully deliver high quality, enterprise level complex solutions? What is the nowadays startups and how to foster right engineering culture to enforce it? Deliberate practice and continuous learning as a technology agnostic approach in mastering engineering craft.

In this talk I’m going to share a story about implementing Engineering Excellence (ENGX) department in a large outsourcing company. I’m going to present a number of show cases of ENGX integration for a different clients and describe what didn’t work well and how we struggle with it. I will also present a few things that we managed to implement and successfully integrate into internal company’s process, such as mandatory onboarding training – Bootcamp and Dojo platrom that can help engineers in hardening their technical capabilities.

Sergey Sergyenko

Software Craftsman, Agile adherent and follower, who believes in lifelong learning, continuing education and self-improvement paradigms. Formal leader and one of the founders of Belarus Ruby User Group. Active contributor to Software Craftsmanship and Agile communities in Minsk, Belarus. Teacher and scientific mentor in Belarusian State University.

From Continuous Integration to Continuous Delivery with TeamCity

In early 2006 JetBrains decided to create its own solution for Continuous Integration – TeamCity.

We will start with preconditions of this decision and main concepts of the product. Then we’ll discuss common problems that we and our customers have faced over the decade, trends and plans for the future.

Finally, we’ll look into installation that builds all Jetbrains products and find out how TeamCity continuously delivers itself every day.

Sergey Pak

Developer and big fan of TeamCity. Applying 13 years of Java development experience for the benefits of end users.

From monolyth to SOA – baby steps

Implementing a new architecture into existing project doesn’t have to mean a “feature freeze”. By checking a success story we will see, that in may be a transparent process, that won’t harm, neither slow down the development process. Additionally, we will learn how to prepare your code to move to microservices and reactive microservices architecture in future.

Kamil Szymanski

Software engineer by profession, architect by passion. Fan of good designer, clean code and service oriented architecture. Likes discovering new technologies and digging in old codebases, checking how to improve them.

Interview in DevOps style

Engineers like to be interviewed at Grammarly, and many of them say it was the best interview they ever passed. So they ask me to share my interviewer experience. I tried to make that topic interesting not only for DevOps\SRE hiring managers but for every engineer. DevOps\SRE interview will be just an example how you can make your interviewer skills better.

Vsevolod Poliakov

Last three years Vsevolod worked as a platform engineer and devops tech lead at Grammarly. He is big fan of monitoring, devops and containers. Also likes comic books and guitar playing.

Common sense DevOps… or how we evolve in 4 years

All of us would like to keep our infrastructure as simple but smart as it is humanly possible. Simplicity is required so we understand and can support it. However, it has to be smart enough to keep complex things under the hood. Moreover we do want to forget about its existence and focus on other tasks. So do I.

I would like to share my experience how we build our infrastructure from scratch with the challenges to overcome as well as the evolution of the view on the infrastructure after 4 years of real experience.

A lot of scripting, silly mistakes, and great achievements which can help you to survive in a hostile environment of bloody enterprise.

Continuous delivery for mobile (building your own pipeline)

This talk covers how Hootsuite enabled continuous delivery for its native iOS and Android apps. We will examine what tools we used to build our own automated pipeline, how we built it iteratively, and what features proved most valuable. We will share lesson learned and also some of the things we’re thinking about adding next.

Building Continuous Delivery Pipeline In Azure – Infrastructure, Tools and Processes

This talks covers the setup and turning the Continuous Delivery process in Microsoft Azure cloud.

It includes organizing delivery pipeline with GitFlow branching model, Visual Studio Team Services (former Visual Studio Online) as CI tool and Octopus Deploy as Release Management tool, organizing the dev/test environments in Azure leveraging Azure Resource Management API. Lessons learnt includes:

1. Organizing CI builds for branching, segregation of Ci and Deployment tools
2. Configuration and Parameters management. Testing deployment configuration.

The talk is based on my presentation on AzureDay in Kyiv, but will be reorganized a little bit to bring more practice and deep dive.

Sergii Kryshtop

Sergii Kryshtop is Software Engineer Manager @ EPAM Ukraine, cloud evangelist with a focus on Microsoft Azure and project delivery. Has more than 10+ years of experience in IT with diverse knowledge of different areas of Microsoft Technology stack. Has main focus in system architecture, software design and engineering practices for continuous delivery.

Twelve Ways to Make Code Suck Less

We all have seen our share of bad code and some really good code as well. What are some of the common anti patterns that seem to be recurring over and over in code that sucks? By learning about these code smells and avoiding them, we can greatly help make our code better.

Core Design Principles for Software Developers

Writing code is easy. Writing good quality code is an entirely different story. How can we measure quality of design? How do we know we’re doing the right set of things that will leads us to a better design? In this session we will learn about some core software design principles that help programmers everyday. Instead of talking about theory and what we could potentially do, we will take on multiple examples, discuss the solution, pros and cons, and bring out key design principles that have an impact on the outcome.

Effective pair-programming across skill: lessons learned from pairing up

Many technical teams consider pairing their junior developers with more experienced colleagues to be an effective way to upskill new team members. My team at www.net-a-porter.com followed the same approach when I joined over two years ago. My experience as a junior developer, who paired with experts on almost every story, showed that simply assigning two engineers with different skill levels to a single task is not enough for a successful pair-programming experience.

The topics I will share in this talk include:

– pair-programming as a social skill, how varying levels of expertise can affect behaviour and decision-making of the pair
– what I learned about the needs of junior and senior developers when pairing
– what our team found to be most beneficial in pairing novices with experts
– which aspects of pair-programming across skill proved to be ‘pain points’ to the team
– a recipe for success: what we did to overcome challenges of pairs with the experience gap, and what we can do to improve further

I have published a paper on the topic with Springer Open in Lecture Notes in Business Information Processing. I also presented the talk at XPRoLo meet up at Unruly Media House in London, at XP2016 Conference in Edinburgh, and internally to technical forum at YNAP. Both the talk and the paper received excellent feedback from industry pioneers as well as novices.

CI is essential but not sufficient for an effective delivery

Continues Integration is essential, but is it enough to have Jenkins or TeamCity? Unfortunately no – we need tools and methods to get efficient delivery workflow. Three stones, such as monolithic code + test suites + deployment pipeline should be faced.

We will speak about Test Pyramid and Trunk based development. Why may automated tests does not work in reality? Do we need Manual testing and in which step? What about Acceptance and Capacity test? How to put all of this in one deploy pipeline?

Dov Nimratz

Dov has 25+ years of R&D experience and spend 17 years in the High Tech Israel industry. His main engineering expertise in Real Time, Embedded, Telecom and Management fields. Also, he is teaching and practicing Biblical Counseling within “Coram Deo” International Counseling Institute.

Venkat Subramaniam

Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., creator of agilelearner.com, and an instructional professor at the University of Houston.

He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects.

Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com. You can reach him by email at venkats@agiledeveloper.com or on twitter at @venkat_s.

Use experiments to replace your backlog

Of the original XP practices, the one that seems the most difficult to get right is the on-site customer. In the original XP team, this was an actual end-user of the, internal, system that was being built. How did the Product Owner turn into a project manager working down a long, predefined backlog?

The Product Owner role quite often has devolved into a step in a waterfall process. A gateway, or proxy, sometimes a firewall, towards the rest of the organisation. But customer feedback is a fundamental basis of any Agile process.

I will discuss how we can use clear goals, captured in actionable metrics to guide our teams in growing the software necessary to reach those goals.

I’ll show how to get development teams to demonstrate their progress based on business metrics, not just features completed. To strategically align development with the rest of the company. And how this allows you to really use the brightest minds in your organization for innovation.

Testing in a Continuous Delivery World

Hey, do you remember when everyone was asking what the role of the tester would be in an agile team? It’s happening again!

And things are changing again. A team that takes on the challenge to release their every commit certainly will take testing seriously. It will need to evolve new ways of testing. It will have new dynamics of testers working with developers. It will find new ways of of interacting with customers, stakeholders and product owners.

In this talk we’ll look at how continuous deployment changes the dynamics of an agile team. How quality moves even more to the center of the stage. How that changes the role of the tester once again. How it changes the role of developers, too. How this practice allows you to put the customer center stage again. And how that, too, has testing competencies at its core. And we’ll not forget DevOps, and how monitoring can be a continuous testing strategy.

Wouter Lagerweij

Wouter Lagerweij is an Agile Coach and founder of make.io, the turn-key CD company.

He loves spending time with teams and organisations to figure out how to improve the way they make software, and make it more fun. To make that happen Wouter uses the knowledge and skills gathered in twenty years of experience applying Agile processes and practices from XP, Scrum, Kanban, Lean and Systems Thinking.

To turn those improvements into real business opportunities, Wouter has added Lean Startup/Lean Enterprise approaches. He’s even been known to, occasionally, use common sense.

Continuous Integration for Microservices with Jenkins 2.0, Docker and Kubernetes

What is necessary for CI for microservices? Jenkins 2.0 with pipelines looks like a good option for that. But is it enough? Let’s add Docker for containerization. We think it could be even better with Kubernetes. The presentation will provide you how to build CI for microservices from scratch with those tools and describes some best practices applicable for Microservices CI.

DevOps: The Harmonious, Polygamous Marriage

DevOps is not simply building a continuous delivery pipeline and many people feel that they’ve been ‘doing’ devops (or trying to!) for many years. So why, exactly, has the term received so much attention? What really is it? In this talk, Helen explores the devops trend, its roots and history and its purpose as a transformational, evolutionary movement to make better software, faster and more safely. She will discuss its relationships with Agile, Lean and ITSM and review how organisations have successfully, and not so successfully, used devops to elevate the way their business delivers innovation to their customers.

Perfect release

Let’s imagine a perfect release of feature(s)? What development process is needed? How organize life-cycle stages in terms of decision-making points? How to reduce risks and bottle necks impact? What about the team properties? What can you change in own project or product right now?

I will try to answer for all these questions. All answers based on my long-year development (sometimes rapid 🙂 experience of complex fintech projects/products.

Helen Beal

Helen has 20 years experience working in the technology industry with a focus on the Software Development Lifecycle for a wealth of cross industry clients in the UK and abroad. Helen is passionate about DevOps and is the creator of the Ranger4 DevOps LiftOff Workshop and the Ranger4 DevOps Maturity Assessment – winner of the IBM Beacon Award 2015 for Outstanding DevOps Solution. She also started Ranger4’s #DevOpsFriday5 initiative and is on the Board of Regents at the DevOps Institute (Ranger4 are also a Registered Education Provider for the DOI’s DevOps training courses). Helen is also a novelist and ecologist. She once saw a flamingo lay an egg.

Andrey Trubitsyn

Andriy Trubitsyn is a hands-on architect passioned for microservices architecture style and spent a lot of nights researching the topic. A person who drivers a microservices accelerator in EPAM and consults about different aspects of microservices related things. Andriy can be regularly met as a speaker on tech talks in EPAM.

He is a person who can drive an abstract concept through to a very practical solution and to focus on issues until they are overcome.

DevOps for A Busy Developer

Our minds are bright, our thoughts are clear, our eyes are lit with passion, but we’ve got no time!

We thought frontend churn was terrible but DevOps space is so much worse! What tools to use? Which direction to take? What movement to follow? Every single day new tools emerge with a promise to solve the challenges we have and the ones we don’t know we have! We don’t have enough time to learn to use them properly, and each time we try them they either don’t work as expected, or do so inconsistently. Yet at the same time we face tight deadlines and have work to do!

The task at hand is clear: we’ve got a pile of code, and we want to run it on a bunch of servers. I will show you how I do it with as little sweat and tears as possible.

Andrey Listochkin

Andrey Listochkin is a full-stack web developer from Kiev with over ten years of experience building large complex web applications. He’s a very active member of Ukrainian development community. He’s a co-founder of dev-ua – the largest chat community for developers in Eastern Europe, – Node.js/iojs Ukrainian localization working group member, Ukrainian Rust community leader, KyivJS and RustFest co-organizer and the member of Kottans.org – an IT education non-profit.

Cloud based Deep Learning infrastructure at scale

Presenting the infrastructure work that we did to support the launch of The Roll, our smart camera roll app.

We’ll give a brief overview of deep learning at EyeEm, and how we use it to build our products. This includes how we use it for both search, image captioning and aesthetic ranking.

We needed to build a system, exposed through an API and tracked through a data pipeline that could run our deep learning models on uploaded images, return a variety of data to the users (keywords detected in the photo, photo scores) and track all the data for later analysis.

We’ll talk about how we optimized for throughput by load testing memory pressure on the GPUs we used on AWS instances, and how we go from training a model to putting it in production.

On launch day, we were expecting to have to process around 500 photos/sec. In reality, we peaked at around 850 photos/sec, without any impact on performance.

Rino Montiel

Rino Montiel has been working in the tech industry for over 10 years building systems and data pipelines. He’s passionate about automation, developing high performance systems and teams, and using technology to build products that assist humans with day-to-day tasks.

Today, Rino leads the Platform and the Data teams at EyeEm – building systems that run e-commerce, photo sharing, search and image classification, in addition to creating data pipelines for analytics and machine learnin

Design for Testability: What, Why and How

“To be tested a system has to be designed to be tested”
Eberhardt Rechtin, “The Art Of System Architecting”

Testing is one of the main activities through which we gather data to assess the quality of our software; this makes testability an important attribute of software – not only for development, but also for maintenance and bug fixing. Design for testability is a term that has its origin in hardware design, where the concept was introduced in order to make it easier testing circuits while reducing the costs of doing so.

In this talk I’ll show how to translate this concept to the software domain along with the consequences on various aspects of the development activities, both from the technical point of view (e.g., design, code quality, choice of frameworks, etc.), and the product management point of view (e.g., management of team dependencies, delivery time, costs, etc.).

I’ll provide examples based on real world experience, both for the technical and the management aspects. Last but not least, there will be code!

Creating An Incremental Architecture For Your System: What, Why and How

Experience taught us that creating an architecture for a system with a big design upfront is a bad idea as, usually, we don’t have all the necessary information to design the system at the very start—even in moderate sized systems requirements tend to change significantly, often making the initial design unfit for purpose.

On the other hand, no upfront design can be just as bad—the code tends to become unmaintainable pretty quickly, and system qualities like performances, scalability, security, latency, etc., can be very difficult, if not impossible, to retrofit.

In this talk I’ll show a different way to create a software architecture with just the right amount of design that can be incrementally evolved (or changed) as the system grows and changes—by taking care of some important qualities of the system early in the design, and delaying the design of other aspects to the last responsible moment.

Giovanni Asproni

Giovanni has worked in many roles in several application domains. Nowadays, he provides consulting, training, and advice, as well as coding, to projects of all sizes: from small ones carried out by co-located teams up to projects involving hundreds of developers split into geographically distributed teams.

He is a past Chair of the London XPDay and the ACCU conferences, and the Industry & Practice co-chair for XP2016. He is a member of the Agile Alliance, the ACM, the IEEE Computer Society, and a contributor to the “97 Things Every Programmer Should Know” book published by O’Reilly.

TDD from the Trenches

In this live coding session in Scala, Kfir Bloch (head of back-end engineering at Wix) will showcase how to build a full-blown feature in Scala, while maintaining the principles of TDD and Clean Code. We’ll start with some simple scaffolding and build the feature in its entirety: defining the user-facing API, writing tests outside-in with all of the requisite building blocks (collaborators and matchers), development-refactoring cycles and ending up with a clean codebase.

The Art of Decomposing Monoliths

Microservices are the new black. You’ve heard about them, you’ve read about them, you may have even implemented a few, but sooner or later you’ll run into the age-old conundrum: How do I break my monolith apart? Where do I draw service boundaries?

In this talk you will learn several widely-applicable strategies for decomposing your monolithic application, along with their respective risks and the appropriate mitigation strategies. These techniques are widely used at Wix, took us a long time to develop and have proven consistently effective; hopefully they will help you avoid the same battle scars.

Continuous Delivery with Jenkins & Kubernetes @ Sky

The talk is based on what we currently use in Sky to deliver in a continuous fashion one of our platforms in Sky.

In short, it covers the following topics:

  • Problems we are trying to solve
  • Design a deployment pipeline that allows a large team to scale
  • Generate automatically pipelines using groovy DSL for Jenkins
  • Leverage Kubernetes for a flexible deployment model
  • Achieve continuous delivery

The demo will consist of taking a simple app from the first commit and all the way through the production deployment pipeline.

DevOps with Smell: Antipatterns

DevOps is the hottest topic on the market. Everybody are adopting DevOps, however many starting to do mistakes. This talk is about experience gathered during consulting DevOps tools and practices in multiple projects and locaitons over the last years. We will review common anti-patterns and proposed solutions.

Serverless Architectures

Live coding session that shows step-by-step how to build Serverless Architecture webiste that will be higly available, scaleable across multiple regions, backed with git as CMS and cost to operate less than 5$/mo. We will review Serverless Architecture style and address some of important gaps of this architecture.

Micro Service Architecture: best practices from A to Z

You start new project or working with existing one and think: “Hey, I could use microservices, it is something new, that resolve all my problems: flexibility, scalability, modularity…”. It is not working like that. In this speach you will not hear how good or bad Micro Service Architecture. Real use cases, pros&cons, from real practice. Only best practises. This speach should gives you one more tool into your toolbox, with clear understanding where you can use it and cases, when you should avoid MSA.

Pragmatic Architecture, Today.

Software development has evolved. Agile is now the de-facto standard. The role of an architect in an agile project is very different than the typical role in a more classic waterfall approach. Using an updated interpretation of ‘viewpoints and perspectives’, this talk will demonstrate how to make rapid, agile delivery sustainable. These viewpoints and perspectives will be linked to easy-to-produce models that can be used immediately in your projects. The talk will provide examples on how to determine which models are architecturally significant and worth the effort.

Developers have always been very important stakeholders of an architectural description. A good agile architect needs to strive for consensus and buy-in.

Journey from Monolith to Microservices and DevOps by WIX

Wix.com started the journey toward DevOps and a microservices solution about 5 years ago when we switched from a monolithic application to a microservices-based system—a transition that took two full years to complete, with many lessons learned along the way. Today, Wix successfully operates over 200 microservices on a battle-tested production environment. In this talk, we will cover why Continuous Delivery and DevOps are important requirements for microservices, discuss guidelines for a good microservice architecture, explain why YAGNI and KISS are important and how operational concerns (DevOps) affect the design of a microservices architecture, as well as give some recommendations on the best way to transition from a monolithic to a microservices architecture.

Beyond Software Craftsmanship – Johnny’s Road to Remarkable Career

Meet Johnny – a full-stack Java developer with 5+ years of experience under the belt, M.Sc degree and ‘get sh%t done fast’ mentality. Although Johnny possesses exceptional technical skills, Milton – his manager, doesn’t promote him, no matter how hard Johnny tried and how many late nights he has spent polishing his coding skills. Unfortunately, there is something important that Johnny doesn’t understand. Something that stops him from becoming successful. Together with Johnny, you will walk the thorny road to his remarkable career as a Chief Software Architect. The road full of struggles, discoveries and actions that may or will influence your professional life.

XDSD: is your team extreme enough?

Over the last two years we’ve completed over 20 projects, wrote over 300K lines of Java code, closed over 20K tickets, pull requests and bugs, assembled together over 200 senior programmers and made profit. We’ve done all that without a single meeting, Skype call, or a Slack chats. We barely knew each other aside from GitHub, where all that development happened. At the presentation I will disclose a few of our dirty secrets.

A DevOps pipeline

A guided tour of using Docker and other best-of-breed tools to deliver quality code from developers to production in a fast and scalable process. What does a modern pipeline look like in the context of Docker?

We’ll cover:

  • the state of the ecosystem
  • tools of the trade
  • process overview
  • key automations
  • integrations and hosting
  • deployment, operations and scaling
  • working with Docker without losing your mind 🙂

Target audience: new and intermediate engineers working with/interested in Docker.

How QA engineers could affect product quality? Or couldn’t?

Most frequently we are using words “testing” and “tester” when talk about product quality. But does testing or tester role affect quality? The eternal struggle between QC and QA… Yes, I’m almost sure you understand this, but why nothing is changed in most of teams? Because we need mind shift in our heads and more global changes in QA processes. Who QA engineers are and what are their responsibilities, activities, duties in modern development world? What options do they have to affect product quality and improve it if developers are responsible for product development? In this talk I will try to find detailed practical answers to all these questions. Let’s change development world together!

Code review at large scale

When you work in a small collocated team many engineering practices and approaches are relatively easy to use and adapt. In large project with many teams working on the same product this task is not so simple. I want to share experience report in implementing Code Review practice in big product development team (more than 150 people, 10+ feature teams). In this talk we will review what approaches works in such setup and what don’t work, what tools and additional practices are needed to support Code Review and make it more effective, what difficulties and blockers will you probably see in the real life cases, what useful metrics could be produced by this practice.

How TDD helps to produce better design, or not?

TDD is well known approach to develop more clear and less buggy solutions, completely covered with tests as a bonus. But what about design? Some people think that TDD also helps design to emerge as implementation grows, so there will be just enough design in place when all cases are covered. Others think that without general design skills and experience output from TDD will be a garbage from design perspective. In this talk we will try to cover this topic in all details, focusing on TDD usage at different levels and with different styles.

Kfir Bloch

Currently the Head of Backend Engineering at Wix, Kfir has seen some things during the 17 years in the field. Unfortunately for him, Kfir has not lost his passion for hands on development, even though it usually collides with his day to day job of architecting and managing 70 developers. His past includes working in various networking companies, and it seems that the past continues to haunt him – while he is working today to bring Wix to the NodeJS age, he can’t seem to forget that he wrote server-side JavaScript on a Netscape server a long while ago.