Tom Peters
Back-end Engineer
About Me
"Developer. Engineer. Biologist. Scientist. Bass player. Gamer. Cat dad."

I call myself many things, but in the end, I am a nerdy guy with diverse interests, perpetually one payday removed from a Warhammer obsession. I enjoy diving into new subjects — either natural or technological, discerning their inner workings, and applying them in fun and interesting ways. I am ever driven by a thirst for knowledge and avoiding personal stagnation.

Back in the day, I wanted nothing more than to be a veterinarian. Eventually, that interest shifted towards biology and academics; which is where I decided to pursue further education. I especially took a liking to ecology and the complex interactions between all forms of life, which ultimately led me to the field of palaeoecology, the study of past ecosystems and climate.

Yet the title at the top of this page says "Back-end Engineer". Turns out I realized I did not want to pursue a career in academic research after graduating. After some soul-searching and self-study, I discovered that I liked coding, along with all the puzzles and challenges it offers. Not looking to spend another half decade in school, I applied for several traineeships. Long story short, I succeeded, learned and experienced a lot, and landed my first gig as a back-end developer.

It has been a little while since starting that first position. I am very glad and fortunate that I am able to keep learning, face challenges, solve puzzles, and remain passionate to this day. My skillset has diversified tremendously, hence why I refer to myself as an engineer rather than a developer, and I am always looking out for that next opportunity to learn and challenge myself.
Major Skills
PHP, Symfony, MySQL, GitLab (Management), Jira (Management), Confluence (Management), Web Development, Server Management
Minor Skills
HTML, CSS, JavaScript, Node.js
Developing Skills
CI/CD, Docker, Python, Vue.js, Svelte
Experience
[
'start' => '2023-12-01',
'end'   => null,
'company'  => 'MijnWebWinkel / MyOnlineStore',
'position' => 'Back-end Developer',
'description' => 
'A new step in my career and opportunity to learn more about maintaining and expanding a large platform with a rich history. The presence of multiple teams, one per discipline, allowed me to refocus on back-end code rather than the entire development ecosystem.',

]
start
-------------
2023-12-01
end
-------------
null
company
-------------
MijnWebWinkel / MyOnlineStore
position
-------------
Back-end Developer
description
-------------
A new step in my career and opportunity to learn more about maintaining and expanding a large platform with a rich history. The presence of multiple teams, one per discipline, allowed me to refocus on back-end code rather than the entire development ecosystem.
[
'start' => '2017-05-01',
'end'   => '2023-11-30',
'company'  => '3Fiftynine',
'position' => 'Back-end Developer',
'description' => 
'I started off as a junior back-end developer responsible for rebuilding a ColdFusion web application using Symfony 3. With time, I became one of the driving forces behind the Development department and its infrastructure, technology, and projects. I was the head back-end developer and technical lead for five projects; three SaaS products, an internal authentication and authorization hub, and a central management portal. Beyond that, I managed the company's GitLab, Jira, Confluence, DNIS, CI/CD, and server organization.',

]
start
-------------
2017-05-01
end
-------------
2023-11-30
company
-------------
3Fiftynine
position
-------------
Back-end Developer
description
-------------
I started off as a junior back-end developer responsible for rebuilding a ColdFusion web application using Symfony 3. With time, I became one of the driving forces behind the Development department and its infrastructure, technology, and projects. I was the head back-end developer and technical lead for five projects; three SaaS products, an internal authentication and authorization hub, and a central management portal. Beyond that, I managed the company's GitLab, Jira, Confluence, DNIS, CI/CD, and server organization.
[
'start' => '2016-09-01',
'end'   => '2017-04-30',
'company'  => 'True Legends',
'position' => 'Young Professional (Trainee)',
'description' => 
'My first official steps as a developer were as a trainee in this Young Talent Traineeship. Here, those with STEM education were accepted and trained in project management and software development. My time was spent on several internal projects, but mostly on the back-end of a Symfony application that introduced me to my next employer.',

]
start
-------------
2016-09-01
end
-------------
2017-04-30
company
-------------
True Legends
position
-------------
Young Professional (Trainee)
description
-------------
My first official steps as a developer were as a trainee in this Young Talent Traineeship. Here, those with STEM education were accepted and trained in project management and software development. My time was spent on several internal projects, but mostly on the back-end of a Symfony application that introduced me to my next employer.
Projects
tom@PERSONAL-WEBSITE:/$ projects=getProjects
tom@PERSONAL-WEBSITE:/$ display projects[0]
name: MyOnlineStore Platform
organization: MyOnlineStore
role: Back-end Developer
description: MyOnlineStore was a platform allowing people to easily create their own web store, and facilitating use of third-party functionality, such as payment and package services. It is composed of both cutting-edge technology and years of legacy code, and as such is fascinating to work on. It is challenging to maintain, update, and expand
description: MyOnlineStore was a platform allowing people to easily create their own web store, and facilitating use of third-party functionality, such as payment and package services. It is composed of both cutting-edge technology and years of legacy code, and as such is fascinating to work on. It is challenging to maintain, update, and expand
skillset:
links/media:
tom@PERSONAL-WEBSITE:/$ display projects[1]
name: TomPeters.Dev
organization: Self
role: Full-stack Developer
description: My personal website, both a home to the story of my professional life and a way to exercise my rusty HTML, CSS, and JavaScript skills. While not the most challenging project, it is fun to play around with and taught me some valuable lessions.
description: My personal website, both a home to the story of my professional life and a way to exercise my rusty HTML, CSS, and JavaScript skills. While not the most challenging project, it is fun to play around with and taught me some valuable lessions.
links/media:
tom@PERSONAL-WEBSITE:/$ display projects[2]
name: Anoctua
organization: 3Fiftynine
role: Lead Back-end Developer
description: Anoctua was a web application which served as an API platform for centralized user, end-client, and partner management for the company's SaaS product suite. It was built to serve as an API first, but to allow for future integration with a front-end framework. This project allowed me to carefully consider how each choice made in its (technical) design would impact and fit the entire ecosystem. Creating this ecosystem from scratch was challenging, stimulating, and most of all, fun.
description: Anoctua was a web application which served as an API platform for centralized user, end-client, and partner management for the company's SaaS product suite. It was built to serve as an API first, but to allow for future integration with a front-end framework. This project allowed me to carefully consider how each choice made in its (technical) design would impact and fit the entire ecosystem. Creating this ecosystem from scratch was challenging, stimulating, and most of all, fun.
skillset:
links/media:
tom@PERSONAL-WEBSITE:/$ display projects[3]
name: Cerberus
organization: 3Fiftynine
role: Lead Back-end Developer
description: Cerberus was an API platform responsible for the authentication and authorization of requests in a SaaS product suite ecosystem. Much like its mythological namesake, it ensured tha authenticity and security of incoming and outgoing connections to the central management API, Anoctua. The project had me researching proper, secure communication between APIs, Symfony security, user authentication, and multi-level request authentication. Much like a good puzzle, it was a thought-provoking, challenging, and fun to solve.
description: Cerberus was an API platform responsible for the authentication and authorization of requests in a SaaS product suite ecosystem. Much like its mythological namesake, it ensured tha authenticity and security of incoming and outgoing connections to the central management API, Anoctua. The project had me researching proper, secure communication between APIs, Symfony security, user authentication, and multi-level request authentication. Much like a good puzzle, it was a thought-provoking, challenging, and fun to solve.
skillset:
links/media:
tom@PERSONAL-WEBSITE:/$ display projects[4]
name: CardBoard CX
organization: 3Fiftynine
role: Back-end Developer
description: CardBoard CX was a SaaS web application enabling contact centers to easily create wallboard displays showing real-time data from their contact center platforms. It successfully offered a specialized yet user-friendly alternative to existing products, which often did not offer proper platform integrations or were difficult to use. Its development taught me more about the asynchronous loading of data, connecting to external systems, and providing user-friendly solutions to relatively complex problems. It also prompted creative yet efficient solutions for the database structure.
description: CardBoard CX was a SaaS web application enabling contact centers to easily create wallboard displays showing real-time data from their contact center platforms. It successfully offered a specialized yet user-friendly alternative to existing products, which often did not offer proper platform integrations or were difficult to use. Its development taught me more about the asynchronous loading of data, connecting to external systems, and providing user-friendly solutions to relatively complex problems. It also prompted creative yet efficient solutions for the database structure.
skillset:
tom@PERSONAL-WEBSITE:/$ display projects[5]
name: Branches CX
organization: 3Fiftynine
role: Back-end Developer
description: Branches CX was a SaaS web application that helped contact centers create complex decision trees and provided analytics to help improve and streamline the contact process. It was especially popular with hospitals, where it helpd replace inefficient analog processes. An interesting project to work on, with challenges revolving around efficient retrieval of statisics, loading complex nested decision trees, calculating their use, and making the whole process user-friendly. In a broader context, it helped me better judge the importance and impact of major refactors and redesigns, as well as how to minimize inconveniencing its users during.
description: Branches CX was a SaaS web application that helped contact centers create complex decision trees and provided analytics to help improve and streamline the contact process. It was especially popular with hospitals, where it helpd replace inefficient analog processes. An interesting project to work on, with challenges revolving around efficient retrieval of statisics, loading complex nested decision trees, calculating their use, and making the whole process user-friendly. In a broader context, it helped me better judge the importance and impact of major refactors and redesigns, as well as how to minimize inconveniencing its users during.
skillset:
tom@PERSONAL-WEBSITE:/$ display projects[6]
name: Sensetool
organization: 3Fiftynine, SOA Aids Nederland
role: Back-end Developer
description: A web application built for a single organization, helping them anonymously register and report incoming contacts to SOA Aids Nederland, a Dutch government-funded organization providing sexual education and advice. The application was completely rebuilt in Symfony as part of my first major project, which taught me much about Symfony functionality, proper cooperation between team disciplines, and how to properly construct a back-end application.
description: A web application built for a single organization, helping them anonymously register and report incoming contacts to SOA Aids Nederland, a Dutch government-funded organization providing sexual education and advice. The application was completely rebuilt in Symfony as part of my first major project, which taught me much about Symfony functionality, proper cooperation between team disciplines, and how to properly construct a back-end application.
skillset:
links/media:
tom@PERSONAL-WEBSITE:/$ display projects[7]
name: Prose
organization: True Legends, 3Fiftynine
role: Back-end Trainee
description: My first foray into back-end development, Prose was a prototype contact center scripting application. It was intended to offer contact center managers with an easy and accessibly way to create and customize their agents' experience during customer contact. I worked on this project alongside another trainee and a senior full-stack developer. It lasted around six months, during which I was introduced to programming staples, such as the use of frameworks, Git, and Agile work environments. It was a very dense and steep learning curve, which I enjoyed a lot and motivated me to keep learning and improving my craft.
description: My first foray into back-end development, Prose was a prototype contact center scripting application. It was intended to offer contact center managers with an easy and accessibly way to create and customize their agents' experience during customer contact. I worked on this project alongside another trainee and a senior full-stack developer. It lasted around six months, during which I was introduced to programming staples, such as the use of frameworks, Git, and Agile work environments. It was a very dense and steep learning curve, which I enjoyed a lot and motivated me to keep learning and improving my craft.
skillset:
links/media:
tom@PERSONAL-WEBSITE:/$ display projects[8]
name: Peruvian Andes
organization: University of Southern California, University of Amsterdam
role: Researcher, Student
description: A chemical and taxonomic analysis of leaves from the Peruvian Andes, performed in Los Angeles, in order to determine whether the composition of leaf waxes from the Peruvian rainforest and cloud forest were more dependent on their environment or the type of plant. Ultimately, we were able to provide evidence for an evolutionary response by plants to their environment. The project allowed me to work with North-American, South-American, and European colleagues halfway across the globe. The whole experience was invaluable both personally and professionally; from living by myself abroad to new research methods and being part of a intercontinental research network.
description: A chemical and taxonomic analysis of leaves from the Peruvian Andes, performed in Los Angeles, in order to determine whether the composition of leaf waxes from the Peruvian rainforest and cloud forest were more dependent on their environment or the type of plant. Ultimately, we were able to provide evidence for an evolutionary response by plants to their environment. The project allowed me to work with North-American, South-American, and European colleagues halfway across the globe. The whole experience was invaluable both personally and professionally; from living by myself abroad to new research methods and being part of a intercontinental research network.
skillset:
tom@PERSONAL-WEBSITE:/$ display projects[9]
name: Conservation Palaeoecology
organization: University of Amsterdam, Utrecht University
role: Author, Student
description: A study of existing literature to analyze the value of palaeoecological data in the conservation and restoration of oceanic islands. Put simply, to determine whether an island's past is essential in protecting and restoring its current flora and fauna. This resulted in a well-argumented call to action for researchers to put their research to practical use, as their historic data was essential for restoration efforts. The project taught me how to properly gather, analyze, and recontextualize existing research, as well as on how to craft an engaging narrative supporting a particular fact or opinion, and how to handle lots of feedback.
description: A study of existing literature to analyze the value of palaeoecological data in the conservation and restoration of oceanic islands. Put simply, to determine whether an island's past is essential in protecting and restoring its current flora and fauna. This resulted in a well-argumented call to action for researchers to put their research to practical use, as their historic data was essential for restoration efforts. The project taught me how to properly gather, analyze, and recontextualize existing research, as well as on how to craft an engaging narrative supporting a particular fact or opinion, and how to handle lots of feedback.
skillset:
tom@PERSONAL-WEBSITE:/$ display projects[10]
name: Lake Hämelsee
organization: University of Amsterdam
role: Researcher, Coring Crew, Student
description: Centered around lake Hämelsee in Germany, this project allowed me to work as part of the European INTIMATE initiative (INTegrating Ice core, MArine and TErrestrial records). I helped recover sediment cores from the lake, extract samples from them, and then identified sub-fossil chironomids (i.e., midge larvae), which helped infer past temperatures in the area around 12,000 years ago; which showed a rapid warming event at the onset of our current time period. It was fascinating to be part of a large multi-disciplinary team, allowing me to network, cooperate, communicate, review, and discuss with fellow researchers.
description: Centered around lake Hämelsee in Germany, this project allowed me to work as part of the European INTIMATE initiative (INTegrating Ice core, MArine and TErrestrial records). I helped recover sediment cores from the lake, extract samples from them, and then identified sub-fossil chironomids (i.e., midge larvae), which helped infer past temperatures in the area around 12,000 years ago; which showed a rapid warming event at the onset of our current time period. It was fascinating to be part of a large multi-disciplinary team, allowing me to network, cooperate, communicate, review, and discuss with fellow researchers.
tom@PERSONAL-WEBSITE:/$ display projects[11]
name: Lake Uddelermeer
organization: University of Amsterdam
role: Researcher, Student
description: My first academic research project aiming to create a palaeoecological reconstruction of the area surrounding lake Uddelermeer, the Netherlands. I analyzed sub-fossil pollen under a microscope, allowing us to reconstruct the plant life surrounding the lake over the past 12,800 years, and ultimately identify an interesting lake lowstand. This result helped us better understand local climate and contributed to our understanding of past climate change in Europe as a whole. This project kickstarted my fascination with palaeoecology, helped me develop my academic skillset, and motivated me to keep pursuing an academic career.
description: My first academic research project aiming to create a palaeoecological reconstruction of the area surrounding lake Uddelermeer, the Netherlands. I analyzed sub-fossil pollen under a microscope, allowing us to reconstruct the plant life surrounding the lake over the past 12,800 years, and ultimately identify an interesting lake lowstand. This result helped us better understand local climate and contributed to our understanding of past climate change in Europe as a whole. This project kickstarted my fascination with palaeoecology, helped me develop my academic skillset, and motivated me to keep pursuing an academic career.
skillset:
Education
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| pied_piper         |
| scp_containment    |
| super_secret       |
| sys                |
| tom                |
+--------------------+
6 rows in set (3.14 sec)
mysql> USE tom;
Database changed
mysql> SHOW TABLES;
+---------------+
| Tables_in_tom |
+---------------+
| about_me      |
| company       |
| contact       |
| education     |
| experience    |
| pets          |
| position      |
| project       |
| school        |
| skill         |
+---------------+
9 rows in set (13.37 sec)
mysql> SELECT e.start, e.end, e.title, s.subject, e.description, e.projects
       FROM education e
       JOIN school s ON s.id = e.school_id
       ORDER BY e.end DESC \G
