Finished first draft of Resume page.

This commit is contained in:
g_it 2026-02-16 02:57:39 +01:00
commit b6b011918e
Signed by untrusted user who does not match committer: g_it
GPG key ID: A2B0A7C06A054627
30 changed files with 719 additions and 518 deletions

View file

@ -15,102 +15,94 @@
padding: 0;
position: relative;
width: 100%;
}
.content ul {
align-items: center;
display: flex;
height: 1.4em;
justify-content: center;
left: 50%;
line-height: 1.4em;
list-style: none;
margin: 0 !important;
max-width: 900px;
overflow: visible;
pointer-events: none;
padding: 0;
position: absolute;
text-align: center;
top: 20px;
transform: translateX(-50%);
width: 100%;
z-index: 0;
}
.faces {
align-items: center;
flex-grow: 0;
display: flex;
justify-content: center;
min-height: 320px;
margin-top: 0;
position: relative;
width: 100%;
.content ul li {
align-items: center;
box-sizing: border-box;
display: flex;
font-size: 15vw;
inset: 0;
justify-content: center;
margin: 0 !important;
padding: 0;
pointer-events: auto;
position: absolute;
text-align: center;
white-space: nowrap;
width: 100%;
}
.slide {
border-radius: 10px;
left: 50%;
max-width: 600px;
opacity: 0;
position: absolute;
transform: translate(-50%, -50%);
top: 50%;
visibility: hidden;
width: 80%;
z-index: 1;
.content ul li:hover {
cursor: pointer;
}
img {
border-radius: 10px;
display: block;
height: auto;
width: 100%;
}
}
}
.content ul li a {
text-decoration: none !important;
}
ul {
align-items: center;
display: flex;
height: 1.4em;
justify-content: center;
left: 50%;
line-height: 1.4em;
list-style: none;
margin: 0 !important;
max-width: 900px;
overflow: visible;
pointer-events: none;
padding: 0;
position: absolute;
text-align: center;
top: 20px;
transform: translateX(-50%);
width: 100%;
z-index: 0;
.content ul li:nth-child(2) {
font-family: var(--words-title) !important;
}
li {
align-items: center;
box-sizing: border-box;
display: flex;
font-size: 15vw;
inset: 0;
justify-content: center;
margin: 0 !important;
padding: 0;
pointer-events: auto;
position: absolute;
text-align: center;
white-space: nowrap;
width: 100%;
.content ul li:nth-child(3) {
font-family: var(--visuals-title);
}
a {
text-decoration: none !important;
}
.content ul li:nth-child(4) {
font-family: var(--technical-title);
}
&:hover {
cursor: pointer;
}
.content .faces {
align-items: center;
flex-grow: 0;
display: flex;
justify-content: center;
min-height: 320px;
margin-top: 0;
position: relative;
width: 100%;
}
&:nth-child(2) {
font-family: var(--words-title);
}
.faces .slide {
border-radius: 10px;
left: 50%;
max-width: 600px;
opacity: 0;
position: absolute;
transform: translate(-50%, -50%);
top: 50%;
visibility: hidden;
width: 80%;
z-index: 1;
}
&:nth-child(3) {
font-family: var(--visuals-title);
}
.faces .slide img {
border-radius: 10px;
display: block;
height: auto;
width: 100%;
}
footer {
background: repeating-linear-gradient(0deg, transparent, transparent 19px, rgba(75, 85, 99, 0.08) 19px, rgba(75, 85, 99, 0.08) 20px, transparent 20px, transparent 39px, rgba(75, 85, 99, 0.08) 39px, rgba(75, 85, 99, 0.08) 40px),
repeating-linear-gradient(90deg, transparent, transparent 19px, rgba(75, 85, 99, 0.08) 19px, rgba(75, 85, 99, 0.08) 20px, transparent 20px, transparent 39px, rgba(75, 85, 99, 0.08) 39px, rgba(75, 85, 99, 0.08) 40px),
radial-gradient(circle at 20px 20px, rgba(55, 65, 81, 0.12) 2px, transparent 2px),
radial-gradient(circle at 40px 40px, rgba(55, 65, 81, 0.12) 2px, transparent 2px);
font-family: var(--general-sans);
&:nth-child(4) {
font-family: var(--technical-title);
}
}
}
}
.hero {
@ -127,3 +119,11 @@ footer {
.hidden {
display: none;
}
footer {
background: repeating-linear-gradient(0deg, transparent, transparent 19px, rgba(75, 85, 99, 0.08) 19px, rgba(75, 85, 99, 0.08) 20px, transparent 20px, transparent 39px, rgba(75, 85, 99, 0.08) 39px, rgba(75, 85, 99, 0.08) 40px),
repeating-linear-gradient(90deg, transparent, transparent 19px, rgba(75, 85, 99, 0.08) 19px, rgba(75, 85, 99, 0.08) 20px, transparent 20px, transparent 39px, rgba(75, 85, 99, 0.08) 39px, rgba(75, 85, 99, 0.08) 40px),
radial-gradient(circle at 20px 20px, rgba(55, 65, 81, 0.12) 2px, transparent 2px),
radial-gradient(circle at 40px 40px, rgba(55, 65, 81, 0.12) 2px, transparent 2px);
font-family: var(--general-sans);
}

View file

@ -10,112 +10,44 @@
}
body {
color: var(--primary-colour);
color: var(--dark-grey);
font-family: var(--general-sans);
}
.page-menu {
align-items: center;
background-color: var(--background-colour);
color: var(--primary-colour);
display: flex;
flex-direction: row;
font-size: 0.6rem;
font-weight: 400;
justify-content: center;
padding: 10px;
position: sticky;
text-align: center;
top: 0;
z-index: 100;
li {
/* Remove the default styles for grids */
border: none !important;
&>*:not(:last-child)::after {
content: " | ";
margin: 0 8px;
}
}
.hero {
align-items: center;
background-image: url('../media/face-1276x1276.webp');
background-position: center center;
background-repeat: no-repeat;
background-size: 50vh;
display: flex;
flex-direction: column;
height: 100vh;
justify-content: center;
text-align: center;
z-index: -5 !important;
&::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 0.95);
pointer-events: none;
}
.title {
font-family: var(--general-serif);
font-size: 5rem;
font-variation-settings: "opsz" 8;
font-weight: 900;
}
.metadetails {
border-bottom: 0.5px solid lightgray;
border-top: 0.5px solid lightgray;
display: flex;
flex-direction: row;
gap: 5rem;
img {
height: 2.5rem;
}
figcaption {
color: var(--primary-colour);
font-family: var(--general-sans);
font-size: 0.8rem;
font-style: normal;
font-weight: 400;
&:hover {
box-shadow: none !important;
}
}
.twemoji {
--md-icon-size: 1.2rem !important;
vertical-align: middle !important;
}
}
/*****************************/
#experience {
color: var(--primary-colour);
min-height: 80vh;
&>div {
margin: 30px;
padding: 1.2rem;
li {
border: none;
&:hover {
box-shadow: none;
}
}
.cards {
padding: 1rem;
h2 {
color: var(--primary-colour);
color: var(--dark-grey);
font-family: var(--general-sans);
font-size: 2.5rem;
margin: 0 0 -18px 0;
line-height: 1;
margin: 0;
}
.company {
font-family: var(--general-sans);
font-weight: 400;
font-size: 1.2rem;
margin: 0;
span {
font-size: 0.7rem;
@ -127,6 +59,7 @@ body {
.job-blurb {
font-family: var(--general-serif);
font-size: 1.2rem;
font-variation-settings: "opsz" 8;
font-weight: 700;
line-height: 1.5;
margin-bottom: 30px;
@ -135,9 +68,11 @@ body {
.job-achievements {
font-family: var(--general-serif);
font-variation-settings: "opsz" 8;
h5 {
color: var(--primary-colour);
color: var(--dark-grey);
cursor: pointer;
font-size: 0.9rem;
margin: 0;
text-transform: none;
@ -168,7 +103,7 @@ body {
position: relative;
&::after {
background: rgba(255, 255, 255, 0.70);
background: rgba(250, 250, 250, 0.70);
bottom: 0;
content: '';
left: 0;
@ -181,23 +116,55 @@ body {
}
}
#demo {
margin: 0 2.5rem;
#hero {
align-items: center;
background-image: url('../media/face-1276x1276.webp');
background-position: center center;
background-repeat: no-repeat;
background-size: 50vh;
display: flex;
flex-direction: column;
height: 100vh;
justify-content: center;
text-align: center;
z-index: -5;
.cards {
&::after {
background: rgba(250, 250, 250, 0.95);
bottom: 0;
content: '';
position: absolute;
left: 0;
pointer-events: none;
right: 0;
top: 0;
}
.twemoji {
font-size: 3rem;
margin-bottom: 8px;
.title {
font-family: var(--general-serif);
font-size: 5rem;
font-variation-settings: "opsz" 8;
font-weight: 900;
}
.metadetails {
border-bottom: 0.5px solid var(--light-grey);
border-top: 0.5px solid var(--light-grey);
display: flex;
flex-direction: row;
gap: 5rem;
margin-top: 1rem;
figcaption {
color: var(--dark-grey);
font-family: var(--general-sans);
font-size: 0.8rem;
font-style: normal;
font-weight: 400;
}
ul li {
align-items: center;
display: flex;
flex-direction: column;
font-size: 1.8rem;
height: 300px;
justify-content: center;
img {
height: 2.5rem;
}
}
}
@ -208,45 +175,179 @@ body {
.cards {
ul li {
background-color: var(--tertiary-colour);
border: none;
background-color: var(--light-grey);
&:hover {
box-shadow: none;
figure {
display: flex;
align-items: center;
gap: 0.75rem;
flex-wrap: wrap;
margin: 0;
justify-content: center;
img {
max-width: 150px;
width: 30%;
min-width: 100px;
height: auto;
display: block;
padding: 20px;
}
figcaption {
color: var(--dark-grey);
flex: 1 1 200px;
font-family: var(--general-sans);
font-size: 0.8rem;
font-style: normal;
margin: 0;
text-align: left;
}
}
}
}
}
.prefooter {
align-items: flex-start;
display: flex;
flex-direction: row;
gap: 2rem;
justify-content: center;
margin-top: 1.3rem;
margin-bottom: 0.5rem;
text-align: center;
#skills {
margin: 2.5rem;
div {
img {
height: 1.2rem;
.cards {
ul li {
align-items: center;
display: flex;
flex-direction: column;
font-size: 1.8rem;
justify-content: flex-start;
padding: 1rem;
.technical-icons {
align-items: center;
column-gap: 1.5rem;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
row-gap: 1.5rem;
.technical {
span {
align-items: flex-end;
display: flex;
font-size: 0.7rem;
img,
svg {
height: 1rem;
margin-right: 5px;
max-height: 1rem;
max-width: 1rem;
object-fit: contain;
vertical-align: middle;
width: 1rem;
}
}
}
}
.writing-types {
font-size: 0.8rem;
justify-content: center;
margin-bottom: 0.7rem;
text-align: left;
svg {
height: 0.8rem;
}
}
.media-tools {
figure {
display: flex;
align-items: center;
gap: 0.75rem;
flex-wrap: wrap;
margin: 0;
justify-content: center;
img {
max-width: 150px;
width: 20%;
min-width: 100px;
height: auto;
display: block;
padding: 20px;
}
figcaption {
color: var(--dark-grey);
flex: 1 1 200px;
font-family: var(--general-sans);
font-size: 0.8rem;
font-style: normal;
margin: 0;
text-align: left;
}
}
}
.ai {
grid-gap: 0.4rem;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(2, 1fr);
margin-top: 0;
img {
max-width: 150px;
width: 15%;
min-width: 100px;
height: auto;
display: block;
padding: 20px;
}
}
}
}
div:last-child {
img {
height: 1.5rem;
}
h3 {
border-bottom: 2px solid var(--dark-grey);
color: var(--dark-grey);
font-family: var(--general-serif);
font-size: 1.2rem;
font-variation-settings: "opsz" 8;
font-weight: 700;
}
}
.faq-container {
position: relative;
#faq-toggle {
&:checked {
&+.question-icon {
.icon.question {
opacity: 0;
}
.icon.close {
opacity: 1;
}
}
&~.faq {
opacity: 1;
visibility: visible;
}
}
}
.faq {
background: var(--background-colour);
border: 2px solid var(--primary-colour);
background-color: var(--neutral-grey);
border: 2px solid var(--dark-grey);
border-radius: 5px;
bottom: 50px;
opacity: 0;
@ -255,31 +356,24 @@ body {
right: 20px;
transition: opacity 0.3s, visibility 0.3s;
visibility: hidden;
width: 300px;
width: 400px;
z-index: 999;
h3 {
color: var(--primary-colour);
color: var(--dark-grey);
font-family: var(--general-serif);
font-size: 1.2rem;
font-variation-settings: "opsz" 8;
}
}
#faq-toggle:checked+.question-icon .icon.question {
opacity: 0;
}
#faq-toggle:checked+.question-icon .icon.close {
opacity: 1;
}
#faq-toggle:checked~.faq {
opacity: 1;
visibility: visible;
p {
font-size: 1rem;
}
}
.question-icon {
align-items: center;
bottom: 20px;
bottom: 30px;
cursor: pointer;
display: flex;
justify-content: center;
@ -302,12 +396,143 @@ body {
opacity: 0;
}
}
.visually-hidden {
height: 1px;
left: -9999px;
overflow: hidden;
position: absolute;
width: 1px;
}
}
.visually-hidden {
height: 1px;
left: -9999px;
overflow: hidden;
position: absolute;
width: 1px;
.modal-container {
align-items: center;
background-color: rgba(250, 250, 250, 0.9);
display: none;
height: 100%;
justify-content: center;
position: fixed;
left: 0;
top: 0;
width: 100%;
z-index: 999;
&.is-visible {
display: flex;
}
.modal {
background-color: var(--neutral-grey);
border: 2px solid var(--dark-grey);
border-radius: 5px;
height: 80vh;
max-height: 1200px;
max-width: 1200px;
overflow: auto;
position: relative;
transition: opacity 0.3s, visibility 0.3s;
width: 80vw;
z-index: 999;
.body-image {
border: 1px solid var(--light-grey);
margin: 0 1rem;
width: 80%;
}
button {
background-color: var(--light-grey);
color: var(--dark-grey);
cursor: pointer;
border-radius: 5px;
font-size: 0.8rem;
font-weight: 700;
margin-bottom: 1rem;
margin-left: 1rem;
padding: 0.5rem;
}
h5 {
color: var(--dark-grey);
font-size: 0.8rem;
font-weight: 900;
margin-bottom: 0;
}
ul {
list-style-type: square;
li {
font-size: 1rem;
;
}
}
p {
margin-top: 0;
}
h5,
ul,
p {
padding: 0 1rem;
}
}
.close-icon {
position: absolute;
right: 5vw;
top: 5vh;
svg {
height: 1.8rem;
max-height: none;
width: 1.8rem;
}
}
}
.prefooter {
align-items: flex-start;
display: flex;
flex-direction: row;
gap: 2rem;
justify-content: center;
margin-top: 1.3rem;
margin-bottom: 0.5rem;
text-align: center;
div {
img {
height: 1.2rem;
}
&:last-child {
img {
height: 1.5rem;
}
}
}
}
.section-menu {
align-items: center;
background-color: var(--neutral-grey);
display: flex;
flex-direction: row;
font-size: 0.7rem;
font-weight: 400;
justify-content: center;
padding: 10px;
position: sticky;
text-align: center;
top: 0;
z-index: 100;
&>*:not(:last-child)::after {
content: " | ";
margin: 0 8px;
}
}

View file

@ -7,22 +7,23 @@
/* Colour variables */
:root {
--background-colour: #FFF;
--primary-colour: #323036;
--quarternary-colour: #FAF9F6;
--secondary-colour: #818589;
--tertiary-colour: #E6E6E6;
--transparent: transparent;
--background-color: #FAFAFA;
--dark-grey: #343434;
--darker-grey: #666666;
--light-grey: #C9C9C9;
--medium-grey: #979797;
--neutral-grey: #FAFAFA;
}
/* Adjust Zensical colours */
[data-md-color-accent=custom] {
--md-default-bg-color: var(--background-colour);
--md-footer-bg-color: var(--background-colour);
--md-primary-bg-color: var(--background-colour);
--md-primary-fg-color: var(--primary-colour);
--md-primary-fg-color--dark: var(--primary-colour);
--md-primary-fg-color--light: var(--tertiary-colour);
--md-accent-bg-color: var(--neutral-grey);
--md-default-bg-color: var(--neutral-grey);
--md-footer-bg-color: var(--neutral-grey);
--md-primary-bg-color: var(--neutral-grey);
--md-primary-fg-color: var(--dark-grey);
--md-primary-fg-color--dark: var(--dark-grey);
--md-primary-fg-color--light: var(--light-grey);
}
/*****************************
@ -129,13 +130,13 @@
a,
figcaption {
color: var(--secondary-colour);
color: var(--medium-grey);
max-width: none;
text-decoration: none;
}
a:hover {
color: var(--teriary-color);
color: var(--medium-grey);
}
h1,
@ -144,21 +145,28 @@
h4,
h5,
h6 {
color: var(--secondary-colour);
color: var(--darker-grey);
font-weight: bold;
}
p {
color: var(--primary-colour);
color: var(--dark-grey);
}
}
/* Sizes */
p {
font-size: 1rem;
}
/*****************************
* RULES
*****************************/
body {
align-items: center;
background-color: var(--neutral-grey);
display: flex;
justify-content: center;
min-height: 100vh;

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 930 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -5,7 +5,7 @@
{{ super() }}
<link rel="stylesheet" href="{{ base_url }}/assets/css/_chapter.css">
<link rel="stylesheet" href="{{ base_url }}/assets/css/chapter.css">
{% endblock %}

View file

@ -1,5 +1,9 @@
{% extends "base.html" %}
{% block extrahead %}
<link rel="icon" href="../assets/media/face-favicon-512x512.png" sizes="any">
{% endblock %}
{% block site_meta %}
<meta name="robots"
content="nocache, noindex, noimageindex, nofollow, noarchive, nosnippet, notranslate, nositelinkssearchbox, noai, noimageai" />

File diff suppressed because one or more lines are too long

View file

@ -1,91 +0,0 @@
---
title: Establish SPREAD documentation
description: An overview of how I established the documentation function at SPREAD.
hide:
# - toc
- navigation
- search
---
<style>
img {
border: 0.5px solid #ededed;
border-radius: 5px;
}
div.tooling {
margin: 1.5em 0;
}
div.tooling p {
font-family: var(--secondary-font) !important;
font-weight: bold;
}
</style>
> ### Brief<br>
>
> **February 2022**<br>
> Establish the documentation function at SPREAD.
<div class='tooling' markdown>:simple-materialformkdocs: MkDocs Material ⋅ :material-graphql: GraphQL ⋅ :material-language-javascript: JavaScript ⋅ :material-language-python: Python ⋅ :simple-jinja: Jinja ⋅ :material-language-markdown: MarkDown ⋅ :simple-v: Vale ⋅ :simple-githubactions: GitHub Actions ⋅ :material-docker: Docker</div>
![An image of the current version of the SPREAD documentation site](/assets/media/spread-docs-v3-3456x2170.png){ height=300px }
## Challenge
There was no documentation, except for a few Confluence pages put together by engineers. The challenge was to create a documentation site, create the processes and pipelines to maintain it, and to write the content. The task was made more difficult by the fact that the product was constantly changing and I had engineering time to lean on.
## Solution
**In the first three months:**
- Evaluated and selected options for the technical infrastructure.
- Socialized the newly established function in the company.
- Created the internal website.
- Created the initial build pipelines.
- Got to 50% product coverage.
- Wrote an initial style guide for general contributions
![The first published version of the SPREAD docs site](/assets/media/spread-docs-v1-3024x1890.png){ height=300px }
**In the second quarter:**
- Got product coverage to 90%.
- Moved to multi-repo setup, where engineering teams "owned" their content and maintained updates.
- Built the linting pipelines for general contributions.
- Document white-labelled products with internal customisations.
![The first public version of the SPREAD docs site](/assets/media/spread-docs-v2-3024x1890.png){ height=300px }
**Within the first year:**
- Publish the documentation site publicly.
- Publish the SPREAD glossary of terms.
- Create course content for new users.
**Within the last year:**
- Move to a mono-repo setup.
- Create more course content.
- Add AI enhancements to the build pipeline.
- Better monitoring of product changes.
- Re-start initiative for more people to write documentation.
<a href='https://docs.spread.ai' target='_blank'><div class="button">See the site</div></a>
---
<a href="https://gugulet.hu/resume" target="_blank" ><div class="button">See my résume</div></a>
<div class='meta-icons'>
<a href='https://linkedin.com/in/gugulet-hu' target='_blank' >
<div>
<span class='twemoji'><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93zM6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37z'></path></svg></span> linkedin/gugulet-hu
</div>
</a>
<a href='https://gugulet.hu/technical/dev/explore/repos' target='_blank' >
<div>
<span class='twemoji'><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2.6 10.59 8.38 4.8l1.69 1.7c-.24.85.15 1.78.93 2.23v5.54c-.6.34-1 .99-1 1.73a2 2 0 0 0 2 2 2 2 0 0 0 2-2c0-.74-.4-1.39-1-1.73V9.41l2.07 2.09c-.07.15-.07.32-.07.5a2 2 0 0 0 2 2 2 2 0 0 0 2-2 2 2 0 0 0-2-2c-.18 0-.35 0-.5.07L13.93 7.5a1.98 1.98 0 0 0-1.15-2.34c-.43-.16-.88-.2-1.28-.09L9.8 3.38l.79-.78c.78-.79 2.04-.79 2.82 0l7.99 7.99c.79.78.79 2.04 0 2.82l-7.99 7.99c-.78.79-2.04.79-2.82 0L2.6 13.41c-.79-.78-.79-2.04 0-2.82'></path></svg></span> gugulet.hu/dev
</div>
</a>
</div>

View file

@ -1,57 +0,0 @@
---
title: Mambu CLI
description: Documentation that I did in a CLI.
hide:
# - toc
- navigation
- search
---
<style>
img {
border: 0.5px solid #ededed;
border-radius: 5px;
}
div.tooling {
margin: 1.5em 0;
}
div.tooling p {
font-family: var(--secondary-font) !important;
font-weight: bold;
}
</style>
> ### Brief<br>
>
> **November 2023**<br>
> Create documentation for a command-line interface (CLI) used by banking engineering teams to perform actions in Mambu.
<div class='tooling' markdown>:material-language-typescript: TypeScript ⋅ :material-nodejs: NodeJS</div>
![An image of the Mambu CLI](../assets/media/mambu-cli-1638x1355.jpg){ height=300px }
## Challenge
Document the command-line context as efficiently as possible, with little support from the developing team. Mambu CLI was in prototype and the team had no time to help me document the commands, flags, topics, and functioning of the CLI.
## Solution
Embedded documentation with the engineering team, where I was part of the race to beta. Engineers would develop a feature alongside me and I would be in the code documenting. This involved working in TypeScript and translating the concepts and trials engineers were developing with them.
---
<a href="https://gugulet.hu/resume" target="_blank" ><div class="button">See my résume</div></a>
<div class='meta-icons'>
<a href='https://linkedin.com/in/gugulet-hu' target='_blank' >
<div>
<span class='twemoji'><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93zM6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37z'></path></svg></span> linkedin/gugulet-hu
</div>
</a>
<a href='https://gugulet.hu/technical/dev/explore/repos' target='_blank' >
<div>
<span class='twemoji'><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2.6 10.59 8.38 4.8l1.69 1.7c-.24.85.15 1.78.93 2.23v5.54c-.6.34-1 .99-1 1.73a2 2 0 0 0 2 2 2 2 0 0 0 2-2c0-.74-.4-1.39-1-1.73V9.41l2.07 2.09c-.07.15-.07.32-.07.5a2 2 0 0 0 2 2 2 2 0 0 0 2-2 2 2 0 0 0-2-2c-.18 0-.35 0-.5.07L13.93 7.5a1.98 1.98 0 0 0-1.15-2.34c-.43-.16-.88-.2-1.28-.09L9.8 3.38l.79-.78c.78-.79 2.04-.79 2.82 0l7.99 7.99c.79.78.79 2.04 0 2.82l-7.99 7.99c-.78.79-2.04.79-2.82 0L2.6 13.41c-.79-.78-.79-2.04 0-2.82'></path></svg></span> gugulet.hu/dev
</div>
</a>
</div>

View file

@ -1,59 +0,0 @@
---
title: Mambu Process Orchestrator
description: An overview of how I documented a feature set at Mambu.
hide:
# - toc
- navigation
- search
---
<style>
img {
border: 0.5px solid #ededed;
border-radius: 5px;
}
div.tooling {
margin: 1.5em 0;
}
div.tooling p {
font-family: var(--secondary-font) !important;
font-weight: bold;
}
</style>
> ### Brief<br>
>
> **March 2021**<br>
> Own the documentation for the low-code orchestrator for integrations into banking services.
<div class='tooling' markdown>:simple-hugo: Hugo</div>
![An image of a process in the Mambu Process Orchestartor](/assets/media/mpo-complex-process-2355x1237.png){ height=300px }
## Challenge
Mambu Process Orchestrator - a white-labelled product built on top of the Corezoid low-code engine - had no documentation, but was already being used by clients. Some with highly complex workflows that were beginning to break in unexpected ways in an environment where no failure could be tolerated. The underlying technology was built by a Ukrainian company, who were under strain following the invasion by Russia in the same time period.
## Solution
Partner with Corezoid to help them develop their documentation alongside ours. Get field-tested best practices from clients who were using the tool. Ask the Solution Engineers to sketch out the most urgent work needed and the scope they cover when working with clients. Compile a documentation set in the shortest time possible to fill this documentation gap.
<a href='https://ecosystem.mambu.com/mpo/overview/' target='_blank'><div class="button"><abbr title='The set has largely been left unmaintained as this tool is scheduled for decomissioning.'>Read the documentation set</abbr></div></a>
---
<a href="https://gugulet.hu/resume" target="_blank" ><div class="button">See my résume</div></a>
<div class='meta-icons'>
<a href='https://linkedin.com/in/gugulet-hu' target='_blank' >
<div>
<span class='twemoji'><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93zM6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37z'></path></svg></span> linkedin/gugulet-hu
</div>
</a>
<a href='https://gugulet.hu/technical/dev/explore/repos' target='_blank' >
<div>
<span class='twemoji'><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2.6 10.59 8.38 4.8l1.69 1.7c-.24.85.15 1.78.93 2.23v5.54c-.6.34-1 .99-1 1.73a2 2 0 0 0 2 2 2 2 0 0 0 2-2c0-.74-.4-1.39-1-1.73V9.41l2.07 2.09c-.07.15-.07.32-.07.5a2 2 0 0 0 2 2 2 2 0 0 0 2-2 2 2 0 0 0-2-2c-.18 0-.35 0-.5.07L13.93 7.5a1.98 1.98 0 0 0-1.15-2.34c-.43-.16-.88-.2-1.28-.09L9.8 3.38l.79-.78c.78-.79 2.04-.79 2.82 0l7.99 7.99c.79.78.79 2.04 0 2.82l-7.99 7.99c-.78.79-2.04.79-2.82 0L2.6 13.41c-.79-.78-.79-2.04 0-2.82'></path></svg></span> gugulet.hu/dev
</div>
</a>
</div>

View file

@ -1,29 +0,0 @@
---
title: test
---
The HTML specification is maintained by the W3C.
<div class="grid cards" markdown>
- :fontawesome-brands-html5: __HTML__ for content and structure
- :fontawesome-brands-js: __JavaScript__ for interactivity
- :fontawesome-brands-css3: __CSS__ for text running out of boxes
- :fontawesome-brands-internet-explorer: __Internet Explorer__ ... huh?
</div>
*[HTML]: Hyper Text Markup Language
*[W3C]: World Wide Web Consortium
<!-- <div class="docs-stack">
<div>
<span class='twemoji'><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M21.039 0a2.96 2.96 0 0 0-2.65 4.274l-6.447 6.447a2.96 2.96 0 1 0 1.335 1.336l6.447-6.447A2.959 2.959 0 1 0 21.04 0zM10.628 2.745q-.108.001-.214.004-.107.002-.215.005a11 11 0 0 0-1.335.138l-.03.005-.185.033-.105.02a8 8 0 0 0-.289.062l-.032.008a10.7 10.7 0 0 0-2.55.95l-.155.089q-.094.052-.187.105-.07.039-.14.079H5.19l-.01.005-.036.02v.002l.111.184 3.15 5.23a4 4 0 0 1 .38-.202 4.3 4.3 0 0 1 1.628-.413q.107-.007.214-.008zm.428.01v6.333q.489.05.96.209l4.66-4.66q-.259-.181-.528-.347l-.026-.015q-.084-.052-.168-.1l-.098-.056-.099-.055-.171-.092-.027-.014a11 11 0 0 0-1.425-.617c-.69-.241-1.403-.41-2.128-.505l-.089-.012-.09-.01-.17-.019-.049-.004-.204-.017a6 6 0 0 0-.255-.015q-.046-.004-.093-.004M4.782 4.498a10 10 0 0 0-1.36 1.062l4.461 4.461.018.018q.073-.06.149-.116l-.011-.018zm-1.67 1.36q-.074.076-.147.154l-.149.155q-.494.536-.902 1.118l-.039.056a11 11 0 0 0-.216.326 10.6 10.6 0 0 0-1.65 5.276l-.006.215-.003.214h6.317c0-.072.007-.143.01-.214.005-.072.006-.144.013-.215a4.3 4.3 0 0 1 .952-2.3c.045-.055.096-.106.144-.16.048-.052.093-.107.144-.158zm16.255 1.464-4.663 4.663q.158.47.21.959h6.332l-.004-.094a12 12 0 0 0-.032-.456l-.005-.052-.026-.241v-.009l-.033-.24v-.009a11 11 0 0 0-.327-1.493l-.003-.01-.07-.228-.01-.03-.069-.204-.02-.055a6 6 0 0 0-.153-.405l-.093-.227-.063-.144-.037-.081-.08-.171-.024-.052-.096-.194-.014-.027-.112-.212-.004-.008a11 11 0 0 0-.604-.98m-4.43 6.05c0 .071-.006.142-.01.214q-.003.108-.012.214a4.3 4.3 0 0 1-.952 2.301c-.045.055-.096.107-.144.16s-.093.108-.144.159l4.467 4.467q.075-.078.148-.155.076-.078.148-.155.497-.538.905-1.122l.032-.046.098-.144.085-.13.04-.063a10.6 10.6 0 0 0 1.647-5.272q.004-.107.006-.214.003-.107.004-.214zM.01 13.8l.004.093.01.179.005.076.017.206.005.046q.01.115.024.228l.003.022.033.248q.109.758.327 1.497l.002.006q.034.116.071.23l.004.014.005.014a16 16 0 0 0 .153.439l.03.08.059.148.093.228.062.14.038.084.078.169.027.054a11 11 0 0 0 .225.441l.025.043 5.408-3.258.02-.012a4.3 4.3 0 0 1-.395-1.414h-.025zm.505 2.846-.206.058.002.005zm6.425-1.052-5.415 3.262q.125.207.259.406l.008.014.004.005.008.014h.001l.022.032.001.002v.001a11 11 0 0 0 .298.417l.006.008a10 10 0 0 0 .29.368l.033.04q.064.078.13.153l.057.065.112.127.064.069.029.031.083.09.035.035q.073.077.149.153L7.58 16.42a4 4 0 0 1-.285-.321 4.4 4.4 0 0 1-.356-.505zm6.416 1.111q-.075.06-.15.116l.011.018 3.257 5.407q.227-.148.446-.307.473-.348.914-.756l-4.46-4.46zm-5.457.003-.015.015-4.46 4.46.195.176q.033.03.065.058l.152.13.215.174.023.017.191.148.008.005q.403.3.834.564l.03.018.164.097.101.057a6 6 0 0 0 .27.148q.012.007.025.013.243.127.493.24l.158-.385 2.243-5.448.009-.02a4.3 4.3 0 0 1-.701-.467m4.951.353q-.092.054-.187.104a4.32 4.32 0 0 1-3.271.336c-.069-.02-.135-.047-.203-.071-.067-.024-.136-.044-.202-.072l-2.242 5.444-.088.213-.075.183v.001l.017.007.019.007.005.003q.079.03.159.06.1.04.2.077l.102.04c.702.247 1.43.42 2.168.518l.087.012.09.01.172.019a7 7 0 0 0 .252.022q.035 0 .071.003l.184.011.112.005a7 7 0 0 0 .358.007h.05a10.7 10.7 0 0 0 1.793-.15l.185-.034.105-.02.109-.023.18-.04.032-.008a10.7 10.7 0 0 0 2.55-.95q.078-.044.156-.089.094-.052.187-.105.065-.035.13-.073h.001l.002-.002.002-.001.002-.001.007-.004.042-.025-.11-.183-.11-.184zm3.262 5.414-.042.025zm-.055.033h-.002z'></path></svg></span> <abbr title='The OpenAPI specification is a standard for documenting REST APIs.'>OpenAPI Specification</abbr>
</div>
<div>
<span class='twemoji'><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M11.754 0a4 4 0 0 0-2.049.596L3.33 4.532a4.25 4.25 0 0 0-2.017 3.615v8.03a4.13 4.13 0 0 0 2.067 3.574l6.486 3.733a3.88 3.88 0 0 0 3.835.018l7.043-3.966a3.82 3.82 0 0 0 1.943-3.323V7.752a3.57 3.57 0 0 0-1.774-3.084L13.817.541a4 4 0 0 0-2.063-.54zm.022 1.674c.413-.006.828.1 1.2.315l7.095 4.127c.584.34.941.96.94 1.635v8.462c0 .774-.414 1.484-1.089 1.864l-7.042 3.966a2.2 2.2 0 0 1-2.179-.01l-6.485-3.734a2.45 2.45 0 0 1-1.228-2.123v-8.03c0-.893.461-1.72 1.221-2.19l6.376-3.935a2.3 2.3 0 0 1 1.19-.347zm-4.7 3.844V18.37h2.69v-5.62h4.46v5.62h2.696V5.518h-2.696v4.681h-4.46V5.518Z'></path></svg></span> <abbr title='Hugo is a general purpose static site generator.'>Hugo</abbr>
</div>
<div>
<span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 19V7H4v12zm0-16a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm-7 14v-2h5v2zm-3.42-4L5.57 9H8.4l3.3 3.3c.39.39.39 1.03 0 1.42L8.42 17H5.59z"></path></svg></span> <abbr title='Bash or ZSH allow you to create shell scripts in the terminal to automate tasks and use packages.'>Shell</abbr>
</div>
</div> -->

View file

@ -16,9 +16,9 @@ mkdocstrings==1.0.3
mkdocstrings-python==2.0.2
packaging==26.0
pathspec==1.0.4
platformdirs==4.7.1
platformdirs==4.9.1
Pygments==2.19.2
pymdown-extensions==10.20.1
pymdown-extensions==10.21
python-dateutil==2.9.0.post0
PyYAML==6.0.3
pyyaml_env_tag==1.1

View file

@ -94,7 +94,7 @@ permalink = true
[project.theme]
custom_dir = "content/overrides"
favicon = "assets/media/face-1276x1276.png"
favicon = "assets/media/face-favicon-512x512.png"
language = "en"
logo = "assets/media/face-1276x1276.webp"
palette.primary = "custom"