Chai Stofkoper - DevOps - Development

Profile

‘Sharp, discerning, ambitious, collaborative’. Those are words that resonate well with me. I ask questions and dig deep in order to find possibilities for solutions. I regard challenges mainly as starting points to learn something new, and to continue growing in my work and as a person. I am always open to suggestions, I appreciate direct and clear communication and an informal atmosphere. From my work as a tester and test automation engineer I gained a sharp eye for detail, and acute awareness of both risk and quality. The last few years I have extended my knowledge and experience in topics and techniques such as Java, Javascript, Typescript, Python, Haskell, AWS, Pipelines (Jenkins), containerization (Docker and Compose), DevOps, Agile and more. I am passionate about Linux, Vim, containers, exotic music and math!

Ambitions

The last period (about 2 years) I have prepared myself for a change of career into DevOps / Development. For this purpose I have done courses (mostly online, self paced) in Docker, Terraform, Jenkins, AWS, Java, Typescript, Angular, Spring, NestJs, (S)CSS, RxJs. I especially dug deeper into topics such as cloud computing and architectures, IAC with Terraform, pipelines and containers.

Apart from some individual side projects, we do an internal project together with my colleagues. Here we build a microservice application running in AWS ECS with an RDS mysql DB, for which I do most of all the infrastructure, pipelines, as well as the frontend code, while my colleagues focus more on the backend part. I also tend to focus on the DevOps process elements a lot. I feel that the real results of safely delivering software quickly can only be achieved if the technical elements are embedded into a solid process.

For my next assignment I am looking to put these skills into practice and learn more!

Highlights

2020 - Present: Devops - Development (Fullstack) @ InQuisitive (Internally)

Setting up and maintaining the infrastructure as code with Terraform in AWS, for the app as well as Jenkins. Building and maintaining build and deploy pipelines in with Jenkins (JcasC, JobDSL). Writing the Angular frontend.

2019 - 2022: Test - Test Automation @ Ministry of Foreign Affairs

Chain testing and improving and extending the automated test suites for UI and Apis. Bits and pieces of frontend work, containerization and pipelines.

2017 - 2019: Test - Test Automation @ Rabobank

Mainly writing automated test for UI (protractor) and Apis (java). Besides this joining in the effort of migration towards cloud (PCF), seting up and maintaining the dashboards and alerts in Splunk for our team. For about a year I was the scrum master in our team.

Work Experience

Client: Internally @ InQuisitive

Period: October 2020 - Present
Role(s): DevOps - Development
Knowledge: Typescript, Java, Spring, Angular,Terraform, CloudFormation, Jenkins, Docker, Git, Agile Scrum.
Context: Within InQuisitive we have teamed up in a small group to transition from testers to developers / DevOps Engineers. For this purpose we have been given time and support to do courses and and internal project. We are building a flashcards application named “Mosar”. The main goal is to use as many relevant techniques as possible in to gain real world experience and solidify our learnings.
Tasks:

  • Write and maintain all infrastructure as code

  • Set up environments, roles and resources in AWS

  • Setup and maintain build and release pipelines

  • Write the frontend code and frontend unit tests

Results: I have built and rebuilt the infrastructure as code for our project. First using AWS CloudFormation, and later migrating it to Terraform. This entails both the modules and the projects / workspaces (they map to workspaces in Terraform Cloud) that use these modules. All resources such as VPCs, ECS Clusters, EC2 servers, secrets, ECR repositories, roles and policies for both Jenkins and Mosar are maintained here.
Another thing I have built is all the pipelines in Jenkins. Using JCasc and JobDSL with the purpose of haveing everything as-code, I set up build pipelines that get triggered on opening PRs which build the artifacts, run tests and publish images made with Kaniko to AWS ECR. The deploy pipeline, triggered on merging a PR then retrieves this image, and runs Terraform code to run a task withing the existing ECS cluster.
Besides this work I also wrote the frontend code in Typescript using the Angular framework. This includes all html, scss, animations and tests.

Client: Ministry of Foreign Affairs

Period: March 2019 - April 2022
Role(s): Test - Test Automation - DevOps - Chain Test
Knowledge: Agile, Scrum, DevOps, Test Automation, Java, Javascript, Typescript, Property Based Testing, Backend Testing, Frontend / Angular, Azure, Complex Chain, Codecept, Cypress
Context: The project was to replace existing systems for the processing of visa applications. This encompasses the whole flow from a user filling in the initial forms, the payment and upload portals setup throughout the world, to the processing in The Hague by it’s different officers. Also noteworthy are the many (automated) integrations with external parties among which the police, the european visa system (EUVIS) and the immigration service (IND). An approved application would result in a sticker printed on a value document, on the locations at the Ministry’s posts, and all registration of those documents.
Tasks:

  • Testing

  • Test Automation (BDD, Java, Javascript, Typescript, Codecept, Cucumber, Cypress)

  • Chain Testing

  • Frontend coding (Bug fixing, minor research tasks)

  • Containerization (setting up local environment)

  • Pipelines (minor maintenance)

