diff --git a/motolani-cv-template/README.md b/motolani-cv-template/README.md deleted file mode 100644 index 792e542..0000000 --- a/motolani-cv-template/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# Motolani Olaiya CV Template - -Static HTML/SCSS resume project for Motolani Olaiya. The goal is a professional, editable CV that works both in the browser and as a print-friendly PDF. - -## Structure - -```text -motolani-cv-template/ -├── index.html -├── index-recruiter.html -├── index-eu-2page.html -├── assets/ -├── scss/ -│ └── styles.scss -├── css/ -│ ├── styles.css -│ └── print.css -└── README.md -``` - -## How to edit - -1. Update the full version in `index.html`. -2. Update the one-page recruiter version in `index-recruiter.html`. -3. Update the strict 2-page European version in `index-eu-2page.html`. -4. Adjust visual styles in `scss/styles.scss`. -5. Keep `css/styles.css` in sync with the SCSS source if you change styling. -6. Use `css/print.css` for PDF/export-specific layout changes. - -## Suggested content workflow - -- Keep the summary short and concrete. -- Prefer measurable platform/project outcomes over broad adjectives. -- Lead with achievements, architecture decisions, and delivery impact instead of responsibility-only wording. -- Tailor the top headline and project emphasis for each target role: - - Python Developer - - Django Developer - - Wagtail Developer - - Django Oscar Developer - - Backend Developer - - Full Stack Developer - - Ecommerce Developer - - Software Engineer - - Technical Founder - - Technical Consultant - -## Export to PDF - -### Browser method - -1. Open `index.html` in a browser. -2. Press `Cmd + P` on macOS or `Ctrl + P` on Windows/Linux. -3. Choose **Save as PDF**. -4. Keep background graphics enabled if the browser offers that option. - -### Print guidance - -- The layout already includes `@media print` support. -- Print output is designed for A4. -- If the content grows beyond two pages, reduce spacing or shorten project descriptions before exporting. - -## Recommended usage - -- Use `index-recruiter.html` as the primary one-page application version. -- Use `index-eu-2page.html` for senior European software roles that expect a fuller two-page CV. -- Use `index.html` when you want the fuller founder/platform narrative. - -## Suggested measurable outcomes to add later - -If you confirm them, these are the strongest metrics to add: - -- Number of client or internal projects onboarded through the platform -- Reduction in manual setup time for new projects -- Deployment frequency or deployment time improvement -- Number of reusable plugins or shared modules created -- Search relevance or search coverage improvements -- Number of staging or production environments managed -- Reduction in onboarding or deployment failures after platform fixes -- Size or scope of multilingual / ecommerce implementations delivered - -## Notes - -- This version avoids JavaScript on purpose. -- The structure is ATS-friendly: semantic headings, readable lists, and plain text sections. -- Unknown or role-specific personal details such as exact graduation years or certification issue dates can be filled in without changing the layout. diff --git a/motolani-cv-template/assets/.gitkeep b/motolani-cv-template/assets/.gitkeep deleted file mode 100644 index 8b13789..0000000 --- a/motolani-cv-template/assets/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/motolani-cv-template/css/print.css b/motolani-cv-template/css/print.css deleted file mode 100644 index af95604..0000000 --- a/motolani-cv-template/css/print.css +++ /dev/null @@ -1,147 +0,0 @@ -@page { - size: A4; - margin: 8mm; -} - -html, -body { - background: #ffffff !important; -} - -body { - color: #111111 !important; - font-size: 10.7pt; - line-height: 1.45; -} - -.resume, -.resume--compact, -.resume--two-page { - width: 100% !important; - margin: 0 !important; - padding: 0 !important; - border: 0 !important; - border-radius: 0 !important; - box-shadow: none !important; - background: #ffffff !important; -} - -.resume--compact { - font-size: 10.1pt !important; -} - -.resume--two-page { - font-size: 9.35pt !important; -} - -a { - color: #111111 !important; - text-decoration: none !important; -} - -.hero { - gap: 0.8rem !important; - padding-bottom: 0.8rem !important; - border-bottom: 1px solid #bdbdbd !important; -} - -.hero__identity h1 { - margin-bottom: 0.45rem !important; - font-size: 22pt !important; -} - -.resume--compact .hero__identity h1 { - font-size: 20pt !important; -} - -.headline, -.entry__org, -.entry__meta, -.stack-list dd, -.hero__meta li { - color: #111111 !important; -} - -.hero__meta, -.panel, -.callout { - background: transparent !important; - border: 1px solid #bdbdbd !important; -} - -.section { - padding-top: 0.9rem !important; -} - -.resume--compact .section { - padding-top: 0.65rem !important; -} - -.resume--two-page .section { - padding-top: 0.42rem !important; -} - -.section, -.panel, -.entry, -.callout, -.hero, -.section--grid { - break-inside: avoid !important; - page-break-inside: avoid !important; -} - -.section--grid { - gap: 0.65rem !important; -} - -.entry { - padding: 0.7rem 0 !important; -} - -.resume--compact .panel, -.resume--compact .callout, -.resume--compact .hero__meta { - padding: 0.7rem 0.8rem !important; -} - -.resume--two-page .panel, -.resume--two-page .callout, -.resume--two-page .hero__meta { - padding: 0.52rem 0.68rem !important; -} - -.resume--compact .entry { - padding: 0.5rem 0 !important; -} - -.resume--two-page .entry { - padding: 0.28rem 0 !important; -} - -.resume--compact .entry p, -.resume--compact .entry ul, -.resume--compact .plain-list li, -.resume--compact .stack-list dd { - line-height: 1.35 !important; -} - -.resume--two-page .entry p, -.resume--two-page .entry ul, -.resume--two-page .plain-list li, -.resume--two-page .stack-list dd { - line-height: 1.2 !important; -} - -.resume--two-page .section, -.resume--two-page .section--grid, -.resume--two-page .hero { - break-inside: auto !important; - page-break-inside: auto !important; -} - -.tag-list li { - background: transparent !important; - border-color: #999999 !important; - color: #111111 !important; -} diff --git a/motolani-cv-template/css/styles.css b/motolani-cv-template/css/styles.css deleted file mode 100644 index f965f75..0000000 --- a/motolani-cv-template/css/styles.css +++ /dev/null @@ -1,352 +0,0 @@ -*, -*::before, -*::after { - box-sizing: border-box; -} - -html { - font-size: 16px; -} - -body { - margin: 0; - font-family: Inter, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; - color: #182131; - background: radial-gradient(circle at top left, rgba(35, 73, 182, 0.06), transparent 24rem), #eef2f7; - line-height: 1.6; - text-rendering: optimizeLegibility; -} - -a { - color: #2349b6; - text-decoration: none; - text-underline-offset: 0.16em; -} - -a:hover { - text-decoration: underline; -} - -p, -li, -dd { - max-width: 75ch; -} - -.resume { - width: min(1080px, calc(100% - 2rem)); - margin: 2rem auto; - padding: 2.35rem; - background: #ffffff; - border: 1px solid #d7deea; - border-radius: 18px; - box-shadow: 0 22px 54px rgba(16, 24, 40, 0.08); -} - -.resume--compact { - width: min(980px, calc(100% - 2rem)); - padding: 2rem 2.1rem; -} - -.resume--two-page { - width: min(1020px, calc(100% - 2rem)); - padding: 2.1rem 2.15rem; -} - -.hero { - display: grid; - grid-template-columns: minmax(0, 1.9fr) minmax(280px, 1fr); - gap: 1.75rem; - align-items: start; - padding-bottom: 1.8rem; - border-bottom: 1px solid #c7d1e1; -} - -.hero__identity h1 { - margin: 0.35rem 0 0.9rem; - font-size: clamp(2.15rem, 4vw, 3.15rem); - line-height: 1.02; - letter-spacing: -0.02em; -} - -.eyebrow { - margin: 0; - color: #2349b6; - font-size: 0.84rem; - font-weight: 700; - line-height: 1.45; - letter-spacing: 0.08em; - text-transform: uppercase; -} - -.headline { - margin: 0; - max-width: 58ch; - color: #5f6c83; - font-size: 1.05rem; - line-height: 1.68; -} - -.hero__meta { - display: grid; - gap: 0.55rem; - margin: 0; - padding: 1.1rem 1.15rem; - list-style: none; - background: linear-gradient(180deg, #f8fafc, #eef3ff); - border: 1px solid #d5def5; - border-radius: 14px; -} - -.hero__meta li { - max-width: none; - color: #182131; - font-size: 0.95rem; -} - -.section { - padding-top: 1.7rem; -} - -.section h2 { - margin: 0 0 0.95rem; - color: #23304a; - font-size: 0.88rem; - font-weight: 800; - letter-spacing: 0.11em; - text-transform: uppercase; -} - -.section--grid { - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - gap: 1.2rem; -} - -.panel, -.callout { - padding: 1.15rem 1.2rem; - border: 1px solid #d7deea; - border-radius: 14px; - background: #f8fafc; -} - -.panel h2, -.callout h2 { - margin-top: 0; -} - -.tag-list, -.plain-list { - margin: 0; - padding-left: 1.1rem; -} - -.plain-list li + li { - margin-top: 0.35rem; -} - -.tag-list { - display: flex; - flex-wrap: wrap; - gap: 0.58rem; - padding-left: 0; - list-style: none; -} - -.tag-list li { - max-width: none; - padding: 0.42rem 0.76rem; - border: 1px solid #cfdaef; - border-radius: 999px; - background: #eef3ff; - color: #243657; - font-size: 0.91rem; - font-weight: 600; - line-height: 1.2; -} - -.stack-list { - margin: 0; -} - -.stack-list div + div { - margin-top: 0.8rem; - padding-top: 0.8rem; - border-top: 1px solid #e8edf5; -} - -.stack-list dt { - color: #243657; - font-weight: 700; -} - -.stack-list dd { - margin: 0.14rem 0 0; - color: #5f6c83; -} - -.entry { - padding: 1.05rem 0; - border-top: 1px solid #d7deea; -} - -.entry:first-of-type { - border-top: 0; - padding-top: 0.1rem; -} - -.entry h3 { - margin: 0; - font-size: 1.08rem; - line-height: 1.3; -} - -.entry p, -.entry ul { - margin: 0.5rem 0 0; -} - -.entry ul { - padding-left: 1.2rem; -} - -.entry li + li { - margin-top: 0.45rem; -} - -.entry__head { - display: flex; - justify-content: space-between; - gap: 1rem; - align-items: baseline; -} - -.entry__org { - margin-top: 0.2rem; - color: #5f6c83; - font-weight: 600; -} - -.entry__meta { - color: #5f6c83; - font-size: 0.94rem; - white-space: nowrap; -} - -.callout ul { - margin: 0; - padding-left: 1.15rem; -} - -.callout li + li { - margin-top: 0.45rem; -} - -.footer-meta { - border-top: 1px solid #d7deea; - margin-top: 1rem; -} - -.footer-meta p { - margin: 0; - max-width: none; - color: #5f6c83; - font-size: 0.95rem; -} - -.resume--compact .hero { - gap: 1.3rem; - padding-bottom: 1.45rem; -} - -.resume--compact .section { - padding-top: 1.35rem; -} - -.resume--compact .headline { - max-width: 50ch; - font-size: 1rem; -} - -.resume--compact .panel, -.resume--compact .callout { - padding: 1rem 1.05rem; -} - -.resume--compact .entry { - padding: 0.9rem 0; -} - -.resume--compact .entry li + li { - margin-top: 0.32rem; -} - -.resume--compact .footer-meta { - margin-top: 0.8rem; -} - -.resume--two-page .section { - padding-top: 1.45rem; -} - -.resume--two-page .panel, -.resume--two-page .callout { - padding: 1rem 1.05rem; -} - -.resume--two-page .entry { - padding: 0.88rem 0; -} - -.resume--two-page .entry li + li { - margin-top: 0.34rem; -} - -@media (max-width: 900px) { - .resume, - .resume--compact, - .resume--two-page { - width: min(100%, calc(100% - 1rem)); - margin: 0.5rem auto; - padding: 1.35rem; - border-radius: 14px; - } - - .hero, - .section--grid, - .entry__head { - grid-template-columns: 1fr; - display: grid; - } - - .hero { - gap: 1rem; - } - - .entry__head { - gap: 0.3rem; - } - - .entry__meta { - white-space: normal; - } -} - -@media (max-width: 560px) { - html { - font-size: 15px; - } - - .hero__identity h1 { - font-size: 2rem; - } - - .headline { - font-size: 0.98rem; - } - - .hero__meta { - padding: 0.9rem 1rem; - } -} diff --git a/motolani-cv-template/exports/motolani-olaiya-cv-eu-2page.pdf b/motolani-cv-template/exports/motolani-olaiya-cv-eu-2page.pdf deleted file mode 100644 index 2de66a3..0000000 Binary files a/motolani-cv-template/exports/motolani-olaiya-cv-eu-2page.pdf and /dev/null differ diff --git a/motolani-cv-template/exports/motolani-olaiya-cv-full.pdf b/motolani-cv-template/exports/motolani-olaiya-cv-full.pdf deleted file mode 100644 index f2a7657..0000000 Binary files a/motolani-cv-template/exports/motolani-olaiya-cv-full.pdf and /dev/null differ diff --git a/motolani-cv-template/exports/motolani-olaiya-cv-recruiter.pdf b/motolani-cv-template/exports/motolani-olaiya-cv-recruiter.pdf deleted file mode 100644 index cd729ce..0000000 Binary files a/motolani-cv-template/exports/motolani-olaiya-cv-recruiter.pdf and /dev/null differ diff --git a/motolani-cv-template/index-eu-2page.html b/motolani-cv-template/index-eu-2page.html deleted file mode 100644 index f8ea552..0000000 --- a/motolani-cv-template/index-eu-2page.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - Motolani Olaiya | Senior Django Developer | Backend & Platform Engineer - - - - - - -
-
-
-

