@@ 1,378 1,485 @@
<html>
-
-<head>
+ <head>
<title>tom carrio</title>
- <link rel="stylesheet" href="assets/css/index.css">
+ <link rel="stylesheet" href="assets/css/index.css" />
<script src="assets/js/index.js"></script>
<script src="https://unpkg.com/feather-icons"></script>
-</head>
+ </head>
-<body>
+ <body>
<header>
- <div>
- <div id="user-icon">
- <img src="assets/images/avatar.png">
- </div>
- <div id="hello">
- <span class="me">I am Tom Carrio,</span>
- <span>a software engineer </span>
- <br />
- <span>with a passion for</span>
- <span id="interests">Open Source <3</span>
- </div>
- <div id="contact-links">
- <a href="https://git.sr.ht/~tcarrio"><i data-feather="circle"></i></a>
- <a href="https://github.com/tcarrio"><i data-feather="github"></i></a>
- <a href="https://gitlab.com/tcarrio"><i data-feather="gitlab"></i></a>
- <a href="https://www.linkedin.com/in/tomcarrio/"><i data-feather="linkedin"></i></a>
- <a href="mailto:tom@carrio.dev"><i data-feather="mail"></i></a>
- </div>
+ <div>
+ <div id="user-icon">
+ <img src="assets/images/avatar.png" />
+ </div>
+ <div id="hello">
+ <span class="me">I am Tom Carrio,</span>
+ <span>a software engineer </span>
+ <br />
+ <span>with a passion for</span>
+ <span id="interests">Open Source <3</span>
+ </div>
+ <div id="contact-links">
+ <a href="https://git.sr.ht/~tcarrio"><i data-feather="circle"></i></a>
+ <a href="https://github.com/tcarrio"><i data-feather="github"></i></a>
+ <a href="https://gitlab.com/tcarrio"><i data-feather="gitlab"></i></a>
+ <a href="https://www.linkedin.com/in/tomcarrio/"
+ ><i data-feather="linkedin"></i
+ ></a>
+ <a href="mailto:tom@carrio.dev"><i data-feather="mail"></i></a>
</div>
+ </div>
</header>
<div id="content">
- <section id="introduction">
- <code>::Hello, World::</code>
- <p>Architecting, designing, and implementing software systems is a strong professional and personal interest
- of mine. Whether I'm working on cloud, containers, systems; I love to dive into the technical deep-end
- of various areas of the tech space.</p>
+ <section id="introduction">
+ <code>::Hello, World::</code>
+ <p>
+ Architecting, designing, and implementing software systems is a strong
+ professional and personal interest of mine. Whether I'm working on
+ cloud, containers, systems; I love to dive into the technical deep-end
+ of various areas of the tech space.
+ </p>
- <p>My experience engineering solutions spans the full stack: from system and database administration, to
- microservice development, to dev-ops and continuous delivery, to single-page applications, to container
- orchestration, to mobile apps, to automated infrastructure management. My focus lately has been on
- end-to-end holistic solutions engineering, and embracing every facet of the tech stack.</p>
+ <p>
+ My experience engineering solutions spans the full stack: from system
+ and database administration, to microservice development, to dev-ops
+ and continuous delivery, to single-page applications, to container
+ orchestration, to mobile apps, to automated infrastructure management.
+ My focus lately has been on end-to-end holistic solutions engineering,
+ and embracing every facet of the tech stack.
+ </p>
- <code>::System and Database Administration::</code>
- <p>Through my experience as a system and database administrator, I found an area I truly loved. From 2013 I
- worked with database systems including Oracle DB and MySQL, and maintained virtual machines across
- multiple server racks with VMWare ESXi to provision Windows Server and RHEL machines. There were various
- areas of my role that I found could prove more effectively managed by developing automated maintenance
- strategies; I touched down on automated backups and log monitoring for internal services as my first
- step towards development. This is where my interests in software engineering really grew.</p>
- <p>While I maintained my position as a system adminstrator and database administrator, I sought out and
- implemented automation tooling around common tasks to reduce toil. I worked on internal services that
- would allow for easier work on the intranet, be it servers, hardware devices, and more. These include,
- but are not limited to, Python management services and backends, Active Directory hooks in Go, and web
- clients in Javascript. The road unfolded and I enrolled in Computer Science at Oakland University to
- continue my journey.</p>
+ <code>::System and Database Administration::</code>
+ <p>
+ Through my experience as a system and database administrator, I found
+ an area I truly loved. From 2013 I worked with database systems
+ including Oracle DB and MySQL, and maintained virtual machines across
+ multiple server racks with VMWare ESXi to provision Windows Server and
+ RHEL machines. There were various areas of my role that I found could
+ prove more effectively managed by developing automated maintenance
+ strategies; I touched down on automated backups and log monitoring for
+ internal services as my first step towards development. This is where
+ my interests in software engineering really grew.
+ </p>
+ <p>
+ While I maintained my position as a system adminstrator and database
+ administrator, I sought out and implemented automation tooling around
+ common tasks to reduce toil. I worked on internal services that would
+ allow for easier work on the intranet, be it servers, hardware
+ devices, and more. These include, but are not limited to, Python
+ management services and backends, Active Directory hooks in Go, and
+ web clients in Javascript. The road unfolded and I enrolled in
+ Computer Science at Oakland University to continue my journey.
+ </p>
- <code>::Open Source::</code>
- <p>I have long been a lover of the open source mantra and free software technologies such as Linux, GNU, and
- Git. Prior to my work as a system and database administrator, I dug into Linux for my personal devices.
- Experimenting with various tools and technologies is a long-time hobby of mine, and I tried different
- server operating systems such as CentOS, Debian, and Ubuntu. I started off with Linux on my old shabby
- laptop with Fedora, and tried out a number of distributions over the years. By the way, I run Arch.</p>
+ <code>::Open Source::</code>
+ <p>
+ I have long been a lover of the open source mantra and free software
+ technologies such as Linux, GNU, and Git. Prior to my work as a system
+ and database administrator, I dug into Linux for my personal devices.
+ Experimenting with various tools and technologies is a long-time hobby
+ of mine, and I tried different server operating systems such as
+ CentOS, Debian, and Ubuntu. I started off with Linux on my old shabby
+ laptop with Fedora, and tried out a number of distributions over the
+ years. By the way, I run Arch.
+ </p>
- <code>::Computer Science::</code>
- <p>Through-out my schooling I have studied computer theory, software engineering, networking, operating
- systems, programming languages, and more. The curriculum alone was never really enough, and I spent time
- outside of school learning about various technologies like message queues, distributed systems, and
- containerization technologies like Docker. The premise of a kernel-level feature like cgroups providing
- strong mechanisms for isolated process environments was fascinating to me, and I found another interest
- then: DevOps. Having already worked for years as a system administrator and understanding the areas
- where automating functionality was hugely beneficial, I focused projects on more software around these
- practices. I contributed to open source software around version source control, and built out complete
- DevOps pipeline solutions implemented with distributed containerized systems. I provided a similar
- solution at my work to deliver a more up-to-date service for our development team.</p>
+ <code>::Computer Science::</code>
+ <p>
+ Through-out my schooling I have studied computer theory, software
+ engineering, networking, operating systems, programming languages, and
+ more. The curriculum alone was never really enough, and I spent time
+ outside of school learning about various technologies like message
+ queues, distributed systems, and containerization technologies like
+ Docker. The premise of a kernel-level feature like cgroups providing
+ strong mechanisms for isolated process environments was fascinating to
+ me, and I found another interest then: DevOps. Having already worked
+ for years as a system administrator and understanding the areas where
+ automating functionality was hugely beneficial, I focused projects on
+ more software around these practices. I contributed to open source
+ software around version source control, and built out complete DevOps
+ pipeline solutions implemented with distributed containerized systems.
+ I provided a similar solution at my work to deliver a more up-to-date
+ service for our development team.
+ </p>
- <code>::Software Engineering::</code>
- <p>Eventually I moved into a software engineering role, and joined Ally Financial in 2017. During my time
- there I worked on several projects. My first work was a project undergoing a migration from mainframe,
- where we envisioned a complete re-architecture of our central mainframe program into a massive series of
- microservices, batch operations, message queues, and COTS services. I designed security software for
- compliance with the Sarbanes-Oxley Act, developed data pipelines with DataStage, and engineered various
- utility services to assist our business analysts with requirements. In 2018 I later joined on a legacy
- application, working with J2EE and Struts with deployements to mainframe. I worked on quarterly releases
- and helped provide insight into automation technology and future steps for our digital transformation
- roadmap. Later on in 2018, I moved on to a project deploying to the OpenShift containerization platform,
- developing services that provided massive parallel operations and data processing. I worked with Spring
- Boot microservices with Redis as a cache for MapReduce operations. I also encorporated log monitoring
- with Splunk and AppDynamics for application performance monitoring. I was requested to join another team
- end-of-year 2018 and began work on my last project at Ally. I worked on Spring Boot microservices with
- an Angular front-end. I worked across the entire stack, developing Jenkins pipelines for continuous
- integration and delivery, implementing back-end services in Java, engineered our service authentication
- for our Docker containers, developed Helm templates for our OpenShift deployments, and architecting our
- performance-first lazily-loaded Angular front-end.</p>
+ <code>::Software Engineering::</code>
+ <p>
+ Eventually I moved into a software engineering role, and joined Ally
+ Financial in 2017. During my time there I worked on several projects.
+ My first work was a project undergoing a migration from mainframe,
+ where we envisioned a complete re-architecture of our central
+ mainframe program into a massive series of microservices, batch
+ operations, message queues, and COTS services. I designed security
+ software for compliance with the Sarbanes-Oxley Act, developed data
+ pipelines with DataStage, and engineered various utility services to
+ assist our business analysts with requirements. In 2018 I later joined
+ on a legacy application, working with J2EE and Struts with
+ deployements to mainframe. I worked on quarterly releases and helped
+ provide insight into automation technology and future steps for our
+ digital transformation roadmap. Later on in 2018, I moved on to a
+ project deploying to the OpenShift containerization platform,
+ developing services that provided massive parallel operations and data
+ processing. I worked with Spring Boot microservices with Redis as a
+ cache for MapReduce operations. I also encorporated log monitoring
+ with Splunk and AppDynamics for application performance monitoring. I
+ was requested to join another team end-of-year 2018 and began work on
+ my last project at Ally. I worked on Spring Boot microservices with an
+ Angular front-end. I worked across the entire stack, developing
+ Jenkins pipelines for continuous integration and delivery,
+ implementing back-end services in Java, engineered our service
+ authentication for our Docker containers, developed Helm templates for
+ our OpenShift deployments, and architecting our performance-first
+ lazily-loaded Angular front-end.
+ </p>
- <code>::Full Stack::</code>
- <p>I eventually left Ally in 2019 to join Dynatrace, a company at the forefront of distributed tracing and
- application performance monitoring. Today, their solution provides users actionable insights into their
- production environments across mainframes, back-end, front-end, mobile apps, websites... My initial role
- at the company was on the Davis Assistant team, which provides a virtual assistant that interfaces with
- customers via a web application, voice integrations with Google Assistant and Alexa, and multi-user
- integrations with Slack and Microsoft Teams. My work there has included several projects I have been
- fond of, such as:</p>
+ <code>::Full Stack::</code>
+ <p>
+ I eventually left Ally in 2019 to join Dynatrace, a company at the
+ forefront of distributed tracing and application performance
+ monitoring. Today, their solution provides users actionable insights
+ into their production environments across mainframes, back-end,
+ front-end, mobile apps, websites... My initial role at the company was
+ on the Davis Assistant team, which provides a virtual assistant that
+ interfaces with customers via a web application, voice integrations
+ with Google Assistant and Alexa, and multi-user integrations with
+ Slack and Microsoft Teams. My work there has included several projects
+ I have been fond of, such as:
+ </p>
- <ul>
- <li>Re-architecting the notification pipeline to provide reactice, robust, and resilient notification
- deliveries for handling various error scenarios</li>
- <li>Engineering an extensive pipeline to automatically ensure code complies with our unit tests, builds
- and minimizes bundles for efficient service deployments</li>
- <li>Implementing the Microsoft Teams third-party integration for direct and multi-user messaging with
- our natural language processing back-end and Teams native tabs with React</li>
- <li>Created the Dialogflow-as-Code project which provides declarative management of Dialogflow resources
- on the Google Cloud Platform to maximize our teams velocity of NLP enhancements, provide static type
- safety to our internal NLP resources, and automate deployments through environments in my continuous
- delivery pipeline</li>
- </ul>
+ <ul>
+ <li>
+ Re-architecting the notification pipeline to provide reactice,
+ robust, and resilient notification deliveries for handling various
+ error scenarios
+ </li>
+ <li>
+ Engineering an extensive pipeline to automatically ensure code
+ complies with our unit tests, builds and minimizes bundles for
+ efficient service deployments
+ </li>
+ <li>
+ Implementing the Microsoft Teams third-party integration for direct
+ and multi-user messaging with our natural language processing
+ back-end and Teams native tabs with React
+ </li>
+ <li>
+ Created the Dialogflow-as-Code project which provides declarative
+ management of Dialogflow resources on the Google Cloud Platform to
+ maximize our teams velocity of NLP enhancements, provide static type
+ safety to our internal NLP resources, and automate deployments
+ through environments in my continuous delivery pipeline
+ </li>
+ </ul>
- <code>::Teamwork::</code>
- <p>I love to dive deep in whatever area I work in, whether I am designing Docker containers or writing web
- applications, but I always provide feedback and help whenever my peers are in need. I also serve as my
- teams Scrum Master to faciliate meetings, resolve task estimates, and ensure the team grows together
- while working to enhancing our sprint velocity and stability.
- </p>
+ <code>::Teamwork::</code>
+ <p>
+ I love to dive deep in whatever area I work in, whether I am designing
+ Docker containers or writing web applications, but I always provide
+ feedback and help whenever my peers are in need. I also serve as my
+ teams Scrum Master to faciliate meetings, resolve task estimates, and
+ ensure the team grows together while working to enhancing our sprint
+ velocity and stability.
+ </p>
- <code>::So, Me::</code>
- <p>I am extremely passionate in engineering solutions around complex problems, automating redundant
- operations, writing code, bringing users great experiences, reducing toil, and implementing practices
- that keeps my phone from buzzing in the late hours of the night.</p>
- </section>
- <section id="contributions">
- <div class="mono">/** projects and contributions */</div>
- <div>
- <a href="https://github.com/hashicorp/packer">
- <div class="org"><p>hashicorp/</p></div>
- <div class="project"><p>packer</p></div>
- <div class="stars" data-github-project="hashicorp/packer"></div>
- <div class="lang go"><p>Go</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">Packer is a tool for creating identical machine images for multiple platforms from
- a single source configuration</div>
- </a>
- </div>
- <div>
- <a href="https://github.com/Dynatrace/serverless-oneagent">
- <div class="org"><p>dynatrace/</p></div>
- <div class="project"><p>serverless-oneagent</p></div>
- <div class="stars" data-github-project="Dynatrace/serverless-oneagent"></div>
- <div class="lang ts"><p>TypeScript</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">Serverless Framework plugin to include Dynatrace OneAgent in serverless
- deployments</div>
- </a>
- </div>
- <div>
- <a href="https://github.com/gogs/gogs">
- <div class="org"><p>gogs/</p></div>
- <div class="project"><p>gogs</p></div>
- <div class="stars" data-github-project="gogs/gogs"></div>
- <div class="lang go"><p>Go</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">Gogs is a painless self-hosted Git service</div>
- </a>
- </div>
- <div>
- <a href="https://git.sr.ht/~tcarrio/dialogflow-as-code">
- <div class="org"><p>~tcarrio/</p></div>
- <div class="project"><p>dialogflow-as-code</p></div>
- <div class="stars" data-srht-project="~tcarrio/dialogflow-as-code"></div>
- <div class="lang ts"><p>TypeScript</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">Declarative management of Dialogflow resources in Google Cloud</div>
- </a>
- </div>
- <div>
- <a href="https://github.com/github/hub">
- <div class="org"><p>github/</p></div>
- <div class="project"><p>hub</p></div>
- <div class="stars" data-github-project="github/hub"></div>
- <div class="lang go"><p>Go</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">A command-line tool that makes git easier to use with GitHub</div>
- </a>
- </div>
- <div>
- <a href="https://www.npmjs.com/package/@dynatrace/api-client">
- <div class="org"><p>@dynatrace/</p></div>
- <div class="project"><p>api-client</p></div>
- <div class="stars" data-npm-project="@dynatrace/api-client"></div>
- <div class="lang ts"><p>TypeScript</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">Module for interacting with the Dynatrace API including caching support</div>
- </a>
- </div>
- <div>
- <a href="https://github.com/go-gitea/gitea">
- <div class="org"><p>go-gitea/</p></div>
- <div class="project"><p>gitea</p></div>
- <div class="stars" data-github-project="go-gitea/gitea"></div>
- <div class="lang go"><p>Go</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">Git with a cup of tea, painless self-hosted git service</div>
- </a>
- </div>
- <div>
- <a href="https://github.com/DefinitelyTyped/DefinitelyTyped">
- <div class="org"><p>DefinitelyTyped/</p></div>
- <div class="project"><p>DefinitelyTyped</p></div>
- <div class="stars" data-github-project="DefinitelyTyped/DefinitelyTyped"></div>
- <div class="lang ts"><p>TypeScript</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">The repository for high quality TypeScript type definitions</div>
- </a>
- </div>
- <div>
- <a href="https://github.com/lutris/lutris">
- <div class="org"><p>lutris/</p></div>
- <div class="project"><p>lutris</p></div>
- <div class="stars" data-github-project="lutris/lutris"></div>
- <div class="lang py"><p>Python</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">Open Source gaming platform for GNU/Linux</div>
- </a>
- </div>
- <div>
- <a href="https://hub.docker.com/r/tcarrio/dynamodb-local-debugging">
- <div class="org"><p>tcarrio/</p></div>
- <div class="project"><p>dynamodb-local-debugging</p></div>
- <div class="stars" data-docker-project="tcarrio/dynamodb-local-debugging"></div>
- <div class="lang dk"><p>Docker</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">DynamoDB Local container ready for development with debug logging</div>
- </a>
- </div>
- <div>
- <a href="https://github.com/roddhjav/pass-import">
- <div class="org"><p>roddhjav/</p></div>
- <div class="project"><p>pass-import</p></div>
- <div class="stars" data-github-project="roddhjav/pass-import"></div>
- <div class="lang py"><p>Python</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">A pass extension for importing data from most of the existing password manager
- </div>
- </a>
- </div>
- <div>
- <a href="https://github.com/tcarrio/dddd">
- <div class="org"><p>tcarrio/</p></div>
- <div class="project"><p>dddd</p></div>
- <div class="stars" data-github-project="tcarrio/dddd"></div>
- <div class="lang go"><p>Go</p></div>
- <div class="expand"><i data-feather="more-horizontal"></i></div>
- <div class="desc">Dynamic DNS for Cloudflare using DuckDuckGo's Answers API</div>
- </a>
- </div>
-
- </section>
- <section id="technologies">
- <div class="title">Technologies and Experience</div>
- <div>
- <p class="topic">Containers and Orchestration </p>
- <p class="entries">OpenShift, Docker, ECS, Compose, Kubernetes</p>
- </div>
- <div>
- <p class="topic">Programming Languages</p>
- <p class="entries">TypeScript, Java, Groovy, Go, Python</p>
- </div>
- <div>
- <p class="topic">Web Development</p>
- <p class="entries">Angular, Sass, Webpack, CSS3, HTML5</p>
- </div>
- <div>
- <p class="topic">Service Development</p>
- <p class="entries">Node.js, NestJS, Spring, REST, GraphQL</p>
- </div>
- <div>
- <p class="topic">Databases</p>
- <p class="entries">PostgreSQL, Oracle DB, MySQL, MongoDB</p>
- </div>
- <div>
- <p class="topic">Infrastructure and Networking</p>
- <p class="entries">Nginx, Etcd, Terraform, Packer, Packer, Ansible</p>
- </div>
- <div>
- <p class="topic">Message Queues, PubSub, and Stream Processing</p>
- <p class="entries">IBM MQ, SQS, Redis, Kafka</p>
- </div>
- <div>
- <p class="topic">Software Development Lifecycle and Source Control</p>
- <p class="entries">Scrum, Agile, Bitbucket, Git, GitHub, SVN</p>
- </div>
- <div>
- <p class="topic">Unit Testing</p>
- <p class="entries">Jest, Mockito, JUnit, Mocha</p>
- </div>
- <div>
- <p class="topic">Integration Testing</p>
- <p class="entries">Selenium, Cypress, Gherkin</p>
- </div>
- <div>
- <p class="topic">Continuous Integration, Delivery, Accessibility, and Security</p>
- <p class="entries">Jenkins, Blackduck, Drone, SonarQube, Lighthouse</p>
- </div>
- <div>
- <p class="topic">Observability and Monitoring</p>
- <p class="entries">Dynatrace, OpenTelemetry, Prometheus, Zipkin</p>
- </div>
- <div>
- <p class="topic">Logging</p>
- <p class="entries">Splunk, Log4j, Pino, CloudWatch</p>
- </div>
- <div>
- <p class="topic">Serverless</p>
- <p class="entries">Lambda, Serverless</p>
- </div>
- <div>
- <p class="topic">Data Processing</p>
- <p class="entries">IBM DataStage, Python, Hadoop</p>
- </div>
- </section>
+ <code>::So, Me::</code>
+ <p>
+ I am extremely passionate in engineering solutions around complex
+ problems, automating redundant operations, writing code, bringing
+ users great experiences, reducing toil, and implementing practices
+ that keeps my phone from buzzing in the late hours of the night.
+ </p>
+ </section>
+ <section id="contributions">
+ <div class="mono">/** projects and contributions */</div>
+ <div>
+ <a href="https://github.com/hashicorp/packer">
+ <div class="org"><p>hashicorp/</p></div>
+ <div class="project"><p>packer</p></div>
+ <div class="stars" data-github-project="hashicorp/packer"></div>
+ <div class="lang go"><p>Go</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">
+ Packer is a tool for creating identical machine images for
+ multiple platforms from a single source configuration
+ </div>
+ </a>
+ </div>
+ <div>
+ <a href="https://github.com/Dynatrace/serverless-oneagent">
+ <div class="org"><p>dynatrace/</p></div>
+ <div class="project"><p>serverless-oneagent</p></div>
+ <div
+ class="stars"
+ data-github-project="Dynatrace/serverless-oneagent"
+ ></div>
+ <div class="lang ts"><p>TypeScript</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">
+ Serverless Framework plugin to include Dynatrace OneAgent in
+ serverless deployments
+ </div>
+ </a>
+ </div>
+ <div>
+ <a href="https://github.com/gogs/gogs">
+ <div class="org"><p>gogs/</p></div>
+ <div class="project"><p>gogs</p></div>
+ <div class="stars" data-github-project="gogs/gogs"></div>
+ <div class="lang go"><p>Go</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">Gogs is a painless self-hosted Git service</div>
+ </a>
+ </div>
+ <div>
+ <a href="https://git.sr.ht/~tcarrio/dialogflow-as-code">
+ <div class="org"><p>~tcarrio/</p></div>
+ <div class="project"><p>dialogflow-as-code</p></div>
+ <div
+ class="stars"
+ data-srht-project="~tcarrio/dialogflow-as-code"
+ ></div>
+ <div class="lang ts"><p>TypeScript</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">
+ Declarative management of Dialogflow resources in Google Cloud
+ </div>
+ </a>
+ </div>
+ <div>
+ <a href="https://github.com/github/hub">
+ <div class="org"><p>github/</p></div>
+ <div class="project"><p>hub</p></div>
+ <div class="stars" data-github-project="github/hub"></div>
+ <div class="lang go"><p>Go</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">
+ A command-line tool that makes git easier to use with GitHub
+ </div>
+ </a>
+ </div>
+ <div>
+ <a href="https://www.npmjs.com/package/@dynatrace/api-client">
+ <div class="org"><p>@dynatrace/</p></div>
+ <div class="project"><p>api-client</p></div>
+ <div class="stars" data-npm-project="@dynatrace/api-client"></div>
+ <div class="lang ts"><p>TypeScript</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">
+ Module for interacting with the Dynatrace API including caching
+ support
+ </div>
+ </a>
+ </div>
+ <div>
+ <a href="https://github.com/go-gitea/gitea">
+ <div class="org"><p>go-gitea/</p></div>
+ <div class="project"><p>gitea</p></div>
+ <div class="stars" data-github-project="go-gitea/gitea"></div>
+ <div class="lang go"><p>Go</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">
+ Git with a cup of tea, painless self-hosted git service
+ </div>
+ </a>
+ </div>
+ <div>
+ <a href="https://github.com/DefinitelyTyped/DefinitelyTyped">
+ <div class="org"><p>DefinitelyTyped/</p></div>
+ <div class="project"><p>DefinitelyTyped</p></div>
+ <div
+ class="stars"
+ data-github-project="DefinitelyTyped/DefinitelyTyped"
+ ></div>
+ <div class="lang ts"><p>TypeScript</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">
+ The repository for high quality TypeScript type definitions
+ </div>
+ </a>
+ </div>
+ <div>
+ <a href="https://github.com/lutris/lutris">
+ <div class="org"><p>lutris/</p></div>
+ <div class="project"><p>lutris</p></div>
+ <div class="stars" data-github-project="lutris/lutris"></div>
+ <div class="lang py"><p>Python</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">Open Source gaming platform for GNU/Linux</div>
+ </a>
+ </div>
+ <div>
+ <a href="https://hub.docker.com/r/tcarrio/dynamodb-local-debugging">
+ <div class="org"><p>tcarrio/</p></div>
+ <div class="project"><p>dynamodb-local-debugging</p></div>
+ <div
+ class="stars"
+ data-docker-project="tcarrio/dynamodb-local-debugging"
+ ></div>
+ <div class="lang dk"><p>Docker</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">
+ DynamoDB Local container ready for development with debug logging
+ </div>
+ </a>
+ </div>
+ <div>
+ <a href="https://github.com/roddhjav/pass-import">
+ <div class="org"><p>roddhjav/</p></div>
+ <div class="project"><p>pass-import</p></div>
+ <div class="stars" data-github-project="roddhjav/pass-import"></div>
+ <div class="lang py"><p>Python</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">
+ A pass extension for importing data from most of the existing
+ password manager
+ </div>
+ </a>
+ </div>
+ <div>
+ <a href="https://github.com/tcarrio/dddd">
+ <div class="org"><p>tcarrio/</p></div>
+ <div class="project"><p>dddd</p></div>
+ <div class="stars" data-github-project="tcarrio/dddd"></div>
+ <div class="lang go"><p>Go</p></div>
+ <div class="expand"><i data-feather="more-horizontal"></i></div>
+ <div class="desc">
+ Dynamic DNS for Cloudflare using DuckDuckGo's Answers API
+ </div>
+ </a>
+ </div>
+ </section>
+ <section id="technologies">
+ <div class="title">Technologies and Experience</div>
+ <div>
+ <p class="topic">Containers and Orchestration</p>
+ <p class="entries">OpenShift, Docker, ECS, Compose, Kubernetes</p>
+ </div>
+ <div>
+ <p class="topic">Programming Languages</p>
+ <p class="entries">TypeScript, Java, Groovy, Go, Python</p>
+ </div>
+ <div>
+ <p class="topic">Web Development</p>
+ <p class="entries">Angular, Sass, Webpack, CSS3, HTML5</p>
+ </div>
+ <div>
+ <p class="topic">Service Development</p>
+ <p class="entries">Node.js, NestJS, Spring, REST, GraphQL</p>
+ </div>
+ <div>
+ <p class="topic">Databases</p>
+ <p class="entries">PostgreSQL, Oracle DB, MySQL, MongoDB</p>
+ </div>
+ <div>
+ <p class="topic">Infrastructure and Networking</p>
+ <p class="entries">Nginx, Etcd, Terraform, Packer, Packer, Ansible</p>
+ </div>
+ <div>
+ <p class="topic">Message Queues, PubSub, and Stream Processing</p>
+ <p class="entries">IBM MQ, SQS, Redis, Kafka</p>
+ </div>
+ <div>
+ <p class="topic">Software Development Lifecycle and Source Control</p>
+ <p class="entries">Scrum, Agile, Bitbucket, Git, GitHub, SVN</p>
+ </div>
+ <div>
+ <p class="topic">Unit Testing</p>
+ <p class="entries">Jest, Mockito, JUnit, Mocha</p>
+ </div>
+ <div>
+ <p class="topic">Integration Testing</p>
+ <p class="entries">Selenium, Cypress, Gherkin</p>
+ </div>
+ <div>
+ <p class="topic">
+ Continuous Integration, Delivery, Accessibility, and Security
+ </p>
+ <p class="entries">
+ Jenkins, Blackduck, Drone, SonarQube, Lighthouse
+ </p>
+ </div>
+ <div>
+ <p class="topic">Observability and Monitoring</p>
+ <p class="entries">Dynatrace, OpenTelemetry, Prometheus, Zipkin</p>
+ </div>
+ <div>
+ <p class="topic">Logging</p>
+ <p class="entries">Splunk, Log4j, Pino, CloudWatch</p>
+ </div>
+ <div>
+ <p class="topic">Serverless</p>
+ <p class="entries">Lambda, Serverless</p>
+ </div>
+ <div>
+ <p class="topic">Data Processing</p>
+ <p class="entries">IBM DataStage, Python, Hadoop</p>
+ </div>
+ </section>
</div>
<footer>
- <div class="footer-container">
- <div class="footer-row">
- <img src="assets/images/sourcehut-icon.png">
- <div class="row-message">
- <p>:: This page is built on <a href="https://sourcehut.org">Sourcehut</a> using the <a
- href="https://builds.sr.ht">build.sr.ht</a> pipeline system.</p>
- </div>
- </div>
+ <div class="footer-container">
+ <div class="footer-row">
+ <img src="assets/images/sourcehut-icon.png" />
+ <div class="row-message">
+ <p>
+ :: This page is built on
+ <a href="https://sourcehut.org">Sourcehut</a> using the
+ <a href="https://builds.sr.ht">build.sr.ht</a> pipeline system.
+ </p>
+ </div>
+ </div>
- <div class="footer-row">
- <img src="assets/images/netlify-icon.png">
- <div class="row-message">
- <p>:: This page is hosted on <a href="https://netlify.com">Netlify</a> with deployments using their
- <a href="https://github.com/netlify/cli">cli</a>.</p>
- </div>
- </div>
+ <div class="footer-row">
+ <img src="assets/images/netlify-icon.png" />
+ <div class="row-message">
+ <p>
+ :: This page is hosted on
+ <a href="https://netlify.com">Netlify</a> with deployments using
+ their <a href="https://github.com/netlify/cli">cli</a>.
+ </p>
+ </div>
+ </div>
- <div class="footer-row">
- <img src="assets/images/sourcehut-icon.png">
- <div class="row-message">
- <p>:: This website is open source and hosted on <a href="https://sourcehut.org">Sourcehut</a> at
- <a href="https://tom.carrio.dev">~tcarrio/tom.carrio.dev</a>.</p>
- </div>
- </div>
+ <div class="footer-row">
+ <img src="assets/images/sourcehut-icon.png" />
+ <div class="row-message">
+ <p>
+ :: This website is open source and hosted on
+ <a href="https://sourcehut.org">Sourcehut</a> at
+ <a href="https://tom.carrio.dev">~tcarrio/tom.carrio.dev</a>.
+ </p>
+ </div>
</div>
+ </div>
</footer>
<!-- Replace all icons -->
<script>
- feather.replace()
+ feather.replace();
- // For mobile clients, provide expansion functionality for project descriptions
- const hoverClass = "hovered";
- const bodyEl = document.querySelector("body");
- document.querySelectorAll("section#contributions>div>a").forEach((pl) => {
- const expandEl = pl.querySelector(".expand");
- const descEl = pl.querySelector(".desc");
+ // For mobile clients, provide expansion functionality for project descriptions
+ const hoverClass = "hovered";
+ const bodyEl = document.querySelector("body");
+ document.querySelectorAll("section#contributions>div>a").forEach((pl) => {
+ const expandEl = pl.querySelector(".expand");
+ const descEl = pl.querySelector(".desc");
- expandEl.addEventListener("click", (el) => {
- el.stopPropagation();
- el.preventDefault();
+ expandEl.addEventListener("click", (el) => {
+ el.stopPropagation();
+ el.preventDefault();
- if (descEl.classList.contains(hoverClass)) {
- descEl.classList.remove(hoverClass);
- } else {
- descEl.classList.add(hoverClass);
- }
- });
- bodyEl.addEventListener("click", () => {
- descEl.classList.remove(hoverClass);
- })
+ if (descEl.classList.contains(hoverClass)) {
+ descEl.classList.remove(hoverClass);
+ } else {
+ descEl.classList.add(hoverClass);
+ }
+ });
+ bodyEl.addEventListener("click", () => {
+ descEl.classList.remove(hoverClass);
});
+ });
</script>
-</body>
-
-</html>>
\ No newline at end of file
+ </body>
+</html>