Avatar

Gert de Pagter

Software Engineer

YourSurprise

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

Skills

PHP

90%

Mathematics

30%

Magic

0%

Experience

 
 
 
 
 

Software Engineer

YourSurprise

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

Intern

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.

 
 
 
 
 

Software Engineer

Ibuildings

January 2018 – January 2020 Vlissingen
Responsibilities include:

  • Software development
  • Leading tactical meetings
 
 
 
 
 

Intern

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

Every Day Design Pattern: Adapter

This is the second post in a series of design patterns i use (almost) daily. You will find the other posts at the bottom of this article. On wikipedia, the adapter pattern is described like so: the adapter pattern is a software design pattern (…) that allows the interface of an existing class to be used as another interface. It is often used to make existing classes work with others without modifying their source code.

Every day design pattern: Decorator

This is the first post in a series of design patterns i use (almost) daily. You will find the other posts at the bottom of this article. The Decorator pattern On wikipedia, the decorator pattern is described like so: In object-oriented programming, the decorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the same class.

Replacing private services with mocks during tests

Use a custom services file for your tests, to allow changing dependencies as needed.

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.

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