// profile_data.js — SINGLE SOURCE OF TRUTH // ============================================================================ // Every prompt, CV, cover letter and comment in this extension derives from // this file. Nothing else may hardcode job titles, metrics, dates or contacts. // // Synced from: cvs/ATS-safe résumé template.pdf (master CV). // If the master CV changes, change THIS file — then nothing else needs editing. // A mirror copy lives at server/profile.json for the PHP backend. // ============================================================================ const PROFILE_DATA = { identity: { fullName: 'Hamza Ayed', primaryTitle: 'Senior Mobile Architect', positioningLine: 'Ride-Hailing & Real-Time Systems · FinTech in Emerging Markets', location: 'Amman, Jordan', phone: '+962 798 583 052', email: 'hamzaayedflutter@gmail.com', linkedin: 'linkedin.com/in/hamza-ayed', github: 'github.com/Hamza-Ayed', portfolio: 'intaleqapp.com/hamza.html', productSite: 'tripz-egypt.com', languages: 'Arabic (Native), English (Professional Working Proficiency)', availability: 'Available immediately. Open to Remote, Hybrid and Relocation (GCC / MENA / Europe).' }, // Titles the CV/headline generator is ALLOWED to use. Anything outside this // list is a fabrication risk — see integrity rules in prompts.js. allowedTitles: [ 'Senior Mobile Architect', 'Senior Mobile Engineer', 'Lead Mobile Engineer', 'Senior Flutter Developer', 'Lead Flutter Engineer', 'Mobile Technical Lead', 'Founding Engineer (Mobile)', 'Senior Software Engineer (Mobile)' ], // Titles that would overstate or misrepresent the record. forbiddenTitles: [ 'CTO', 'Solutions Architect', 'Senior AI Developer', 'Machine Learning Engineer', 'Data Scientist', 'DevOps Architect', 'Engineering Manager' ], // Opens on what was built, not on a self-description. "Proven experience" and // "Founding Engineer" were removed: the first is filler, and the second // contradicts the standard (non-startup) title framing when this text is used // as the fallback summary. summary: 'Senior Mobile Architect who built and launched two production-grade ride-hailing platforms ' + '(Tripz — Egypt, Intaleq — Syria) from zero to live operations. ' + 'Designed and delivered full mobility ecosystems including Rider, Driver, Admin and Customer Support ' + 'applications, along with backend APIs, security layers, DevOps pipelines and fintech integrations. ' + 'Specialized in real-time systems, self-hosted geo-services, high-latency optimization and ' + 'infrastructure cost reduction.', targetRoles: [ 'Senior / Lead Mobile Engineer', 'Mobile Architect', 'Founding Engineer (Mobility, Logistics, FinTech)' ], // Headline metrics — ordered by how well they survive a sceptical reader. // Delivery speed and breadth lead, because they are genuinely rare. Raw user // counts trail: a few thousand riders is a small number to anyone who knows // this market, so it belongs in context (see achievementsAtAGlance) rather // than as the first claim on the page. headlineMetrics: [ // "across 2 platforms" (inherited from the master CV) is ambiguous: models // and recruiters both read it as "iOS and Android app stores" rather than // "the Tripz and Intaleq platforms". Naming the two platforms removes a // claim that was never made. { value: '8 apps', label: 'Built and launched across 2 ride-hailing platforms (Tripz, Intaleq)' }, { value: '<4 months', label: 'Zero to live operations (Tripz, full ecosystem)' }, { value: '$10K+/mo', label: 'Map infrastructure cost eliminated (~80% reduction)' }, { value: '5,750+', label: 'Drivers onboarded across 2 markets' } ], achievementsAtAGlance: [ 'Tripz (Egypt): Scaled platform to 2,464 riders and 4,318 drivers. Built and launched 4 distinct apps ' + 'plus full backend in under 4 months with near-zero map infrastructure cost.', 'Intaleq (Syria): Acquired 2,811 riders and 1,440 drivers in the first 2 months. Engineered a custom ' + 'operational payment layer to bypass API limitations in a highly constrained market.' ], // Grouped exactly as the master CV groups them. The ATS keyword selector may // only choose from these values. skills: { 'Mobile & Architecture': [ 'Flutter', 'Dart', 'GetX', 'Provider', 'Clean Architecture', 'Offline-First Design', 'REST APIs', 'State Management', 'Native Android (Java)', 'iOS / Android Release Management' ], 'Real-Time & Geo Systems': [ 'WebSockets', 'Real-Time Dispatching', 'Live Tracking', 'Self-Hosted Maps', 'Map Tiles', 'Polylines', 'Routing Engines', 'Geospatial Queries', 'High-Latency Network Optimization' ], 'Backend & DevOps': [ 'PHP', 'Laravel', 'MySQL', 'Docker', 'Linux', 'Nginx', 'CI/CD (Gitea)', 'Infrastructure Cost Optimization', 'Self-Hosted Infrastructure' ], 'Security & FinTech': [ 'Payment Gateway Integration (7+ providers)', 'HMAC Security', 'RASP', 'Fake GPS Detection', 'Anti-Tampering', 'KYC Automation' ] }, experience: [ { company: 'Intaleq', title: 'Senior Mobile Systems Architect', location: 'MENA Region (Remote)', start: 'Jan 2025', end: 'Present', // Tagged so the tailoring engine can pick the 3-4 most job-relevant // bullets instead of always printing the same ones. bullets: [ { text: 'Launched a ride-hailing platform in a high-constraint market (Syria), reaching 2,811 riders and 1,440 drivers within the first two months.', tags: ['leadership', 'delivery', 'mobility', 'scale'] }, { text: 'Designed and implemented Rider, Driver, Admin and Customer Support applications.', tags: ['mobile', 'flutter', 'architecture'] }, { text: 'Built a custom payment helper application to integrate legacy, non-API local payment gateways, enabling reliable driver balance top-ups despite infrastructure limitations.', tags: ['fintech', 'payments', 'integration'] }, { text: 'Leveraged fully self-hosted map tiles and routing engines to eliminate dependency on expensive third-party mapping APIs, keeping operational costs near zero.', tags: ['geo', 'cost', 'infrastructure'] }, { text: 'Designed an offline-first caching mechanism ensuring data integrity and uninterrupted driver–rider interactions during unstable network conditions.', tags: ['mobile', 'offline', 'reliability'] }, { text: 'Optimized deployment cycles by 40% through a secure, self-hosted CI/CD pipeline using Gitea, ensuring data sovereignty and rapid release efficiency.', tags: ['devops', 'cicd', 'security'] } ] }, { company: 'Tripz', title: 'Lead Mobile Engineer', // "Founding" is an asset applying to a startup and a liability applying // to an established company, where it reads as flight risk and as a // self-awarded title that no HR department can verify. Same work, same // facts — the generator picks the framing that fits the employer. titleVariants: { standard: 'Lead Mobile Engineer', founding: 'Founding Mobile Architect' }, location: 'Cairo, Egypt (Remote)', start: 'Jan 2024', end: 'Dec 2024', bullets: [ { text: 'Built and launched a complete ride-hailing ecosystem (Rider, Driver, Admin, Customer Support apps plus backend API) in under four months, scaling to 2,464 riders and 4,318 drivers.', tags: ['delivery', 'leadership', 'mobility', 'scale', 'flutter'] }, { text: 'Designed real-time dispatch and live tracking using WebSockets, optimized for high-latency MENA network environments.', tags: ['realtime', 'websockets', 'geo'] }, { text: 'Eliminated over $10,000/month in third-party mapping API spend (~80% reduction) by self-hosting map tiles, routing logic and polyline generation on dedicated servers.', tags: ['geo', 'cost', 'infrastructure'] }, { text: 'Replaced traditional call-center hardware by engineering a secure, mobile-first Customer Support application, enabling support agents to operate entirely remotely.', tags: ['mobile', 'product', 'cost'] }, { text: 'Automated driver onboarding through AI-powered KYC integration, reducing manual review time and minimizing fraudulent registrations.', tags: ['ai', 'automation', 'fintech', 'security'] }, { text: 'Implemented API-level HMAC security, anti-tampering mechanisms and Fake GPS detection to protect geo-spatial and financial data.', tags: ['security', 'geo', 'fintech'] }, { text: 'Collaborated closely with business stakeholders and operations teams to align product and architecture decisions with on-the-ground market realities.', tags: ['leadership', 'product', 'communication'] } ] }, { // Previously "Global Tech Projects" — an invented company name reads as a // placeholder to any experienced recruiter, and it was covering seven of // the nine years on this CV. Naming the arrangement honestly is weaker in // sound and considerably stronger in credibility. company: 'Independent Consultant', title: 'Lead Mobile Engineer (Flutter / Native)', location: 'Various Clients — MENA & Remote', start: 'Jan 2017', end: 'Dec 2023', bullets: [ { text: 'Delivered 30+ production-grade mobile applications across e-commerce, delivery, healthcare and news sectors, acting as technical decision-maker for early-stage clients.', tags: ['delivery', 'leadership', 'mobile', 'scale'] }, { text: 'Migrated legacy Android (Java) applications to Flutter, cutting maintenance complexity and delivery timelines by roughly 50%.', tags: ['flutter', 'migration', 'mobile'] }, { text: 'Built custom Flutter plugins and tailored API layers to integrate with complex legacy backend systems.', tags: ['flutter', 'integration', 'architecture'] }, { text: 'Owned App Store and Google Play release management end-to-end, from store listings and review submission through versioned production rollout.', tags: ['mobile', 'release', 'ios', 'android', 'delivery'] } ] } ], // Published packages are the single most verifiable credential a mobile // engineer can offer. They matter more here than usual: none of the three // employers on this CV is a recognisable brand a recruiter can call, so a // one-click-checkable artefact carries the credibility the employer names // cannot. openSource: [ { name: 'intaleq_maps', platform: 'Flutter SDK — pub.dev', url: 'pub.dev/packages/intaleq_maps', description: 'Map rendering, offline tile caching and route plotting, optimised for low-bandwidth environments.' }, { name: 'intaleq-maps-gl', platform: 'JavaScript library — npm', url: 'npmjs.com/package/intaleq-maps-gl', description: 'Mapbox GL compatible web library for custom OSM tiles and routing integration.' } ], education: { degree: 'BSc Mathematics', institution: "Mu'tah University, Jordan", note: 'Applied mathematical foundations to state-machine design and geo-spatial routing.' }, certifications: [ 'IBM Data Analyst Professional Certificate', 'Google Data Analytics Professional Certificate', 'IBM Data Analytics with Excel and R Specialization' ], // ── Honest capability boundaries ────────────────────────────────────────── // Used to stop the model inventing experience. Keep this brutally accurate: // it is the difference between a CV that survives a technical screen and one // that does not. boundaries: { strongIn: [ 'Flutter / Dart mobile architecture at production scale', 'Real-time systems: WebSockets, dispatching, live tracking', 'Self-hosted geo infrastructure: tiles, routing, polylines', 'Payment gateway integration and constrained-market fintech workarounds', 'Mobile-layer security: HMAC, anti-tampering, Fake GPS detection', 'PHP / Laravel / MySQL backend supporting mobile products', 'Docker, Linux, Nginx, self-hosted CI/CD' ], limitedIn: [ 'AI is limited to INTEGRATING third-party vision/LLM APIs (KYC automation, Gemini API). ' + 'No model training, no MLOps, no deep learning research.', 'Cloud experience is self-hosted/VPS-centric — not deep AWS/GCP/Azure managed-service experience.', 'No Kubernetes in production.', 'No native Swift/SwiftUI or Kotlin-first development — Flutter is the primary mobile path.', 'No data engineering (Spark, Hadoop, Airflow, warehouses).' ], neverClaim: [ 'TensorFlow', 'PyTorch', 'Scikit-learn', 'Spark', 'Hadoop', 'Kubernetes', 'MLOps', 'model training', 'NLP research', 'Swift', 'SwiftUI', 'Kotlin Multiplatform', 'blockchain', 'Salesforce', 'SAP' ] }, // Voice rules — applied to cover letters, LinkedIn comments and posts. voice: { tone: 'Operator-level, calm, direct, evidence-first. Writes like someone who has shipped, not someone selling.', banned: [ 'I am writing to apply', 'I leverage my expertise', 'passionate about', 'proven track record', 'dynamic environment', 'synergy', 'game-changer', 'disruptive', 'serving millions', 'in the digital age', 'Great post', 'Well said', 'Couldn\'t agree more', 'This resonates', 'في العصر الرقمي', 'مما لا شك فيه', 'ختاماً', 'يعد من أهم' ], neverMention: [ 'military history or background', 'sanctions or politically sensitive framing of the Syria market', 'exact client names under NDA' ] } }; // Renders the structured profile into the plain-text block that prompts consume. function renderProfileText(p = PROFILE_DATA) { const id = p.identity; const lines = []; lines.push(`${id.fullName.toUpperCase()} — ${id.primaryTitle}`); lines.push(id.positioningLine); lines.push(''); lines.push('SUMMARY:'); lines.push(p.summary); lines.push(''); lines.push('TARGET ROLES: ' + p.targetRoles.join(' | ')); lines.push(''); lines.push('HEADLINE METRICS:'); p.headlineMetrics.forEach(m => lines.push(`- ${m.value} — ${m.label}`)); lines.push(''); lines.push('AT A GLANCE:'); p.achievementsAtAGlance.forEach(a => lines.push(`- ${a}`)); lines.push(''); lines.push('TECHNICAL SKILLS:'); Object.entries(p.skills).forEach(([group, items]) => { lines.push(`- ${group}: ${items.join(', ')}`); }); lines.push(''); lines.push('EXPERIENCE:'); p.experience.forEach(job => { const alt = job.titleVariants ? ` (alternate framing for startup/founding roles: ${job.titleVariants.founding})` : ''; lines.push(`- ${job.title} — ${job.company} | ${job.start} – ${job.end} | ${job.location}${alt}`); job.bullets.forEach(b => lines.push(` • ${b.text}`)); }); lines.push(''); lines.push('OPEN SOURCE (published, verifiable):'); (p.openSource || []).forEach(o => { lines.push(`- ${o.name} (${o.platform}) — ${o.url}. ${o.description}`); }); lines.push(''); lines.push('EDUCATION:'); lines.push(`- ${p.education.degree}, ${p.education.institution}. ${p.education.note}`); p.certifications.forEach(c => lines.push(`- ${c}`)); lines.push(''); lines.push('CAPABILITY BOUNDARIES (do not overstate):'); lines.push(' STRONG IN:'); p.boundaries.strongIn.forEach(s => lines.push(` + ${s}`)); lines.push(' LIMITED / NOT EXPERIENCED IN:'); p.boundaries.limitedIn.forEach(s => lines.push(` - ${s}`)); lines.push(' NEVER CLAIM: ' + p.boundaries.neverClaim.join(', ')); lines.push(''); lines.push(`LANGUAGES: ${id.languages}`); lines.push(`LOCATION: ${id.location} — ${id.availability}`); lines.push(`CONTACT: ${id.email} | ${id.phone} | ${id.linkedin} | ${id.github} | ${id.portfolio}`); return lines.join('\n'); } // Flat list of every legitimate skill token, for ATS keyword matching. function allSkillTokens(p = PROFILE_DATA) { return Object.values(p.skills).flat(); } if (typeof module !== 'undefined' && module.exports) { module.exports = { PROFILE_DATA, renderProfileText, allSkillTokens }; }