Add professional CV template project

This commit is contained in:
2026-06-07 15:45:41 +02:00
parent 16244eed5c
commit 38eb5693cd
11 changed files with 1744 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
# 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.

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,147 @@
@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;
}

View File

@@ -0,0 +1,352 @@
*,
*::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;
}
}

View File

@@ -0,0 +1,212 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>
Motolani Olaiya | Senior Django Developer | Backend & Platform Engineer
</title>
<meta
name="description"
content="Strict 2-page European CV for Motolani Olaiya optimized for Senior Django Developer, Wagtail Developer, Backend Developer, and Platform Engineer roles."
/>
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="css/print.css" media="print" />
</head>
<body>
<main class="resume resume--compact resume--two-page">
<header class="hero">
<div class="hero__identity">
<p class="eyebrow">
Senior Django Developer • Wagtail Developer • Backend Developer •
Platform Engineer
</p>
<h1>Motolani Olaiya</h1>
<p class="headline">
Founder & Senior Python/Django Developer specializing in ecommerce
platforms, CMS systems, search infrastructure, CI/CD, deployment
automation, and reusable platform architecture.
</p>
</div>
<ul class="hero__meta">
<li>Preferred name: Mandel</li>
<li>Netherlands</li>
<li><a href="tel:+310653263426">+31 0653263426</a></li>
<li>
<a href="mailto:mandeleolaiya15@icloud.com"
>mandeleolaiya15@icloud.com</a
>
</li>
<li>
<a href="https://www.linkedin.com/in/motolani-olaiya-ba2151296/"
>LinkedIn</a
>
</li>
<li><a href="https://www.mandelblog.com/">MandelBlog</a></li>
<li>Git platform: Private Gitea</li>
</ul>
</header>
<section class="section">
<h2>Professional Profile</h2>
<p>
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.
</p>
</section>
<section class="section section--grid">
<div class="panel">
<h2>Technical Skills</h2>
<dl class="stack-list">
<div>
<dt>Backend</dt>
<dd>Python, Django 5, Django Oscar, REST APIs</dd>
</div>
<div>
<dt>CMS & Ecommerce</dt>
<dd>Wagtail, Django Oscar, Elasticsearch</dd>
</div>
<div>
<dt>DevOps & Platform</dt>
<dd>Jenkins, SaltStack, Linux, Sentry, CI/CD</dd>
</div>
<div>
<dt>Frontend</dt>
<dd>HTML, CSS, SCSS, Bootstrap 5</dd>
</div>
</dl>
</div>
<div class="panel">
<h2>Strength Areas</h2>
<ul class="plain-list">
<li>Python and Django platform delivery</li>
<li>Wagtail and Django Oscar implementation</li>
<li>Elasticsearch search infrastructure</li>
<li>Platform architecture and plugin reuse</li>
<li>CI/CD and deployment automation</li>
<li>Staging and production reliability</li>
</ul>
</div>
</section>
<section class="section">
<h2>Professional Experience</h2>
<article class="entry">
<div class="entry__head">
<div>
<h3>Founder & Lead Developer</h3>
<p class="entry__org">MandelBlog</p>
</div>
<p class="entry__meta">Ongoing</p>
</div>
<ul>
<li>
Built a reusable Django/Wagtail/Django Oscar platform that
accelerated website and ecommerce delivery through shared
architecture and automation.
</li>
<li>
Built an onboarding system that provisions repositories, Jenkins
jobs, staging environments, SSL, and deployment tracking with
minimal manual intervention.
</li>
<li>
Standardized staging and production deployment using Jenkins,
SaltStack, Linux, release workflows, and rollback-aware
verification.
</li>
</ul>
</article>
<article class="entry">
<div class="entry__head">
<div>
<h3>Internship / Developer Experience</h3>
<p class="entry__org">
<a href="https://highbiza.nl/">Highbiza</a>
</p>
</div>
<p class="entry__meta">1+ year</p>
</div>
<ul>
<li>
Gained real-world Django, Wagtail, Django Oscar, plugin, and
ecommerce platform experience in a production-oriented setting.
</li>
<li>
Built practical exposure to delivery workflows and engineering
standards that later informed MandelBlog platform work.
</li>
</ul>
</article>
</section>
<section class="section">
<h2>Selected Projects</h2>
<article class="entry">
<h3>MandelBlog Platform</h3>
<p>
Centralized Django, Wagtail, Django Oscar, plugin reuse, CI/CD, and
deployment automation into a reusable engineering baseline.
</p>
</article>
<article class="entry">
<h3>Customer Onboarding Platform</h3>
<p>
Automated the path from project creation to staging readiness by
connecting repository provisioning, Jenkins job generation, staging
setup, SSL issuance, and deployment state tracking.
</p>
</article>
<article class="entry">
<h3>Ecommerce & Search Platform</h3>
<p>
Combined Django Oscar ecommerce engineering with Elasticsearch-based
product, category, and content discovery.
</p>
</article>
<article class="entry">
<h3>Deployment Platform</h3>
<p>
Built deployment infrastructure using Jenkins, SaltStack, Linux, and
release-based workflows to improve consistency, traceability, and
rollback capability.
</p>
</article>
</section>
<section class="section section--grid">
<div class="panel">
<h2>Education</h2>
<ul class="plain-list">
<li>Diploma in Computer Engineering — Ukraine</li>
</ul>
</div>
<div class="panel">
<h2>Certifications</h2>
<p>
Project Management, Human Resources, Business Administration,
Python Programming, Sales Management, Fitness Coaching, HACCP, Web
Accessibility, and HubSpot Content Marketing.
</p>
</div>
</section>
<footer class="section footer-meta">
<p>
Languages: English (Fluent), Russian (Intermediate), Dutch (Basic /
Working proficiency) | Reference available: Geertjan, Highbiza,
<a href="tel:+31652362105">+31 652362105</a>
</p>
</footer>
</main>
</body>
</html>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Motolani Olaiya | Senior Python/Django Developer</title>
<meta
name="description"
content="One-page recruiter CV for Motolani Olaiya, senior Python/Django developer with strengths in Wagtail, Django Oscar, Elasticsearch, platform engineering, CI/CD, and automation."
/>
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="css/print.css" media="print" />
</head>
<body>
<main class="resume resume--compact">
<header class="hero">
<div class="hero__identity">
<p class="eyebrow">Senior Django Developer • Senior Python Developer • Platform Engineer</p>
<h1>Motolani Olaiya</h1>
<p class="headline">
Founder & Senior Python/Django Developer specializing in ecommerce
platforms, CMS systems, platform engineering, search
infrastructure, deployment automation, and scalable web
applications.
</p>
</div>
<ul class="hero__meta">
<li>Netherlands</li>
<li><a href="tel:+310653263426">+31 0653263426</a></li>
<li><a href="mailto:mandeleolaiya15@icloud.com">mandeleolaiya15@icloud.com</a></li>
<li><a href="https://www.linkedin.com/in/motolani-olaiya-ba2151296/">LinkedIn</a></li>
<li><a href="https://www.mandelblog.com/">MandelBlog</a></li>
</ul>
</header>
<section class="section">
<h2>Value Statement</h2>
<p>
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.
</p>
</section>
<section class="section section--grid">
<div class="panel">
<h2>Technical Skills</h2>
<dl class="stack-list">
<div>
<dt>Backend</dt>
<dd>Python, Django 5, Django Oscar, REST APIs</dd>
</div>
<div>
<dt>CMS & Ecommerce</dt>
<dd>Wagtail, Django Oscar, Elasticsearch</dd>
</div>
<div>
<dt>DevOps & Platform</dt>
<dd>Jenkins, SaltStack, Linux, Sentry, CI/CD</dd>
</div>
<div>
<dt>Frontend</dt>
<dd>HTML, CSS, SCSS, Bootstrap 5</dd>
</div>
</dl>
</div>
<div class="panel">
<h2>Strength Areas</h2>
<ul class="plain-list">
<li>Python and Django platform delivery</li>
<li>Wagtail and Django Oscar implementation</li>
<li>Elasticsearch search infrastructure</li>
<li>Platform architecture and plugin reuse</li>
<li>CI/CD and deployment automation</li>
<li>Staging and production reliability</li>
</ul>
</div>
</section>
<section class="section">
<h2>Core Experience</h2>
<article class="entry">
<div class="entry__head">
<div>
<h3>Founder & Lead Developer</h3>
<p class="entry__org">MandelBlog</p>
</div>
<p class="entry__meta">Ongoing</p>
</div>
<ul>
<li>
Built a reusable Django/Wagtail/Django Oscar platform that
accelerated client website and ecommerce delivery through shared
architecture and automation.
</li>
<li>
Built an automated onboarding system that provisions repositories,
Jenkins jobs, staging environments, SSL certificates, and
deployment tracking with minimal manual intervention.
</li>
<li>
Implemented Elasticsearch-powered search infrastructure for
products, categories, and content.
</li>
<li>
Designed deployment infrastructure using Jenkins, SaltStack, and
Linux to improve deployment consistency, traceability, and
rollback capability across staging and production.
</li>
</ul>
</article>
<article class="entry">
<div class="entry__head">
<div>
<h3>Internship / Developer Experience</h3>
<p class="entry__org">
<a href="https://highbiza.nl/">Highbiza</a>
</p>
</div>
<p class="entry__meta">1+ year</p>
</div>
<ul>
<li>
Gained real-world Django, Wagtail, Django Oscar, plugin, and
ecommerce platform experience in a production-oriented setting.
</li>
<li>
Built practical exposure to project delivery workflows that later
informed MandelBlog platform engineering and deployment thinking.
</li>
</ul>
</article>
</section>
<footer class="section footer-meta">
<p>
Education: Diploma in Computer Engineering (Ukraine) |
Languages: English (Fluent), Russian (Intermediate), Dutch (Basic /
Working proficiency) | Reference available: Geertjan, Highbiza,
<a href="tel:+31652362105">+31 652362105</a>
</p>
</footer>
</main>
</body>
</html>