- Senior Django Developer • Wagtail Developer • Backend Developer • - Platform Engineer -

-

Motolani Olaiya

-

- Founder & Senior Python/Django Developer specializing in ecommerce - platforms, CMS systems, search infrastructure, CI/CD, deployment - automation, and reusable platform architecture. -

-
- -
- -
-

Professional Profile

-

- Senior Python/Django developer with practical production experience - across Django 5, Wagtail, Django Oscar, PostgreSQL, Elasticsearch, - Jenkins, SaltStack, Linux, and Sentry. Built MandelBlog as a reusable - platform for client onboarding, multilingual websites, ecommerce - delivery, monitoring, and release workflows. Best aligned to senior - Django, Wagtail, backend, ecommerce, and platform engineering roles. -

-
- -
-
-

Technical Skills

-
-
-
Backend
-
Python, Django 5, Django Oscar, REST APIs
-
-
-
CMS & Ecommerce
-
Wagtail, Django Oscar, Elasticsearch
-
-
-
DevOps & Platform
-
Jenkins, SaltStack, Linux, Sentry, CI/CD
-
-
-
Frontend
-
HTML, CSS, SCSS, Bootstrap 5
-
-
-
- -
-

Strength Areas

-
    -
  • Python and Django platform delivery
  • -
  • Wagtail and Django Oscar implementation
  • -
  • Elasticsearch search infrastructure
  • -
  • Platform architecture and plugin reuse
  • -
  • CI/CD and deployment automation
  • -
  • Staging and production reliability
  • -
