Mohamed Ragab & Khaled Hafez
Functional and Reactive Programming for Scalable Architectures
Mohamed is an enthusiastic software engineer who has been writing software for two decades. He has experience working for various international and local companies, working with large projects and teams distributed across many countries. Mohamed joined Orange Labs Egypt in 2009 as a Senior Software Architect. He currently leads the Technology group, and is an internal agile development coach. Mohamed has experience designing and developing systems with high scalability and security requirements, and has an avid interest in pragmatic development processes, and engineering practices.
Mohamed is recognized as an OrangeExpert Software community member.
Mohamed received his Masters of Science degree in Information Technology from the Informatics Institute of IT at Nottingham University, UK.
Senior Software Engineer at Orange Labs Egypt, Khaled is a very passionate software engineer, having over 4 years of experience in software development and other 2 years in research and development especially in machine learning and NLP, he’s still famished for more technology and more challenges. Khaled has worked in different international companies and has worked on large projects and various domains. Khaled is very interested in building reactive systems that are more flexible, loosely-coupled and scalable.
About the Tutorial
Agile Software Development and DevOps
Goals and objectives
The tutorial aims to introduce the audience to an architecture style for building internet scale applications. Covers challenges involved in scalability and resiliency. The tutorial introduces principles of functional programming, and building reactive applications that are: Responsive, Resilient, Elastic, and Message Driven. The tutorial provides an overview of the Actor Model and a set of messaging design patterns that allow for building distributed scalable applications. Introduces some concepts from Domain Driven Design, Even Sourcing, and CQRS. The tutorial also addresses some of the deployment and runtime challenges of a Microservice architecture and how to dynamically manage such an infrastructure. The audience should expect to leave with an initial understanding of the different pieces necessary for solving the puzzle and a map of how they fit together, ready to take things further, it is the start of a journey.
Code examples are in Scala, Akka, and a range of other technologies
Target Audience & Prerequisites
Developers, Testers, Analysts