Daniel Hinojosa

Independent Consultant

Daniel Hinojosa

Daniel is a programmer, consultant, instructor, speaker, and recent author. With over 20 years of experience, he does work for private, educational, and government institutions. He is also currently a speaker for No Fluff Just Stuff tour. Daniel loves JVM languages like Java, Groovy, and Scala; but also dabbles with non JVM languages like Haskell, Ruby, Python, LISP, C, C++. He is an avid Pomodoro Technique Practitioner and makes every attempt to learn a new programming language every year. For downtime, he enjoys reading, swimming, Legos, football, and barbecuing.

Presentations

Introduction to ArgoCD

Monday, 1:30 PM EST

This presentation will explore ArgoCD, a powerful, open-source, and declarative GitOps continuous delivery tool for Kubernetes. We’ll introduce GitOps and its importance in modern DevOps practices, followed by a high-level overview of ArgoCD and its key features, such as automated sync and rollback capabilities. The presentation will cover ArgoCD’s architecture, detailing its core components and workflow, and provide a guide on installation, initial configuration, and defining and managing applications.

  • Introduction of ArgoCD
  • Architecture of ArgoCD
  • Installing ArgoCD
  • Creating and Managing Applications
  • Integrating with CI
  • Performing Rollbacks
  • Performing Approvals

The Fine Art of Canary Deployments

Monday, 3:15 PM EST

Canary Deployments are the last ingredient of any Continuous Delivery or Continuous Deployment rollout. A canary deployment is a deployment strategy that releases an application or service incrementally to a subset of users. All infrastructure in a target environment is updated in small phases (e.g., 2%, 25%, 75%, 100%). This control makes a canary release the lowest risk-prone compared to all other deployment strategies, like the blue-green strategy. If you need to back out of a production deployment quickly without much disruption, then canary deployments may be an excellent practice to set up.

We will treat this talk like a recipe so that you can set up a canary in your work environment.

  • Continuous Integration, Continuous Delivery,
  • Continuous Deployment Overview
  • You can perform this anywhere: Cloud instances or Kubernetes
  • What is Canary? What are some of the strategies you can use?
  • What CD Frameworks perform Canary Deployments?
  • How do you perform metrics? Are things going too slow or too fast?
  • How do you back out if this rollout is not performing as well as it should?
  • Can you perform canary deployments without a CD framework? Perhaps something native to Kubernetes?
  • Performing using Spinnaker, Argo, Istio
  • Conclusion

Nix: Sandbox and Reproducible Builds

Tuesday, 5:00 PM EST

We have gone through a lot when it comes to configuring our computers with Java, with an editor, and maybe even setting up Git. We often take great care in ensuring that our PATH and even JAVA_PATH environments are clean and organized. Then, when we decide to install software that depends on the software that we already have installed, what does it do, reinstall that dependency! Not only that, it's somewhere else. Now we have multiple Java's with the same version. We have multiple pythons, Multiple everything. It's time to end this madness and aggravation and nix the old way and introduce a new way, NixOS.

In this presentation, we tell a story.

  • I want my group to use the same language and tool versions exactly and repeatedly; I don't want to hear, “It works on my machine.” It should work on all machines and CI/CD.
  • Wait, is this like Docker?
  • Installing and Using Nix
  • How to use nix-shell?
  • Finding our software in the nix-store
  • Establishing a default.nix
  • How to install
  • Using some of the other nix commands
  • Programming Nix
  • Using Nix with Docker
  • How dependencies are cached
  • What is the actual operating system? Nix-OS?

Gitops: From Commit to Deploy

Wednesday, 9:00 AM EST

Join us for a hands-on workshop, GitOps: From Commit to Deploy, where you’ll explore the entire lifecycle of modern application deployment using GitOps principles.

We’ll begin by committing an application to GitHub and watching as your code is automatically built through Continuous Integration (CI) and undergoes rigorous unit and integration tests. Once your application passes these tests, we’ll build container images that encapsulate your work, making it portable, secure, and deployment-ready. Next, we’ll push these images to a container registry preparing for deployment

Next, you will learn how to sync your application in a staging Kubernetes cluster using ArgoCD (CD), a powerful tool that automates and streamlines the deployment process. Finally, we’ll demonstrate a canary deployment in a production environment with ArgoCD, allowing for safe, gradual rollouts that minimize risk.

By the end of this workshop, you’ll have practical experience with the tools and techniques that perform GitOps deployments, so you can take this information and set up your deployments at work.

  • Creating Your Application
  • Running Locally
  • Proper Commits
  • Security Scans
  • Safe Image Creation
  • Image Publishing
  • ArgoCD and Syncing
  • Canary Deployments

Gitops: From Commit to Deploy

Wednesday, 11:00 AM EST

Join us for a hands-on workshop, GitOps: From Commit to Deploy, where you’ll explore the entire lifecycle of modern application deployment using GitOps principles.

We’ll begin by committing an application to GitHub and watching as your code is automatically built through Continuous Integration (CI) and undergoes rigorous unit and integration tests. Once your application passes these tests, we’ll build container images that encapsulate your work, making it portable, secure, and deployment-ready. Next, we’ll push these images to a container registry preparing for deployment

Next, you will learn how to sync your application in a staging Kubernetes cluster using ArgoCD (CD), a powerful tool that automates and streamlines the deployment process. Finally, we’ll demonstrate a canary deployment in a production environment with ArgoCD, allowing for safe, gradual rollouts that minimize risk.

By the end of this workshop, you’ll have practical experience with the tools and techniques that perform GitOps deployments, so you can take this information and set up your deployments at work.

  • Creating Your Application
  • Running Locally
  • Proper Commits
  • Security Scans
  • Safe Image Creation
  • Image Publishing
  • ArgoCD and Syncing
  • Canary Deployments

Books

Testing in Scala

by Daniel Hinojosa

  • If you build your Scala application through Test-Driven Development, you’ll quickly see the advantages of testing before you write production code. This hands-on book shows you how to create tests with ScalaTest and the Specs2—two of the best testing frameworks available—and how to run your tests in the Simple Build Tool (SBT) designed specifically for Scala projects.

    By building a sample digital jukebox application, you’ll discover how to isolate your tests from large subsystems and networks with mocking code, and how to use the ScalaCheck library for automated specification-based testing. If you’re familiar with Scala, Ruby, or Python, this book is for you.

    • Get an overview of Test-Driven Development
    • Start a simple project with SBT and create tests before you write code
    • Dive into SBT’s basic commands, interactive mode, packaging, and history
    • Use ScalaTest both in the command line and with SBT, and learn how to incorporate JUnit and TestNG
    • Work with the Specs2 framework, including Specification styles, matchers DSLs, and Data Tables
    • Understand mocking by using Java frameworks EasyMock and Mockito, and the Scala-only framework ScalaMock
    • Automate testing by using ScalaCheck to generate fake data