-
-
- -
-

Professional Experience

- -
-
-
-

Founder & Lead Developer

-

MandelBlog

-
- -
-
    -
  • - Built a reusable Django/Wagtail/Django Oscar platform that - accelerated website and ecommerce delivery through shared - architecture and automation. -
  • -
  • - Built an onboarding system that provisions repositories, Jenkins - jobs, staging environments, SSL, and deployment tracking with - minimal manual intervention. -
  • -
  • - Standardized staging and production deployment using Jenkins, - SaltStack, Linux, release workflows, and rollback-aware - verification. -
  • -
-
- -
-
-
-

Internship / Developer Experience

-

- Highbiza -

-
- -
-
    -
  • - Gained real-world Django, Wagtail, Django Oscar, plugin, and - ecommerce platform experience in a production-oriented setting. -
  • -
  • - Built practical exposure to delivery workflows and engineering - standards that later informed MandelBlog platform work. -
  • -
-
-
- -
-

Selected Projects

-
-

MandelBlog Platform

-

- Centralized Django, Wagtail, Django Oscar, plugin reuse, CI/CD, and - deployment automation into a reusable engineering baseline. -

-
-
-

Customer Onboarding Platform

-

- Automated the path from project creation to staging readiness by - connecting repository provisioning, Jenkins job generation, staging - setup, SSL issuance, and deployment state tracking. -

