summaryrefslogtreecommitdiffstats
path: root/app/assets
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets')
-rw-r--r--app/assets/android-chrome-192x192.pngbin4201 -> 0 bytes
-rw-r--r--app/assets/apple-touch-icon.pngbin3392 -> 0 bytes
-rw-r--r--app/assets/browserconfig.xml9
-rw-r--r--app/assets/de.html310
-rw-r--r--app/assets/favicon-16x16.pngbin596 -> 0 bytes
-rw-r--r--app/assets/favicon-32x32.pngbin958 -> 0 bytes
-rw-r--r--app/assets/favicon.icobin1150 -> 0 bytes
-rw-r--r--app/assets/index.html310
-rw-r--r--app/assets/key.asc20
-rw-r--r--app/assets/key.ssh1
-rw-r--r--app/assets/mstile-150x150.pngbin3853 -> 0 bytes
-rw-r--r--app/assets/safari-pinned-tab.svg35
-rw-r--r--app/assets/site.webmanifest14
13 files changed, 0 insertions, 699 deletions
diff --git a/app/assets/android-chrome-192x192.png b/app/assets/android-chrome-192x192.png
deleted file mode 100644
index 0abde99..0000000
--- a/app/assets/android-chrome-192x192.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/apple-touch-icon.png b/app/assets/apple-touch-icon.png
deleted file mode 100644
index 56687f2..0000000
--- a/app/assets/apple-touch-icon.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/browserconfig.xml b/app/assets/browserconfig.xml
deleted file mode 100644
index b3930d0..0000000
--- a/app/assets/browserconfig.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<browserconfig>
- <msapplication>
- <tile>
- <square150x150logo src="/mstile-150x150.png"/>
- <TileColor>#da532c</TileColor>
- </tile>
- </msapplication>
-</browserconfig>
diff --git a/app/assets/de.html b/app/assets/de.html
deleted file mode 100644
index 37f4b9a..0000000
--- a/app/assets/de.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!DOCTYPE html>
-<html lang="de">
- <head>
- <meta charset="utf-8" />
- <title>A14M</title>
- <link href="/web.css" rel="stylesheet" media="all" />
- <link href="/print.css" rel="stylesheet" media="print" />
- <link rel="shortcut icon" href="/favicon.ico" />
- <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
- <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
- <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
- <link rel="manifest" href="/site.webmanifest" />
- <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#000" />
- <meta name="msapplication-TileColor" content="#da532c" />
- <meta name="theme-color" content="#ffffff" />
-
- <meta name="author" content="Ahmed AbdelHalim" />
- <meta name="description" content="A14M · Platform Engineer/DevOps" />
- <meta name="keywords" content="DevOps, go, docker, ansible, python, bash, CI, CD, TDD, BDD, AWS, terraform, GCP, k8s, kubernetes, grafana, prometheus, loki, ELK" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="color-scheme" content="dark light" />
- </head>
-
- <body>
- <main>
- <header class="header">
- <a class="header__language" lang="en" href="/">[EN]</a>
- <h1 class="header__name">Ahmed AbdelHalim</h1>
- <em class="header__job-title">Plattform-Ingenieur &centerdot; DevOps</em>
- <address class="header__contact-info">
- <div class="header__location">Berlin, Deutschland</div>
- <div class="header__tel"><a href="tel:+491770126386">+49 177 912 6386</a></div>
- <div class="header__email"><a href="mailto:[email protected]">[email protected]</a></div>
- <div class="header__website"><a href="https://a14m.me">website</a></div>
- <div class="header__srht"><a href="https://git.sr.ht/~a14m">sr.ht</a></div>
- <div class="header__github"><a href="https://github.com/a14m">Github</a></div>
- <div class="header__stackoverflow">
- <a href="https://stackoverflow.com/users/1769515/a14m">StackOverflow</a>
- </div>
- <div class="header__linkedin"><a href="https://www.linkedin.com/in/a14m">LinkedIn</a></div>
- <div class="header__pgp"><a href="/key.asc">PGP</a></div>
- </address>
- </header>
-
- <article class="summary">
- <h2 class="summary__header section-header">Summary</h2>
- <p class="summary__content">
- Plattform-Ingenieur mit
- 10+ Jahre Erfahrung in der Software-Entwicklung (Backend/API-fokussiert),
- 5+ Jahre Erfahrung in Infrastruktur-Automatisierung und DevOps,
- Hobby-Sicherheitsanalytiker und -tester.
- Ein begeisterter Fan von Automatisierung, Nachhaltigkeit, Design Patterns und sauberem Code.
- Immer daran interessiert, eine bessere Problemlösungsmethode für anspruchsvolle Aufgaben zu finden,
- und sinnvolle neue Technologien und Tools zu erlernen (wenn die Notwendigkeit besteht).
- </p>
- </article>
- <article class="skills">
- <h2 class="skills__header section-header">Kenntnisse</h2>
- <dl class="skills__content">
- <dt class="skills__title">DevOps</dt>
- <dd class="skills__items">Kubernetes, Terraform, Docker, Ansible, CloudFoundry, Helm, Fastly, Vault,
- Concourse, Artifactory, ...
- </dd>
-
- <dt class="skills__title">Telemetrie</dt>
- <dd class="skills__items">Grafana, Prometheus, Loki, <abbr title="Elasticsearch Logstash Kibana">ELK</abbr>,
- Sentry, Tempo.
- </dd>
-
- <dt class="skills__title">Kodierung</dt>
- <dd class="skills__items">Go, Ruby, Python, Bash, Rust.</dd>
-
- <dt class="skills__title">Paradigmen</dt>
- <dd class="skills__items">
- Design Patterns, Test Driven Development (<abbr>TDD</abbr>), Behavior Driven Development (<abbr>BDD</abbr>),
- Continuous Integration and Delivery (<abbr>CI/CD</abbr>), Infrastructure as Code (<abbr>IaC</abbr>),
- Configuration as Code, RESTful APIs, Micro-Services.
- </dd>
-
- <dt class="skills__title">Tools</dt>
- <dd class="skills__items">
- vim, git, tmux, ssh, bash, kubectl, kubevela, ansible, helmfile, vagrant, docker, certbot, dig, bosh, vault,
- nc, nmap, curl, ffuf, gobuster, sqlmap, xxd, searchsploit, meta-sploit, commix, gdb, ltrace, ...
- </dd>
-
- <dt class="skills__title">Plattformen</dt>
- <dd class="skills__items">
- Amazon Web Services (<abbr>AWS</abbr>), DigitalOcean, Heroku, Google Cloud Platform (<abbr>GCP</abbr>),
- Linux.
- </dd>
-
- <dt class="skills__title">Sprachen</dt>
- <dd class="skills__items">Englisch (C2), Deutsch (B1), Arabisch (Muttersprache).</dd>
- </dl>
- </article>
-
- <article class="work">
- <h2 class="work__header section-header">Berufserfahrungen</h2>
- <article class="work__experience">
- <div class="job-position">
- <h2 class="job-position__company">
- <a href="https://group.springernature.com/gp/group">Springer Nature AG & Co. KGaA</a>
- </h2>
- <em class="job-position__title">Platform Engineer</em>
- <em class="job-position__duration">Feb. 2022 - Aug. 2022</em>
- <em class="job-position__location">Berlin, Germany</em>
- </div>
- <p class="note">Arbeiten als Teil des <b>Engineering Enablement</b>-Teams, das Infrastruktur bereitstellt,
- interne Tools, Dokumente, CloudFoundry-Plattform und Kubernetes-Cluster,
- um die Entwicklungsteams bei ihren täglichen Aufgaben zu unterstützen.</p>
- <ul class="tasks">
- <li>Arbeitete an interner <a href="https://github.com/springernature/halfpipe">(Halfpipe)</a>
- Tools zum Erstellen von CI/CD-Pipelines auf Github-Aktionen und Concourse.</li>
- <li>Implementierte wiederverwendbare GitHub Actions-Workflows für die Bereitstellung in CloudFoundry, Kubernetes und
- Docker-Registrierungen.</li>
- <li>Implementierte Tools zum Anzeigen und Melden des Kubernetes-Bereitstellungsstatus (von CI/CD) an die jeweiligen Teams,
- und benachrichtigen Sie sie bei Fehlern.
- </li>
- <li> Implementierter Alert-Routing-Service zur Integration mit Prometheus
- <a href="https://prometheus.io/docs/alerting/latest/alertmanager/">Alert-Manager</a>.
- Und sendet Benachrichtigungen an verschiedene Teams/Projekte und vorkonfigurierte Slack-Kanäle oder E-Mails.</li>
- <li>Gepflegte Teamdokumente, die von anderen Entwicklungsteams verwendet werden, um sie in interne Plattformen zu integrieren und zu verwenden.</li>
- <li>Wartung der von Terraform bereitgestellten Infrastruktur verschiedener Teile der Plattformen.</li>
- </ul>
- </article>
- <article class="work__experience">
- <div class="job-position">
- <h2 class="job-position__company"><a href="https://sapera.com/">Sapera GmbH.</a></h2>
- <em class="job-position__title">Senior Developer/DevOps</em>
- <em class="job-position__duration">Apr. 2018 - Nov. 2021</em>
- <em class="job-position__location">Berlin, Germany</em>
- </div>
- <ul class="tasks">
- <li>
- Implementierte Infrastruktur als Code (<abbr>IaC</abbr>) für verschiedene Projekte mit Terraform und Ansible.
- </li>
- <li>Standardisierung des Bereitstellungsprozesses (und Pflege der Prozessdokumentation).</li>
- <li>Erstellte Vorlagen zur Bereitstellung von Infrastruktur auf verschiedenen Cloud-Anbietern und in Entwicklungsstadien.</li>
- <li>
- Aufbau standardisierter Workflows mit CircleCI zur Automatisierung von Bereitstellungen (für interne und externe Projekte).
- </li>
- <li>
- Implementierung und Wartung der (Rails 5) JSON-API für unsere
- <a href="#note1"> Infografik-Portal[1]</a>.
- </li>
- <li>
- Gepflegt 99+&percnt; Dokumentationsabdeckung des <a href="#note1"> Infografik-Portals[1]</a>. API
- und 90+% Testabdeckung.
- </li>
- <li>Arbeitete mit Docker zusammen, um Ergebnisse für einige unserer externen Projekte bereitzustellen.</li>
- <li>
- Unterstützung und Anleitung zur Arbeit mit unseren standardmäßigen Bereitstellungsworkflows (intern und extern).
- </li>
- <li>Arbeitete eng mit unserem Systemingenieur zusammen, um ihn bei verschiedenen DevOps-Aufgaben zu unterstützen.</li>
- <li>
- Einige der Datenpipelines wurden neu geschrieben, gewartet und bereitgestellt, um bessere Sicherheitsstandards einzuhalten.
- </li>
- </ul>
- <p class="note">
- <a id="note1" href="#note1">[1]</a> Eine funktionierende Version des Infografik-Portals wurde erworben von
- <a href="https://scrollytelling.net/">Scrolly Telling GmbH</a> und noch von ihnen bearbeitet wie gesehen bei
- <a href="https://five-times.com/">Five-Times</a>.
- </p>
- </article>
- <article class="work__experience">
- <div class="job-position">
- <h2 class="job-position__company"><a href="https://liqid.de/">LIQID GmbH.</a></h2>
- <em class="job-position__title">Senior Backend Developer</em>
- <em class="job-position__duration">Mar. 2016 - Dec. 2017</em>
- <em class="job-position__location">Berlin, Germany</em>
- </div>
- <ul class="tasks">
- <li>Wartung der RESTful-API (von Administratoren und Front-End verwendet).</li>
- <li>Umsetzung und Pflege der Integration mit der Deutschen Bank.</li>
- <li>
- Implementierung und Wartung der Integration mit Intercom
- <abbr title="Kundenbeziehungsmanagement">CRM.</abbr>
- </li>
- <li>Implementierung und Wartung des Rechnungssystems.</li>
- <li>
- Implementiert die neue Authentifizierungsschicht mit
- <a href="https://tools.ietf.org/html/rfc7519">(RFC7519: JWT)</a>.
- </li>
- <li>Die Zwei-Faktor-Authentifizierung (<abbr>2FA</abbr>) für die Benutzer-/Client-Anmeldung implementiert.</li>
- <li>Integrierte andere Dienste wie DocuSign, PostIdent,...</li>
- <li>Umgesetzte tägliche Geschäfts-/Marketing-/technische Anforderungen.</li>
- </ul>
- </article>
- <article class="work__experience">
- <div class="job-position">
- <h2 class="job-position__company">PrioriData GmbH.</h2>
- <em class="job-position__title">Full Stack Developer</em>
- <em class="job-position__duration">Jul. 2015 - Feb. 2016</em>
- <em class="job-position__location">Berlin, Germany</em>
- </div>
- <p class="note">Wurde von <a href="https://airnow.com/">Airnow Data Ltd.</a> übernommen.</p>
- <ul class="tasks">
- <li>Wartung der Rails-Web-App (Dashboard).</li>
- <li>Der Scraping-Prozess zum Abrufen der Daten aus Apple- und GooglePlay-Stores wurde optimiert.</li>
- <li>Warteschlangen und Überwachung rund um die Scraper neu implementiert.</li>
- <li>Migrierte erfasste Daten aus verschiedenen Ressourcen zu Google BigQuery.</li>
- <li>
- Wartung und Bereitstellung von <abbr title="Virtual Machines">VM</abbr>-Instanzen für verschiedene Zwecke bei Google
- Cloud-Plattform (mit chef).
- </li>
- <li>
- &#8220;Extract&#8221; Schritt in die
- <abbr title="Extract, Transform, Load">ETL</abbr>-Prozess (unter Verwendung eines API-basierten Crawlers anstelle von phantomJS
- Browser).
- </li>
- </ul>
- </article>
- <article class="work__experience">
- <div class="job-position">
- <h2 class="job-position__company">AskNative</h2>
- <em class="job-position__title">Backend Developer/DevOps</em>
- <em class="job-position__duration">May. 2013 - Jul. 2015</em>
- <em class="job-position__location">Remote, Egypt</em>
- </div>
- <ul class="tasks">
- <li>Implementierte die Testsuite für die API.</li>
- <li>Veranstaltungsbuchungsfunktion über Stripe implementiert.</li>
- <li>Neu implementiertes Caching für bessere Antwortzeiten.</li>
- <li>Wartung der Heroku-Stacks für Staging/Produktion.</li>
- <li>
- Große Teile der API neu implementiert, um besseren Designmustern zu folgen
- (Sechseckige Architektur und <abbr title="Publish-Subscribe">Pub/Sub</abbr>-Muster).
- </li>
- </ul>
- </article>
- </article>
-
- <article class="projects">
- <h2 class="projects_header section-header">Schreiben</h2>
- <article class="project">
- <h2 class="project__title">The Publish/Subscribe Pattern on Rails</h2>
- <p class="project__content">
- Ein
- <a href="https://www.toptal.com/ruby-on-rails/the-publish-subscribe-pattern-on-rails">
- Toptal veröffentlichter Blogbeitrag
- </a>
- zur Implementierung des <abbr title="Publish-Subscribe">Pub/Sub</abbr>-Musters in der Praxis von Rails-Anwendungen.
- </p>
- </article>
- <article class="project">
- <h2 class="project__title">Clean Code and the Art of Exception Handling</h2>
- <p class="project__content">
- Ein
- <a href="https://www.toptal.com/abap/clean-code-and-the-art-of-exception-handling">
- Toptal veröffentlichter Blogbeitrag
- </a>
- über verschiedene Taktiken und Strategien für die Ausnahmebehandlung und wie man sie einsetzt, um saubereren Code zu schreiben.
- </p>
- </article>
- <article class="project">
- <h2 class="project__title">
- <a href="https://git.sr.ht/~a14m/OTW"> Over The Wire Lösungen</a>
- </h2>
- <p class="project__content">
- Lösungen für einige der <a href="https://overthewire.org/wargames/">OTW-Kriegsspiele</a>
- in einem README-Dateiformat dokumentiert.
- </p>
- </article>
- <article class="project">
- <h2 class="project__title">
- <a href="https://git.sr.ht/~a14m/HTB"> Hack The Box Lösungen</a>
- </h2>
- <p class="project__content">
- Lernsicherheitsanalyse durch Dokumentieren der Lösungen für einige der
- <a href="https://hackthebox.eu">HTB-Maschinen</a>
- in einem README-Dateiformat.
- </p>
- </article>
- </article>
-
- <article class="projects">
- <h2 class="projects__header section-header">Projekte</h2>
- <article class="project">
- <h2 class="project__title">
- <a href="https://git.sr.ht/~a14m/game-of-life"> Conway's Game of Life </a>
- </h2>
- <p class="project__content">
- Ein Mono-Repo mit verschiedenen Implementierungen der Befehlszeilenschnittstelle (<abbr>CLI</abbr>) für die
- <a href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Spiel des Lebens</a> in mehreren Sprachen
- (derzeit Ruby/Rust), mit der Automatisierung zum Veröffentlichen von Updates für verschiedene Paketmanager mit a
- Gitarrischer Workflow.
- </p>
- </article>
- <article class="project">
- <h2 class="project__title">
- <a href="https://git.sr.ht/~a14m/a14m.srht.site"> a14m.srht.site </a>
- </h2>
- <p class="project__content">Der Quellcode und die Bereitstellungsskripte für diese Website/diesen Lebenslauf.</p>
- </article>
- </article>
-
- <article class="education">
- <h2 class="education__header section-header">Ausbildung</h2>
- <article class="education__details">
- <h2 class="education__degree">B.E. in Computer Science and Engineering</h2>
- <p class="education__university">Arab Academy for Science and Technology</p>
- <p class="education__gpa">GPA 3.1/4.0 (B - Sehr Gut)</p>
- <em class="education__location">Alexandria, Egypt</em>
- <em class="education__duration">Sep. 2005 - Jan. 2011</em>
- </article>
- </article>
- </main>
- <footer></footer>
- </body>
-</html>
diff --git a/app/assets/favicon-16x16.png b/app/assets/favicon-16x16.png
deleted file mode 100644
index fdf8171..0000000
--- a/app/assets/favicon-16x16.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/favicon-32x32.png b/app/assets/favicon-32x32.png
deleted file mode 100644
index a321a58..0000000
--- a/app/assets/favicon-32x32.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/favicon.ico b/app/assets/favicon.ico
deleted file mode 100644
index a81b32b..0000000
--- a/app/assets/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/app/assets/index.html b/app/assets/index.html
deleted file mode 100644
index f40a7bc..0000000
--- a/app/assets/index.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="utf-8" />
- <title>A14M</title>
- <link href="/web.css" rel="stylesheet" media="all" />
- <link href="/print.css" rel="stylesheet" media="print" />
- <link rel="shortcut icon" href="/favicon.ico" />
- <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
- <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
- <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
- <link rel="manifest" href="/site.webmanifest" />
- <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#000" />
- <meta name="msapplication-TileColor" content="#da532c" />
- <meta name="theme-color" content="#ffffff" />
-
- <meta name="author" content="Ahmed AbdelHalim" />
- <meta name="description" content="A14M · Platform Engineer/DevOps" />
- <meta name="keywords" content="DevOps, go, docker, ansible, python, bash, CI, CD, TDD, BDD, AWS, terraform, GCP, k8s, kubernetes, grafana, prometheus, loki, ELK" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="color-scheme" content="dark light" />
- </head>
-
- <body>
- <main>
- <header class="header">
- <a class="header__language" lang="de" href="/de.html">[DE]</a>
- <h1 class="header__name">Ahmed AbdelHalim</h1>
- <em class="header__job-title">Platform Engineer &centerdot; DevOps</em>
- <address class="header__contact-info">
- <div class="header__location">Berlin, Germany</div>
- <div class="header__tel"><a href="tel:+491770126386">+49 177 912 6386</a></div>
- <div class="header__email"><a href="mailto:[email protected]">[email protected]</a></div>
- <div class="header__website"><a href="https://a14m.me">website</a></div>
- <div class="header__srht"><a href="https://git.sr.ht/~a14m">sr.ht</a></div>
- <div class="header__github"><a href="https://github.com/a14m">Github</a></div>
- <div class="header__stackoverflow">
- <a href="https://stackoverflow.com/users/1769515/a14m">StackOverflow</a>
- </div>
- <div class="header__linkedin"><a href="https://www.linkedin.com/in/a14m">LinkedIn</a></div>
- <div class="header__pgp"><a href="/key.asc">PGP</a></div>
- </address>
- </header>
-
- <article class="summary">
- <h2 class="summary__header section-header">Summary</h2>
- <p class="summary__content">
- Platform engineer with
- 10+ years of experience in software development (backend/API focused),
- 5+ years in infrastructure automation and DevOps,
- hobbyist security analyst and tester.
- An avid fan of automation, sustainability, design patterns, and clean code.
- Always interested in deriving a better problem-solving method for challenging tasks,
- and learning sensible new technologies and tools (when the need arises).
- </p>
- </article>
- <article class="skills">
- <h2 class="skills__header section-header">Skills</h2>
- <dl class="skills__content">
- <dt class="skills__title">DevOps</dt>
- <dd class="skills__items">Kubernetes, Terraform, Docker, Ansible, CloudFoundry, Helm, Fastly, Vault,
- Concourse, Artifactory, ...
- </dd>
-
- <dt class="skills__title">Telemetry</dt>
- <dd class="skills__items">Grafana, Prometheus, Loki, <abbr title="Elasticsearch Logstash Kibana">ELK</abbr>,
- Sentry, Tempo.
- </dd>
-
- <dt class="skills__title">Coding</dt>
- <dd class="skills__items">Go, Ruby, Python, Bash, Rust.</dd>
-
- <dt class="skills__title">Paradigms</dt>
- <dd class="skills__items">
- Design Patterns, Test Driven Development (<abbr>TDD</abbr>), Behavior Driven Development (<abbr>BDD</abbr>),
- Continuous Integration and Delivery (<abbr>CI/CD</abbr>), Infrastructure as Code (<abbr>IaC</abbr>),
- Configuration as Code, RESTful APIs, Micro-Services.
- </dd>
-
- <dt class="skills__title">Tools</dt>
- <dd class="skills__items">
- vim, git, tmux, ssh, bash, kubectl, kubevela, ansible, helmfile, vagrant, docker, certbot, dig, bosh, vault,
- nc, nmap, curl, ffuf, gobuster, sqlmap, xxd, searchsploit, meta-sploit, commix, gdb, ltrace, ...
- </dd>
-
- <dt class="skills__title">Platforms</dt>
- <dd class="skills__items">
- Amazon Web Services (<abbr>AWS</abbr>), DigitalOcean, Heroku, Google Cloud Platform (<abbr>GCP</abbr>),
- Linux.
- </dd>
-
- <dt class="skills__title">Languages</dt>
- <dd class="skills__items">English (Professional), German (Basic), Arabic (Native).</dd>
- </dl>
- </article>
-
- <article class="work">
- <h2 class="work__header section-header">Work Experience</h2>
- <article class="work__experience">
- <div class="job-position">
- <h2 class="job-position__company">
- <a href="https://group.springernature.com/gp/group">Springer Nature AG & Co. KGaA</a>
- </h2>
- <em class="job-position__title">Platform Engineer</em>
- <em class="job-position__duration">Feb. 2022 - Aug. 2022</em>
- <em class="job-position__location">Berlin, Germany</em>
- </div>
- <p class="note">Working as part of the <b>Engineering Enablement</b> team, that provides infrastructure,
- internal tooling, docs, CloudFoundry platform, and Kubernetes clusters,
- to help the development teams with their daily tasks.</p>
- <ul class="tasks">
- <li>Worked on internal <a href="https://github.com/springernature/halfpipe">(halfpipe)</a>
- tooling for building CI/CD pipelines on Github actions and Concourse.</li>
- <li>Implemented reusable GitHub Actions workflows for deploying to CloudFoundry, Kubernetes, and
- Docker Registries.</li>
- <li>Implemented tooling to show and report Kubernetes deployment status (from CI/CD) to respective teams,
- and notify them on failure.
- </li>
- <li> Implemented alert-routing service, to integrate with Prometheus
- <a href="https://prometheus.io/docs/alerting/latest/alertmanager/">alert-manager</a>.
- And sends alerts to different teams/projects, and preconfigured Slack channels or emails.</li>
- <li>Maintained team docs used by other development teams, to integrate with and use internal platforms.</li>
- <li>Maintained terraform-provisioned infrastructure of different parts of the platforms.</li>
- </ul>
- </article>
- <article class="work__experience">
- <div class="job-position">
- <h2 class="job-position__company"><a href="https://sapera.com/">Sapera GmbH.</a></h2>
- <em class="job-position__title">Senior Developer/DevOps</em>
- <em class="job-position__duration">Apr. 2018 - Nov. 2021</em>
- <em class="job-position__location">Berlin, Germany</em>
- </div>
- <ul class="tasks">
- <li>
- Implemented infrastructure as code (<abbr>IaC</abbr>) for different projects using Terraform and Ansible.
- </li>
- <li>Standardized the deployment process (and maintained the process documentation).</li>
- <li>Built templates to provision infrastructure on different cloud providers and development stages.</li>
- <li>
- Built standardized workflows using CircleCI to automate deployments (for internal and external projects).
- </li>
- <li>
- Implemented and maintained the (Rails 5) JSON API serving our
- <a href="#note1"> infographics portal[1]</a>.
- </li>
- <li>
- Maintained 99+&percnt; documentation coverage of the <a href="#note1"> infographics portal[1]</a>. API
- and 90+&percnt; test coverage.
- </li>
- <li>Worked with Docker to provide deliverables for some of our external projects.</li>
- <li>
- Provided support and tutoring to work with our standard deployment workflows (internally and externally).
- </li>
- <li>Worked closely with our Systems Engineer to support with various DevOps tasks.</li>
- <li>
- Rewrote, maintained and provisioned some of the data pipelines to adhere to a better security standards.
- </li>
- </ul>
- <p class="note">
- <a id="note1" href="#note1">[1]</a> A working version of the infographics portal was acquired by
- <a href="https://scrollytelling.net/"> Scrolly Telling GmbH</a> and still worked on by them as seen at
- <a href="https://five-times.com/"> Five-Times</a>.
- </p>
- </article>
- <article class="work__experience">
- <div class="job-position">
- <h2 class="job-position__company"><a href="https://liqid.de/">LIQID GmbH.</a></h2>
- <em class="job-position__title">Senior Backend Developer</em>
- <em class="job-position__duration">Mar. 2016 - Dec. 2017</em>
- <em class="job-position__location">Berlin, Germany</em>
- </div>
- <ul class="tasks">
- <li>Maintained the RESTful API (used by admins and front-end).</li>
- <li>Implemented and maintained the integration with Deutsche Bank.</li>
- <li>
- Implemented and maintained the integration with Intercom
- <abbr title="Customer Relationship Management">CRM.</abbr>
- </li>
- <li>Implemented and maintained the Invoicing system.</li>
- <li>
- Implemented the new authentication layer using
- <a href="https://tools.ietf.org/html/rfc7519">(RFC7519: JWT)</a>.
- </li>
- <li>Implemented the Two-Factor Authentication (<abbr>2FA</abbr>) for user/client login.</li>
- <li>Integrated other services like DocuSign, PostIdent,...</li>
- <li>Implemented day to day business/marketing/technical requirements.</li>
- </ul>
- </article>
- <article class="work__experience">
- <div class="job-position">
- <h2 class="job-position__company">PrioriData GmbH.</h2>
- <em class="job-position__title">Full Stack Developer</em>
- <em class="job-position__duration">Jul. 2015 - Feb. 2016</em>
- <em class="job-position__location">Berlin, Germany</em>
- </div>
- <p class="note">Was acquired by <a href="https://airnow.com/">Airnow Data Ltd.</a></p>
- <ul class="tasks">
- <li>Maintained the Rails web (dashboard) app.</li>
- <li>Optimized the scraping process of getting the data from Apple and GooglePlay stores.</li>
- <li>Reimplemented the queueing and monitoring around the scrapers.</li>
- <li>Migrated acquired data from different resources to Google BigQuery.</li>
- <li>
- Maintained and provisioned different purpose <abbr title="Virtual Machines">VM</abbr> instances on Google
- Cloud Platform (using chef).
- </li>
- <li>
- Reimplemented the &#8220;Extract&#8221; step in the
- <abbr title="Extract, Transform, Load">ETL</abbr> process (using an API based crawler instead of phantomJS
- browser).
- </li>
- </ul>
- </article>
- <article class="work__experience">
- <div class="job-position">
- <h2 class="job-position__company">AskNative</h2>
- <em class="job-position__title">Backend Developer/DevOps</em>
- <em class="job-position__duration">May. 2013 - Jul. 2015</em>
- <em class="job-position__location">Remote, Egypt</em>
- </div>
- <ul class="tasks">
- <li>Implemented the test suite for the API.</li>
- <li>Implemented events booking feature via Stripe.</li>
- <li>Reimplemented caching for better response times.</li>
- <li>Maintained the Heroku stacks for staging/production.</li>
- <li>
- Reimplemented large portions of the API to follow better design patterns
- (Hexagonal Architecture, and <abbr title="Publish-Subscribe">Pub/Sub</abbr> pattern).
- </li>
- </ul>
- </article>
- </article>
-
- <article class="projects">
- <h2 class="projects_header section-header">Writing</h2>
- <article class="project">
- <h2 class="project__title">The Publish/Subscribe Pattern on Rails</h2>
- <p class="project__content">
- A
- <a href="https://www.toptal.com/ruby-on-rails/the-publish-subscribe-pattern-on-rails">
- Toptal published blog post
- </a>
- on implementing the <abbr title="Publish-Subscribe">Pub/Sub</abbr> pattern in practice in Rails apps.
- </p>
- </article>
- <article class="project">
- <h2 class="project__title">Clean Code and the Art of Exception Handling</h2>
- <p class="project__content">
- A
- <a href="https://www.toptal.com/abap/clean-code-and-the-art-of-exception-handling">
- Toptal published blog post
- </a>
- on different tactics and strategies for exception handling and how to employ them to write cleaner code.
- </p>
- </article>
- <article class="project">
- <h2 class="project__title">
- <a href="https://git.sr.ht/~a14m/OTW"> Over The Wire Solutions </a>
- </h2>
- <p class="project__content">
- Solutions for some of the <a href="https://overthewire.org/wargames/">OTW wargames</a>
- documented in a README files format.
- </p>
- </article>
- <article class="project">
- <h2 class="project__title">
- <a href="https://git.sr.ht/~a14m/HTB"> Hack The Box Solutions </a>
- </h2>
- <p class="project__content">
- Learning security analysis via documenting the solutions for some of the
- <a href="https://hackthebox.eu">HTB machines</a>
- in a README files format.
- </p>
- </article>
- </article>
-
- <article class="projects">
- <h2 class="projects__header section-header">Projects</h2>
- <article class="project">
- <h2 class="project__title">
- <a href="https://git.sr.ht/~a14m/game-of-life"> Conway's Game of Life </a>
- </h2>
- <p class="project__content">
- A mono-repo with different command line interface (<abbr>CLI</abbr>) implementations for the
- <a href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Game of Life</a> in multiple languages
- (currently Ruby/Rust), with the automation for publishing updates to different package managers using a
- git-ish workflow.
- </p>
- </article>
- <article class="project">
- <h2 class="project__title">
- <a href="https://git.sr.ht/~a14m/a14m.srht.site"> a14m.srht.site </a>
- </h2>
- <p class="project__content">The source code, and deployment scripts for this website/CV.</p>
- </article>
- </article>
-
- <article class="education">
- <h2 class="education__header section-header">Education</h2>
- <article class="education__details">
- <h2 class="education__degree">B.E. in Computer Science and Engineering</h2>
- <p class="education__university">Arab Academy for Science and Technology</p>
- <p class="education__gpa">GPA 3.1/4.0 (B - Very Good)</p>
- <em class="education__location">Alexandria, Egypt</em>
- <em class="education__duration">Sep. 2005 - Jan. 2011</em>
- </article>
- </article>
- </main>
- <footer></footer>
- </body>
-</html>
diff --git a/app/assets/key.asc b/app/assets/key.asc
deleted file mode 100644
index 9ff0781..0000000
--- a/app/assets/key.asc
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-
-mDMEZBDEPxYJKwYBBAHaRw8BAQdAMQDR6x4wOUF/16fEy0A+f4K0YkFYwLrKH7f6
-tOCh9gG0HUFobWVkIEFiZGVsSGFsaW0gPHBtQGExNG0ubWU+iJMEExYKADsCGwMF
-CwkIBwMFFQoJCAsFFgIDAQACHgECF4AWIQSDeGtI9zTE98LO7DDZ/dKd4epkBQUC
-ZBDEhgIZAQAKCRDZ/dKd4epkBXgJAP9NwuudTDOTA8pJIP1NBbbWBciwqZPOxo+4
-VktU8EHyhwD9G0lRbrH2aapTKuQyHWbngxCQn110vbMr369D2gkAVQS0HUFobWVk
-IEFiZGVsSGFsaW0gPGExNG1AcG0ubWU+iJAEExYKADgWIQSDeGtI9zTE98LO7DDZ
-/dKd4epkBQUCZBDEeAIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRDZ/dKd
-4epkBeCYAQD5wXKyF2d3qiiKnJ+CO5Yg3oBZo8V1C89bfBM6RA27IQD/bsFyqmUY
-vQCZAGtPgUk/F7ZaJLm7vs02ndplkyPFDwC4OARkEMQ/EgorBgEEAZdVAQUBAQdA
-Z6mZwv5y+thLJn6SNQDkBoked0gGVKAjdgX1qo5ydjADAQgHiHgEGBYKACAWIQSD
-eGtI9zTE98LO7DDZ/dKd4epkBQUCZBDEPwIbDAAKCRDZ/dKd4epkBQEtAP9RLo0I
-uz+o9l42vMV/f8ed91uHCFUlgM+x8RifyDkrvQEAm5JCgXV5AZVCN3jvj5NnaQpM
-qG24V0Gqh4RXtnO/HAG4MwRkEMSPFgkrBgEEAdpHDwEBB0CPyTphZb5jUR9FPCqB
-M8FvwhthJ90+z0USyI8KQwX424h4BBgWCgAgFiEEg3hrSPc0xPfCzuww2f3SneHq
-ZAUFAmQQxI8CGyAACgkQ2f3SneHqZAWinAEAnmvc20NnEnzo+ex6d3LFknv4W0nt
-RFPfX3ptbzOHJ8YA/jUYRLKGHekJRrJM7kE+ihUFXS3sNpU7KOQthW0DpgwH
-=pdo1
------END PGP PUBLIC KEY BLOCK-----
diff --git a/app/assets/key.ssh b/app/assets/key.ssh
deleted file mode 100644
index 1a338cf..0000000
--- a/app/assets/key.ssh
+++ /dev/null
@@ -1 +0,0 @@
-ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/JOmFlvmNRH0U8KoEzwW/CG2En3T7PRRLIjwpDBfjb cardno:19_707_974
diff --git a/app/assets/mstile-150x150.png b/app/assets/mstile-150x150.png
deleted file mode 100644
index 350bca4..0000000
--- a/app/assets/mstile-150x150.png
+++ /dev/null
Binary files differ
diff --git a/app/assets/safari-pinned-tab.svg b/app/assets/safari-pinned-tab.svg
deleted file mode 100644
index be8fc4f..0000000
--- a/app/assets/safari-pinned-tab.svg
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
-<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
- width="254.000000pt" height="254.000000pt" viewBox="0 0 254.000000 254.000000"
- preserveAspectRatio="xMidYMid meet">
-<metadata>
-Created by potrace 1.14, written by Peter Selinger 2001-2017
-</metadata>
-<g transform="translate(0.000000,254.000000) scale(0.100000,-0.100000)"
-fill="#000000" stroke="none">
-<path d="M82 2458 c-17 -17 -17 -2359 0 -2376 17 -17 2359 -17 2376 0 17 17
-17 2359 0 2376 -17 17 -2359 17 -2376 0z m778 -398 l0 -380 -375 0 -375 0 0
-380 0 380 375 0 375 0 0 -380z m790 0 l0 -380 -380 0 -380 0 0 380 0 380 380
-0 380 0 0 -380z m790 0 l0 -380 -380 0 -380 0 0 380 0 380 380 0 380 0 0 -380z
-m-1580 -790 l0 -380 -375 0 -375 0 0 380 0 380 375 0 375 0 0 -380z m790 0 l0
--380 -380 0 -380 0 0 380 0 380 380 0 380 0 0 -380z m790 0 l0 -380 -380 0
--380 0 0 380 0 380 380 0 380 0 0 -380z m-1580 -785 l0 -375 -375 0 -375 0 0
-375 0 375 375 0 375 0 0 -375z m790 0 l0 -375 -380 0 -380 0 0 375 0 375 380
-0 380 0 0 -375z m790 0 l0 -375 -380 0 -380 0 0 375 0 375 380 0 380 0 0 -375z"/>
-<path d="M1180 2381 c-89 -29 -174 -101 -211 -180 -33 -69 -37 -189 -9 -263
-65 -173 277 -262 441 -186 108 50 175 134 199 251 28 138 -52 293 -185 357
--53 26 -185 38 -235 21z"/>
-<path d="M1984 1596 c-207 -52 -317 -272 -230 -461 35 -77 108 -147 184 -175
-74 -28 194 -24 263 9 59 28 124 93 157 156 24 44 27 62 27 145 0 81 -4 103
--25 145 -67 138 -232 218 -376 181z"/>
-<path d="M404 809 c-153 -37 -263 -188 -252 -348 9 -122 78 -225 187 -278 49
--24 68 -28 146 -28 73 0 99 5 136 23 75 37 125 87 161 160 29 59 33 76 33 147
--1 60 -6 92 -22 127 -29 64 -105 142 -167 173 -59 29 -158 40 -222 24z"/>
-<path d="M1183 805 c-106 -33 -187 -107 -224 -204 -29 -78 -23 -195 14 -267
-77 -152 265 -223 419 -160 233 96 286 387 101 556 -85 78 -207 108 -310 75z"/>
-<path d="M1953 800 c-74 -24 -161 -98 -192 -163 -38 -78 -46 -148 -27 -225 40
--164 179 -270 343 -260 340 21 433 478 128 629 -84 41 -165 47 -252 19z"/>
-</g>
-</svg>
diff --git a/app/assets/site.webmanifest b/app/assets/site.webmanifest
deleted file mode 100644
index e532fa7..0000000
--- a/app/assets/site.webmanifest
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": "A14m",
- "short_name": "A14m",
- "icons": [
- {
- "src": "/android-chrome-192x192.png",
- "sizes": "192x192",
- "type": "image/png"
- }
- ],
- "theme_color": "#ffffff",
- "background_color": "#ffffff",
- "display": "standalone"
-}