Systems | Development | Analytics | API | Testing

How does Git work?

If you're like me and have less than twenty years of software engineering experience, the thought of a world without Git doesn't seem possible. When I started to research for this post, I almost fell out of my chair when I read that Git was created in 2005. It doesn't seem that long ago... either that, or I'm simply getting old. When I started programming, I asked myself a question I sometimes still ask myself today - How does git work? I often find myself being scared of certain Git commands.

Building a CLI with Laravel Prompts

As Laravel web developers, we often need to build Artisan commands for our applications. But interacting with the console can sometimes feel a little cumbersome. Laravel Prompts is a package that aims to improve this experience by providing a simple approach to user-friendly forms in the console. In this article, we'll take a look at Laravel Prompts and some of its features that you can use. We'll then build a simple GitHub CLI client using Prompts to demonstrate how to use it in your applications.

Parsing CSV files in Ruby

Handling data in various formats is a common task in software, and CSV (Comma-Separated Values) files are among the most prevalent data formats you'll encounter. Whether for data migration, reporting, or simply importing and exporting data, processing CSV files efficiently is a necessary skill for any Ruby developer. In this article, we'll learn the practical aspects of parsing and handling CSV data using Ruby.

API versioning in Ruby on Rails

Versioning APIs is a critical part of building web applications, as it allows you to make changes that may otherwise break existing API users. Changing the contract between the API and the clients that depend on it is dangerous, and versioning endpoints adds flexibility and safety. Versioning is implemented in many ways - You can version with subdomains, query parameters, URL schemas, headers, and more!

A guide to PHP attributes

When building web applications in PHP, there may be times when you want to add metadata to annotate your code that can be read by other parts of your application. For example, if you've ever used PHPUnit to write tests for your PHP code, you'll have likely used the @test annotation to mark a method as a test in a DocBlock. Traditionally, annotations like this have been added to code using DocBlocks. However, as of PHP 8.0, you can use attributes instead to annotate your code in a more structured way.

How to build a Rails API with rate limiting

APIs are the bread and butter of the internet. The ability to interact with our applications programmatically enables interoperability and makes our lives as developers easier. Unfortunately, web applications are vulnerable to malicious actors that seek to misuse them or degrade their performance, which is why rate limiting is an important part of any API.

Clean code with PHP namespaces

A widespread issue developers run into when building applications is grouping and organizing code correctly so that it is easier for other developers to understand and collaborate. Conflicting class names, functions, and other code blocks is an issue for developers, and PHP offers a way to tackle this problem by adding namespaces to the language in PHP 5.3. In this article, you will learn everything you need to know to start using namespaces to organize your code efficiently in PHP.

Adding views to an API-only Rails app

Ruby on Rails has long been celebrated for its ‘convention over configuration’ philosophy, simplifying web development for countless programmers. However, what if you’ve started with a lean Rails API-only application and now find yourself needing a front-end? This isn’t uncommon, especially with the rise of JavaScript frameworks and SPAs.

Sending email in Laravel with Mailgun

As a web developer, you will often need to send emails from your application. In fact, if you've been a developer for more than a few months, you've probably already had to do this. You might want to send emails for a variety of reasons, such as sending a welcome email to new users, sending a password reset email, or sending a notification to a user. Laravel makes it easy to send these types of emails to single recipients, thanks to some handy features such as mailables and notifications.

Running Solid Queue in production Rails apps

Background jobs are essential to many Ruby on Rails apps. Since the introduction of ActiveJob, Rails developers have been able to manage their background jobs as natively as they do their database records. Still, ActiveJob requires you to select (and support) a backend adapter that will implement ActiveJob's backend. Many use Redis, a memory cache, to queue and process background jobs. Redis comes with incredible speed but is yet another dependency to maintain.