-
-
-

Ecommerce & Search Platform

-

- Combined Django Oscar ecommerce engineering with Elasticsearch-based - product, category, and content discovery. -

-
-
-

Deployment Platform

-

- Built deployment infrastructure using Jenkins, SaltStack, Linux, and - release-based workflows to improve consistency, traceability, and - rollback capability. -

-
-
- -
-
-

Education

-
    -
  • Diploma in Computer Engineering — Ukraine
  • -
-
- -
-

Certifications

-

- Project Management, Human Resources, Business Administration, - Python Programming, Sales Management, Fitness Coaching, HACCP, Web - Accessibility, and HubSpot Content Marketing. -

-
-
- - -
- - diff --git a/motolani-cv-template/index-recruiter.html b/motolani-cv-template/index-recruiter.html deleted file mode 100644 index 2a2fab0..0000000 --- a/motolani-cv-template/index-recruiter.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - Motolani Olaiya | Senior Python/Django Developer - - - - - -
-
-
-

Senior Django Developer • Senior Python Developer • Platform Engineer

-

Motolani Olaiya

-

- Founder & Senior Python/Django Developer specializing in ecommerce - platforms, CMS systems, platform engineering, search - infrastructure, deployment automation, and scalable web - applications. -

-
- -
- -
-

Value Statement

