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

Kart Business Project

Predictions for the Future of Programming Future in 2030

Free OCR Software created by Abanoub Hanna - Software Developer

512 posts

Open file via TextEdit program in Mac OS Terminal

Using open command doesn’t fulfil this job. So we need to use another command. We can use open -a TextEdit filename.ext for example open -a TextEdit pin.svg. This command will open the file in …

ssh Handshake Failed Unable to Authenticate | Github Actions

ssh Handshake Failed Unable to Authenticate | Github Actions

I have set up the github action to deploy laravel website using appleboy ssh-action but all actions failed with this weird error message. 2022/09/03 23:46:24 ssh: handshake failed: ssh: unable to …

How to get your Mac's serial number?

How to get your Mac's serial number?

Every Mac device has a serial number that tells its unique story. Mac serial numbers can show information such as purchase, manufacturing, or configuration details. However, they can also be a …

10 Things You Must Do After Buying a New Mac

10 Things You Must Do After Buying a New Mac

Set Up Your Apple ID 🔗 When you set up your Mac, you’re required to sign in to your Apple account. If you skipped it earlier, now is the time to do it via the Apple menu > System Preferences > …

Best Software Tools and Projects Written in Go Language

Hugo 🔗 Hugo is one of the most popular open source static site generators out there. Rinse and repeat in plain English, HUGO is a framework for building websites quickly. Over 29k live websites are …

How to add search to a WordPress theme ?

How to add search to a WordPress theme ?

adding search box to header.php 🔗 We would like to add that search field in the upper right area of the site, so what theme file do you think we might target to make modifications? That’s right, …

How to Save Mac Screenshots as JPG, GIF, PDF, and Other Formats ?

How to Save Mac Screenshots as JPG, GIF, PDF, and Other Formats ?

When you press Cmd + Shift + 3 or Cmd + Shift + 4 to take a screenshot on Mac, it saves the file in PNG format. But if you can make Mac screenshots save automatically in other formats such as JPG, …

How to see pip package sizes installed?

How to see pip package sizes installed?

Use this command to see installed pip packages sorted by their descending order of sizes. pip list | tail -n +3 | awk '{print $1}' | xargs pip show | grep -E 'Location:|Name:' | cut -d …

How can I install pyrit on Ubuntu?

The pyrit package was last available for Ubuntu 18.04 LTS at pyrit version 0.4.0. But you can install it on Ubuntu 20.04 LTS and Ubuntu 22.04 LTS by manual package download using those commands. cd …

Automatically Invite Facebook Page Likers to Join Group

Facebook added the ability to set the invitation to your groups automatically if your Facebook page is admin of the group. All you need to do is to navigate to your Facebook fan page, then open the …