Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Deployment/application.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"server": "gunicorn",
"metrics_token": "metrics"
"metrics_token": "metrics",
"open_to_work": false
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@
request_logger = logging.getLogger("Request")


def create_application(metrics_token: str, server: Optional[str] = None) -> Application:
def create_application(open_to_work: bool, metrics_token: str, server: Optional[str] = None) -> Application:
flask_application = flask.Flask("benjaminhamon_developer_website")
flask_application.config.update(
OPEN_TO_WORK = open_to_work,
METRICS_TOKEN = metrics_token,
)

Expand Down
2 changes: 1 addition & 1 deletion Sources/website/benjaminhamon_developer_website/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def main():

configure_logging(arguments)

application = application_factory.create_application("metrics")
application = application_factory.create_application(open_to_work = False, metrics_token = "metrics")
website_url = "http://%s:%s/" % (arguments.address, arguments.port)
os.environ["DEBUG_METRICS"] = "1" # For Prometheus exporter

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,3 +122,8 @@
max-height: 75px;
max-width: 150px;
}

.work-experience-entry > .logo img.wide
{
width: 150px;
}
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,13 @@
<div class="text">
<img src="{{ url_for('static', filename = 'benjamin_hamon.jpeg') }}"/>
<p>Hello! I'm Benjamin.</p>
<p>I'm a 33-year-old French guy with a passion for video games and most computer-related things.</p>
<p>I'm a 35-year-old French guy with a passion for video games and most computer-related things.</p>
<p>I've worked as a software engineer in the video game industry for about a decade. I typically go by DevOps engineer, and I'm proficient in application development, web development, system administration, and infrastructure management. While I'm not your usual game programmer, you might have glimpsed my name in the credits of such games as Humankind and Life Is Strange 2.</p>
<p>I work on several open source projects, which you can explore in the <a href="{{ url_for('main_controller.projects', locale = 'en') }}">Projects</a> page and through <a href="https://github.com/BenjaminHamon/">GitHub</a>.</p>
<p>As another matter entirely, I recently became a self-published novelist. If that interests you, you can check out my <a href="https://author.benjaminhamon.com/">author website</a> and my <a href="https://blog-fiction.benjaminhamon.com/">blog about fiction</a>.</p>
</div>
</article>
{% if config.OPEN_TO_WORK %}
<article class="open-to-work">
<div class="heading">
<p>Open to work - Yes</p>
Expand All @@ -36,6 +37,18 @@
<p>See also my <a href="{{ url_for('static', filename = 'resume_en.pdf') }}">resume in PDF format</a>.</p>
</div>
</article>
{% else %}
<article class="open-to-work">
<div class="heading">
<p>Open to work - No</p>
</div>
<div class="text">
<p>I'm not currently open to new work opportunities.</p>
<p>Contact me at <a href="mailto:work@benjaminhamon.com">work@benjaminhamon.com</a>.</p>
<p>See also my <a href="{{ url_for('static', filename = 'resume_en.pdf') }}">resume in PDF format</a>.</p>
</div>
</article>
{% endif %}
</section>