-

- Experienced in building scalable ecommerce platforms, CMS systems, - deployment infrastructure, onboarding automation, search platforms, - and reusable software architectures using Python, Django, Wagtail, - Django Oscar, Elasticsearch, Jenkins, and SaltStack. -

-
- -
-
-

Technical Skills

-
-
-
Backend
-
Python, Django 5, Django Oscar, REST APIs
-
-
-
CMS & Ecommerce
-
Wagtail, Django Oscar, Elasticsearch
-
-
-
DevOps & Platform
-
Jenkins, SaltStack, Linux, Sentry, CI/CD
-
-
-
Frontend
-
HTML, CSS, SCSS, Bootstrap 5
-
-
-
- -
-

Strength Areas

-
    -
  • Python and Django platform delivery
  • -
  • Wagtail and Django Oscar implementation
  • -
  • Elasticsearch search infrastructure
  • -
  • Platform architecture and plugin reuse
  • -
  • CI/CD and deployment automation
  • -
  • Staging and production reliability
  • -
-
-
- -
-

Core Experience

-
-
-
-

Founder & Lead Developer

-

MandelBlog

-
- -
-
    -
  • - Built a reusable Django/Wagtail/Django Oscar platform that - accelerated client website and ecommerce delivery through shared - architecture and automation. -
  • -
  • - Built an automated onboarding system that provisions repositories, - Jenkins jobs, staging environments, SSL certificates, and - deployment tracking with minimal manual intervention. -
  • -
  • - Implemented Elasticsearch-powered search infrastructure for - products, categories, and content. -
  • -
  • - Designed deployment infrastructure using Jenkins, SaltStack, and - Linux to improve deployment consistency, traceability, and - rollback capability across staging and production. -
  • -
-
- -
-
-
-

Internship / Developer Experience

-

- Highbiza -

-
- -
-
    -
  • - Gained real-world Django, Wagtail, Django Oscar, plugin, and - ecommerce platform experience in a production-oriented setting. -
  • -
  • - Built practical exposure to project delivery workflows that later - informed MandelBlog platform engineering and deployment thinking. -
  • -
-
-
- - -
- - diff --git a/motolani-cv-template/index.html b/motolani-cv-template/index.html deleted file mode 100644 index 25b3de7..0000000 --- a/motolani-cv-template/index.html +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - Motolani Olaiya | Founder & Senior Python/Django Developer | Platform Engineer - - - - - - -
-
-
-

- Founder & Senior Python/Django Developer | Platform Engineer | - Ecommerce & CMS Specialist -

-

Motolani Olaiya

-

- Experienced in building scalable ecommerce platforms, CMS systems, - deployment infrastructure, onboarding automation, search platforms, - and reusable software architectures using Python, Django, Wagtail, - Django Oscar, Elasticsearch, Jenkins, and SaltStack. -

-
- -
- -
-

Professional Summary

-

- Founder and senior Python/Django developer with production experience - building backend systems, ecommerce platforms, CMS products, search - infrastructure, deployment workflows, and shared engineering tooling. - Strongest fit is in senior Django, Python, platform engineering, - ecommerce engineering, Wagtail, and technical consulting roles that - need practical architecture ownership and hands-on delivery. -

-

- Built MandelBlog as a reusable multi-project platform rather than a - single-codebase product, enabling faster client onboarding, - repeatable deployment workflows, reusable plugin composition, - multilingual website delivery, search integration, monitoring, and - production support with minimal manual intervention. -

-
- -
-
-

Technical Skills

-
-
-
Backend
-
Python, Django 5, Django Oscar, REST APIs
-
-
-
CMS & Ecommerce
-
Wagtail, Django Oscar, Elasticsearch
-
-
-
DevOps & Platform
-
Jenkins, SaltStack, Linux, Sentry, CI/CD
-
-
-
Frontend
-
HTML, CSS, SCSS, Bootstrap 5
-
-
-
Infrastructure & Security
-
OAuth2, OpenID Connect, Git, Private Gitea
-
-
-
- -
-

