Edit mode is on β€” click any text to edit it. Toggle off when done.
E
click to add photo

Eloho

Computer Science Teacher Β· Aspiring Head of Department
your@email.com πŸ“ Hounslow, London LinkedIn
From Business Analyst to CS Teacher β€” 7 distinct career phases across tech & education.
7+
Career phases
Technology & Education β€” two full industries navigated with depth, leadership and impact.
2
Industries mastered
Over a decade of professional experience spanning systems, products, data and the classroom.
10+
Years experience
Career journey
Business Analyst β†’ IT PM β†’ Product Manager β†’ Data Analyst β†’ Cover Supervisor β†’ Science Teacher β†’ CS Teacher
Current mission
Become Head of Department, Computer Science at an outstanding Ofsted-rated school
My wellness journey
Full inside-out transformation β€” fitness, nutrition, mindset, style, sleep & skin

"From data to classrooms, from analyst to educator β€” this is the story of a woman who keeps reinventing herself."

My story, in my words

Lifelong learning Empowering others Resilience Data-driven thinking Purposeful change

Business Systems Analyst

Technology sector Β· Early career Tech

Built the foundations of my career bridging the gap between business needs and technology. Developed a systems-thinking mindset and deep stakeholder management skills that would carry me through every role to come.

IT Project Manager

Technology sector Β· Leadership Tech

Led cross-functional technology projects end-to-end. Mastered risk management, planning under uncertainty, and the art of keeping teams aligned and motivated under pressure.

IT Product Manager

Technology sector Β· Strategy Tech

Owned product roadmaps and translated complex user needs into features that shipped. This role gave me a customer-first lens and strategic vision that I carry into every classroom today.

Data Analyst

Analytics Β· Insight & intelligence Tech

Turned raw data into meaningful insight for decision-makers. Developed strong analytical and visualisation skills that now give me an edge when helping students understand computational thinking.

Cover Supervisor β†’ Science Teacher

Education Β· A bold pivot Education

Made a courageous leap into education. Started as a cover supervisor to learn the classroom from the ground up, earned my teaching qualification, and stepped confidently into Science. The boldest career decision I've ever made.

Computer Science Teacher

Education Β· Outstanding Ofsted school Β· Now Current

Teaching and inspiring the next generation of technology talent at an outstanding school. Leveraging every ounce of my industry experience to bring real-world context to the classroom β€” and working towards Head of Department.

Technology & computing Education Data & analytics Problem solving Mentoring
Walking Reading
Pilates Cooking new cuisines Solo travel
Women in tech Transformative education
Click or drag photos here to upload
You can select multiple at once
Add a moment
Add a moment
Add a moment

Document your transformation β€” before, during and after.

Add a moment
Overall progress
0%
across all areas
Days in
1
of 30-day kickstart
Areas active
0
of 6 pillars
πŸƒβ€β™€οΈ

Fitness & body

  • 3x walks/week (30 min each)
  • Add beginner strength 2x/week
  • Progress to Pilates or HIIT classes
  • 8,000 steps daily target
  • Track with free app (Nike Run/Strava)
πŸ₯—

Nutrition & diet

  • Whole foods 80% of the time
  • Sunday meal prep ritual
  • Protein at every meal
  • 2L water daily (carry a bottle)
  • Reduce ultra-processed snacks
🧠

Mental health & mindset

  • 5-min morning journal, every day
  • Name one stress trigger per week
  • Try Headspace or Calm (10 min/day)
  • Firm work/life boundaries after school
  • Weekly 1hr full digital detox
πŸ‘—

Style & appearance

  • Full wardrobe audit β€” keep/donate/replace
  • Build a 12-piece capsule wardrobe
  • Find your signature colour palette
  • 3 quality work outfits that feel like you
  • One accessory that becomes your signature
😴

Sleep & energy

  • Consistent bedtime (10:30–11pm)
  • No screens 30 min before bed
  • Morning light within 1hr of waking
  • No caffeine after 2pm
  • Keep room cool and dark
✨

Skin & grooming

  • AM: cleanser + SPF 30+ (non-negotiable)
  • PM: cleanser + Vitamin C or retinol
  • Moisturise daily β€” morning and night
  • Book a professional skin consult
  • Hydration is your best skincare

Click each bar to update your progress

