placeholder
thoughts and learnings in software engineering by Rotem Tamir

About

Hi, I’m Rotem Tamir (39),

  • Father of 2, located near Tel-Aviv, Israel.
  • Co-founder and CTO of Ariga.
  • Previously Data Platform Architect and Platform Tech-lead at Nexar
  • Previously team lead at ironSource data solutions.

Find me on the internet:

Public Speaking

Every now and then I get on a stage and talk about things. Some of my notable appearances:

The Hard Truth about GitOps and Database Rollbacks KubeCon North-America, Salt Lake City, 2024

For two decades now, the common practice for handling rollbacks of database schema migrations has been pre-planned “down migration scripts”.

A closer examination of this widely accepted truth reveals critical gaps that result in teams relying on risky, manual operations to roll back schema migrations in times of crisis.

In this talk, we show why our existing tools and practices cannot deliver on the GitOps promise of “declarative” and “continuously reconciled” workflows and how we can use the Operator Pattern to build a new solution for robust and safe schema rollbacks.

How Go Tests “go test” (Hebrew) GopherCon Israel, 2024

When you’re building tools for other developers, testing is 100x more important. Have you ever considered how Go tests “go test”? In this talk, we explore “testscript”, the hidden testing framework in the Go internal codebase.

Testing is an essential part of software development, and it is one of the most established ways to maintain a project’s quality over time and prevent issues from arising as a project evolves.

This is especially important when building tools for developers, as people’s workflows rely on our tools, and changes or breaks in behavior can have an outsized impact.

In this talk, we will explore one of the techniques used by the Go team to test their own command-line interface (CLI) tool, “go”. We will introduce “testscript”, a relatively unknown testing framework that’s hidden inside the Go internal codebase. Finally, we will demonstrate how to use “testscript” to build a solid and fun-to-maintain test suite for command-line applications.

GitOps for Databases with Kubernetes CNCF Meetup March 2024 (Ho Chi Minh City)

Kubernetes is an amazing way to manage resources in cloud native applications - until it comes to stateful resources like databases.

In this talk we dive into the challenges of managing database migrations with Kubernetes, and about all of the ways NOT to do it.

Finally, we present the Atlas Operator a Kubernetes operator that enables you to manage your database schemas natively from your Kubernetes cluster. By exposing custom resource definitions (CRD) the operator extends the Kubernetes API to support database schema management.

Stop using your ORM to manage your database schema Reversim Summit, 2024

Many developers use frameworks and ORMs like Django, Rails, or TypeORM to create an abstraction layer between their application and database code. Often, the default solution provided within these tools is employed for managing the underlying database schema.

In this talk, we will show why it’s a bad idea for schema management to be solved at the ORM/Framework level in the same way that we wouldn’t expect them to solve compilation or package management. We will show how, by exposing a very simple API, it is possible to create common tooling that will be shared by all languages and frameworks to solve the challenges of schema management once and for all.

Updating Databases the GitOps Way KubeCon North-America, 2023

A talk which I co-presented in ArgoCon (part of KubeCon NA) with Kostis Kapelonis of CodeFresh. In it we explore the different ways people have been using to deploy database migrations in Kubernetes and present a truly GitOps-based solution: The Atlas Kubernetes Operator.

Avoid Toll Roads: Deploying Declarative Database Schema Changes DevOpsDays Madrid, 2023

In this talk from DevOpsDays Madrid 2023, I dive into the Declarative Model and explore the question: can it be applied to managing databases?

Introducing Atlas DDL: An HCL-based Language for Database Schemas HashiTalks: Build 2023

A talk from “HashiTalks: Build” 2023, an online HashiCorp event about building things around the HCP ecosystem. I talk about Atlas DDL, the Terraform-like data definition language we created for Atlas.

Bridging the Gap Between IaC and Schema Change Management Hebrew. HashiTalks: Israel, 2023

A talk from a local (Hebrew) HashiCorp event, “HashiTalks: Israel” where I talk about the gap between IaC and database migrations that led us to develop Atlas.

The Best Ways to (not) Crash Your Production Database Hebrew. Go Israel Meetup, 2022.

A talk from the Go Israel Meetup where I present how to do Continuous Integration for database schema changes, and share some of the cool Go gems I discovered and learned about along the way.

Podcast appearances

Some people were kind enough to host me on their shows. Here are some of the podcasts I’ve been on:

  • The IaC Podcat - interviews me for “Behind the Sessions” at KubeCon North America 2024.
  • Amazic - Twain Taylor interviews me about how Atlas aims to make schema migrations declarative and compliant.
  • Kube.fm - Bart interviews me about better database tooling for Kubernetes at KubeCon North America 2024.
  • Cloud Unfiltered (recorded at KubeCon NA 2023) hosted by Michael Chenetz. Recorded November 2023
  • TechStrong.tv (recorded at KubeCon NA 2023) hosted by Alan Shimel. Recorded November 2023
  • Develeap Tech Tuesdays hosted by Amir Shalem. Recorded April 2024