Hello world, I’m

Abanoub Hanna

Full‑stack Web & Android Developer

I design and build clean, reliable software across the stack — from web backends and APIs in PHP Laravel and Go, to Android applications in Kotlin/Java, to fast CLI tools in Go that automate real‑world workflows.

Portrait of Abanoub Hanna

Tech Stack

Technologies I work with daily to build reliable, scalable software.

Go programming language

Go (Golang)

Backend APIs, CLI tools, cross-platform apps, and high-performance services.

PHP Laravel

PHP Laravel

Full-stack web apps, APIs, e-commerce platforms, and rapid prototyping.

Kotlin programming language

Android (Kotlin/Java)

Mobile apps with modern architecture, Jetpack Compose, and performance optimization.

sqlite

SQLite & Databases

Efficient data modeling, migrations, and query optimization for web and apps.

🎨

CSS & Tailwind

Responsive UIs, utility-first design, and accessible layouts.

CLI & DevOps

Automation scripts, deployment pipelines, Linux tools, and system scripting.

IDEs & Editors

My daily drivers for coding across platforms — optimized for speed and workflow.

Android Studio

Android app development in Kotlin and Java — layouts, Compose, debugging, and emulators.

visual studio code

VS Code

Web development in Go and Laravel — extensions for syntax, debugging, Tailwind, and Git integration.

Neovim icon

VIM / NeoVim

Scripting, CLI tools, and quick edits — with custom configs for Fish shell and system automation.

Operating Systems

Platforms I develop and deploy across — from daily drivers to production environments.

apple

macOS

Daily driver for development — Xcode, Homebrew, fast builds, and seamless Apple ecosystem integration.

Ubuntu Linux

Primary Linux environment — Go cross-compilation, CLI workflows, server deployments, and containerization.

windows 11

Windows 11 + WSL Ubuntu

Hybrid setup for cross-platform testing — WSL for Linux tooling, PowerShell, and Windows-native apps.

Code Platforms

Where I host, collaborate, and ship open-source projects across ecosystems.

GitHub

GitHub

Primary hub for open-source — gobrew package manager, Go CLI tools, cross-platform builds, and collaboration.

GitLab

CI/CD pipelines, private repos, enterprise-grade workflows, and advanced project management.

Codeberg

FOSS-first hosting — decentralized Git, privacy-focused, and community-driven development.

Web Projects

Full-stack applications I've built and launched — from SaaS to eCommerce to content platforms.

🛒

LokaStores

Full-featured eCommerce platform with inventory, payments, and order management for online retail.

PHP Laravel Tailwind CSS PostgreSQL
📄

OCRWeb

Queue-based OCR service for images and PDFs — scalable task processing with Tesseract integration.

Go Tesseract OCR
📝

AbanoubHanna.com

Bilingual tech blog powered by Markdown — custom Hugo theme with Arabic/English content management.

Hugo SSG Custom Theme Markdown
🏗️

KemetWebBuilder

Visual website builder for non-technical users — drag & drop interface with code generation.

Go JavaScript

Android Projects

Native Android apps published on Google Play — from religious content to OCR utilities.

🙏

Agpeya

Google Play • GitHub

Agpeya prayer book for Coptic Orthodox Church — Arabic prayers with daily liturgical hours.

Java Open Source
🖼️

IMG2TXT

Open Source

Free OCR app to extract text from images — fast, offline text recognition powered by Tesseract.

Kotlin OCR

A digital wallet for business cards - Kart Business Project

Predictions for the Future of Programming Future in 2030

Free OCR Software created by Abanoub Hanna - Software Developer

518 posts

[fixed] Android studio Error "Unsupported Modules Detected: Compilation is not supported for following modules"

Method 1 : Try Invalidating Android Studio Cache 🔗 Just go File -> Invalidate Cache & Restart. So, Android Studio will remove cache and rebuild it and the project itself. If this solves the …

How to get arguments in Fish script?

Here is a command with 3 arguments. myfunc one two "third arg" How to get each argument in Fish script/function. to get all arguments as one string/text, use $argv. to get first argument, use …

[Fixed] curl: (56) LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54

This error appears in too many cases, for example: when you are trying to .. upgrade Flutter via flutter upgrade. upgrade a homebrew cask via brew upgrade --cask --greedy. push to GitLab. curl some …

How can I convert MP4 video to MP3 audio with FFmpeg?

Sometimes, you need to extract audio or music from a video. Or you need to convert a video into an audio file. The command is simple. Here is the command to convert MP4 to MP3 file. ffmpeg -i …

Qwik vs Astro : A Fair Comparison

Qwik vs Astro : A Fair Comparison

Startup performances / PageSpeed scores should be similar 🔗 Both Frameworks send just HTML with close to no JavaScript (JS). There should be no reason why either approach should have an advantage …

10 Tips to optimize Flutter mobile app

Flutter is a framework made by Google to develop applications for Android, iOS (iPhone), iPadOS (iPad), macOS, Linux (Ubuntu, Pop!_OS, Elementary OS, Fedora, Arch Linux, .. etc), Windows OS, and …

7 tips to optimize back-end written in Go

1. Use the latest version of Go 🔗 Make sure you are using the latest version of Go to take advantage of all the performance improvements and bug fixes. 2. Use Goroutines 🔗 Goroutines are lightweight …

5 Tips to optimize Laravel Eloquent

1. Use eager loading to reduce the number of database queries 🔗 Eager loading is a technique that allows you to load related models in a single query, reducing the number of queries needed to …

NodeJS vs PHP vs Go for web development

Node.js, PHP, and Go are three of the most popular programming languages used in web development today. Each language has its own strengths and weaknesses, making it important to understand the …

Javascript vs PHP for web development

When it comes to web development, two of the most popular programming languages are Javascript and PHP. Both have their own advantages and disadvantages, so it can be difficult to decide which one is …