Added basic markdown parsing and resume. This is a quick fix to get something simple working.

This commit is contained in:
Dylan Baird 2024-12-24 12:42:21 -05:00
parent 19212d23f8
commit 8eed3333f7
5 changed files with 199 additions and 3 deletions

View file

@ -5,6 +5,7 @@
"packages": { "packages": {
"": { "": {
"devDependencies": { "devDependencies": {
"@tailwindcss/typography": "^0.5.15",
"tailwindcss": "^3.4.17" "tailwindcss": "^3.4.17"
} }
}, },
@ -141,6 +142,36 @@
"node": ">=14" "node": ">=14"
} }
}, },
"node_modules/@tailwindcss/typography": {
"version": "0.5.15",
"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz",
"integrity": "sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==",
"dev": true,
"license": "MIT",
"dependencies": {
"lodash.castarray": "^4.4.0",
"lodash.isplainobject": "^4.0.6",
"lodash.merge": "^4.6.2",
"postcss-selector-parser": "6.0.10"
},
"peerDependencies": {
"tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20"
}
},
"node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": {
"version": "6.0.10",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
"integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
"dev": true,
"license": "MIT",
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
},
"engines": {
"node": ">=4"
}
},
"node_modules/ansi-regex": { "node_modules/ansi-regex": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
@ -639,6 +670,27 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/lodash.castarray": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz",
"integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==",
"dev": true,
"license": "MIT"
},
"node_modules/lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
"integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
"dev": true,
"license": "MIT"
},
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true,
"license": "MIT"
},
"node_modules/lru-cache": { "node_modules/lru-cache": {
"version": "10.4.3", "version": "10.4.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",

View file

@ -1,5 +1,6 @@
{ {
"devDependencies": { "devDependencies": {
"@tailwindcss/typography": "^0.5.15",
"tailwindcss": "^3.4.17" "tailwindcss": "^3.4.17"
} }
} }

View file

@ -4,10 +4,40 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="./output.css" rel="stylesheet"> <link href="./output.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
</head> </head>
<body> <body class="bg-black text-white min-h-screen max-w-4xl mx-auto px-4 font-mono">
<h1 class="text-3xl font-bold underline"> <h1 class="text-3xl font-bold">
dylan baird dylan baird
</h1> </h1>
<div id="links" class="flex gap-4">
<a href="https://forgejo.dylanbaird.com/explore/repos" target="_blank" class="flex items-center gap-2 text-gray-400 hover:text-white">
<svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor">
<path d="M23.546 10.93L13.067.452c-.604-.603-1.582-.603-2.188 0L8.708 2.627l2.76 2.76c.645-.215 1.379-.07 1.889.441.516.515.658 1.258.438 1.9l2.658 2.66c.645-.223 1.387-.078 1.9.435.721.72.721 1.884 0 2.604-.719.719-1.881.719-2.6 0-.539-.541-.674-1.337-.404-1.996L12.86 8.955v6.525c.176.086.342.203.488.348.713.721.713 1.883 0 2.6-.719.721-1.889.721-2.609 0-.719-.719-.719-1.879 0-2.598.182-.18.387-.316.605-.406V8.835c-.217-.091-.424-.222-.6-.401-.545-.545-.676-1.342-.396-2.009L7.636 3.7.45 10.881c-.6.605-.6 1.584 0 2.189l10.48 10.477c.604.604 1.582.604 2.186 0l10.43-10.43c.605-.603.605-1.582 0-2.187"/>
</svg>
<span>git</span>
</a>
<a href="mailto:dylan@dylanbaird.com" class="flex items-center gap-2 text-gray-400 hover:text-white">
<svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor">
<path d="M1.5 8.67v8.58a3 3 0 003 3h15a3 3 0 003-3V8.67l-8.928 5.493a3 3 0 01-3.144 0L1.5 8.67z"/>
<path d="M22.5 6.908V6.75a3 3 0 00-3-3h-15a3 3 0 00-3 3v.158l9.714 5.978a1.5 1.5 0 001.572 0L22.5 6.908z"/>
</svg>
<span>email</span>
</a>
</div>
<div id="resume" class="mt-8">
</div>
<article id="resume-article" class="prose prose-invert mt-8 text-justify">
<!--Programatically filled in-->
</article>
<script>
fetch('resume.md')
.then(response => response.text())
.then(markdown => {
document.getElementById('resume-article').innerHTML = marked.parse(markdown);
});
</script>
</body> </body>
</html> </html>

View file

@ -0,0 +1,111 @@
# Software Engineering Resume
## Contact Information
**Dylan Baird**
*Magog, Quebec, Canada*
*git* https://forgejo.dylanbaird.com/dylan
*website* https://dylanbaird.com
*email* dylan@dylanbaird.com
## General Summary
With nearly five years of professional engineering experience I have demonstrated a strong ability to learn quickly and adapt to the domain having worked in both healthcare and finance with no previous experience in either. I have strong skills in application development, security-focused engineering, and in systems and resource administration. I likewise have a strong capacity for communication which helps me understand business requirements to apply to a given solution or develop a new one and to then communicate with relevant parties (technical and not) to ensure the success of a project.
My intellectual background and studies in philosophy helps with analytic thinking, simplifying complexity, and communication. My past career of over ten years as a chef has helped me develop a very strong work ethic and an ability to take on responsibility. I am currently pursuing self-study of computer science fundamentals and cyber security and will continue this. Where I may lack experience, I make up for it with a willingness to learn, a passion for the craft, and an understanding that one progresses not by chance, but through hard work and study.
## Work History
### Security Infrastructure Engineer | Software Engineer
**Desjardins**
*December 2024 - Ongoing*
Member of infrastructure team responsible for security and infrastructure for the SOC at Desjardins. Responsible for provisioning, monitoring, optimizing, and securing Azure cloud resources. Assisted in managing complex networking given relationship to the larger Desjardins network. Worked with the team to develop and implement IAM for the SOC. Sole engineer responsible for development of an event-grid like system used within the SOC for access control, business reporting, and legal requirements.
*Powershell, Python, Bicep, Azure, IAM, SQL, .NET, business analysis, testing, networking*
### DevSecOps Engineer
**Desjardins**
*September 2022 - November 2024*
DevSecOps developer building information management tools for the SOC at Desjardins. Used .NET technologies to develop a micro-services architecture application. Became responsible for crucial aspect of integration with other Desjardins technology systems. Member of five person tech lead panel. Mentored other developers. Used Powershell to automate Azure deployment. Wrote an automation tool to increase developer productivity on our team. Without fail, met expectations despite significant personal difficulties during this time.
*.NET, MS SQL Server, Blazor, EF Core, Powershell, Azure, business analysis, testing, microservices*
### DevOps Engineer
**Actium Technologie**
*September 2020 - August 2022*
Lead developer of technology startup operating in the healthcare sector. Responsible for database design and management, cloud deployment, application development, and regular meetings with clients (hospital management). Used PostgreSQL and SQL to develop a database schema to efficiently store information about every item in a hospital as well as user data, workflows, audits, and communication. Used a reporting engine to develop business analytics for client management. Used .NET to develop a robust API. Used Angular/Typescript/Ionic to develop mobile apps for hospital employees. Used RabbitMQ for real time communication between apps. Used Azure/Docker/Linux/Windows Server to deploy and establish CI/CD pipelines.
*.NET, Postgres, SQL, Typescript, Angular, Ionic, Docker, Jenkins, Azure, Linux, business analysis, testing*
## Education
### Honours Philosophy (with distinction)
**Concordia University**
Honours degree in philosophy with a focus on epistemology, metaphysics, and political philosophy.
Relevant CS elective courses taken:
- Object Oriented Programming
- Linear Algebra
- Databases
### Self-Study
I have a self study project with the intention of filling in the missing computer science fundamentals. This will be documented on my website shortly. Largely inspired by [Teach Yourself CS](https://teachyourselfcs.com/).
## Projects
### CTO ApplyAway
Technical founder of small startup. We aim to provide a better interface for navigating the Canadian immigration system. Workflow engine managing the immigration application process. i18n for multiple languages. Document management for required uploads. Security focused given sensitive information.
*.NET, Razor Pages, Python, Postgres, EF Core, S3, Docker, i18n, encrypted at rest, TailwindCSS*
### HomeLab
Running a server under my couch serving multiple services and internal tools for ~10 people. Hosting dev environment for small startup. Originally bare metal installations with systemd but moving to Docker and ultimately Kubernetes for practice. Migration details are available on my website (public git repo).
https://forgejo.dylanbaird.com/dylan/barrios
*Fedora Server, Docker, Docker Compose, Bash, ForgeJo, MinIO, Postgres, Caddy, Fail2Ban, IAM*
### Open Source
Very small (but ongoing) contribution to a fun website for practicing classical guitar. I have an accepted PR adding local storage and a PR soon to be submitted for converting the site to a PWA.
https://github.com/braedon2/RCM-scale-practice
*JavaScript*
## Technologies & Skills
**.NET:** API, micro-services, Blazor, EF Core, and Razor Pages.
**Front end:** Javascript, Typescript, Angular, and HTMX.
**Database:** Postgres, MS SQL Server, MongoDB, and SQLite.
**Security:** OWASP, Mitre, IAM, and experience working in a SOC.
**Personal:** communication (written and oral), English (native), French (proficient), leadership, and mentorship.
**Ops:** Linux, Docker, Bash, Powershell, Bicep, and Azure.
**Misc:** RabbitMQ, HL7, and Ionic.
**Interest (amateur level):** Lisp (Racket), Golang, and Kubernetes.

View file

@ -4,6 +4,8 @@ module.exports = {
theme: { theme: {
extend: {}, extend: {},
}, },
plugins: [], plugins: [
require('@tailwindcss/typography'),
],
} }