Priority Roles

-
    -
  • Senior Django Developer
  • -
  • Senior Python Developer
  • -
  • Platform Engineer
  • -
  • Django Oscar Ecommerce Developer
  • -
  • Wagtail Developer
  • -
  • Technical Consultant
  • -
  • Technical Founder
  • -
  • Backend Developer
  • -
  • Full Stack Developer
  • -
  • DevOps / CI-CD Engineer
  • -
-
-
- -
-

Work Experience

- -
-
-
-

Founder & Lead Developer

-

MandelBlog

-
- -
-
    -
  • - Designed and developed a reusable Django/Wagtail/Django Oscar - platform used to accelerate client website and ecommerce delivery - through reusable architecture, plugin composition, and automation. -
  • -
  • - Built an automated onboarding system that provisions repositories, - Jenkins jobs, staging environments, SSL certificates, and - deployment tracking with minimal manual intervention. -
  • -
  • - Designed deployment infrastructure using Jenkins, SaltStack, - Linux, and release-based deployment workflows to improve - deployment consistency, traceability, rollback capability, and - runtime verification. -
  • -
  • - Delivered multilingual Wagtail and Django Oscar implementations - with attention to SEO consistency, canonical correctness, cookie - compliance, and maintainable admin workflows. -
  • -
  • - Strengthened platform reliability by resolving onboarding, - staging, and production blockers across Sentry, template - generation, Jenkins handoff, SSL, package compatibility, runtime - provisioning, and deployment truthfulness. -
  • -
-
- -
-
-
-

Python / Django Developer

-

Independent Product & Client Delivery Work

-
- -
-
    -
  • - Built backend and full-stack web solutions focused on ecommerce, - CMS delivery, search, admin usability, and reliable deployment - into staging and production environments. -
  • -
  • - Worked end to end across application code, infrastructure, - monitoring, CI/CD, plugin integration, and live debugging rather - than treating backend development and operations as separate - silos. -
  • -
  • - Applied OpenAI integrations to product-oriented use cases such as - translation, product description workflows, and content - enrichment, with emphasis on practical output rather than demo - features. -
  • -
-
- -
-
-
-

Internship / Developer Experience

-

- Highbiza -

-
- -
-
    -
  • - Gained real-world development experience in Django, Wagtail, - Django Oscar, reusable plugins, ecommerce platforms, and - production-oriented workflows. -
  • -
  • - Worked within an existing delivery environment where CMS, - ecommerce, and plugin-based architecture were applied to real - project needs rather than isolated tutorial work. -
  • -
  • - Built practical exposure to platform structure, project - implementation standards, and day-to-day engineering execution - that later informed the MandelBlog platform approach. -
  • -
-
-
- -
-

Platform Engineering & Architecture

-
-
    -
  • - Designed reusable plugin architecture supporting multiple - websites and ecommerce projects. -
  • -
  • - Standardized project templates, package baselines, onboarding - workflows, and deployment verification logic. -
  • -
  • - Built CI/CD processes and operational tooling around Jenkins, - SaltStack, Linux, Gitea, and Sentry. -
  • -
  • - Managed staging and production environments with attention to - rollback, health checks, traceability, and deployment safety. -
  • -
  • - Defined technical standards for future projects through reusable - platform decisions instead of one-off project fixes. -
  • -
-
-
- -
-

Selected Projects

- -
-

MandelBlog Platform

-

- Built a shared delivery platform that reduced repeated project - setup work by centralizing Django, Wagtail, Django Oscar, - plugin-driven architecture, CI/CD, and deployment automation into a - reusable engineering baseline. -

-
- -
-

Customer Onboarding Platform

-

- Automated the path from project creation to staging readiness by - connecting repository provisioning, Jenkins job generation, staging - environment setup, SSL issuance, and deployment state tracking - while keeping production approval-gated. -

-
- -
-

Ecommerce Platform

-

- Led Django Oscar-based ecommerce engineering across search, - catalogue structure, B2B-friendly workflows, and plugin-driven - feature composition for reusable commerce delivery. -

-
- -
-

AI Product Description System

-

- Built AI-assisted content generation and product enrichment - workflows to support ecommerce operations with editable, - business-focused output. -

-
- -
-

Search Platform

-

- Implemented Elasticsearch-powered search infrastructure for - products, categories, and content, improving discoverability and - search relevance across ecommerce and CMS use cases. -

