
Daniel Raniz Raneland
Sourceror @ factor10
Varberg, Sweden
Raniz is a programmer, architect, speaker and coach at factor10, helping companies achieve software excellence with a business focus.
As a problem solver at heart, he jumps at complicated problems and believes that as much as possible should be automated, reproducible and stored as code.
Area of Expertise
Topics
Putting the Code in Infrastructure as Code with Pulumi
I'm a huge fan of Infrastructure as Code and has practiced it since 2013, but regardless of how many developers put JSON or YAML as skills on their LinkedIn profiles I don't think of those when I think "Code".
In this session I'll show what Pulumi is and how it brings actual Code to IaC by setting up a Kubernetes kluster and deploying a few resources on it.
I will also briefly compare it to the similar, but still fundamentally different, Cloud Development Kits from both AWS and HashiCorp/Terraform.
This talk can be given in Java, Python and TypeScript flavours
Test Driven Development for Everyone
“There is never enough time to do it right, but there is always enough time to do it over.”
~John W. Bergman
Test Driven Development (TDD) is a powerful approach that yields better, bug-free code. So why aren't everyone doing it?
In this hands-on workshop, I'll explain what TDD is and why I think it's so good. We'll also try it out for ourselves, using some real-life examples. You'll get to see how TDD makes writing great code simpler and gives you a safety net for when you have to make big changes to your code.
Bring your laptop and a programming language you're comfortable testing in. If you're new to testing, we've got you covered with starter projects available in multiple languages like C, C++, C#, Java, JavaScript, Kotlin, Python, Rust, and TypeScript.
We'll explore how to plan tests, the role of refactoring in TDD, and the benefits of designing code a bit at a time. Plus, you'll learn how TDD can make your code easier to read and keep up to date, and how it can help make your software more reliable.
Collaborative learning will be a key element of our session - coding in pairs is not just welcomed, it's actively encouraged! Let's embark on this exciting journey of creating better, cleaner, and more reliable code through Test Driven Development together.
This workshop was first given at JFokus but has been given at private companies after that. I can be adjusted in length with a minimum of about 2 hours and a maximum of around 6 hours.
For smaller groups I like to do an ensemble-session before everyone starts on their individual/paired assignments. This requires a longer workshop and a group of maximum 15 attendants.
Three-and-a-half Ways of Testing your Repositories
Domain Driven Design teaches us to separate the repository (our data storage inferface) from the rest of the model in order to prevent our storage interface from contaminating the rest of our domain model.
So, with the data layer successfully separated from the rest of the domain model into its own repository, now comes the time to test it - a task that may seem rather daunting.
In this talk I will use Test Driven Development to show how to use mocking frameworks to mock datastores at both the API-, and server-level, and show techniques to test against a real database as well as how we can make the tests more portable by leveraging containers when appropriate.
Thawing Java on AWS Lambda: Reducing cold start times from 6 seconds to .1
Java has never been a perfect fit for Function as a Service platforms such as AWS Lambda or Azure Functions. While both platforms have official support for Java, Java functions unfortunately suffer from significantly longer cold start times than many other runtimes.
In this talk I will show a simple Spring Cloud Java function running on AWS Lambda with fairly horrible cold start times of around 11 seconds and then show how we can fix this by using GraalVM Native Image to perform most of the work during compile time. The end result is cold start times of less than a second, making Java a viable, though not without drawbacks, choice for FaaS platforms that support custom runtimes.
In this updated version I will compare Micronaut and GraalVM with AWS Lambda SnapStart and discuss the different solutions and their specific advantages and drawbacks.
First given at JFokus 2022, but also given at CraftConf, AllDayDevOps and Devoxx.
30-45 minutes.
Test, Code, Repeat: The Secret Sauce to Business Superpowers!
Are you familiar with the term "software delivery performance"? It might seem like technical jargon, but it is an integral component that every business, big or small, should excel at. Ever wondered what sets apart a strong performer from a weak one in the realm of business?
One significant aspect that plays a critical role in this is the process of software testing. You might ask, why should a business be concerned about whether or not their software is being tested? The answer lies in the profound impact that software testing can have on the overall functioning and growth of a business.
In this talk, we'll delve deeper into the concept of software delivery performance. We'll define it and show how it directly connects to the success and efficiency of your business. But, the exploration won't stop there. We're going to discuss an often-overlooked aspect of software development that holds the key to enhancing your business' software delivery performance - automated testing.
Automated testing is an instrumental tool in ensuring that your software functions correctly, is free of errors, and works smoothly to support your business operations. It aids in making your software a reliable platform for delivering your services, thus impacting not only your business's credibility and customer satisfaction but also the health, motivation and ultimately loyalty of your employees.
By the end of this talk, you'll not only understand the significance of software delivery performance but also gain insight into the importance of automated testing. You'll learn how the lack of proper testing can negatively affect your business and why investing time and resources into automated testing is a strategic move towards improving your business's software performance. It's a journey from comprehending the core concepts to understanding their practical applications in your business.
This has previously been given at internal company conferences to great effect, with more than one product manager calling it "eye opening".