View File

@@ -0,0 +1,361 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>
Motolani Olaiya | Founder & Senior Python/Django Developer | Platform Engineer
</title>
<meta
name="description"
content="Achievement-focused CV for Motolani Olaiya, founder of MandelBlog and senior Python/Django developer specializing in ecommerce, CMS platforms, search, CI/CD, and deployment automation."
/>
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="css/print.css" media="print" />
</head>
<body>
<main class="resume">
<header class="hero">
<div class="hero__identity">
<p class="eyebrow">
Founder & Senior Python/Django Developer | Platform Engineer |
Ecommerce & CMS Specialist
</p>
<h1>Motolani Olaiya</h1>
<p class="headline">
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.
</p>
</div>
<ul class="hero__meta">
<li>Preferred name: Mandel</li>
<li>Location: Netherlands</li>
<li>Phone: <a href="tel:+310653263426">+31 0653263426</a></li>
<li>
Email:
<a href="mailto:mandeleolaiya15@icloud.com"
>mandeleolaiya15@icloud.com</a
>
</li>
<li>
LinkedIn:
<a href="https://www.linkedin.com/in/motolani-olaiya-ba2151296/"
>motolani-olaiya-ba2151296</a
>
</li>
<li>
Portfolio:
<a href="https://www.mandelblog.com/">MandelBlog platform work</a>
</li>
<li>Git platform: Private Gitea</li>
</ul>
</header>
<section class="section">
<h2>Professional Summary</h2>
<p>
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.
</p>
<p>
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.
</p>
</section>
<section class="section section--grid">
<div class="panel">
<h2>Technical Skills</h2>
<dl class="stack-list">
<div>
<dt>Backend</dt>
<dd>Python, Django 5, Django Oscar, REST APIs</dd>
</div>
<div>
<dt>CMS & Ecommerce</dt>
<dd>Wagtail, Django Oscar, Elasticsearch</dd>
</div>
<div>
<dt>DevOps & Platform</dt>
<dd>Jenkins, SaltStack, Linux, Sentry, CI/CD</dd>
</div>
<div>
<dt>Frontend</dt>
<dd>HTML, CSS, SCSS, Bootstrap 5</dd>
</div>
<div>
<dt>Infrastructure & Security</dt>
<dd>OAuth2, OpenID Connect, Git, Private Gitea</dd>
</div>
</dl>
</div>
<div class="panel">
<h2>Priority Roles</h2>
<ul class="plain-list">
<li>Senior Django Developer</li>
<li>Senior Python Developer</li>
<li>Platform Engineer</li>
<li>Django Oscar Ecommerce Developer</li>
<li>Wagtail Developer</li>
<li>Technical Consultant</li>
<li>Technical Founder</li>
<li>Backend Developer</li>
<li>Full Stack Developer</li>
<li>DevOps / CI-CD Engineer</li>
</ul>
</div>
</section>
<section class="section">
<h2>Work Experience</h2>
<article class="entry">
<div class="entry__head">
<div>
<h3>Founder & Lead Developer</h3>
<p class="entry__org">MandelBlog</p>
</div>
<p class="entry__meta">Netherlands • Ongoing</p>
</div>
<ul>
<li>
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.
</li>
<li>
Built an automated onboarding system that provisions repositories,
Jenkins jobs, staging environments, SSL certificates, and
deployment tracking with minimal manual intervention.
</li>
<li>
Designed deployment infrastructure using Jenkins, SaltStack,
Linux, and release-based deployment workflows to improve
deployment consistency, traceability, rollback capability, and
runtime verification.
</li>
<li>
Delivered multilingual Wagtail and Django Oscar implementations
with attention to SEO consistency, canonical correctness, cookie
compliance, and maintainable admin workflows.
</li>
<li>
Strengthened platform reliability by resolving onboarding,
staging, and production blockers across Sentry, template
generation, Jenkins handoff, SSL, package compatibility, runtime
provisioning, and deployment truthfulness.
</li>
</ul>
</article>
<article class="entry">
<div class="entry__head">
<div>
<h3>Python / Django Developer</h3>
<p class="entry__org">Independent Product & Client Delivery Work</p>
</div>
<p class="entry__meta">Project-based</p>
</div>
<ul>
<li>
Built backend and full-stack web solutions focused on ecommerce,
CMS delivery, search, admin usability, and reliable deployment
into staging and production environments.
</li>
<li>
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.
</li>
<li>
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.
</li>
</ul>
</article>
<article class="entry">
<div class="entry__head">
<div>
<h3>Internship / Developer Experience</h3>
<p class="entry__org">
<a href="https://highbiza.nl/">Highbiza</a>
</p>
</div>
<p class="entry__meta">1+ year</p>
</div>
<ul>
<li>
Gained real-world development experience in Django, Wagtail,
Django Oscar, reusable plugins, ecommerce platforms, and
production-oriented workflows.
</li>
<li>
Worked within an existing delivery environment where CMS,
ecommerce, and plugin-based architecture were applied to real
project needs rather than isolated tutorial work.
</li>
<li>
Built practical exposure to platform structure, project
implementation standards, and day-to-day engineering execution
that later informed the MandelBlog platform approach.
</li>
</ul>
</article>
</section>
<section class="section">
<h2>Platform Engineering & Architecture</h2>
<div class="callout">
<ul>
<li>
Designed reusable plugin architecture supporting multiple
websites and ecommerce projects.
</li>
<li>
Standardized project templates, package baselines, onboarding
workflows, and deployment verification logic.
</li>
<li>
Built CI/CD processes and operational tooling around Jenkins,
SaltStack, Linux, Gitea, and Sentry.
</li>
<li>
Managed staging and production environments with attention to
rollback, health checks, traceability, and deployment safety.
</li>
<li>
Defined technical standards for future projects through reusable
platform decisions instead of one-off project fixes.
</li>
</ul>
</div>
</section>
<section class="section">
<h2>Selected Projects</h2>
<article class="entry">
<h3>MandelBlog Platform</h3>
<p>
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.
</p>
</article>
<article class="entry">
<h3>Customer Onboarding Platform</h3>
<p>
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.
</p>
</article>
<article class="entry">
<h3>Ecommerce Platform</h3>
<p>
Led Django Oscar-based ecommerce engineering across search,
catalogue structure, B2B-friendly workflows, and plugin-driven
feature composition for reusable commerce delivery.
</p>
</article>
<article class="entry">
<h3>AI Product Description System</h3>
<p>
Built AI-assisted content generation and product enrichment
workflows to support ecommerce operations with editable,
business-focused output.
</p>
</article>
<article class="entry">
<h3>Search Platform</h3>
<p>
Implemented Elasticsearch-powered search infrastructure for
products, categories, and content, improving discoverability and
search relevance across ecommerce and CMS use cases.
</p>
</article>
<article class="entry">
<h3>Deployment Platform</h3>
<p>
Standardized staging and production delivery through Jenkins,
SaltStack, Linux, and release-based workflows that improved
deployment consistency, traceability, environment provisioning, and
rollback capability.
</p>
</article>
</section>
<section class="section section--grid">
<div class="panel">
<h2>Education</h2>
<ul class="plain-list">
<li>Diploma in Computer Engineering — Ukraine</li>
</ul>
</div>
<div class="panel">
<h2>Certifications</h2>
<ul class="plain-list">
<li>Diploma in Project Management</li>
<li>Diploma in Human Resources</li>
<li>Diploma in Business Administration</li>
<li>Diploma in Python Programming</li>
<li>Diploma in Sales Management</li>
<li>Diploma in Fitness Coaching, Gym Workouts & Bodybuilding</li>
<li>Diploma in HACCP</li>
<li>Diploma in Web Accessibility</li>
<li>HubSpot Content Marketing Certification</li>
</ul>
</div>
</section>
<section class="section section--grid">
<div class="panel">
<h2>Languages</h2>
<ul class="plain-list">
<li>English — Fluent</li>
<li>Russian — Intermediate</li>
<li>Dutch — Basic / Working proficiency</li>
</ul>
</div>
<div class="panel">
<h2>Links</h2>
<ul class="plain-list">
<li><a href="https://www.mandelblog.com/">MandelBlog</a></li>
<li>
<a href="https://www.linkedin.com/in/motolani-olaiya-ba2151296/"
>LinkedIn Profile</a
>
</li>
<li>
Reference available: Geertjan, Highbiza —
<a href="tel:+31652362105">+31 652362105</a>
</li>
</ul>
</div>
</section>
</main>
</body>
</html>

View File

@@ -0,0 +1,438 @@
$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;
}
}