-
- -
-

Deployment Platform

-

- Standardized staging and production delivery through Jenkins, - SaltStack, Linux, and release-based workflows that improved - deployment consistency, traceability, environment provisioning, and - rollback capability. -

-
-
- -
-
-

Education

-
    -
  • Diploma in Computer Engineering — Ukraine
  • -
-
- -
-

Certifications

-
    -
  • Diploma in Project Management
  • -
  • Diploma in Human Resources
  • -
  • Diploma in Business Administration
  • -
  • Diploma in Python Programming
  • -
  • Diploma in Sales Management
  • -
  • Diploma in Fitness Coaching, Gym Workouts & Bodybuilding
  • -
  • Diploma in HACCP
  • -
  • Diploma in Web Accessibility
  • -
  • HubSpot Content Marketing Certification
  • -
-
-
- -
-
-

Languages

-
    -
  • English — Fluent
  • -
  • Russian — Intermediate
  • -
  • Dutch — Basic / Working proficiency
  • -
-
- -
-

Links

- -
-
-
- - diff --git a/motolani-cv-template/scss/styles.scss b/motolani-cv-template/scss/styles.scss deleted file mode 100644 index 98dc713..0000000 --- a/motolani-cv-template/scss/styles.scss +++ /dev/null @@ -1,438 +0,0 @@ -$bg: #eef2f7; -$surface: #ffffff; -$surface-soft: #f8fafc; -$text: #182131; -$muted: #5f6c83; -$line: #d7deea; -$line-strong: #c7d1e1; -$accent: #2349b6; -$accent-soft: #eef3ff; -$shadow: 0 22px 54px rgba(16, 24, 40, 0.08); -$print-text: #111111; - -*, -*::before, -*::after { - box-sizing: border-box; -} - -html { - font-size: 16px; -} - -body { - margin: 0; - font-family: Inter, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; - color: $text; - background: - radial-gradient(circle at top left, rgba(35, 73, 182, 0.06), transparent 24rem), - $bg; - line-height: 1.6; - text-rendering: optimizeLegibility; -} - -a { - color: $accent; - text-decoration: none; - text-underline-offset: 0.16em; - - &:hover { - text-decoration: underline; - } -} - -p, -li, -dd { - max-width: 75ch; -} - -.resume { - width: min(1080px, calc(100% - 2rem)); - margin: 2rem auto; - padding: 2.35rem; - background: $surface; - border: 1px solid $line; - border-radius: 18px; - box-shadow: $shadow; -} - -.resume--compact { - width: min(980px, calc(100% - 2rem)); - padding: 2rem 2.1rem; -} - -.resume--two-page { - width: min(1020px, calc(100% - 2rem)); - padding: 2.1rem 2.15rem; -} - -.hero { - display: grid; - grid-template-columns: minmax(0, 1.9fr) minmax(280px, 1fr); - gap: 1.75rem; - align-items: start; - padding-bottom: 1.8rem; - border-bottom: 1px solid $line-strong; -} - -.hero__identity h1 { - margin: 0.35rem 0 0.9rem; - font-size: clamp(2.15rem, 4vw, 3.15rem); - line-height: 1.02; - letter-spacing: -0.02em; -} - -.eyebrow { - margin: 0; - color: $accent; - font-size: 0.84rem; - font-weight: 700; - line-height: 1.45; - letter-spacing: 0.08em; - text-transform: uppercase; -} - -.headline { - margin: 0; - max-width: 58ch; - color: $muted; - font-size: 1.05rem; - line-height: 1.68; -} - -.hero__meta { - display: grid; - gap: 0.55rem; - margin: 0; - padding: 1.1rem 1.15rem; - list-style: none; - background: linear-gradient(180deg, $surface-soft, $accent-soft); - border: 1px solid #d5def5; - border-radius: 14px; -} - -.hero__meta li { - max-width: none; - color: $text; - font-size: 0.95rem; -} - -.section { - padding-top: 1.7rem; -} - -.section h2 { - margin: 0 0 0.95rem; - color: #23304a; - font-size: 0.88rem; - font-weight: 800; - letter-spacing: 0.11em; - text-transform: uppercase; -} - -.section--grid { - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - gap: 1.2rem; -} - -.panel, -.callout { - padding: 1.15rem 1.2rem; - border: 1px solid $line; - border-radius: 14px; - background: $surface-soft; -} - -.panel h2, -.callout h2 { - margin-top: 0; -} - -.tag-list, -.plain-list { - margin: 0; - padding-left: 1.1rem; -} - -.plain-list li + li { - margin-top: 0.35rem; -} - -.tag-list { - display: flex; - flex-wrap: wrap; - gap: 0.58rem; - padding-left: 0; - list-style: none; -} - -.tag-list li { - max-width: none; - padding: 0.42rem 0.76rem; - border: 1px solid #cfdaef; - border-radius: 999px; - background: $accent-soft; - color: #243657; - font-size: 0.91rem; - font-weight: 600; - line-height: 1.2; -} - -.stack-list { - margin: 0; -} - -.stack-list div + div { - margin-top: 0.8rem; - padding-top: 0.8rem; - border-top: 1px solid #e8edf5; -} - -.stack-list dt { - color: #243657; - font-weight: 700; -} - -.stack-list dd { - margin: 0.14rem 0 0; - color: $muted; -} - -.entry { - padding: 1.05rem 0; - border-top: 1px solid $line; -} - -.entry:first-of-type { - border-top: 0; - padding-top: 0.1rem; -} - -.entry h3 { - margin: 0; - font-size: 1.08rem; - line-height: 1.3; -} - -.entry p, -.entry ul { - margin: 0.5rem 0 0; -} - -.entry ul { - padding-left: 1.2rem; -} - -.entry li + li { - margin-top: 0.45rem; -} - -.entry__head { - display: flex; - justify-content: space-between; - gap: 1rem; - align-items: baseline; -} - -.entry__org { - margin-top: 0.2rem; - color: $muted; - font-weight: 600; -} - -.entry__meta { - color: $muted; - font-size: 0.94rem; - white-space: nowrap; -} - -.callout ul { - margin: 0; - padding-left: 1.15rem; -} - -.callout li + li { - margin-top: 0.45rem; -} - -.footer-meta { - border-top: 1px solid $line; - margin-top: 1rem; -} - -.footer-meta p { - margin: 0; - max-width: none; - color: $muted; - font-size: 0.95rem; -} - -.resume--compact { - .hero { - gap: 1.3rem; - padding-bottom: 1.45rem; - } - - .section { - padding-top: 1.35rem; - } - - .headline { - max-width: 50ch; - font-size: 1rem; - } - - .panel, - .callout { - padding: 1rem 1.05rem; - } - - .entry { - padding: 0.9rem 0; - } - - .entry li + li { - margin-top: 0.32rem; - } - - .footer-meta { - margin-top: 0.8rem; - } -} - -.resume--two-page { - .section { - padding-top: 1.45rem; - } - - .panel, - .callout { - padding: 1rem 1.05rem; - } - - .entry { - padding: 0.88rem 0; - } - - .entry li + li { - margin-top: 0.34rem; - } -} - -@media (max-width: 900px) { - .resume, - .resume--compact, - .resume--two-page { - width: min(100%, calc(100% - 1rem)); - margin: 0.5rem auto; - padding: 1.35rem; - border-radius: 14px; - } - - .hero, - .section--grid, - .entry__head { - grid-template-columns: 1fr; - display: grid; - } - - .hero { - gap: 1rem; - } - - .entry__head { - gap: 0.3rem; - } - - .entry__meta { - white-space: normal; - } -} - -@media (max-width: 560px) { - html { - font-size: 15px; - } - - .hero__identity h1 { - font-size: 2rem; - } - - .headline { - font-size: 0.98rem; - } - - .hero__meta { - padding: 0.9rem 1rem; - } -} - -@media print { - body { - background: #ffffff; - color: $print-text; - font-size: 10.7pt; - line-height: 1.45; - } - - a { - color: $print-text; - text-decoration: none; - } - - .resume, - .resume--compact, - .resume--two-page { - width: 100%; - margin: 0; - padding: 0; - border: 0; - border-radius: 0; - box-shadow: none; - } - - .hero { - gap: 0.8rem; - padding-bottom: 0.8rem; - } - - .hero__identity h1 { - margin-bottom: 0.45rem; - font-size: 22pt; - } - - .headline, - .entry__org, - .entry__meta, - .stack-list dd { - color: $print-text; - } - - .hero__meta, - .panel, - .callout { - background: transparent; - border: 1px solid #bdbdbd; - } - - .section { - padding-top: 0.9rem; - } - - .section, - .panel, - .entry, - .callout, - .hero { - break-inside: avoid; - page-break-inside: avoid; - } - - .tag-list li { - background: transparent; - border-color: #999999; - color: $print-text; - } -}