Make portfolio + highlights a re-usable macro
- Use more generic metadata key names for portfolio
This commit is contained in:
21
.eleventy.js
21
.eleventy.js
@@ -3,9 +3,9 @@ module.exports = function (eleventyConfig) {
|
|||||||
eleventyConfig.addPassthroughCopy("./src/assets");
|
eleventyConfig.addPassthroughCopy("./src/assets");
|
||||||
eleventyConfig.addPassthroughCopy("./src/scripts");
|
eleventyConfig.addPassthroughCopy("./src/scripts");
|
||||||
|
|
||||||
eleventyConfig.addFilter('findProjectAssociatedWithExperience', function (projects, associatedExperience) {
|
eleventyConfig.addFilter('findAssociation', function (entries, associatedEntry) {
|
||||||
return projects.filter(function(project) {
|
return entries.filter(function(entry) {
|
||||||
return project.data.associatedExperience == associatedExperience;
|
return entry.data.associatedEntry == associatedEntry;
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -15,18 +15,19 @@ module.exports = function (eleventyConfig) {
|
|||||||
.sort((a, b) => (Number(a.data.displayOrder) < Number(b.data.displayOrder) ? 1 : -1));
|
.sort((a, b) => (Number(a.data.displayOrder) < Number(b.data.displayOrder) ? 1 : -1));
|
||||||
});
|
});
|
||||||
|
|
||||||
eleventyConfig.addCollection('professionalExperienceProjects', (collection) => {
|
eleventyConfig.addCollection('education', (collection) => {
|
||||||
return collection
|
|
||||||
.getFilteredByGlob('./src/portfolio/professionalExperience/projects/*.md')
|
|
||||||
.sort((a, b) => (Number(a.data.displayOrder) > Number(b.data.displayOrder) ? 1 : -1));
|
|
||||||
});
|
|
||||||
|
|
||||||
eleventyConfig.addCollection('degrees', (collection) => {
|
|
||||||
return collection
|
return collection
|
||||||
.getFilteredByGlob('./src/portfolio/education/*.md')
|
.getFilteredByGlob('./src/portfolio/education/*.md')
|
||||||
.sort((a, b) => (Number(a.data.displayOrder) < Number(b.data.displayOrder) ? 1 : -1));
|
.sort((a, b) => (Number(a.data.displayOrder) < Number(b.data.displayOrder) ? 1 : -1));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
eleventyConfig.addCollection('highlights', (collection) => {
|
||||||
|
return collection
|
||||||
|
.getFilteredByGlob('./src/portfolio/highlights/*.md')
|
||||||
|
.sort((a, b) => (Number(a.data.displayOrder) > Number(b.data.displayOrder) ? 1 : -1));
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
markdownTemplateEngine: "njk",
|
markdownTemplateEngine: "njk",
|
||||||
dataTemplateEngine: "njk",
|
dataTemplateEngine: "njk",
|
||||||
|
@@ -8,3 +8,51 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro portfolioWithHighlights(portfolio, highlights) %}
|
||||||
|
{% for entry in portfolio %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<a href="{{ entry.data.url }}" target="_blank">
|
||||||
|
<img
|
||||||
|
class="img-fluid mx-auto d-block"
|
||||||
|
src="{{ entry.data.logo }}"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<h2><b>{{ entry.data.association }}</b></h2>
|
||||||
|
<h3>{{ entry.data.entryTitle }}</h3>
|
||||||
|
<h4>{{ entry.data.location }}</h4>
|
||||||
|
<h5><i>{{ entry.data.startDate }} - {{ entry.data.endDate }}</i></h5>
|
||||||
|
{{ entry.content | safe }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% set associatedHighlights = (highlights | findAssociation(entry.data.id)) %}
|
||||||
|
{% if associatedHighlights.length > 0 %}
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="accordion accordion-flush" id="{{ entry.data.id }}">
|
||||||
|
{% for highlight in associatedHighlights %}
|
||||||
|
{% set highlightSlug = (entry.data.id + '-' + highlight.data.name | slugify) %}
|
||||||
|
<div class="accordion-item">
|
||||||
|
<div class="accordion-header"">
|
||||||
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#{{ highlightSlug }}">
|
||||||
|
<b>{{ highlight.data.name }}</b>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div id="{{ highlightSlug }}" class="accordion-collapse collapse" data-bs-parent="#{{ entry.data.id }}">
|
||||||
|
<div class="accordion-body">
|
||||||
|
{{ highlight.content | safe }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% endmacro %}
|
@@ -2,26 +2,5 @@
|
|||||||
{% from "macros.html" import sectionHeading %}
|
{% from "macros.html" import sectionHeading %}
|
||||||
{{ sectionHeading("Education") }}
|
{{ sectionHeading("Education") }}
|
||||||
|
|
||||||
{% for degree in collections.degrees %}
|
{% from "macros.html" import portfolioWithHighlights %}
|
||||||
<div class="row">
|
{{ portfolioWithHighlights(collections.education, collections.highlights) }}
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<a href="{{ degree.data.degreeUrl }}" target="_blank">
|
|
||||||
<img
|
|
||||||
class="img-fluid mx-auto d-block"
|
|
||||||
src="{{ degree.data.degreeLogo }}"
|
|
||||||
/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-8">
|
|
||||||
<h2><b>{{ degree.data.schoolName }}</b></h2>
|
|
||||||
<h3>{{ degree.data.degreeName }}</h3>
|
|
||||||
<h4>{{ degree.data.schoolLocation }}</h4>
|
|
||||||
<h5><i>{{ degree.data.startDate }} - {{ degree.data.endDate }}</i></h5>
|
|
||||||
{{ degree.content | safe }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
@@ -2,47 +2,5 @@
|
|||||||
{% from "macros.html" import sectionHeading %}
|
{% from "macros.html" import sectionHeading %}
|
||||||
{{ sectionHeading("Professional Experience") }}
|
{{ sectionHeading("Professional Experience") }}
|
||||||
|
|
||||||
{% for profExp in collections.professionalExperience %}
|
{% from "macros.html" import portfolioWithHighlights %}
|
||||||
<div class="row">
|
{{ portfolioWithHighlights(collections.professionalExperience, collections.highlights) }}
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<a href="{{ profExp.data.companyUrl }}" target="_blank">
|
|
||||||
<img
|
|
||||||
class="img-fluid mx-auto d-block"
|
|
||||||
src="{{ profExp.data.companyLogo }}"
|
|
||||||
/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-8">
|
|
||||||
<h2><b>{{ profExp.data.companyName }}</b></h2>
|
|
||||||
<h3>{{ profExp.data.jobTitle }}</h3>
|
|
||||||
<h4>{{ profExp.data.workLocation }}</h4>
|
|
||||||
<h5><i>{{ profExp.data.startDate }} - {{ profExp.data.endDate }}</i></h5>
|
|
||||||
{{ profExp.content | safe }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if collections.professionalExperienceProjects.length > 0 %}
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="accordion accordion-flush" id="{{ profExp.data.id }}">
|
|
||||||
{% for project in (collections.professionalExperienceProjects | findProjectAssociatedWithExperience(profExp.data.id)) %}
|
|
||||||
{% set projectSlug = (profExp.data.id + '-' + project.data.name | slugify) %}
|
|
||||||
<div class="accordion-item">
|
|
||||||
<div class="accordion-header"">
|
|
||||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#{{ projectSlug }}">
|
|
||||||
<b>{{ project.data.name }}</b>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div id="{{ projectSlug }}" class="accordion-collapse collapse" data-bs-parent="#{{ profExp.data.id }}">
|
|
||||||
<div class="accordion-body">
|
|
||||||
{{ project.content | safe }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
@@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 1
|
displayOrder: 1
|
||||||
degreeUrl: "https://cse.engin.umich.edu"
|
id: "umich-1"
|
||||||
degreeLogo: "/assets/education/logo-computer-science.jpg"
|
url: "https://cse.engin.umich.edu"
|
||||||
schoolName: "University of Michigan"
|
logo: "/assets/education/logo-computer-science.jpg"
|
||||||
degreeName: "B.S.E. in Computer Science"
|
association: "University of Michigan"
|
||||||
schoolLocation: "Ann Arbor, MI"
|
entryTitle: "B.S.E. in Computer Science"
|
||||||
|
location: "Ann Arbor, MI"
|
||||||
startDate: "September 2016"
|
startDate: "September 2016"
|
||||||
endDate: "December 2020"
|
endDate: "December 2020"
|
||||||
---
|
---
|
||||||
|
@@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 2
|
displayOrder: 2
|
||||||
degreeUrl: "https://me.engin.umich.edu"
|
id: "umich-2"
|
||||||
degreeLogo: "/assets/education/logo-mechanical-engineering.jpg"
|
url: "https://me.engin.umich.edu"
|
||||||
schoolName: "University of Michigan"
|
logo: "/assets/education/logo-mechanical-engineering.jpg"
|
||||||
degreeName: "B.S.E. in Mechanical Engineering"
|
association: "University of Michigan"
|
||||||
schoolLocation: "Ann Arbor, MI"
|
entryTitle: "B.S.E. in Mechanical Engineering"
|
||||||
|
location: "Ann Arbor, MI"
|
||||||
startDate: "September 2016"
|
startDate: "September 2016"
|
||||||
endDate: "December 2020"
|
endDate: "December 2020"
|
||||||
---
|
---
|
||||||
|
@@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 3
|
displayOrder: 3
|
||||||
degreeUrl: "https://robotics.umich.edu"
|
id: "umich-3"
|
||||||
degreeLogo: "/assets/education/logo-robotics.png"
|
url: "https://robotics.umich.edu"
|
||||||
schoolName: "University of Michigan"
|
logo: "/assets/education/logo-robotics.png"
|
||||||
degreeName: "M.S. in Robotics"
|
association: "University of Michigan"
|
||||||
schoolLocation: "Ann Arbor, MI"
|
entryTitle: "M.S. in Robotics"
|
||||||
|
location: "Ann Arbor, MI"
|
||||||
startDate: "January 2021"
|
startDate: "January 2021"
|
||||||
endDate: "December 2021"
|
endDate: "December 2021"
|
||||||
---
|
---
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "hughes-1"
|
associatedEntry: "hughes-1"
|
||||||
name: "Mobile Terminal Configuration Tool"
|
name: "Mobile Terminal Configuration Tool"
|
||||||
displayOrder: 1
|
displayOrder: 1
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "hughes-1"
|
associatedEntry: "hughes-1"
|
||||||
name: "Location Based Services"
|
name: "Location Based Services"
|
||||||
displayOrder: 2
|
displayOrder: 2
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "mitre-1"
|
associatedEntry: "mitre-1"
|
||||||
name: "PNT Defense & Threat Library"
|
name: "PNT Defense & Threat Library"
|
||||||
displayOrder: 1
|
displayOrder: 1
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "mitre-1"
|
associatedEntry: "mitre-1"
|
||||||
name: "PNT Assurance"
|
name: "PNT Assurance"
|
||||||
displayOrder: 2
|
displayOrder: 2
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "mitre-1"
|
associatedEntry: "mitre-1"
|
||||||
name: "AI Learning Track"
|
name: "AI Learning Track"
|
||||||
displayOrder: 3
|
displayOrder: 3
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "mitre-1"
|
associatedEntry: "mitre-1"
|
||||||
name: "AWS DeepRacer"
|
name: "AWS DeepRacer"
|
||||||
displayOrder: 4
|
displayOrder: 4
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "rivian-1"
|
associatedEntry: "rivian-1"
|
||||||
name: "Requirements Management and System Diagrams"
|
name: "Requirements Management and System Diagrams"
|
||||||
displayOrder: 1
|
displayOrder: 1
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "rivian-1"
|
associatedEntry: "rivian-1"
|
||||||
name: "Simulation Data Analysis Tool"
|
name: "Simulation Data Analysis Tool"
|
||||||
displayOrder: 2
|
displayOrder: 2
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "rivian-2"
|
associatedEntry: "rivian-2"
|
||||||
name: "Bill of Materials Analysis"
|
name: "Bill of Materials Analysis"
|
||||||
displayOrder: 1
|
displayOrder: 1
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "rivian-2"
|
associatedEntry: "rivian-2"
|
||||||
name: "Internal Website"
|
name: "Internal Website"
|
||||||
displayOrder: 2
|
displayOrder: 2
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "rivian-2"
|
associatedEntry: "rivian-2"
|
||||||
name: "IT Service Desk"
|
name: "IT Service Desk"
|
||||||
displayOrder: 3
|
displayOrder: 3
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "rivian-3"
|
associatedEntry: "rivian-3"
|
||||||
name: "Model-In-Loop Test Case Generation"
|
name: "Model-In-Loop Test Case Generation"
|
||||||
displayOrder: 1
|
displayOrder: 1
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "rivian-3"
|
associatedEntry: "rivian-3"
|
||||||
name: "Simulink Software Integration"
|
name: "Simulink Software Integration"
|
||||||
displayOrder: 2
|
displayOrder: 2
|
||||||
---
|
---
|
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
associatedExperience: "rivian-3"
|
associatedEntry: "rivian-3"
|
||||||
name: "Testing Data Processing"
|
name: "Testing Data Processing"
|
||||||
displayOrder: 3
|
displayOrder: 3
|
||||||
---
|
---
|
@@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 3
|
displayOrder: 3
|
||||||
id: "hughes-1"
|
id: "hughes-1"
|
||||||
companyUrl: "https://www.hughes.com"
|
url: "https://www.hughes.com"
|
||||||
companyLogo: "/assets/professional_experience/logo-hughes.jpg"
|
logo: "/assets/professional_experience/logo-hughes.jpg"
|
||||||
companyName: "Hughes Network Systems"
|
association: "Hughes Network Systems"
|
||||||
jobTitle: "Software Development Intern"
|
entryTitle: "Software Development Intern"
|
||||||
workLocation: "San Diego, CA"
|
location: "San Diego, CA"
|
||||||
startDate: "May 20, 2019"
|
startDate: "May 20, 2019"
|
||||||
endDate: "August 23, 2019"
|
endDate: "August 23, 2019"
|
||||||
---
|
---
|
||||||
|
@@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 8
|
displayOrder: 8
|
||||||
companyUrl: "https://www.metsci.com"
|
id: "metron-1"
|
||||||
companyLogo: "/assets/professional_experience/logo-metron.jpeg"
|
url: "https://www.metsci.com"
|
||||||
companyName: "Metron"
|
logo: "/assets/professional_experience/logo-metron.jpeg"
|
||||||
jobTitle: "Software Engineer I"
|
assocation: "Metron"
|
||||||
workLocation: "Reston, VA"
|
entryTitle: "Software Engineer I"
|
||||||
|
location: "Reston, VA"
|
||||||
startDate: "April 3, 2023"
|
startDate: "April 3, 2023"
|
||||||
endDate: "Present"
|
endDate: "Present"
|
||||||
---
|
---
|
@@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 5
|
displayOrder: 5
|
||||||
id: "mitre-1"
|
id: "mitre-1"
|
||||||
companyUrl: "https://www.mitre.org"
|
url: "https://www.mitre.org"
|
||||||
companyLogo: "/assets/professional_experience/logo-mitre.jpeg"
|
logo: "/assets/professional_experience/logo-mitre.jpeg"
|
||||||
companyName: "MITRE"
|
association: "MITRE"
|
||||||
jobTitle: "Graduate Navigation Intern"
|
entryTitle: "Graduate Navigation Intern"
|
||||||
workLocation: "Remote"
|
location: "Remote"
|
||||||
startDate: "May 10, 2021"
|
startDate: "May 10, 2021"
|
||||||
endDate: "August 20, 2021"
|
endDate: "August 20, 2021"
|
||||||
---
|
---
|
||||||
|
@@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 6
|
displayOrder: 6
|
||||||
id: "mitre-2"
|
id: "mitre-2"
|
||||||
companyUrl: "https://www.mitre.org"
|
url: "https://www.mitre.org"
|
||||||
companyLogo: "/assets/professional_experience/logo-mitre.jpeg"
|
logo: "/assets/professional_experience/logo-mitre.jpeg"
|
||||||
companyName: "MITRE"
|
association: "MITRE"
|
||||||
jobTitle: "Associate Autonomous Systems Engineer"
|
entryTitle: "Associate Autonomous Systems Engineer"
|
||||||
workLocation: "McLean, VA"
|
location: "McLean, VA"
|
||||||
startDate: "January 31, 2022"
|
startDate: "January 31, 2022"
|
||||||
endDate: "September 12, 2022"
|
endDate: "September 12, 2022"
|
||||||
---
|
---
|
@@ -1,12 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 7
|
displayOrder: 7
|
||||||
id: "mitre-3"
|
id: "mitre-3"
|
||||||
companyUrl: "https://www.mitre.org"
|
url: "https://www.mitre.org"
|
||||||
companyLogo: "/assets/professional_experience/logo-mitre.jpeg"
|
logo: "/assets/professional_experience/logo-mitre.jpeg"
|
||||||
companyName: "MITRE"
|
association: "MITRE"
|
||||||
jobTitle: "Intermediate Autonomous Systems Engineer"
|
entryTitle: "Intermediate Autonomous Systems Engineer"
|
||||||
workLocation: "McLean, VA"
|
location: "McLean, VA"
|
||||||
startDate: "September 12, 2022"
|
startDate: "September 12, 2022"
|
||||||
endDate: "March 31, 2023"
|
endDate: "March 31, 2023"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 1
|
displayOrder: 1
|
||||||
id: "rivian-1"
|
id: "rivian-1"
|
||||||
companyUrl: "https://rivian.com"
|
url: "https://rivian.com"
|
||||||
companyLogo: "/assets/professional_experience/logo-rivian.png"
|
logo: "/assets/professional_experience/logo-rivian.png"
|
||||||
companyName: "Rivian"
|
association: "Rivian"
|
||||||
jobTitle: "Vehicle Integration Intern"
|
entryTitle: "Vehicle Integration Intern"
|
||||||
workLocation: "Livonia, MI"
|
location: "Livonia, MI"
|
||||||
startDate: "May 30, 2017"
|
startDate: "May 30, 2017"
|
||||||
endDate: "August 25, 2017"
|
endDate: "August 25, 2017"
|
||||||
---
|
---
|
||||||
|
@@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 2
|
displayOrder: 2
|
||||||
id: "rivian-2"
|
id: "rivian-2"
|
||||||
companyUrl: "https://rivian.com"
|
url: "https://rivian.com"
|
||||||
companyLogo: "/assets/professional_experience/logo-rivian.png"
|
logo: "/assets/professional_experience/logo-rivian.png"
|
||||||
companyName: "Rivian"
|
association: "Rivian"
|
||||||
jobTitle: "Business Technology Intern"
|
entryTitle: "Business Technology Intern"
|
||||||
workLocation: "Plymouth, MI"
|
location: "Plymouth, MI"
|
||||||
startDate: "May 7, 2018"
|
startDate: "May 7, 2018"
|
||||||
endDate: "December 7, 2018"
|
endDate: "December 7, 2018"
|
||||||
---
|
---
|
||||||
|
@@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
displayOrder: 4
|
displayOrder: 4
|
||||||
id: "rivian-3"
|
id: "rivian-3"
|
||||||
companyUrl: "https://rivian.com"
|
url: "https://rivian.com"
|
||||||
companyLogo: "/assets/professional_experience/logo-rivian.png"
|
logo: "/assets/professional_experience/logo-rivian.png"
|
||||||
companyName: "Rivian"
|
association: "Rivian"
|
||||||
jobTitle: "ADAS Controls Intern"
|
entryTitle: "ADAS Controls Intern"
|
||||||
workLocation: "Remote"
|
location: "Remote"
|
||||||
startDate: "June 1, 2020"
|
startDate: "June 1, 2020"
|
||||||
endDate: "August 21, 2020"
|
endDate: "August 21, 2020"
|
||||||
---
|
---
|
||||||
|
Reference in New Issue
Block a user