HuTor Tech logo HuTor Tech

Blog

Latest posts

How to move an Android app from Java to Kotlin

· hutor.tech

How to move an Android app from Java to Kotlin

Kotlin and Java live in the same project without any trouble, which is the single most useful fact about this migration: it does not have to happen at once, and it does not have to happen everywhere. An app can ship afte…

Read more →
How to take over an existing Laravel project

· hutor.tech

How to take over an existing Laravel project

Taking over someone else's Laravel application is mostly an exercise in reducing uncertainty. The code is a known quantity — you can read it. What you cannot read is the deployment, the cron jobs, the queue workers and t…

Read more →
How to migrate from PHP 7 to PHP 8

· hutor.tech

How to migrate from PHP 7 to PHP 8

A PHP 8 migration is rarely dramatic, but it is never automatic. Most of the work is finding the handful of places where the language stopped forgiving sloppy code, and the rest is verifying that your dependencies came a…

Read more →
How to audit a legacy PHP codebase

· hutor.tech

How to audit a legacy PHP codebase

An audit answers three questions: what will break, what will cost money, and what can be fixed cheaply. Everything else is opinion. We keep audits to about a week and end them with a document a non-technical owner can ac…

Read more →
WordPress performance debugging checklist

· hutor.tech

WordPress performance debugging checklist

A slow WordPress site is rarely slow for a mysterious reason. In almost every case we are called to, the cause is one of five things, and the fastest way to the answer is to check them in order instead of buying a bigger…

Read more →
How to add OpenAI to an existing PHP application

· hutor.tech

How to add OpenAI to an existing PHP application

Adding a language model to an existing PHP application is an integration task, not an AI project. The model is a remote service that is slow, occasionally unavailable and billed per token — treat it exactly like a paymen…

Read more →