View on GitHub

Professional Resume

Self-taught OSS embedded and android engineer highly skilled in java.

Resume

Personal Information

Item Data
Name: Pavly Gerges
Description: Experienced OSS Embedded and Android Engineer highly proficient in Java and C
Current work related to the industry: OSS developer at jMonkeyEngine and various other OSS projects
Original Proficiency: Medical Intern

Technology Experience

General Skills

Languages:

Java - C/C++ - Kotlin - Bash (Bourne-Again Shell) - HTML/Javascript - Assembly

Technologies and Frameworks:

Java Streams - Java Concurrency - Java Reflection - Java Native Interface (JNI) -
Native Invocation API - Java Core Utilities - jSerialcomm - jMonkeyEngine -
Android SDK - Android NDK - AVR-Core - GNU/Linux Bin-utils - Gradle -
gnu-libc (embedded-linux and avr) - Arduino-Core - Kiosk-Systems - Pi4j-v1 -
Pi4j-v2 - Linux-Kernel

Skills:

Medical science - Software Design patterns - Software/Hardware algorithms (Finite-State-Automaton/DI/GoF-templates) -
Applications Infrastructure - Front-end android engineering - Back-end android engineering -
Infra-structure android engineering - Basic Electronics - Basic embedded systems -
APIs Development - DevOps (Github-Actions) - Static libraries development - Dynamic libraries development -
Android Java and Native modular libraries - Embedded GNU/Linux - Basic calculus -
Basic Linear algebra and vector-spaces - GNU Makefile - GNU-C-Compiler-Toolchains (GCC) -
Low-Level-Virtual-Machine Toolchain-Set (LLVM) - Cmake - Java Instrumentation -
GNU/Linux Virtualization - GNU Debugger (GDB) - Applied Linear algebra and calculus - Advanced electronics and embedded systems

Projects of concern

Other Projects

My journey to the tech industry

Back in 2018, I started coding as a Java developer, my first exposure to code was javatpoint, I joined multiple Facebook groups and we were doing simple, but no simpler projects, my second exposure to code was Derek-Banas YouTube Channel, it has a lot of Java coding tutorials and Java old and new crash courses, after that, I started to gain more confidence in coding by starting to write GUI applications using the Java built-in Swing Framework and at that instance, I started to read and study more about Java in advance using Java-The-Complete-Reference 7th-e mainly.

In 2019, I joined the medical school.

In 2019, I started learning about the Android SDK, and we did it, Thomas Meshel and I managed to publish our first Android application on google play, the Cairo-Bus application, which is suspended now according to some new policies on google play.

Within 2019-2020, we initiated our team under the name ‘The Scrappers’ which is the name of this account now, and we started a new Android application ‘The CozySnippets Notepad’, an advanced notepad application for android written primarily in Java, the application supports basic note-taking, highlighting, colored text, paint and record note for each note and in addition to that, we managed to utilize the Firebase ML-Kit, the OCR (Optical-Character-Recognition) API, I agree there were a lot of issues as we haven’t had that good command of clean code and software architecture yet, though I were learning hard from the Android-SDK core code.

In 2020, I met another friend Bishoy Reyad, who works primarily on hardware projects with Arduino, and we managed to build the Binary Clock, a simple IoT application that controls a physical binary clock through Bluetooth RFCOMM, however unfortunately and again; due to tech diversity and inconsistency of the work, this project hasn’t made it to a long-term-support version and it’s currently discontinued too.

In 2020, the team was partially broken; due to technical diversion, as Thomas started learning Flutter and other web-based backend APIs and, I started to learn jMonkeyEngine, a complete 3D Game Engine written primarily in Java with a minimalistic code-first approach, and joined the forums.

I wrote my first Arcade game using jMonkeyEngine, the JPluto, a simple arcade game with two levels, The Vast Universe and Mars, the game is designed to be a standalone running on Linux game console as a Kiosk game with custom hardware, the initial test with Arduino was successful, though a little bit chunky, from this point, I decided to learn Embedded Systems to gain more skills to finish this project and I am now still into it.

In 2021, I made my first contribution to jMonkeyEngine, the JmeSurfaceView, a GL-ES surface-view renderer layout holder to extend jMonkeyEngine development on the android platform, and from that date, I gained a lot of confidence in the open-source industry, and I would like to give some credits to Mr Stephen Gold and the community managers who happily support new developers.

In 2021, I started also to dig deeper into Java and discover Java reflection APIs and JNI APIs.

I also did a contribution to the pi4j-featured projects for a prototype project that connects a jMonkeyEngine vehicle to a custom joystick hardware through the MCP-3008 ADC and the SPI bus.

In 2022-2023 and now, I initiated the AVR-Sandbox, Serial4j, jme-alloc, Google-Developers-Sohag, and my schedule is currently being crowded with a lot of unfinished projects, I learned a lot about project management on GitHub through issues, milestones, projects, and automation via CI/CD.

I currently use books and documentation to learn Unix advanced programming, using the old-school C programming language, to incorporate that into Java applications and use this within my game and hardware projects, one example is the Serial4j API, an advanced full-featured and easily customizable terminal IO library with a Serial-Monitor front-end API.

P.S.: The journey hasn’t arrived at an end yet, but a new start is being accomplished when I introduced the Automata4j framework as proof of the finite-state-automata theory and its life applications, and still going through Arithmos featuring advanced implementations of common data structures and algorithms, join me by contributing with your knowledge and skills.

Contact me