πŸƒβ€β™€οΈ Fitness
0%
πŸ₯— Nutrition
0%
🧠 Mindset
0%
πŸ‘— Style
0%
😴 Sleep
0%
✨ Skin
0%
Preparing backup… embedding photos…
', stateScript + '\n'); const blob = new Blob([html], {type:'text/html'}); const url = URL.createObjectURL(blob); const a = document.createElement('a'); const now = new Date(); const stamp = now.toISOString().slice(0,10); a.href = url; a.download = `eloho-portfolio-backup-${stamp}.html`; a.click(); URL.revokeObjectURL(url); showToast('βœ“ Backup downloaded!', 3000); updateTimestamp(); } function collectState(){ const state = {}; // Hero fields state.heroName = document.getElementById('hero-name')?.innerHTML || ''; state.heroRole = document.getElementById('hero-role')?.innerHTML || ''; state.heroQuote = document.getElementById('hero-quote')?.innerHTML || ''; state.missionTxt = document.getElementById('mission-txt')?.innerHTML || ''; state.chipEmail = document.getElementById('chip-email')?.innerHTML || ''; state.chipLoc = document.getElementById('chip-loc')?.innerHTML || ''; state.chipLinked = document.getElementById('chip-linked')?.innerHTML || ''; state.chipSchool = document.getElementById('chip-school')?.innerHTML || ''; // Avatar const avImg = document.getElementById('av-img'); state.avatarSrc = avImg && avImg.style.display !== 'none' ? avImg.src : ''; // Autobiography state.autoText = document.getElementById('auto-text')?.value || ''; state.rebrandJournal = document.getElementById('rebrand-journal')?.value || ''; // Tags β€” capture all tag containers const tagContainers = ['values-tags','love-tags','hobby-tags','try-tags','inspo-tags']; state.tags = {}; tagContainers.forEach(id=>{ const el = document.getElementById(id); if(el) state.tags[id] = [...el.querySelectorAll('.tag')].map(t=>t.textContent); }); // Career timeline state.career = []; document.querySelectorAll('#career-timeline .tl-item').forEach(item=>{ state.career.push({ title: item.querySelector('h4')?.innerHTML || '', meta: item.querySelector('.tl-meta span')?.innerHTML || '', badge: item.querySelector('.tl-badge')?.outerHTML || '', desc: item.querySelector('p')?.innerHTML || '', isCurrent: item.classList.contains('tl-current') }); }); // Progress bars state.progress = []; document.querySelectorAll('.prog-row').forEach(row=>{ state.progress.push({ label: row.querySelector('.prog-label')?.textContent || '', pct: parseInt(row.querySelector('.prog-pct')?.textContent) || 0 }); }); // Photos β€” embed base64 images state.photos = {career:[], life:[], rebrand:[]}; ['career','life','rebrand'].forEach(cat=>{ const grid = document.getElementById('grid-'+cat); if(!grid) return; grid.querySelectorAll('.photo-tile:not(.add-tile)').forEach(tile=>{ const img = tile.querySelector('img'); const cap = tile.querySelector('.photo-overlay')?.textContent || ''; if(img) state.photos[cat].push({src: img.src, caption: cap}); }); }); return state; } // ── RESTORE BACKUP ───────────────────────────────────────── function restoreBackup(e){ const file = e.target.files[0]; if(!file){ return; } showToast('Restoring from backup…'); const reader = new FileReader(); reader.onload = ev => { const html = ev.target.result; const match = html.match(/\s*]*>([\s\S]*?)<\/script>\s*/); if(!match){ showToast('⚠ No saved state found in this file', 3000); return; } try{ const state = JSON.parse(match[1]); applyState(state); showToast('βœ“ Portfolio restored!', 3000); updateTimestamp(); } catch(err){ showToast('⚠ Could not read backup file', 3000); } }; reader.readAsText(file); e.target.value = ''; } function applyState(s){ // Hero if(s.heroName) document.getElementById('hero-name').innerHTML = s.heroName; if(s.heroRole) document.getElementById('hero-role').innerHTML = s.heroRole; if(s.heroQuote) document.getElementById('hero-quote').innerHTML = s.heroQuote; if(s.missionTxt) document.getElementById('mission-txt').innerHTML = s.missionTxt; if(s.chipEmail) document.getElementById('chip-email').innerHTML = s.chipEmail; if(s.chipLoc) document.getElementById('chip-loc').innerHTML = s.chipLoc; if(s.chipLinked) document.getElementById('chip-linked').innerHTML = s.chipLinked; if(s.chipSchool) document.getElementById('chip-school').innerHTML = s.chipSchool; // Avatar if(s.avatarSrc){ const img = document.getElementById('av-img'); img.src = s.avatarSrc; img.style.display = 'block'; document.getElementById('av-placeholder').style.display = 'none'; } // Text areas if(s.autoText) document.getElementById('auto-text').value = s.autoText; if(s.rebrandJournal) document.getElementById('rebrand-journal').value = s.rebrandJournal; // Tags if(s.tags){ Object.entries(s.tags).forEach(([id, items])=>{ const cont = document.getElementById(id); if(!cont) return; cont.querySelectorAll('.tag').forEach(t=>t.remove()); items.forEach(val=>{ const t = document.createElement('span'); t.className='tag'; t.textContent=val; t.title='Click to remove'; t.addEventListener('click',()=>{if(confirm('Remove "'+val+'"?'))t.remove();}); cont.appendChild(t); }); }); } // Career timeline if(s.career && s.career.length){ const tl = document.getElementById('career-timeline'); tl.querySelectorAll('.tl-item').forEach(i=>i.remove()); s.career.forEach(r=>{ const item = document.createElement('div'); item.className = 'tl-item' + (r.isCurrent?' tl-current':''); item.innerHTML = `

${r.title}

${r.meta}${r.badge||''}

${r.desc}

`; tl.appendChild(item); }); } // Progress bars if(s.progress){ const rows = document.querySelectorAll('.prog-row'); s.progress.forEach((p,i)=>{ if(!rows[i]) return; rows[i].querySelector('.prog-fill').style.width = p.pct+'%'; rows[i].querySelector('.prog-pct').textContent = p.pct+'%'; }); recalcOverall(); } // Photos if(s.photos){ ['career','life','rebrand'].forEach(cat=>{ const grid = document.getElementById('grid-'+cat); if(!grid || !s.photos[cat]) return; s.photos[cat].forEach(p=>{ const tile = document.createElement('div'); tile.className = 'photo-tile'; tile.innerHTML = `${p.caption}
${p.caption}
`; grid.insertBefore(tile, grid.querySelector('.add-tile')); }); }); } } // Auto-restore if this page was loaded from a backup (function autoRestore(){ const savedEl = document.getElementById('__saved_state__'); if(!savedEl) return; try{ const state = JSON.parse(savedEl.textContent); applyState(state); } catch(e){ console.warn('Auto-restore failed', e); } })(); function updateTimestamp(){ const now=new Date(); document.getElementById('last-updated').textContent='Last updated '+now.toLocaleDateString('en-GB',{day:'numeric',month:'short',year:'numeric'}); }