diff --git a/20250722221649-career_moc.org b/20250722221649-career_moc.org index 7303234..df506dd 100644 --- a/20250722221649-career_moc.org +++ b/20250722221649-career_moc.org @@ -18,6 +18,9 @@ Here will lie articles, resources, notes and the like relating to my career. It Whereas [[https://www.zainezq.com/posts/career/career-list.html][this]] page will contain /finished/ notes regarding what I'm learning at different points in my career. For instance, the majority of November was learning about Software Engineering principles; things like requirements, user stories, lean and retrospectives. +* Notes +[[id:56fabaf6-e8aa-45d0-a1c1-89f247f0a93f][APIM]] + * Unread Articles - https://www.finalroundai.com/blog/why-vibe-coding-leaves-you-with-skills-that-dont-last diff --git a/20250724230557-books_org_agenda.org b/20250724230557-books_org_agenda.org index 9a962c9..75a6251 100644 --- a/20250724230557-books_org_agenda.org +++ b/20250724230557-books_org_agenda.org @@ -7,7 +7,7 @@ #+filetags: :books:org:index: #+DATE: 2025-05-19 #+STARTUP: content -#+PROPERTY: GENERATED_AT 2026-01-11T19:55:01.702081 +#+PROPERTY: GENERATED_AT 2026-01-17T09:07:39.615243 * Career ** Clean Code_ A Handbook of Agile Software Craftsmanship - Robert C. Martin :Read: @@ -43,6 +43,14 @@ :PATH: /home/zaine/master-folder/projects/calibre/library/Eric Freeman/Head First_ Design Patterns (22) :END: +** Quick Start Kubernetes :Unread: +:PROPERTIES: +:AUTHOR: Nigel Poulton +:STATUS: Unread +:CALIBRE_ID: 31 +:PATH: /home/zaine/master-folder/projects/calibre/library/Nigel Poulton/Quick Start Kubernetes (31) +:END: + ** Structure and Interpretation of Computer Programs, 2nd ed. :Unread: :PROPERTIES: :AUTHOR: Unknown @@ -78,6 +86,14 @@ :PATH: /home/zaine/master-folder/projects/calibre/library/Makbool Ahmed Suhaarwi , Afzal Hoosen Elias (translator)/Khulfa-e-Rashideen (30) :END: +** Quick Start Kubernetes :Unread: +:PROPERTIES: +:AUTHOR: Nigel Poulton +:STATUS: Unread +:CALIBRE_ID: 31 +:PATH: /home/zaine/master-folder/projects/calibre/library/Nigel Poulton/Quick Start Kubernetes (31) +:END: + ** The Dose Effect :Unread: :PROPERTIES: :AUTHOR: Tj Power diff --git a/20250806111925-non_technical_moc.org b/20250806111925-non_technical_moc.org index 3230dc8..cf0e0ec 100644 --- a/20250806111925-non_technical_moc.org +++ b/20250806111925-non_technical_moc.org @@ -8,3 +8,4 @@ - [[id:63314cff-3a3f-49b4-9e76-4a359c51f55f][Books MOC]] +- [[id:3a8274ef-f2fe-486d-9caf-0c56982b9917][RSS Articles]] diff --git a/20250918120519-misc_moc.org b/20250918120519-misc_moc.org index 47ca16a..f798968 100644 --- a/20250918120519-misc_moc.org +++ b/20250918120519-misc_moc.org @@ -8,4 +8,3 @@ * [[id:8CE93986-280B-45BD-9DF2-5D06586DDDE7][workflow-moc]] -* [[id:8a80a929-4a3c-4142-b86a-3d0aa9e78c03][2026 Targets]] diff --git a/20260107182221-2026_targets.org b/20260107182221-2026_targets.org index c823793..079b1c8 100644 --- a/20260107182221-2026_targets.org +++ b/20260107182221-2026_targets.org @@ -1,5 +1,5 @@ :PROPERTIES: -:ID: 8a80a929-4a3c-4142-b86a-3d0aa9e78c03 +:ID: 7f756445-de36-4c17-a7c2-213e626d8498 :END: #+title: 2026 Targets #+filetags: :misc: diff --git a/20260111204228-rss_articles.org b/20260111204228-rss_articles.org index 1537cf5..5ab4cdb 100644 --- a/20260111204228-rss_articles.org +++ b/20260111204228-rss_articles.org @@ -10,3 +10,17 @@ :READ_AT: 2026-01-11 21:29 :END: +* [[https://coffeeandjunk.substack.com/p/loneliness][Loneliness Isn’t Just Something We Endure]] + :PROPERTIES: + :FEED: The Sunday Wisdom + :MINIFLUX_ID: 5363 + :READ_AT: 2026-01-12 09:26 + :END: + +* [[https://bigthink.com/technology-innovation/dormant-volcanoes-copper-mining][What are dormant volcanoes good for? Copper mining]] + :PROPERTIES: + :FEED: Big Think + :MINIFLUX_ID: 5389 + :READ_AT: 2026-01-12 11:14 + :END: + diff --git a/20260115152626-apim.org b/20260115152626-apim.org new file mode 100644 index 0000000..96018ee --- /dev/null +++ b/20260115152626-apim.org @@ -0,0 +1,56 @@ +:PROPERTIES: +:ID: 56fabaf6-e8aa-45d0-a1c1-89f247f0a93f +:END: +#+title: APIM +#+filetags: :docs:api:notes:career: + +*Z notes on API management so I don’t forget* + +1. API stands for application programming interface. It allows systems to communicate with each other. +2. API management (or APIM) is the workstream that aims to provide a new technology platform for Microlise. It introduces a separate layer between customers and Microlise’s existing API products. + +The core pillars: + +[[./assets/career/Screenshot 2026-01-14 154800.png]] + +The workflow of publishing API’s: + +[[./assets/career/APIOps.png]] + +This is summarised below: + +1. When someone wants to create an API, they do so by creating a repo and a C# project. Ideally we should use the beautiful templates (https://azdo.microlise.com/MicroliseCollection/Microlise/_git/Microlise.Templates). + +2. When the engineer wants to deploy this API, it goes through a gated and main pipeline. Phase 2 of the main build will build the image using quay registry so it’s available there (quay.mms.local). The release will consume the artifact produced by the main pipeline and will push these endpoints into the Openshift server. Essentially it will pull the image from the quay registry, containerise it + +Then publishing Api's into APIM (API management) using APIOps + +1. The engineer will need to setup swagger build (docs explains how to do this) +2. The engineer will create a PR for an API that has setup the APIOps pipeline (ie added the yaml pipeline and configured the variables - again, docs explain this in detail) +3. There are two pipelines associated with this: + - The gated build: [[https://azdo.microlise.com/MicroliseCollection/Microlise/_taskgroup/c85996c9-d9ae-40ff-bd60-94b60db541a9][Link (Gated)]] + - The main build: [[https://azdo.microlise.com/MicroliseCollection/Microlise/_taskgroup/7bd21d7f-499b-487d-a0f7-2206ffdff841][Link (Main)]] + - You will see that the term ~spec~ is used a lot. This is simply a json/yaml representation of your API interface (what you expose to the customer). + - One of the gated tasks is linting, it uses the scripts in this directory to test the OpenAPI specification linting, see: [[https://azdo.microlise.com/MicroliseCollection/Microlise/_git/ApiManagement.Pipeline.AgentScripts][Link]]. +4. Another task adds API Governance Council as reviewers if there are OpenAPI Specification changes. All this can be viewed in the task group (see point a). +5. Once the main build passes, it triggers an ApiOps pipeline (defined in step 2), which creates a PR in the APIOps repository ([[https://azdo.microlise.com/MicroliseCollection/Microlise/_git/Microlise.APIOps][Link]]) +6. Once this PR is reviewed and approved by the Api GC, the Publish pipeline is triggered ([[https://azdo.microlise.com/MicroliseCollection/Microlise/_build?definitionId=1686&_a=summary][Link]]) which does a 2 way sync so that the APIM environments are in line with the OpenAPI specs. The publisher pipeline runs upto the CERT environment only, the PROD requires approval. + +There are two openshift clusters, one is gen and one is prod. Anything not prod goes into gen, and no one can access the prod cluster besides Openshift itself so test well. + +The link to the sharepoint site: +- [[https://microliseuk.sharepoint.com/sites/SoftwareEngineering/SitePages/API-Management.aspx?source=https%3A%2F%2Fmicroliseuk.sharepoint.com%2Fsites%2FSoftwareEngineering%2FSitePages%2FForms%2FByAuthor.aspx][Api management sharepoint]] + +Link to the onboarding doc: +- [[https://microliseuk.sharepoint.com/:w:/r/sites/SoftwareEngineering/_layouts/15/Doc.aspx?sourcedoc=%7BCF78DE96-7CC0-482A-9A66-647771CB8A04%7D&file=APIOpsOnboardingDocumentation.docx&action=default&mobileredirect=true][Onboarding Doc]] + +The link to the API management API gateway release: +- [[https://azdo.microlise.com/MicroliseCollection/Microlise/_release?_a=releases&view=mine&definitionId=71][Link]] + +Reverse proxy: +- [[https://azdo.microlise.com/MicroliseCollection/Microlise/_build?definitionId=2439&_a=summary][Pipeline]] +- [[https://microliseuk.sharepoint.com/sites/SoftwareEngineering/SitePages/Support-Guide---APIM-Reverse-Proxy.aspx][Sharepoint]] + +Read up on: +- Quick Start Kubernetes (nigel Poulton) +- How is openshift different from k8? ([[https://microliseuk.sharepoint.com/sites/StorageCompute/ContainerPlatformUsers/SitePages/How-is-OpenShift-different-from-Kubernetes.aspx][Link]]) diff --git a/all-files.json b/all-files.json index 081e86b..17b2206 100644 --- a/all-files.json +++ b/all-files.json @@ -4,7 +4,7 @@ "groups": { "2": [ { - "id": "8a80a929-4a3c-4142-b86a-3d0aa9e78c03", + "id": "7f756445-de36-4c17-a7c2-213e626d8498", "title": "2026 Targets", "url": "/20260107182221-2026_targets.html" } @@ -79,6 +79,11 @@ "id": "e7f2302b-16eb-476d-a7b9-be12f077819d", "title": "AOC Notes", "url": "/20241210001150-aoc_notes.html" + }, + { + "id": "56fabaf6-e8aa-45d0-a1c1-89f247f0a93f", + "title": "APIM", + "url": "/20260115152626-apim.html" } ], "B": [ @@ -201,7 +206,7 @@ { "id": "8fa3f476-6152-45f4-b618-50f1e4bce46c", "title": "emacs_moc", - "url": "/20241210004247-emacs_stuff.html" + "url": "/20241210004247-emacs_moc.html" } ], "F": [ @@ -311,7 +316,7 @@ { "id": "ae343652-96fe-4341-8a36-ec3a1abd0dc6", "title": "java_moc", - "url": "/20250402185735-technical_java_notes.html" + "url": "/20250402185735-java_moc.html" }, { "id": "f9897f8e-2b63-4ad2-a55f-3787c4ac235f", @@ -355,7 +360,7 @@ { "id": "bdb493df-db92-4c93-9558-0b10fdff3048", "title": "linux_moc", - "url": "/20250417173809-linux_moc.html" + "url": "/20250417173809-linux_stuff.html" } ], "M": [ @@ -464,8 +469,8 @@ }, { "id": "65F747B1-3CB2-429A-9E26-ED8BC169E689", - "title": "recipes-main", - "url": "/20250717230336-recipes_moc.html" + "title": "recipes-moc", + "url": "/20250717230336-recipes_main.html" }, { "id": "3a8274ef-f2fe-486d-9caf-0c56982b9917", diff --git a/all-files.org b/all-files.org index 0917de5..a09dc03 100644 --- a/all-files.org +++ b/all-files.org @@ -6,7 +6,7 @@ This file is auto-generated. Do not edit manually. #+end_comment * 2 -- [[id:8a80a929-4a3c-4142-b86a-3d0aa9e78c03][2026 Targets]] +- [[id:7f756445-de36-4c17-a7c2-213e626d8498][2026 Targets]] * A - [[id:effa2bf5-8b04-42d3-b9c1-17160dc4ddc2][Actual]] @@ -23,6 +23,7 @@ This file is auto-generated. Do not edit manually. - [[id:3b16e19a-62f0-4705-a451-a8790181941f][Airflow Dags]] - [[id:1ea42d73-3cd1-4cac-a6ee-028de21d08d5][Airflow Tasks]] - [[id:e7f2302b-16eb-476d-a7b9-be12f077819d][AOC Notes]] +- [[id:56fabaf6-e8aa-45d0-a1c1-89f247f0a93f][APIM]] * B - [[id:580cc3a5-af8e-4cbe-b5ad-5b06680e6c37][Backlog]] @@ -125,7 +126,7 @@ This file is auto-generated. Do not edit manually. * R - [[id:EA93341B-20C0-48A2-BD88-F24ED3C540DA][recipes-done]] - [[id:F7D68FF4-CAD0-4791-BAE4-AC20B84A8785][recipes-ideas]] -- [[id:65F747B1-3CB2-429A-9E26-ED8BC169E689][recipes-main]] +- [[id:65F747B1-3CB2-429A-9E26-ED8BC169E689][recipes-moc]] - [[id:3a8274ef-f2fe-486d-9caf-0c56982b9917][RSS Articles]] * S diff --git a/assets/career/APIOps.png b/assets/career/APIOps.png new file mode 100644 index 0000000..825ee00 Binary files /dev/null and b/assets/career/APIOps.png differ diff --git a/assets/career/Screenshot 2026-01-14 154800.png b/assets/career/Screenshot 2026-01-14 154800.png new file mode 100644 index 0000000..540916f Binary files /dev/null and b/assets/career/Screenshot 2026-01-14 154800.png differ diff --git a/lisp/build.el b/lisp/build.el index 5cf7139..2785ba3 100755 --- a/lisp/build.el +++ b/lisp/build.el @@ -25,6 +25,7 @@ (require 'seq) (require 'cl-lib) +(setq org-export-with-broken-links t) (setq org-id-locations-file "~/.emacs.d/.org-id-locations") @@ -122,7 +123,6 @@ (advice-add 'org-html-template :around #'z/org-html-wrap-content-for-stack) - (add-to-list 'load-path default-directory) (defvar z-shared-head @@ -194,8 +194,13 @@ Created with %c on Arch $")) (defun my/get-org-roam-backlinks (filename) "Return backlinks for the given org-roam file. FILENAME should be the full path to the org-roam file." @@ -236,9 +241,20 @@ Created with %c on Arch Arch Arch