*************************** 1. row ***************************
********** 1. row **********
start:
2013-09-01
end:
2015-08-31
title:
Master of Science
subject:
Biological Sciences
description:
A two-year program in the "Ecology and Evolution" track, with a personal focus on palaeoecology. While I did attend several courses, the majority of the program was spent on two research projects and a literature thesis. These truly enabled me to broaden my knowledge, skillset, and mindset in preparation for a career of academic research.
description:
A two-year program in the "Ecology and Evolution" track, with a personal focus on palaeoecology. While I did attend several courses, the majority of the program was spent on two research projects and a literature thesis. These truly enabled me to broaden my knowledge, skillset, and mindset in preparation for a career of academic research.
projects:
> Climatic change at lake Hämelsee: a chironomid-based reconstruction of temperatures during the Younger Dryas - Preboreal transition (2014; University of Amsterdam)
> Conservation Palaeoecology: The application of palaeoecological research in the conservation and restoration of oceanic islands (2014; University of Amsterdam & Utrecht University)
> Environment or Taxonomy? Identifying the major drivers of leaf wax traits diversity in the Peruvian rainforest and cloud forest (2015; University of Amsterdam & University of Southern California)
*************************** 2. row ***************************
********** 2. row **********
start:
2010-09-01
end:
2013-08-31
title:
Bachelor of Science
subject:
Biology
description:
My Bachelor's in Biology consisted of three years of increasingly specialized topics, ranging from cellular chemistry and ecology to statistical analysis. My particular interest was in ecology, which culminated in a fascination for palaeoecology. These three years laid the foundation for the academic mindset, which I use to analyze and solve issues to this day.
description:
My Bachelor's in Biology consisted of three years of increasingly specialized topics, ranging from cellular chemistry and ecology to statistical analysis. My particular interest was in ecology, which culminated in a fascination for palaeoecology. These three years laid the foundation for the academic mindset, which I use to analyze and solve issues to this day.
projects:
> A Late Holocene Lake-Level Lowstand - A Case Study on Lake-Level Changes at Uddelermeer, the Netherlands (2013; University of Amsterdam)
2 rows in set (0.13 sec)
Contact
<?php

declare(strict_types=1);

namespace Tom\Website\Controller;

class ContactController extends AbstractController
{
#[Route('/link/linkedin', name: 'linkedin')]
public function goToLinkedIn(): RedirectResponse
{
$address = 'https://www.linkedin.com/in/1992-tom-peters/';

return $this->redirect($address);
}

#[Route('/email/send', name: 'send_email')]
public function sendEmail(MailerInterface $mailer): void
{
$me = 'professional@tompeters.dev';

$email = new Email();
$email
    ->setFrom('You')
    ->setTo($me);

$mailer->send($email);
}
}