M Makefile => Makefile +7 -5
@@ 1,19 1,18 @@
-proj_dir := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
SOUPAULT := soupault
-.DEFAULT_GOAL:= rebuild-staging
+local: prod-site local-web
prod-site:
$(SOUPAULT) --profile live
staging-site:
- $(SOUPAULT)
+ fish -c "time $(SOUPAULT)"
clean:
- rm -fr $(proj_dir)/build
+ rm -fr build
deploy:
- rsync -aq --delete build/ hristoast@hristoast:~/html/
+ echo rsync -aq --delete build/ hristoast@hristoast:~/html/
deploy-staging:
rsync -aq --delete build/ hristoast@hristoast:~/staging/
@@ 22,3 21,6 @@ deploy-staging:
rebuild: clean prod-site deploy
rebuild-staging: clean staging-site deploy-staging
+
+local-web:
+ python3 -m http.server -d build
M site/about.html => site/about.html +11 -0
@@ 65,6 65,17 @@
<li>For over 20 years and counting, <a href="http://jiihootabs.com/">JiiHoo Tabs</a> has been my go-to place for accurate, well-made NOFX tabs for guitar and bass. He does a few other bands - even trumpet parts too!</li>
</ul>
+<h2>Code Forges</h2>
+
+<p>Hacking here and there.</p>
+
+<ul>
+ <li><a href="https://codeberg.org/hristoast">Codeberg</a></li>
+ <li><a href="https://github.com/hristoast">GitHub</a></li>
+ <li><a href="https://gitlab.com/hristoast">GitLab</a></li>
+ <li><a href="https://git.sr.ht/~hristoast">Sourcehut</a></li>
+</ul>
+
<h2>Utoob channels I like</h2>
<ul>
D site/cv-resume.html => site/cv-resume.html +0 -3
@@ 1,3 0,0 @@
-<h3 id="title">My CV/Resume</h3>
-
-Please click <a href="/resume/">this link</a> to view my CV/Resume (PDF).
A site/cv-resume.html => site/cv-resume.html +1 -0
@@ 0,0 1,1 @@
+resume.html<
\ No newline at end of file
A site/resume.html => site/resume.html +238 -0
@@ 0,0 1,238 @@
+<h1 id="title">Resume: Hristos N. Triantafillou</h1>
+<p><a href="/resume/">Download in PDF format</a></p>
+<div id="toc"></div>
+
+<h2>Who Am I? What Do I Do?</h2>
+<ul>
+ <li>Senior DevOps, Build And Release Engineer</li>
+ <li>A passion for automation as well as testable and repeatable systems leveraging:
+ <ul>
+ <li>Terraform, including work with the AWS, Artifactory, and GitLab providers</li>
+ <li>Deployment tooling built upon Kubernetes and Docker Swarm</li>
+ <li>AWS infrastructure</li>
+ <li>Advanced Docker utilization, including multi-architecture images</li>
+ <li>Ansible for complete management of my personal fleet of servers</li>
+ </ul>
+ </li>
+ <li>Building and maintaining CI/CD systems and patterns
+ <ul>
+ <li>Jenkins CI – part of the DotCi team which built a yaml-based interface to jobs and leveraged Docker Swarm for build clusters</li>
+ <li>Buildbot – built a custom DSL for personal and private jobs</li>
+ <li>GitLab CI/CD – custom, extensible pipelines with a centralized backbone for an Enterprise CI/CD platform in AWS</li>
+ </ul>
+ </li>
+ <li>Over 15 years of UNIX system experience and knowledge, specializing in Linux systems</li>
+ <li>Extensive VCS experience; I’ve managed organization-wide installations of GitHub Enterprise as well as GitLab CI/CD systems</li>
+ <li>Application development with: Python, Golang, Javascript, Lua, and more</li>
+ <li>Application and script optimization
+ <ul>
+ <li>Game design demands highly optimized scripting in order to deliver the best performance to users</li>
+ <li>I try to develop software as if it’s going to be used on a decades-old machine</li>
+ </ul>
+ </li>
+ <li>Linux application deployment using the AppImage platform and Docker as a reproducible build environment</li>
+ <li>Game design and scripting, including embedded Lua with C++ and Godot’s GDScript</li>
+ <li>Build, manage, and maintain a popular Open Source software and community</li>
+</ul>
+
+<h2>Project Portfolio</h2>
+<ul>
+ <li>I have written open source applications that are hosted on several popular code forges:
+ <ul>
+ <li><a href="https://gitlab.com/hristoast/">GitLab</a></li>
+ <li><a href="https://git.sr.ht/~hristoast/">Sourcehut</a></li>
+ <li><a href="https://github.com/hristoast">GitHub</a></li>
+ </ul>
+ </li>
+ <li><a href="https://gitlab.com/modding-openmw">The Modding-OpenMW GitLab organization</a> is an open source project containing dozens of Lua scripts and other modifications for the OpenMW game engine
+ <ul>
+ <li>I’m developing a CI/CD system that is a powerful platform for experienced programmers and casual content creators alike to share their works <a href="https://stats.gitlab.modding-openmw.com/">with the world</a></li>
+ <li>This org is the home of <a href="https://modding-openmw.com/">Modding-OpenMW.com</a>, a website viewed by over 3 million users each year (started as a for fun project, now recognized <a href="https://stats.modding-openmw.com/">all over the world</a>)</li>
+ </ul>
+ </li>
+</ul>
+
+<h2>Work History</h2>
+
+<h3>November 2022-Present: Senior Build and Release Engineer, Availity</h3>
+<ul>
+ <li>Implemented a repeatable and scalable deployment for a self-hosted GitLab CI/CD platform using Terraform and AWS resources</li>
+ <li>Developed a modular, extensible Enterprise CI/CD system that heavily utilizes Docker and Terraform</li>
+ <li>Leveraged Artifactory for artifact storage and promotion</li>
+ <li>Created documentation-as-code workflows with D2lang</li>
+ <li>Hire, mentor and guide junior team members
+ <ul>
+ <li>Onboard them into our systems</li>
+ <li>Help them develop advanced skills</li>
+ </ul>
+ </li>
+</ul>
+
+<h3>October 2015-November 2022: Release and Production Tools, Groupon</h3>
+<ul>
+ <li>Developed an internal deployment tool
+ <ul>
+ <li>Automated various checks and gates for a smooth developer UX</li>
+ <li>Written with Golang</li>
+ <li>Ported the codebase backend from Docker Swarm to Kubernetes</li>
+ </ul>
+ </li>
+ <li>Built out a very high volume (10k+ jobs per day at its height) Jenkins CI system backed by Docker Swarm clusters for clean, repeatable build environments</li>
+ <li>Drove Ansible adoption on my team and in my organization in general</li>
+ <li>Owned tooling that were vital to the core workflow of every developer
+ <ul>
+ <li>GitHub Enterprise</li>
+ <li>Gitosis</li>
+ <li>Artifactory (across three geographical regions)</li>
+ </ul>
+ </li>
+</ul>
+
+<h3>October 2014-October 2015: Application and Developer Support, onShore Development</h3>
+<ul>
+ <li>Handled the deployment, upgrading, and general support of a complex asset management software written in Common Lisp with PostgreSQL</li>
+ <li>Turned a manual release and package process into an automated one with Python, Ansible, and Jira (as a source of truth for data about client installations)</li>
+ <li>Worked with the development team to troubleshoot customer issues in the field</li>
+</ul>
+
+<h3>January 2014-October 2014: Contract Application Development and IT Services</h3>
+<ul>
+ <li>Leveraged Django and related libraries to create complex web applications
+ <ul>
+ <li>E-commerce</li>
+ <li>Blog engine</li>
+ <li>Coaching services</li>
+ <li>User management systems</li>
+ <li>Inventory/Asset Control</li>
+ </ul>
+ </li>
+ <li>Application configuration and deployment via Ansible</li>
+ <li>Created custom .deb packages for application distribution as needed</li>
+</ul>
+
+<h3>March 2013-December 2013: NOC Manager & Infra Lead, Sleepy Giant Entertainment</h3>
+<ul>
+ <li>Created roadmaps for new and existing projects</li>
+ <li>Managed infrastructure teams</li>
+ <li>Guided DevOps engineers in their day to day tasks</li>
+ <li>Coordinated directly with clients to identify and meet their needs of the infrastructure department</li>
+ <li>Oversaw all infra department operations</li>
+ <li>Interviewed, hired, and managed engineers for the tier one support department</li>
+ <li>Built an onboarding process for new employees</li>
+ <li>Solidified and documented an off-boarding process for departing employees</li>
+ <li>Prepared NOC runbooks for each project
+ <ul>
+ <li>Outlined all relevant procedures including: DR, maintenance, load testing, and more</li>
+ </ul>
+ </li>
+ <li>Worked with project managers to gather details about each project
+ <ul>
+ <li>Organized and streamlined processes</li>
+ </ul>
+ </li>
+ <li>Created a 24x7 support schedule</li>
+ <li>Managed a team of 24x7 NOC support specialists</li>
+ <li>Built a dashboard system for reporting key metrics using Graphite, collectd, Kibana, and more</li>
+ <li>Developed config management using Chef
+ <ul>
+ <li>Wrote and tested various cookbooks</li>
+ <li>Worked with and supplemented community cookbooks</li>
+ </ul>
+ </li>
+</ul>
+
+<h3>April 2011-March 2013: IT Specialist, High Voltage Software</h3>
+<ul>
+ <li>Built workstation hardware (desktop PCs for designers, artists, and programmers)</li>
+ <li>Deployment of software installations
+ <ul>
+ <li>Autodesk, Adobe, Microsoft tooling</li>
+ </ul>
+ </li>
+ <li>Server setup and deployment
+ <ul>
+ <li>Samba, SVN, HTTP, FTP</li>
+ </ul>
+ </li>
+ <li>Devkit provisioning and inventorying</li>
+ <li>SVN workflow optimization</li>
+ <li>
+ <ul>
+ <li>Implemented various performance improvements for internal Subversion infrastructure</li>
+ </ul>
+ </li>
+ <li>Created a Python+Django-based inventory management system
+ <ul>
+ <li>Used to track and interact with our internal game library, hardware/dev kit inventory, and software licenses</li>
+ </ul>
+ </li>
+</ul>
+
+<h3>December 2009-April 2011: Server Provisioning and Support, WiredTree</h3>
+<ul>
+ <li>Fully-managed VPS and dedicated server hosting on a tier III support team
+ <ul>
+ <li>All aspects of the server OS and included software (cPanel) were supported</li>
+ </ul>
+ </li>
+ <li>I specialized in customer migrations, moving sites and their data from other providers and platforms with little or no downtime</li>
+ <li>Contributed to several process and technical how-to guides for custom installs</li>
+ <li>Handled server provisioning, building, upgrading, and maintenance at our downtown Chicago data center</li>
+</ul>
+
+<h3>February 2008 – December 2009: Level 1, 3 Support, MidPhase</h3>
+<ul>
+ <li>Level one support for shared server hosting clients</li>
+ <li>Simultaneously manage support phone calls, live chats, and support ticket queues</li>
+ <li>Promoted to the tier III department within six months</li>
+ <li>As a tier III tech I managed all VPS and dedicated server accounts</li>
+ <li>Shared platform issues were escalated to my team</li>
+ <li>Handled a myriad of spam/abuse issues, helped users deal with compromised systems</li>
+ <li>Mostly Linux servers with a few Windows boxes in the mix</li>
+</ul>
+
+<h3>October 2005 – February 2008: Retail Representative, Nintendo of America</h3>
+<ul>
+ <li>Serviced over 140 major retail locations in the Metro-Chicago area</li>
+ <li>Installed, repaired, and updated interactive display hardware units</li>
+ <li>Cleaned and merchandised product on the selling floors</li>
+ <li>Provided on-site training, product demonstrations, and special event appearances</li>
+ <li>Worked at E3 2006 as a display tech demoing the Brain Age series of Nintendo DS games</li>
+ <li>I was part of the setup and tear down crew for Nintendo’s area</li>
+ <li>Offered a job in Redmond at Nintendo as a display support tech in their corporate call center</li>
+</ul>
+
+<h3>August 2003 – October 2005: Assistant Store Manager, EB Games</h3>
+<ul>
+ <li>Promoted to Assistant Store Manager within 10 months of joining their team</li>
+ <li>Handled inventory control, scheduling, hiring, managing of bank transactions, and floor plan setup</li>
+ <li>Offered my own store by October 2005</li>
+</ul>
+
+<h2>Education</h2>
+<h3>January 2003 – June 2003: Waubonsee Community College</h3>
+<ul>
+ <li>Studied Music History and Theory, as well as Sociology</li>
+</ul>
+
+<h3>Yorkville High School</h3>
+<ul>
+ <li>High School Diploma</li>
+ <li>Competed on the school Speech Team
+ <ul>
+ <li>Placed 6th at conference for Dramatic Interpretation</li>
+ <li>Placed 4th at regionals for Humorous Interpretation</li>
+ </ul>
+ </li>
+ <li>Played in various school bands
+ <ul>
+ <li>Concert band</li>
+ <li>Marching band</li>
+ <li>Jazz band</li>
+ <li>Madrigal Brass</li>
+ <li>Pep band</li>
+ <li>Full Orchestra</li>
+ <li>Competitive Duet</li>
+ </ul>
+ </li>
+</ul>
M soupault.conf => soupault.conf +1 -0
@@ 190,6 190,7 @@ HTML.append_child(container, chapter_list)
heading_link_text = "→ "
heading_link_class = "here"
min_level = 2
+ max_level = 2
numbered_list = false
toc_list_class = "toc"
toc_class_levels = false
M templates/main.html => templates/main.html +1 -1
@@ 40,7 40,7 @@
<a href="/init.el/">init.el</a>
</li>
<li>
- <a href="/cv-resume/">CV/Resume</a>
+ <a href="/resume/">Resume</a>
</li>
<li>
<a href="/privacy/">Privacy</a>