{% endblock %}
Original file line number Diff line number Diff line change
@@ -1,11 +1,32 @@
{# cspell:words Angoulême Buildbot DJiT Dontnod Frenzoo gameplay Kobojo Modedemploi Orcanon Pohlm Vampyr #}
{# cspell:words angoulême buildbot djit dontnod frenzoo gameplay glicid kobojo modedemploi orcanon pohlm université vampyr #}

{% set title = 'Work Experience' %}

{% extends 'en/layout.html' %}

{% block content %}

<section>
<article class="work-experience-entry">
<div class="heading">
<a href="https://glicid.fr/">Glicid (Nantes Université)</a>
</div>
<div class="information">
<p>DevOps Engineer</p>
<p>Nantes, since January 2026</p>
</div>
<div class="logo">
<a href="https://glicid.fr/">
<img class="wide" src="{{ url_for('static', filename = 'work_experience/glicid.svg') }}" />
</a>
</div>
<div class="text">
</div>
<div class="tags">
</div>
</article>
</section>

<section>
<article class="work-experience-entry">
<div class="heading">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,18 @@
<div class="text">
<img src="{{ url_for('static', filename = 'benjamin_hamon.jpeg') }}"/>
<p>Bonjour ! Je suis Benjamin.</p>
<p>J'ai 33 ans, je suis français et j'ai une passion pour les jeux vidéo et l'informatique en général.</p>
<p>J'ai 35 ans, je suis français et j'ai une passion pour les jeux vidéo et l'informatique en général.</p>
<p>J'ai travaillé en tant qu'ingénieur logiciel dans l'industrie du jeu vidéo pendant dix ans. Je me présente généralement comme ingénieur DevOps, et je suis compétent dans les domaines du développement d'application, du développement web, de l'administration des systèmes, et de la gestion d'infrastructure. Je ne suis pas exactement un programmeur de jeux vidéo, mais vous avez peut-être aperçu mon nom dans les crédits de jeux tels que Humankind et Life Is Strange 2.</p>
<p>Je travaille sur plusieurs projets open source, que vous pouvez découvrir au travers de la page <a href="{{ url_for('main_controller.projects', locale = 'fr') }}">Projets</a> et de mon <a href="https://github.com/BenjaminHamon/">GitHub</a>.</p>
<p>Dans un tout autre registre, je suis récemment devenu romancier auto-publié. Si cela vous intéresse, vous pouvez jeter un œil à mon <a href="https://author.benjaminhamon.com/">site auteur</a> ainsi qu'à mon <a href="https://blog-fiction.benjaminhamon.com/">blog sur la fiction</a>.</p>
</div>
</article>
<article class="open-to-work">
<div class="heading">
<p>Ouvert aux offres d'emploi - Oui</p>
<p>Ouvert aux offres d'emploi - Non</p>
</div>
<div class="text">
<p>Je suis actuellement à l'écoute pour de nouvelles opportunités dans le secteur de l'informatique, de préférence un travail au temps partiel ou en freelance. Je suis plus particulièrement ouvert aux missions liées aux domaines suivants : jeux vidéos, culture et arts, social, environnement, science.</p>
<p>Je ne suis actuellement pas à l'écoute pour de nouvelles opportunités professionnelles.</p>
<p>Contactez moi via <a href="mailto:work@benjaminhamon.com">work@benjaminhamon.com</a>.</p>
<p>Voir aussi mon <a href="{{ url_for('static', filename = 'resume_fr.pdf') }}">CV au format PDF</a>.</p>
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,33 @@
{# cspell:language en fr #}
{# cspell:words Angoulême Buildbot djit dontnod frenzoo gameplay kobojo modedemploi Orcanon pohlm Vampyr #}
{# cspell:words angoulême buildbot djit dontnod frenzoo gameplay glicid kobojo modedemploi orcanon pohlm vampyr #}

{% set title = 'Expérience Professionnelle' %}

{% extends 'fr/layout.html' %}

{% block content %}

<section>
<article class="work-experience-entry">
<div class="heading">
<a href="https://glicid.fr/">Glicid (Nantes Université)</a>
</div>
<div class="information">
<p>Ingénieur DevOps</p>
<p>Paris, depuis janvier 2026</p>
</div>
<div class="logo">
<a href="https://glicid.fr/">
<img class="wide" src="{{ url_for('static', filename = 'work_experience/glicid.svg') }}" />
</a>
</div>
<div class="text">
</div>
<div class="tags">
</div>
</article>
</section>

<section>
<article class="work-experience-entry">
<div class="heading">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@
configuration = json.load(configuration_file)

application = application_factory.create_application(
open_to_work = configuration["open_to_work"],
metrics_token = configuration["metrics_token"],
server = configuration["server"])
1 change: 1 addition & 0 deletions Sources/website/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,6 @@ benjaminhamon_developer_website = [
"static/**/*.jpeg",
"static/**/*.pdf",
"static/**/*.png",
"static/**/*.svg",
"templates/**/*.html",
]
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@


def test_create_application():
application_factory.create_application("metrics")
application_factory.create_application(open_to_work = False, metrics_token = "metrics")
Loading