# Biography

Gert de Pagter is a software engineer at YourSurprise. His software engineering interests include testing and code quality.

### Interests

• Software engineering
• Mathematics
• Magic

### Education

• HBO-ICT, 2020

HZ University of Applied Sciences

90%

30%

0%

# Experience

#### YourSurprise

September 2019 – Present Zierikzee
My daily job includes improving the website, and improving software quality along the way.

#### YourSurprise

September 2019 – February 2020 Zierikzee

An internship where i research the relation between software testing and the quality of code.

I help the team increase software quality across the board, and introduce more tests in the code base.

#### Ibuildings

January 2018 – January 2020 Vlissingen
Responsibilities include:

• Software development

#### Ibuildings

September 2017 – January 2018 Vlissingen
During my internship I worked on the call for papers application for the Dutch PHP conference

# Accomplish­ments

#### Shortest Paths Revisited, NP-Complete Problems and What To Do About Them

The fourth of a four part series on algorithms, focusing on NP complete problems.
See certificate

#### Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming

The third of a four part series on algorithms, focusing on greedy algorithms and dynamic programming.
See certificate

#### Graph Search, Shortest Paths, and Data Structures

The second of a four part series on algorithms, focusing on graphs algorithms and data structures.
See certificate

#### Divide and Conquer, Sorting and Searching, and Randomized Algorithms

The first of a four part series on algorithms, focusing on divide and conquer algorithms
See certificate

# Recent Posts

### Testing code that generates warnings

Our code base has a lot of code that looks like this: <?php try { $this->doScaryThing(); } catch(Exception$e) { trigger_error("Downgraded: " . get_class($e) . ":" .$e->getMessage(), E_USER_WARNING); } Or sometimes trigger_error is used as a way to log other thigns. This makes it rather difficult to test. Thankfully PHPUnit 8.4 has the expectWarning method, that allows us to check this: <?php public function testItTriggersWarning(): void { $object = new Danger();$this->expectWarning(); \$object->doWarningThing(); } This does mean that the execution stops after the warning is triggered, so we can’t assert anything after that.

### What is the boy scout rule

Our code base is a lot like a camp site, and we can learn a thing or two from the boy scouts.

Most code bases have far too much comments, while only a few are really usefull.

### PHP is already strictly typed

PHP is already strictly typed, in the same way that JavaScript is. Not through the language itself, but with the help of tooling. JavaScript achieves this through tools like Typescript. (I use typescript as an example, as that is what i normally use.) Typescript adds a lot of new syntax to tha language, which allows for type checking. The transpiler then simply won’t transpile if there are type errors( depending on your configuration).

### The modern PHP developers toolbox

The tools a modern PHP developer needs to strive.

# Projects

Packages that I either maintain, or i contribute a lot to.

#### Webmozart Assert

An assertion library for PHP

#### Infection

A mutation testing framework for PHP

# Recent & Upcoming Talks

### Finding bugs in seconds

Using static analysis to find bugs, and it only takes a few seconds.

### Finding bugs in seconds

Using static analysis to find bugs, and it only takes a few seconds.

### Finding bugs in seconds

Using static analysis to find bugs, and it only takes a few seconds.

### Finding bugs in seconds

Using static analysis to find bugs, and it only takes a few seconds.

# Contact

• KvK number: 78147468