import React from 'react';
import Experience from '../component/Experience';
import {TECHNOLOGIES, YEARS_IN_IRELAND} from '../constants';
import Projects from './Projects';
const CV = () => (<div className="cv">
<div className="cv-experience">
<h3>Work Experience</h3>
<Experience
title="Senior Software Engineer"
company="Beeline"
logo="beeline.webp"
type="Full-time"
location="Dublin, Ireland (Remote)"
start={new Date(2024, 8, 9)}
></Experience>
<Experience
title="Senior Software Engineer"
company="Rapid7"
logo="rapid7.webp"
type="Full-time"
location="Dublin, Ireland (Remote)"
start={new Date(2022, 1, 10)}
end={new Date(2023, 9, 2)}
>
<p>As an extension of my experience as a <em>Software Engineer II</em> working for Rapid7
(see below), during my role as a Senior Software Engineer I have taken on the role of
team lead and Scrum Master on the sprint team responsible for account management, RBAC
and Platform integration within the company.</p>
<p>One of the big projects that I have taken on during my time in this role is for a
new authentication service. As the lead of this project, my responsibilities include
the spec, design, and leading the implementation of this service, discussing with and
obtaining buy-in from stakeholders, and splitting the work up into highly parallelisable
tasks for the team to work on with clearly defined feature milestones for the project.</p>
</Experience>
<Experience
title="Software Engineer II"
company="Rapid7"
logo="rapid7.webp"
type="Full-time"
location="Dublin, Ireland"
start={new Date(2017, 6, 24)}
end={new Date(2022, 1, 10)}
promoted={true}
technologies={[
TECHNOLOGIES.JAVA,
TECHNOLOGIES.PYTHON,
TECHNOLOGIES.DOCKER,
TECHNOLOGIES.VERTX,
TECHNOLOGIES.DROPWIZARD,
TECHNOLOGIES.CASSANDRA]}
>
<p>During my time at Rapid7, I have worked extensive on the company's log search
product (InsightOps), including the log search engine, alerting, REST APIs and
integrations with several AWS services.</p>
<p>My biggest project during my role as an Software Engineer II has been the development
of an RBAC <span className="abbrev">(Role-Based Access Control)</span> Platform
service. I was heavily involved in this project from the initial design and
implementation stages all the way through to customer migrations, over a period
of 3 years, with leadership and ownership over the project being transfered
over to me one year into the project. Aside from the technical challenges,
this involved coordination across teams and offices to align integration with
and migration to this new service.</p>
<p>I have also led the design and implementation of the product's AWS CloudTrail
integration, and successfully launched the service for customers.</p>
<p>During my time at Rapid7 I have also been extensively involved in:</p>
<ul>
<li>Development of functionality, fixing of issues, and the handling of third-party
pull requests on Github on the company's ingestion libraries. These libraries
allow customers to send their log data into the log search engine, and are
written in a variety of languages including Java, Python, Javascript, Ruby, PHP
and C#.</li>
<li>Automation of developer workflows and migration of problematic acceptance
testing and build setups to a Docker container-based approach.</li>
</ul>
<p>Using mostly Java and Python, employing TDD/BDD development practices.</p>
</Experience>
<Experience
title="PHP Developer & Sysadmin"
company="Webtown"
logo="webtown.webp"
type="Full-time"
location="Letterkenny, Ireland"
start={new Date(2016, 8, 3)}
end={new Date(2017, 6, 14)}
technologies={[
TECHNOLOGIES.PHP,
TECHNOLOGIES.LARAVEL,
TECHNOLOGIES.WORDPRESS,
TECHNOLOGIES.WOOCOMMERCE,
TECHNOLOGIES.CODEIGNITER,
TECHNOLOGIES.MARIADB,
TECHNOLOGIES.DEBIAN,
TECHNOLOGIES.CENTOS]}
>
<p>Development of a custom-built management and monitoring solution used to perform
common maintenance tasks on and monitor the health and performance of 300+ customer
websites which were each built with a variety of different CMS' and frameworks, and
development of plugins for each of the used CMS' and frameworks to report back to
and allow management by the central management and monitoring system in a secure
manner.</p>
<p>Other responsibilities included:</p>
<ul>
<li>Development of custom CMS functionality, either as a custom-built solution or as
a set of plugins for existing CMS' such as Wordpress and WooCommerce</li>
<li>Developing functionality for and fixing issues with the company's pre-existing
classified ads system, which was built with the CodeIgniter PHP framework</li>
<li>Search engine optimisation (SEO) on customers' websites</li>
<li>Setup and maintenance of several different Linux servers running Debian,
Ubuntu Server and CentOS. Most of these servers were running a standard LAMP <
span className="abbrev">(Linux + Apache + MariaDB + PHP)</span> stack,
with others running custom-built applications, internal tooling, and e-mail
services.</li>
</ul>
</Experience>
<Experience
title="Node.js Developer"
company="CloudRanger"
logo="cloudranger.webp"
type="Full-time, college internship"
location="Letterkenny, Ireland"
start={new Date(2016, 2, 1)}
end={new Date(2017, 5, 1)}
technologies={[
TECHNOLOGIES.NODE_JS,
TECHNOLOGIES.EXPRESS_JS,
TECHNOLOGIES.DYNAMODB]}
>
<p>Development of an API service using Node.js, Express, and DynamoDB as the database.
This API was consumed by an AngularJS frontend as well as a Scala agent responsible
for interfacing with external services and hardware devices, and (aside from the
database) used Amazon S3 as a storage backend.</p>
<p><small>CloudRanger later got acquired by Druva.</small></p>
</Experience>
<Experience
title="Web Developer"
type="Part-time, during high school & college"
company="Heuvel-Folie-Serres"
logo="heuvel-folie-serres.webp"
location="Sint-Lenaarts, Belgium"
start={new Date(2010, 7, 1)}
end={new Date(2015, 11, 1)}
technologies={[
TECHNOLOGIES.PHP,
TECHNOLOGIES.LARAVEL,
TECHNOLOGIES.MARIADB]}
>
<p>Development of several websites for the company, with custom-built CMS systems where
needed.</p>
<p>Functionality includes ability for employees of the company to manage websites’
contents including uploading pictures, after which pictures will be processed by
the CMS (resize, compress, apply watermark, …).</p>
<p>Every website functions as a standalone web application, but limited (as desired)
integration between websites was implemented.</p>
<p>This was my part-time job throughout my high school and college education.</p>
</Experience>
</div>
<div className="cv-projects">
<h3>Personal Projects</h3>
<Projects />
</div>
<div className="cv-volunteering">
<h3>Volunteering Experience</h3>
<Experience
title="System administrator & developer"
company="Student Information Network (SIN)"
location="Geel, Belgium"
start={new Date(2013, 8, 1)}
end={new Date(2016, 7, 31)}
>
<p>Volunteering as a system administrator and web developer for a student organisation
offering web hosting, tech support, and other web services (including cloud storage)
to students of the college.</p>
<p>Because of my volunteering I learnt a lot about Linux system administration and
virtualisation as well as gained more experience in PHP development and integration
with other services.</p>
</Experience>
<Experience
title="Coach"
company="CoderDojo Belgium"
location="Geel, Belgium"
start={new Date(2015, 0, 1)}
end={new Date(2016, 5, 1)}
>
<p>Guiding children between the ages of 7 and 18 years old in learning basic programming
principles in a playful environment.</p>
<p>The CoderDojo for which I volunteered offered a multitude of trajectories for the
kids to follow, including Scratch, Python, Arduino, HTML/CSS and C#.</p>
</Experience>
<Experience
title="Mentor"
company="CoderDojo Letterkenny"
location="Letterkenny, Ireland"
start={new Date(2015, 8, 1)}
end={new Date(2016, 1, 1)}
>
<p>Guiding children between the ages of 7 and 18 years old in learning basic programming
principles in a playful environment.</p>
<p>This CoderDojo mainly focused on teaching kids basic programming logic with
Scratch.</p>
</Experience>
<Experience
title="Mentor"
company="Teen-Turn"
location="Dublin, Ireland"
start={new Date(2019, 8, 1)}
end={new Date(2019, 11, 1)}
>
<p>Teen-Turn aims to provide teen girls the opportunity to gain hands-on technology
experience so that they can visualise themselves in those kinds of careers and
therefore make third level course choices accordingly.</p>
<p>Winner <em>EU Digital Impact Organisation of the Year</em></p>
</Experience>
</div>
<div className="cv-languages">
<h3>(Non-Programming) Languages</h3>
<ul>
<li>Dutch: Native Speaker</li>
<li>English: Bilingual Proficiency
(<em title="Common European Framework of Reference for Languages">CEFR</em
> level <em title="This is the highest attainable level">C2</em>)</li>
<li>French: Notions</li>
</ul>
</div>
<div className="cv-education">
<h3>Education</h3>
<Experience
title="Applied Computing"
company="Letterkenny Institute of Technology"
location="Letterkenny, Ireland"
start={new Date(2015, 8, 1)}
end={new Date(2016, 1, 1)}
>
<ul>
<li>"Semester" abroad (that was {YEARS_IN_IRELAND} years ago, so... a very long
semester?)</li>
<li>4th year Honours Degree Applied Computing</li>
<li>Special Purpose Award in Social/Civic Engagement</li>
</ul>
</Experience>
<Experience
title="Applied Computer Science"
company="Thomas More University of Applied Sciences"
location="Geel, Belgium"
start={new Date(2013, 8, 1)}
end={new Date(2016, 5, 1)}
>
<ul>
<li>Bachelor Applied Computer Science with a semester abroad at Letterkenny
Institute of Technology and an internship abroad at CloudRanger (Druva).</li>
</ul>
</Experience>
<Experience
title="Industrial Sciences & Applied Computing"
company="SO-Zenit"
location="Turnhout, Belgium"
start={new Date(2007, 8, 1)}
end={new Date(2013, 5, 1)}
>
<ul>
<li>High school education</li>
</ul>
</Experience>
</div>
</div>);
export default CV;