Riccardo Terrell


I am functional guy living in an imperative world.

Riccardo is an information systems and technology professional and architect specializing in software & systems development. He has over 20 years’ experience delivering cost-effective technology solutions in the competitive business environment. Riccardo is passionate about integrating advanced technology tools to increase internal efficiency, enhance work productivity, and reduce operating costs. He is a MVP who is active in the .Net, functional programming, and F# communities. Riccardo believes in multi-paradigm programming to maximize the power of code and is the author of “Functional Concurrency in .NET”; which, features how to develop highly-scalable systems in F# & C#.

Fast Neural Networks… a no brainer! The Actor model as neuron

Saturday, March 24th, 2018 at 10:00 am in

Artificial Neural Networks are a fascinating computational approach modeled to react similar to a biological brain to solve problems. Neural networks are a very powerful tool that enable machines to teach and evolve themselves. You can utilize this power in almost any application. Don’t be intimidated by the equations and Greek symbols of this cutting-edge technology, I will guide you on how to slay this technology and make it bend to your will! In this session, we are going to demystify the presumed complexity of Neural Networks. No need for a PhD or mathematical background, after this overview, you will be discussing these concepts around the water cooler. There will be very little math and lots of coding. The goal is for everyone to become acquainted with Neural Network from a pragmatic standpoint.

In this session, we will take a closer look at artificial neural networks inspired by biological neurons. We will study how these neurons can be modeled in a digital counterpart. After a short introduction of the actor model, the communalities between neurons and how Actors work by building an asynchronous and reactive neural network will be demonstrated.
Just when you think it couldn’t get any better, I will show you how to employ the functional paradigm to leverage multicore machines and GPUs to make your neural network predictions infinitely faster through parallelism.

By the end of this talk, you will learn the basic concepts of Neural Network and how to apply functional concurrency to estimate future stock prices at smoking fast speeds…and perhaps get rich while practicing!

Modern patterns of concurrent and parallel programming in .NET

Friday, March 23rd, 2018 at 8:30 am in

Sold OutBecome the master of the multicore domain. Learn how to harness the powers of parallel computation and multicore computation to dominate peer applications in finance software, video games, web applications and market analysis. To yield the most performance, computer programmers have to partition and divide computations to maximize the performance while taking full advantage of multicore processors. Start your path from Padawan to Jedi, after this workshop you will be ready to return to work and have code bend to your will.

Concurrency, multi-core parallelism, and distributed parallelism are powerful and accessible. These computing concepts promise big impacts on the full spectrum of software applications, including video games, web applications and market analytics suites. Programmers of these products know how to partition computations over large distributed datasets in order to take full advantage of modern hardware and computing environments. These programming skills are not easy to master. This course will introduce technologies and tools available to developers at every level who are interested in achieving high-performance, reliable and maintainable code through functional-style parallelism and concurrency.

We are facing a new era of geographically-distributed, highly-available systems with processor designs that are scaling out in core counts quicker than they are scaling up in core speeds. In keeping up with performance expectations as complexities and dataset grow, scaling out software architectures over these modern computing resources is one of the biggest challenges facing developers today.

This course will introduce you to technologies and tools available to developers at every level who are interested in achieving exceptional performance in applications. You will gain an insight into the best practices necessary to build concurrent and scalable programs in .NET using the functional paradigm, which covers OnPrem and Cloud based applications.

Notes and comments
The following objectives will be satisfied during the duration of the course:

1. Functional Programming Techniques for Concurrency
2. Building high-performance concurrent systems
3. Implementing high-volume real-time event stream processing
4. Implementing concurrent patterns such as divide-and-conquer, fork/join, producer-consumer, Map-Reduce, pipeline and more
5. Asynchronous Functional Combinators
6. Applying Reactive Programming Everywhere with Agents and Actors
7. How to develop applications that scale up & out using the same programming model (Agents and/or Actors)

Target Audience
Any developer who want to improve their skills and employ polyglot techniques to solve concurrent problems

Prerequisite
The preferred audience for this course is as follows:
– Developer with 2-3 years’ experience and/or architect.
– Basic knowledge a programming language, recommended either C# or F#
– No experience in functional programming is necessary
– Developers who want to improve their skills and employ polyglot techniques to solve problems.

Functional Reactive Programming for Natural User Interface

Saturday, April 9th, 2016 at 8:30 am in

Functional reactive programming supports elegant programming of dynamic and reactive systems by providing first-class, composable abstractions for behaviors (time-varying values) and events (streams of timed values). Using Functional Reactive Programming to handle event-stream of values over time provides an alternative to the Observer pattern, which produces a series of unique responses to discrete changes in state. Reactive Programming is useful anywhere the Observer pattern is common, and provides an elegant way to express computation in domains such as video games, networking, user interfaces and simulation. Once understood, it can greatly simplify your project and code dealing with asynchronous events with nested callbacks, complex list filtering/transformation, or timing concerns. During this presentation I will create, consume and compose event streams with Observables introducing the concept of FRP integrating time flow and compositional events to build Natural User Interfaces with Kinect and Leap using F#. You will walk away with the knowledge and excitement of how to use the Functional Reactive Programming approach and how to leverage the reactive programming power to build Natural User Interfaces.

Functional Reactive Programming

Saturday, October 10th, 2015 at 3:00 pm in

Using Functional Reactive Programming to handle event-stream of values over time provides an alternative to the Observer pattern which produces a series of unique responses to discrete changes in state. FRP is useful anywhere the Observer pattern is common, and provides an elegant way to express computation in domains such as video games, networking, user interfaces and simulation. Once understood, it can greatly simplify your project and code dealing with asynchronous events with nested callbacks, complex list filtering/transformation, or timing concerns.

During this presentation I will delve into the Reactive Extensions from a functional prospective using F#. I will create, consume and compose event streams with Observables and RX leveraging asynchronous computation expression.

You will walk away with the knowledge and excitement of how to use the Functional Reactive Programming approach and how to leverage the reactive programming power to build high-performance and responsive applications.

Functional F# Programming in .NET – A success story

Saturday, October 10th, 2015 at 10:00 am in

In recent years companies and developers have become more interested in functional programming, as result of this increase in requests, mainstream languages have begun to introduce functional concepts and characteristics as part of their native ecosystem.
If you are a .NET developer, F# can be a valuable tool to have at your disposal to solve today’s most relevant issues. F# is a great functional first language with full support for Object Oriented Programming.
One of the biggest advantages of using F# is that it assures your code is bug-free and ready for concurrency without changing your code base.
In this talk, I will give an intro to Functional Programming and F# features for C# developers, illustrating with code samples why you should care, where it is useful and how to start using it today. You will walk away with an understanding that Functional Programming is a paradigm that can be adopted to solve specific problems and mixed with other paradigms such as Object Oriented and Imperative programs. Achieving success often comes down to finding the right tool for the job.

F# in the Web

Saturday, March 21st, 2015 at 8:30 am in

F# is a fantastic modern cross-platform programming language that can be used to develop Web based solutions.
In this session, we’ll go over several features that F# provides to write simple yet high-performance web based solutions.  We will discuss the benefits utilizing a functional approach including composition, type providers and computation expressions.
We will use the CQRS (Command Query Responsibility Segregation) pattern in an MVC Web project leveraging the power of Reactive Extension combined with the efficiency of SignalR for bi-directional communication between web servers and clients.
You will leave with the skills needed to enhance your development skills for modern web applications, by adding a modern programming language to your “tool box”.