Results: In this project I worked mostly on giving the test automation a new impulse. I did this by proposing and executing improvements in the frontend end-to-end tests (using Codecept, and later Cypress), as well as setting up initial test strategy for api tests in Java for the backend. The latter was consequently adopted by the backend developers who wrote the most test for it after that. Together with my colleagues (testers and frontend Engineers) we collaborated on maintaining and extending the end-to-end suite.
Another task, at the beginning was to coordinate efforts for the chain testing together with external parties such as the Police and the Ministry of Justice. This was later continued by another colleague. After gaining knowledge of the system and it’s complexities I also actively participated in sessions for business analyses and supporting the Product Owners. And where I could I would help out doing some DevOps tasks such as setting up the Docker Compose for local development, or implementing ways to interact with Azure to remove hardcoded test credentials etc.

Client: Rabobank

Period: April 2017 - December 2019
Role(s): Test - Test Automation - DevOps - Scrum Master
Knowledge: Agile, Scrum, Devops, Test Automation, Browser Testing, Splunk, Java, Javascript, Backend Testing
Context: Our team was responsable for creating and maintaining applications that serve the marketing teams by enabling them to fully personalize the messages to Rabobanks customers.
Tasks:

  • Test - Test Automation - DevOps - Scrum Master

Results: The Rabobank is an environment in which changes are made rapidly, both in the way of working and in the complex technical landscape. Our team had the responsibility for maintaining a few legacy systems for which I wrote automated regression suite. The framework I wrote for that was then also adopted by other colleagues in our team and in outside teams. Besides this we worked on new software that was deployed to PCF on Azure as per the new architecture standards. It was my task in the team to setup all the dashboards and alerting for our services using Splunk. Critical thinking and assertive communication was important to prevent errors from happening before even starting the build. And for about one year I also had the role of Scrum Master in the team.

Client: Province of Gelderland

Period: April 2017 - April 2019
Role(s): Test - Test Automation
Knowledge: Agile, Scrum, Test Automation, Chain Testing, Acceptance Testing, Migrations (Open Text and Sharepoint), Java, Selenium, Python
Context: As a tester for the Province Gelderland I have been part of many different projects; Migrating Open Text (Enterprise information management) and Sharepoint(2010 to 2013), as well as development of a new application for the subsidy applications.
Tasks:

  • Test

  • Agile Team Member

  • Oversee and help out with Acceptance Tests

Results: Within the province many different processes happen simultaneously. Professionalizing the testing in itself, maintaining legacy systems, development of new systems and transitioning into a directive organisation where all IT is outsourced. This calls for strict quality control. The challenge was to be part of many different projects, testing different systems and at the same time gain in depth knowledge of these systems, especially the legacy systems where information and documentation was sparse. I was part of both the testing efforts and of the general effort to improve the quality of the test process where we looked at roles and responsibilities, management of environments, planning, documentation and opportunities for test automation. Another important part of my work was to get the officers of the province together with the build teams and work towards a shared understanding.

Client: Homefashion Group

Period: September 2016 - February 2017
Role(s): Test
Knowledge: Jira, Trac, Youtrack, XML, Java, Selenium, Python, Exploratory Testing
Context: In the hectic environment of a retailer that wants and must modernize it’s systems we maintained legacy systems and build new systems (web shop)
Tasks:

  • Test

  • Test Automation

  • Chain Testing

  • SOAP service Testing

Results: In the Homefashion Group I was part of a team of three testers. Together we were responsible for testing the web shop that was being rebuild, as well as new web shops that were being added. Apart from this it was my personal responsibility to test the legacy ERP systems (Progress). This was especially challenging because the system was constantly being worked on to support ever changing product lines, delivery channels and transport ways. I twas not easy to come to understand the system since it was complex, there was no documentation and full of temporary fixes and technical debt. For the web shops I built a small test framework in Java and Selenium which we used to write our tests together with one of my colleagues.

Client: Exact

Period: July 2016 - August 2016
Role(s): Test
Knowledge: Testing, Test Automation, Team Foundation Server, C#, Selenium
Context: I worked as Scrum Team member in the Accounting Core team of Exact Online
Tasks:

  • Test

  • Test Automation

  • Regression Testing

Results: Exact Online provides customers with software for there accounting. Withing this project I was part of the Accounting Core team which was responsible for some of the core functionalities. It requires a detailed scrutiny and critical insights to deliver the required quality up to standards. I contributed in the form of Exploratory Testing as well as writing automated regression tests within the custom framework, as well as in C# with selenium. Exact Online was at that moment moving towards using the latter for all the tests. Apart from this I was an active part in improving the Scrum process for instance by making User stories and Acceptance criteria more explicit.