July 3-5, 2018

The New Conference Center, Kfar Maccabia, Ramat Gan, Israel

SELA|DEVELOPER|PRACTICE

Professional developers conference

55 sessions

48 speakers

Sessions

  • Tuesday, July 3: Full-Day Workshops (Sela)

    Mastering Docker 09:00 - 17:00 Rob Richardson

    Docker is carefully tucked between virtualization, continuous deployment, and pure awesome. Bring your Windows 10 Anniversary Update or Mac OS X El Capitan 10.11 laptop, and we'll walk through together getting Docker for Windows or Docker for Mac installed, fired up, and get you building development and production containers.

    Level: 400
    Language: English
    Prerequisites: None

    ASP.NET Core Web API and Angular 09:00 - 17:00 Amir Adler

    Millions of developers have used ASP.NET (and continue to use it). ASP.NET Core is a redesign of ASP.NET, with architectural changes that result in a leaner and modular framework. ASP.NET Core provides features that help you build web APIs. Angular is a Typescript-based open-source front-end web application platform. It addresses all parts of the developer workflow while building complex web applications. Angular is a complete rewrite of AngularJS. In this workshop we will use ASP.NET Core Web API and Angular to build a web site from scratch. At the end of the workshop, you will be familiar with ASP.NET Core Web API, Angular, and how they communicate with each other.

    Level: 300
    Language: Hebrew
    Prerequisites: Familiarity with web development concepts

    NodeJS Workshop 09:00 - 17:00 Ady Shimony

    It seems like the world has gone mad. For years we have been struggling with JavaScript on the client side, and now all of the sudden people can't have enough of it on the server side. They claim it is 'fun'. This is not a fringe phenomenon: Node.js is being used by giants like eBay, LinkedIn and Microsoft. In this tutorial we will learn to embrace the Zen of Node.js.

    Level: 400
    Language: Hebrew
    Prerequisites: Basic JavaScript skills

    BDD with SpecFlow and Selenium 09:00 - 17:00 Liraz Shay

    BDD (Behavior-driven development), also known as ATDD (Acceptance test–driven development) is a software development process that helps Agile teams design, develop, test and deliver software efficiently, it's about how to implement agile acceptance testing and binding business requirements to code. BDD helps to bridge the communication gap between stakeholders and implementation teams, build quality into software from the start, design, develop and deliver systems fit for purpose. SpecFlow is the official tool to implement BDD on the .NET platform.

    Level: 300
    Language: Hebrew
    Prerequisites: Basic understanding of web technologies, working knowledge with Visual Studio

  • Wednesday, July 4: Breakout Sessions

    KEYNOTE: Actors: The Past and Future of Software Engineering 09:00 - 09:50 Juval Lowy

    The Actor Model is the latest fad to storm the software industry. But is there any substance behind it and why should you care? What are the drivers of the Actor Model and why have the large cloud vendors started offering Actor-based solutions? Juval Lowy puts it all together first by outlining the long-term trend in software methodologies that brought this 50-years old computational model to the fore, and how the demise of Moore's Law coupled with the rise of the IoT will force us to abandon sequential programming. Juval will examine the origin of the Actor Model; demonstrate Actors using conceptual examples, outline emerging design patterns, point out common misconceptions and conclude with his views on the future of the Actor Model.

    Level: 200
    Language: English
    Prerequisites: None

    Cloud Big Data Solutions 10:10 - 11:00 Gal Hutman

    In this session we will go over the options and offerings available if each of the large cloud providers regarding Bigdata storage and manipulation. We will try to give an overview of the solutions that each cloud has compare between them.

    Level: 200
    Language: Hebrew
    Prerequisites: None

    TDB 11:20 - 12:10 TBD

    Level: 200
    Language: Hebrew
    Prerequisites: None

    The ELK Stack 13:10 - 14:00 Itshak Eli

    Operational Log & Metrics Analytics platform build upon Elastic Stack, Kafka and Gafana. The platform collects and processes over 4 TB logs per day, 10 billion total log events per day from 400 customer sites. This includes infrastructure, web server, and application server logs. It enables real-time access to analyze log data up to four weeks, after which the metrics are deleted. More than 50 world wide support members Tier1- Tier3 are using the system to analyze and monitor the root cause to the application problem in customer's site. The platform reduces MTTR 10x, while cutting costs and increasing customer satisfaction.

    Level: 200
    Language: Hebrew
    Prerequisites: None

    Graph Database using Neo4j 14:20 - 15:10 Avi Avni

    Neo4j is a NoSQL graph database allows you to perform complex queries with great performance and have been used in companies likes Walmart, ebay, LinkedIn, Wobi, AppsFlyer, and many more. Graph Databases can be used for Social Networks, Recommendation Engines, Fraud Detection and Trip Planning, among many other use cases. In this talk you'll be introduced to concepts of a Graph Database, and specifically Neo4j, we will also talk about when to use it and how to start working with it.

    Level: 200
    Language: Hebrew
    Prerequisites: None

    Continous Processing using Spark Streaming 15:30 - 16:30 Moshe Shamy

    Spark is the most popular data processing engine. While batch processing in spark is very intuitive, stream processing was always suffered from high latency. That is, until we've got Spark 2.3 In spark 2.3 we have new mode of Continuous Processing that was designed for low latency in terms of milliseconds thanks to a new model that execute queries incrementally instead of using with micro batches. In this lecture we will learn about the differences between the current streaming model to the new experimental model that was introduced in spark 2.3, we will also discuss main features in Spark Streaming - Stream to Stream Join and working with watermarks.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Docker Killer Features 10:10 - 11:00 Rob Richardson

    Every Docker Intro talk starts by saying Kernel Virtualization. Stop selling it short. Docker is a game changer; a universal platform we all use. Why did Docker win over other Kernel Virtualization technologies? Come to this talk as we dig into the 3 killer features that makes Docker pure awesome.

    Level: 300
    Language: English
    Prerequisites: None

    Kubernetes and Istio as a Service Mesh platform 11:20 - 12:10 Ofir Makmal

    Everyone talks about Kubernetes lately, and they should. Kubernetes is now the market leader in container orchestration platforms, and been adopted by all major cloud providers as a fully managed offering (GCP, AWS, Azure, Oracle Cloud), and being adopted in a growing rate for multiple use cases - as micro-services workloads, Big Data, and Machine Learning. In this talk we will see the greatest promise by Kubernetes - to be a platform for building new platforms, and specifically, about Istio - a Google's open source platform for managing micro-services that was built on top of Kubernetes. We'll review micro-services concepts such as deadlines, retriescircuit breaker, blue-green deployment, canary testing, gradual routing, and more.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Google Cloud Platform 13:10 - 14:00 Guy Roth

    Level: 200
    Language: Hebrew
    Prerequisites: None

    Getting to know your users using AWS Services 14:20 - 15:10 Moshe Shamy

    You probably always wonder who your users are, which kind of people they are, what they like, and what they are doing with their money. Today data can be found everywhere, so you can fetch data not only from your apps, but also from external data sources like social networks and web sites. In this lecture we will see how can develop a platform based on AWS managed services - Lambda Functions, AWS Batch, DynamoDB, AWS Comperhand, AWS EMR, Sage Maker and S3 that will fetch data from many data sources like social networks, web sites and many more to get data and insights about your users.

    Level: 200
    Language: Hebrew
    Prerequisites: None

    Cloud Services to Service Fabric 15:30 - 16:30 Idan Yona

    Level: 200
    Language: Hebrew
    Prerequisites: None

    What can you do with .NET Core 2.0 from 0 to 100 in 1 hour 10:10 - 11:00 Gad Meir

    .NET Core is a very extensive subset of the full .NET environment that support multiple OS platforms including windows, Mac, Linux and windows IoT Core. Can run on multiple types of CPU, including ARM. And on different hardware platforms including the Raspberry Pi ARM based board. .NET Core give a very attractive platform for containers and micro services function base architectures like WAS lambda and Azure functions. It is Open source and Baselining your application on the .NET core can guarantee platform independent code base. In this talk we will install, develop and run .NET Core on several platforms, demo the integration with Visual studio and visual studio code and develop and deploy several projects that will demonstrate the capabilities of the platform and demo the interoperability by running the result on different target platforms. The talk will also cover new features in version 2.0 and explain the support for and the implications of the .NET standard compliance on the platform.

    Level: 200
    Language: Hebrew
    Prerequisites: None

    Modern ASP.NET Core 11:20 - 12:10 Amir Adler

    Since ASP.NET came out 17 years ago, many developers used it to write their web applications. ASP.NET Core is significantly different from previous versions of ASP.NET. ASP.NET has been completely rewritten to provide an optimized development framework to write web applications. In this session we will introduce ASP.NET Core.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    .NET Core Monitoring 13:10 - 14:00 Christophe NasarreKevin GosseGregory Leocadie

    Do you love your performance counters? Too bad you will lose them when moving to .NET Core... But worry not, we'll show you how to instead leverage ETW on Windows and LTTng on Linux to monitor your production applications. This session will be delivered jointly with Gregory Leocadie and Kevin Gosse.

    Level: 300
    Language: English
    Prerequisites: None

    Staying friendly with the GC 14:20 - 15:10 Michael Yarichuk

    .Net Garbage Collector is an important factor in improving development efficiency by eliminating the need to manually manage memory. But sometimes, it's overhead may cause very long pauses in application execution. In this talk, I will show why this happens and how we can deal with it.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Deep Learning with F# 15:30 - 16:30 Avi Avni

    Deep Learning is the way to get more value from your data, that has been used in all of the big companies like Google, Facebook, Amazon and Microsoft. Deep Learning is already beeing widely used in our everyday life. In virtual assistants like Siri, Cortana or Alexa, in google translate, or computer games. As well as in self-driving cars in the near future. In this talk you'll be introduces to what deep learning is, when to use it, and how to start working with it using Visual Studio, the CNTK library, and the F# functional programming language​.

    Level: 200
    Language: Hebrew
    Prerequisites: None

    Talent Recruitment 10:10 - 11:00 Dr. Galit Ben Tuval

    We are in an age where the competitive advantage of each organization is based on its capabilities and human assets. How to find the human assets we need, the talents with which to achieve our organization's goals? In this session, we will explore the ways and processes for finding the talent.

    Level: 100
    Language: Hebrew
    Prerequisites: None

    Illuminate the Soul Player 11:20 - 12:10 Maayan Ganot

    A special and inspiring session which leads to different thinking about motivation and action. We will see in a new light what motivates us daily, while acquiring tools for motivating employees in the organization and providing tools for managers to develop this motivation.

    Level: 100
    Language: Hebrew
    Prerequisites: None

    The Manager in the Agile World 13:10 - 14:00 Alon Linetzki

    Everywhere you talk about Agile and implementing SCRUM, you hear about cross-functional, self-managing teams. What does it means? Can we manage without managers in the agile world? Is this what we hope will happen? Or is there a dependence on circumstances, size, complexity and other parameters that affect the need for a manager? In this session, we will understand the possible elements that influence the decision according to several perspectives from the agile world, and we will discuss the issue.

    Level: 100
    Language: Hebrew
    Prerequisites: None

    The Future of AI on AWS 14:20 - 15:10 Boaz Ziniman

    Artificial Intelligence (AI) services on the AWS cloud bring the power of deep learning within reach of every developer, allowing you to develop new tools and enrich your systems with new capabilities. In this session, we will look into the opportunities to apply one or more of these services provide a number of examples and use cases to help you get started.

    Level: 100
    Language: Hebrew
    Prerequisites: None

    Rebooting Design 15:30 - 16:30 Oren Eini

    This talk will explore how we REBOOTED our Project Design. After a decade of production usage, the RavenDB team addressed a lot of ongoing concerns & changed some of RavenDB's core architecture. We'll investigate the driving forces behind it, the reasoning process & look at how it all turned out.

    Level: 100
    Language: Hebrew
    Prerequisites: None

  • Wednesday, July 4: Full-Day Workshops

    Mastering Microservices (1/2) 09:00 - 16:30 Dennis van der Stelt

    Go beyond the hype and build a solid foundation of theory and practice with this workshop on SOA development. Join Dennis van der Stelt and Daniel Marbach for a two-day deep-dive covering architectural topics like UI decomposition, data ownership across the enterprise, and how to choose a NoSQL database for your services. You will also learn the nitty-gritty detailed of building production-ready services, including fault-tolerance with HTTP and queues, reliable integration with 3rd party systems, monitoring, high availability, and versioning. You will also get some hands-on experience in service development using NServiceBus for building scalable command-processing endpoints, publish/subscribe event-processing interactions, and long-running multi-stage business processes and policies. Students are asked to bring a laptop, prepared by following the workshop setup instructions using the following link: https://bit.ly/2HrKKqW. We recommend you prepare your laptop at least a week before the workshop.

    Level: 400
    Language: English
    Prerequisites: None

    Server-less .NET solutions using Azure Functions 09:00 - 16:30 Alex Thissen

    This workshop will start with the basics of server-less architectures and explain how Azure Functions play a part in building server-less solutions. You will learn how to develop Azure Functions using .NET Framework, .NET Core and Visual Studio 2017. Next, you are going to build and deploy these with Visual Studio Team Services using CI/CD. Also covered is the lifecycle management and operations of server-less solutions, with proxies, monitoring and zero-downtime deployments. Among the topics we will cover: - Getting started with server-less event-driven architectures and Azure Functions - Anatomy of an Azure Function: creating and dissecting your first functions - Knowing your triggers and how to binding your inputs and outputs - Long-running flows with Durable Extensions Framework - Build and release of Azure Functions with VSTS pipelines - Securing your solutions - Automated provisioning of Azure Functions with Azure Resource Management templates - Going to production: proxies, deployment slots - Monitoring server-less solutions: Integrating Application Insights and Operations Management Suite in Azure Functions Students in this workshop are asked to bring a laptop.

    Level: 300
    Language: English
    Prerequisites: None

    Automation Testing for Decision Makers 09:00 - 16:30 Arnon Axelrod

    Many laymen believe that starting to use test automation in a software project requires only to learn the relevant tool, and voila! You have test automation. Unfortunately, building a successful and useful test automation, with a real ROI, is much more complicated. Most people eventually learn about the pitfalls only the hard way… This course, designed primarily for decision makers, will give you an overview on the topic of test automation in order to help you lead a successful test automation project that will improve the entire application development lifecycle and its quality, and save your organization precious time and money! Students in this workshop are asked to bring a laptop.

    Level: 100
    Language: Hebrew
    Prerequisites: None

    MongoDB for Developers 09:00 - 16:30 Netanel Malka

    MongoDB is the most popular Document-oriented NoSQL database. It provides schemaless, high availability and horizontal scaling which makes it a great fit for a Big Data solution. Additionally, it stores the data in flexible JSON-like (BSON - binary JSON) format, which makes it easy to work with. In this workshop, you will learn and experience with the core features of MongoDB for developers: CRUD, indexes, aggregation framework and more. Students in this workshop are asked to bring a laptop.

    Level: 400
    Language: Hebrew
    Prerequisites: None

    Beyond Async and Await (1/2) 09:00 - 16:30 Bnaya Eshet

    This is a 2-days workshop focusing on async and await theory and practice. You will gain deep understanding of async methods, how to use them right, best practices, and useful patterns. Although they seem easy on the surface, async methods and the await keyword are full of tricks and pitfalls that you need to remember in order to write efficient asynchronous code. This day is designed for developers currently using async and await for their systems, and also for developers who have experience with asynchronous programming using the TPL or other threading libraries. Students in this workshop are asked to bring a laptop.

    Level: 400
    Language: Hebrew
    Prerequisites: None

  • Thursday, July 5: Breakout Sessions

    Getting started with Angular and NgRx 6 09:00 - 09:50 Nir Noy

    As Angular apps get bigger and more complex, so does the challenge of managing application state. ngrx is one of the most popular libraries for Angular state management -- inspired by Redux and powered by RxJS, ngrx offers a powerful and productive set of tools for managing application state. In this session we will explore the key components of ngrx and do a live coding session to build an ngrx-powered Angular 5 application.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Progressive Web Apps 10:10 - 11:00 Dovi Perla

    Progressive Web Apps are user experiences that have the reach of the web. and are: Reliable - Load instantly and never show the downasaur, even in uncertain network conditions. Fast - Respond quickly to user interactions with silky smooth animations and no janky scrolling .Engaging - Feel like a natural app on the device, with an immersive user experience. In this session we will learn how to apply these principles to create Progressive Web Apps.​

    Level: 300
    Language: Hebrew
    Prerequisites: None

    CSS Flexbox and Grid 11:20 - 12:10 Masha Kandler

    Building web layouts has changed forever since the introduction of flexbox, but things have changed again with the adoption of CSS grid by the main browsers. In this lecture you will discover how to join the evolution and start using flexbox and grid easily right now.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Angular 5 from the Ground Up 13:10 - 14:00 Amir Adler

    Angular is a framework that helps us build client applications in HTML and either JavaScript or a language (like TypeScript) that compiles to JavaScript. Angular is based on a modern approach that prefers a more composable component model. In this session we will introduce Angular.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Async/Await: No Callbacks 14:20 - 15:10 Gil Tayar

    Usually, Async/Await is explained from the bottom up - from callbacks, to promises, to async/await. This time, I will try and explain from the top‚ how to use Async/await, and how promises are used by async/await. Because it is about time we write asynchronous code in a simple manner.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Object Oriented React 15:30 - 16:30 Doron Zavelevsky

    Object Oriented Programming is a powerful paradigm that comes as a second nature to many developers. Using MobX with React we were able to reap the benefits of OOP and deliver a slick and ambitious web app with reusable components and stores, that's easy to maintain and extend. Let me show you how.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Test Automation Maturity Model 09:00 - 09:50 Arnon Axelrod

    Just few years ago most people didn’t know a thing about test automation. Today most companies either use test automation or plan to start doing it soon. However, even companies that use test automation regularly often have a long way to go in order to realize the full potential of test automation. In this talk I’ll try to outline a typical evolution of the test automation in an organization in the way to realizing its full potential.

    Level: 100
    Language: Hebrew
    Prerequisites: None

    Selenium Grid and Docker 10:10 - 11:00 Daria Shalimov

    Up-level your web automation using Selenium Grid with Docker. Selenium WebDriver is arguably the most popular solution for automation. However, using only WebDriver architecture can't always guarantee you easy and maintainable test environment. This is where Selenium Grid and Docker comes in. Selenium Grid allow you to perform test execution on different machines, with multiple browsers simultaneously. The Docker is a lightweight container ,that provides a fast and programmatic way to run distributed applications. So Instead of running your test across multiple machines or VMs, you can run them all on a single machine using Docker.

    Level: 200
    Language: Hebrew
    Prerequisites: Familiarity with Selenium

    Selenium Design Patterns 11:20 - 12:10 Liraz Shay

    In this session, you will be introduced to Clean Code, Code Smells concepts and anti-patterns in programming, what are the common bad patterns of Selenium code and architectural considerations. We will also go though guidelines on how to write maintainable and reusable automation code, automation of complicated websites, PageObject vs ScreenPlay patterns, and common practices in avoiding and debugging of flaky tests.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Analytics-driven Testing 13:10 - 14:00 Eran Bachar

    Today's testers must test multiple aspects across a plethora of device permutations, in every network condition, while balancing quality with speed of delivery. Since testers don't have the luxury of time to be able to test every device and condition in every testing cycle, they must be able to focus and perform risk-based-testing. In this session, we'll walk you through the basic concepts of how to leverage your real user data and analytics as a key source of information in order to improve your coverage and execution time. We will also discuss how to optimize your testing matrix.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Real-Life Test Maintenance 14:20 - 15:10 Gil Zilberfeld

    Automated tests are code too, and as such, we're obliged to not only make them functionally correct, we need to maintain them. In TDD we're told that refactoring the code is an important step in the process. Refactoring tests is also part of the job. In this session, we'll go over anti-patterns in automated tests. We'll talk about code smells in tests - things that probably shouldn't keep the way they are. Smells like duplication, inaccurate naming, inaccurate asserts, leaky tests and more. Finally, we'll discuss how to do a proper test review. How to use the time we have, when and how to do it, and what to fix as we're reviewing.

    Level: 200
    Language: Hebrew
    Prerequisites: Basic familiarity of testing frameworks

    Test Automation and Architecture 15:30 - 16:30 Arnon Axelrod

    Like any software project, test automation has an architecture (whether solidly planned, or an “accidental” architecture). In addition, the architecture of a test automation project is tightly related to the architecture of the application under test. In this talk, we’ll discuss various important aspects of the architecture of test automation, with many real-world examples. In particular we’ll discuss architectural patterns that affect the reliability of the tests, including the development and use of simulators for things that are beyond the reach of the end user.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Monitoring in the DevOps Age 09:00 - 09:50 Leon Jalfon

    In this session we will talk about one of the most common practices in the culture of DevOps, Monitoring. We will also understand the benefits of implementing monitoring in our organization, we will analyze the principles of this practice and most important we will see using live demos, the main tools used in our days.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Git Fundamentals 10:10 - 11:00 Dan Morgenstern

    What is git, and why is it so popular? what makes git the preferred source control version for us? and how do we use it? This session will answer those question and will focus on git basics and fundamentals

    Level: 200
    Language: Hebrew
    Prerequisites: None

    Alerting and Monitoring using Prometheus and Kubernetes on AWS 11:20 - 12:10 Ilia German

    We will talk about deploying Kubernetes on AWS system using KOPS to different environments (test, stage, prod). After the deployment step I will show how to monitor the environment using open source tools like Prometheus, Alert Manager and Grafana with real-time alerts.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Automatically manage infrastructure as code with Terraform 13:10 - 14:00 Noam Amrani

    Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions. In this talk we will provide high level overview of Terraform, its key concepts, and a short demo of building an environment in AWS.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    DevOps on GCP 14:20 - 15:10 Leon Jalfon

    In this talk we will talk about the strategies used to implement the DevOps practices in Google Cloud Platform. We will see the tools that Google offers for version control, the management of servers and containers, monitoring tools and we will focus on the service provided by Google to implement CI/CD. And all this using only services offered within GCP.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    What's new in TFS 2018 15:30 - 16:30 Dan Morgenstern

    Microsoft has released TFS 2018 last year, and in this session we will view the new features of 2018: work item customizations, git improvements including GVFS, build & release improvements, etc… We will also view features which were removed as well, so we can get prepared better for an upgrade.

    Level: 300
    Language: Hebrew
    Prerequisites: None

  • Thursday, July 5: Full-Day Workshops

    Mastering Kubernetes 09:00 - 16:30 Rob Richardson

    Kubernetes is how you run Docker in production. Bring your laptop with Docker for Windows or Docker for Mac edge version installed. We'll walk through getting a K8s cluster fired up on Docker-Desktop, minikube, and on Azure. You'll be hosting Docker containers in development and production in no time. Students in this workshop are asked to bring a laptop.

    Level: 300
    Language: English
    Prerequisites: None

    Google Cloud Platform Big Data And ML Fundamentals 09:00 - 16:30 Moshe Shamy

    This 8 hour instructor-led class introduces participants to the big data and machine learning capabilities of Google Cloud Platform. It provides a quick overview of the Google Cloud platform and a deeper overview of the data processing and machine learning capabilities. This class showcases big data solutions on Google Cloud, how easy it is to use, and gets you excited about what you can do with it. Students in this workshop are asked to bring a laptop.

    Level: 300
    Language: Hebrew
    Prerequisites: None

    Microservices-Oriented Development Process 09:00 - 16:30 Juval Lowy

    Architects always strive for modularity to achieve extensibility, maintainability and reuse. The technology for the modules, these microservices, changes over time, and yet the very use of smaller blocks introduces inherent complexity. When you design a highly modular system, it would be naive of you to expect that the only things you will do differently will be limited to design and technology. The development process itself needs to be modular, accommodating the complexity of the microservices as a system. In this intense session, Juval will share his original techniques, metrics and ideas, all practiced in real life, allowing for a microservices-oriented development process. Juval will present a battle-hardened approach that you can immediately apply to achieve robust applications, manage requirements, and ensure faster time to market. You will also see how the various team members - the architect, the project manager and the developers - should work in concert, and their respective tasks and responsibilities towards the system and the microservices.

    Level: 400
    Language: English
    Prerequisites: None

    Modern .Net Debugging using ClrMD 09:00 - 16:30 Kevin GosseChristophe Nasarre

    You have to investigate problems live or post-mortem on tens of GB of memory applications by browsing complexe structures, such as the threadpool or the timer queue and… you start to spend your life typing tons of SOS commands in WinDBG… and you abandon. Here comes ClrMD to the rescue! This session will be delivered jointly with Christophe Nasarre. Students in this workshop are asked to bring a laptop.

    Level: 400
    Language: English
    Prerequisites: None

    Beyond Async and Await (2/2) 09:00 - 16:30 Bnaya Eshet

    This is a 2-days workshop focusing on async and await theory and practice. You will gain deep understanding of async methods, how to use them right, best practices, and useful patterns. Although they seem easy on the surface, async methods and the await keyword are full of tricks and pitfalls that you need to remember in order to write efficient asynchronous code. This day is designed for developers currently using async and await for their systems, and also for developers who have experience with asynchronous programming using the TPL or other threading libraries. Students in this workshop are asked to bring a laptop.

    Level: 400
    Language: Hebrew
    Prerequisites: Some experience with asynchronous programming using TPL

    Mastering Microservices (2/2) 09:00 - 16:30 Dennis van der Stelt

    Go beyond the hype and build a solid foundation of theory and practice with this workshop on SOA development. Join Dennis van der Stelt for a two-day deep-dive covering architectural topics like UI decomposition, data ownership across the enterprise, and how to choose a NoSQL database for your services. You will also learn the nitty-gritty detailed of building production-ready services, including fault-tolerance with HTTP and queues, reliable integration with 3rd party systems, monitoring, high availability, and versioning. You will also get some hands-on experience in service development using NServiceBus for building scalable command-processing endpoints, publish/subscribe event-processing interactions, and long-running multi-stage business processes and policies. Students in this workshop are asked to bring a laptop.

    Level: 300
    Language: English
    Prerequisites: None

  • Thursday, July 12: Full-Day Workshops

    ASP.NET Core Web API and Angular 09:00 - 17:00 Amir Adler

    Millions of developers have used ASP.NET (and continue to use it). ASP.NET Core is a redesign of ASP.NET, with architectural changes that result in a leaner and modular framework. ASP.NET Core provides features that help you build web APIs. Angular is a Typescript-based open-source front-end web application platform. It addresses all parts of the developer workflow while building complex web applications. Angular is a complete rewrite of AngularJS. In this workshop we will use ASP.NET Core Web API and Angular to build a web site from scratch. At the end of the workshop, you will be familiar with ASP.NET Core Web API, Angular, and how they communicate with each other.

    Level: 300
    Language: Hebrew
    Prerequisites: Familiarity with web development concepts