The Personal Blog of Todd Sharp


Here are some of my recent presentations.

Message Driven Microservices & Monoliths with Micronaut

One of the biggest challenges that developers face when working in a microservice environment is ensuring data consistency. Distributed services must be able to communicate with each other in order for your application to deliver all of the requirements and functionality that your users expect. Think about an e-commerce application, for example. Your shipment service needs to know when an order is placed, right? Your order service, in turn, should also know when it has been shipped! Even if your application is less “pure microservice” and more of a hybrid approach you probably have at least a few distributed services that ultimately need to communicate with each other. Communication between distributed services is challenging and I want to show you a few tricks for simplifying this difficult task by using Micronaut and some fairly popular messaging solutions. We’ll break this down in in this session to help you get started implement messaging in your applications using some popular open source tools as such as Apache Kafka and RabbitMQ, well as a managed Oracle Cloud based option that can be plugged into your service with very little setup and configuration.

Presented at:

Getting Started with JSON Document Collections in the Autonomous JSON Database

In this session, you’ll be introduced to the Autonomous JSON Database (AJD). AJD is exciting because it represents the very first time Oracle is offering a dedicated solution for JSON document collection persistence in the Oracle Cloud. It represents our commitment to offering developers tools and solutions that help them solve the problems they face when developing microservices and applications instead of trying to convince them to use a tool that might not be the best fit for them. Like all good solutions, it is scalable and adaptable, which means that it can transform into a full-blown Autonomous Transaction Processing database if your needs dictate that in the future. We’ll get hands on in this session and show you how to launch a new AJD instance and immediately persist and retrieve JSON documents and collections via SQLcl. We’ll also show you how to use the SODA module for Node.JS to work with your AJD instance. Of course, you’re not limited to just Node.JS - we also offer SODA packages for Java, Python, C, REST and PL/SQL so you can choose the package that best fits your needs.

Presented at:

Hidden Gems In The Oracle Cloud

There are tons of amazing products and services in the Oracle Cloud Infrastructure catalog and I’m sure you’re using many of them in your tenancies to develop, deploy and maintain your data-driven applications. But there are also many services and features that you might not be as familiar with. In this session, I’ll show you where to find and how to use these lesser-known features. You’ll be sure to learn a few tips for saving money on your cloud bill, ensuring compliance, manage your database instances, monitor performance and even some tips for writing more efficient code in your applications.

Presented at:

Easier Microservice Persistence With Micronaut Data

In this session I'll introduce you to Micronaut Data, a tool that will make your persistence operations easier to code and more performant than most alternatives. Writing SQL queries is one of the first things you learn as a developer which inevitably leads most developers on a quest to find the easiest, fastest and most performant way to avoid writing SQL queries. Even the simplest application likely has some form of persistence layer which means at some point you'll be thinking about writing some boring, boilerplate CRUD operations. There are many tools available to make this job easier and each of those tools have strengths and weaknesses. Micronaut Data is a new entry into the database access toolkit landscape and delivers improvements on some existing solutions by using AoT compilation to pre-compute queries which are executed by a thin runtime layer. Since the queries are pre-computed, there's no runtime model to consume memory and of course Micronaut Data doesn't use reflection or runtime proxies. The result is a toolkit that is easy to use and highly performant.

Presented at:

Fighting Diabetes with Technology

My 13-year-old daughter was recently diagnosed with diabetes. She is one of 400 million people worldwide who has to live with this disease for the rest of her life—and I am determined to be with her every step of the way. Thanks to technology, I can help her to easily calculate her carbohydrate consumption to help her determine her next insulin dose. This is my attempt as a father and a developer to address a real-world problem with technology, and hopefully inspire others to do the same.

Presented at:

How I Automated My Barn...

A few years ago I created a small system to automate some tasks in our barn where we keep pet potbelly pig and our chickens. Simple things, like scheduling when the lights turn on and off, temperature monitoring and a webcam. It was nice to automate those things, but the best part for me was being able to tinker with the sensors and devices and learn new libraries, frameworks, and languages. I’ve recently re-imagined the system as a way to learn more new technologies. I’ve created a prototype version to demonstrate how I might build it again if I were to start over from scratch and in this session, we’ll look at that model and learn about the hardware and software used in it. At its core, the system uses an Arduino, Raspberry Pi, and various pumps, solenoids, motors, and sensors to simulate the automation of certain tasks like filling a water bowl, opening and closing doors, monitoring environment and turning on and off lights on demand or via a schedule. The hardware runs a client which has been implemented in several languages for demo purposes (currently Node and Groovy). The client interfaces with Kafka via a cloud-based microservice (also implemented in Node and Groovy) for messaging to both store sensor data in an Autonomous Database instance and stream data to the Angular front-end in real time via server sent events. The Raspberry Pi client also receives commands for remotely performing certain tasks on demand. The persisted data is formatted and displayed on a web application running in a Docker container that is deployed to a cloud-based Kubernetes cluster. We’ll look at both the hardware and software that power this system and how I’ve used the project as a playground for learning new technologies, languages, and frameworks.

Presented at:

Getting Groovy with Spark Java

Gone are the days of verbose, cumbersome frameworks that get in your way! Spark Java is a micro framework that is easy to learn, simple to use and makes your job as a developer easier. It can be used to create anything from a REST API microservice to a full featured web application. You can write your application or microservice using pure Java, but development gets even easier when you combine it with a the JVM language that you are most comfortable with like Kotlin or Groovy (or others). In this talk we’ll take a look at using Spark Java with Groovy. You’ll learn the basics of Spark Java and get introduced to some ways it can be extended by integrating it with the larger Java ecosystem to do things like persistence with ORM and rendering views with a variety of templating engines available. Spark Java is so lightweight you can even run it on a Raspberry Pi!

Presented at:

ECMA What? Getting Up To Speed With The JavaScript World

You've been a developer for a while. You're familiar with JavaScript and written plenty of apps in your day. But you've been out of the loop for a while. There's been a lot of changes in the JS world and after this talk you'll be up to speed and ready to get started with modern day JS.

Presented at: