Skip to main content

8 posts tagged with "ci-cd"

View All Tags

Supabase version control

· 9 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

Building robust applications requires more than just a functional database; it requires a disciplined approach to managing changes, testing, and deployment. This guide will focus on the DevOps side of Supabase, explaining how to handle database migrations, integrate with CI/CD pipelines, and manage test data.

Unusual git rebase usage

· 10 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

Rebasing in Git is a powerful and often misunderstood tool. While its primary use is to integrate changes from one branch onto another, there are several "unusual" yet highly effective ways to leverage git rebase to clean up your commit history, fix mistakes, and collaborate more smoothly.

This guide explores some of these advanced use cases, focusing on their practical application and best practices.

Git ours vs. git theirs

· 5 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

In Git, the terms ours and theirs are used to refer to the two conflicting versions of a file during a merge or rebase. Understanding which version is which is critical for resolving conflicts correctly [1].

How to replace one git branch with another

· 7 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

Replacing one Git branch with another is a destructive operation that rewrites the history of the target branch. The method you provided using git merge -s ours is a clever and safe way to achieve this without a hard reset. This guide will walk you through the process, explain the commands, and provide a clear, step-by-step example.

Does git rebase affect other branches?

· 6 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

Does git rebase affect other branches?

Yes, git rebase can affect other branches, but only if you rebase a branch that other developers have already pulled and started working from. Rebasing a local, unshared branch has no impact on other branches in the repository.

The key to understanding this lies in how rebase works. It rewrites the commit history of a branch by moving its commits to a new base. When you run git rebase, you're essentially creating a new set of commits that replace the original ones.

Test-Driven Development (TDD) - Writing Code That's Correct by Design

· 10 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

Not only Shift-Left mantra matters

The mantra of "Shift Left" has echoed through the halls of software development for years now, and for good reason. The core idea is simple yet powerful: move testing, quality, and security considerations as early as possible in the development lifecycle. It's about catching problems when they're small and cheap to fix, not when they're gargantuan headaches in production. But as a lead engineer who's seen a few projects through the trenches, I've come to realize that "Shift Left" isn't the destination; it's the starting point.

To truly build robust, maintainable, and high-quality software, especially in a dynamic language like Python, we need to embrace a set of development paradigms that not only support but enhance the "Shift Left" philosophy. These aren't just buzzwords; they are methodologies that, when adopted, fundamentally change how we approach writing code for the better.

Beyond Shift Left. Development Paradigms Every Programmer Should Know

· 5 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

I'm continuing the paradigms circle. The Shift Left paradigm is well-known in the DevOps and QA communities for its philosophy of catching bugs, security issues, and integration problems early in the development lifecycle. But Shift Left is not the only valuable philosophy out there. In fact, in some contexts, other paradigms can be even more effective.

This article introduces several software development paradigms that complement or enhance Shift Left—and may even be more impactful depending on your context.

Handling Environment Variables in OpenAPI Server URLs

· 4 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

When defining server URLs in OpenAPI specs, you often need to reference environment-specific values (like staging or production subdomains). But using raw environment variables can result in placeholder values like default: unknown, which may confuse tools like Swagger UI, ReDoc, or code generators.

This guide explains the issue and offers clean solutions — with practical examples.