NIDC 2020 Workshops
On Thursday 8th October, we will be running a workshops day. While there will be a nominal fee for workshops, which will be donated to charity, it is an absurdly tiny fraction of their street value. Spaces will be very limited, so sign up as soon as you can!
We have 4 workshops on offer, including Event Sourcing, Data Science and TypeScript, and one for anyone who wants to learn how to turn meetings into decisions:
- Event Sourcing with EventStoreDB from Dynamic Signal (full-day)
- Introduction to TypeScript from Instil (full-day)
- Lightning Decision Jams from Run.Design (1 hour)
- Python for Data Science: Practical Pandas, Jupyter and Arrow from WhiteHat Security (half-day)
Event Sourcing with EventStoreDB
Host: Jason Mitchell
Event sourcing is an alternative approach to persisting data where rather than storing the up-to-date state of an entity each change is stored as a separate record. These records (known as events) can then be replayed to derive the latest entity state.
During the workshop we will dive into the event sourcing pattern, its benefits, and important things to consider when building an event sourced application. We will walk-through how to implement event sourcing from scratch using EventStoreDB to record events.
This workshop will contain some theory but the focus will be on hands-on exercises. We will use Test-Driven Development as a tool to help learn about event sourcing.
- The basics of Domain-Driven Design.
- What event sourcing is and why it is useful.
- CQRS and its relationship to event sourcing.
- How to use EventStoreDB.
- How to model an application using events.
- How to build and test event sourced applications.
- How to evolve an event sourced application in production.
Who is this for?
Anyone with prior experience building applications which interface with a database. All code in workshop materials will be written in C# so familiarity with the language is recommended. As we will be writing tests throughout the workshop knowledge of a test library such as NUnit or xUnit will be beneficial.
The following software will be required for the workshop:
- .NET Core 3.1 SDK
- A C# IDE such as VS Code, Visual Studio or Jetbrains Rider
Introduction to TypeScript
Host: Garth Gilmour and Eamonn Boyle
This single day workshop will introduce you to TypeScript. We will provide an overview of the language that touches on all of its features. This will include:
- Creating standalone TypeScript projects via WebPack.
- Configuring the behaviour and outputs of the Transpiler.
- Safer coding via type inference, interfaces and generics.
- Making higher order functions intelligible via type signatures.
- Enhanced typing via aliases, unions, intersections and literals.
- Type Driven Development with mapped and recursive types.
Lightning Decision Jams
Host: Leela Collins
A Lightning Decision Jam is a condensed design thinking workshop which can help teams generate and prioritise actionable solutions to various problems. This process uses the four principles of design sprints:
- Work together, alone. Independently come up with ideas, allowing quieter voices to share their thoughts.
- Tangible items are better than discussion. Reduce the risk of different interpretations
- Getting started is more important than being right
- Don’t rely on creativity. Good ideas can come from anywhere.
Using the Visual Collaboration tool Mural, over 1 hour we will as a group discuss the impact of lockdown measures on networking events. We will be participating in the following actions in hopes of addressing a problem currently affecting the industry:
- Identify and define the problem quickly
- Come up with a lot of solutions
- Find the best solution/next step, based on identifying the effort and impact of the best solutions
- Arrive at clear action steps that can start being implemented as soon as the meeting is over
There are no pre-requisites for this workshop.
Python for Data Science: Practical Pandas, Jupyter and Arrow
Host: Andrew Bolster
In this half day workshop, we’ll take a practical exploration of the current Python data ecosystem, using real data, to cover:
- Jupyter Notebook development with Docker
- Data Exploration and Injestion
- Data Storage considerations and performance
- Data Visualisation and Analysis
- Tools and methods for reproducible workbooks
Attendees should have some familiarity with Python.