About Me

Background

My name is Emmanouil Athanasopoulos — most people call me Manos. I am a software engineer based in Athens, Greece, with a focus on building mobile applications and web products. I graduated from the University of West Attica with a Master of Engineering in Informatics and Computer Engineering, where I spent seven years studying everything from low-level systems programming to modern web frameworks.

My interest in software started early. I attended the 1st Vocational Highschool of Elliniko, where I trained as a Computer and Software Applications Technician. By the time I entered university, I had already been writing code for several years and had a clear sense that I wanted to build products people actually use, not just academic exercises.

Professional Experience

I currently work as a Software Engineer and Frontend Developer at Aqua Manager, where I am migrating, developing, and maintaining a web platform for managing aquaculture farms. The work involves Angular, TypeScript, and complex domain-specific UI challenges — building interfaces that help farmers monitor water quality, feeding schedules, and stock levels across multiple facilities.

Before Aqua Manager, I spent over two years at European Dynamics, first as a Frontend Developer working on the company's core product, and later as a Software Engineer where I translated the company's web product into a native Android application. This role gave me deep exposure to enterprise-scale Angular applications and the challenges of maintaining large codebases with multiple contributors.

I have also taken on freelance work, building responsive e-commerce websites and business sites for clients. These projects taught me how to work directly with non-technical stakeholders, translate business requirements into technical specifications, and deliver on tight deadlines.

What I Build

Outside of my day job, I spend a significant amount of time building personal projects — primarily React Native mobile apps and Next.js web applications. I have published over a dozen apps on Google Play, ranging from utility tools like FetchIt (a media downloader with embedded Python and FFmpeg) to complex platforms like Vehiclo (an AI-powered vehicle management app with automatic drive detection) and Doomscroll Detox (a digital wellness app that uses Android's AccessibilityService to block social media feeds).

I document each project in detail on my blog, where I write case studies covering the motivation, architecture, implementation details, and lessons learned from each build. I also write standalone articles about project architecture, app publishing, and technology decisions.

Technical Philosophy

I believe the best software is invisible. When an app works well, the user does not think about the technology behind it — they just accomplish what they came to do. This shapes how I approach every project: I prioritise reliability and speed over feature count, and I invest heavily in the parts of the experience that users interact with most frequently.

I favour an offline-first architecture for mobile apps, where the app stores data locally and syncs to the cloud in the background. This ensures the app is always fast and responsive, regardless of network conditions. I separate data persistence from data synchronisation, which makes it possible to swap cloud backends without touching the local storage layer.

For state management, I use a three-tier approach: local component state for UI concerns, Zustand with MMKV persistence for feature data, and React Query for server state. This prevents the common anti-pattern of putting everything in a single global store and keeps each layer testable in isolation.

Technology Stack

My primary tools are React Native and Expo for mobile development, Angular for enterprise web applications, Next.js for web products and static sites, and TypeScript across everything. I write custom native modules in Kotlin using the Expo Modules API when I need platform-specific functionality that no existing package provides.

On the backend, I work with Supabase (PostgreSQL), NestJS, and Node.js with Express. I have also built backend services with JavaEE and JPA/Hibernate during my university projects. For cloud services, I use Supabase for real-time data sync, Google Drive for backup, and Firebase for crash reporting and analytics.

Get in Touch

I am always open to discussing new projects, technical challenges, or opportunities. You can reach me through LinkedIn, check out my work on GitHub, or browse my project portfolio and technical blog.