refactor: add structure for start and end dates

The start and end dates for employment and
education experiences were free-form strings.

This commit changes adds a Date struct with Year and Month
variables and declares the Duration field as a type Date.

The TEX template is updated to reflect the change. The resulting
PDF will not change.
This commit is contained in:
Dan Anglin 2020-02-07 18:46:21 +00:00
parent d10b1ea6b4
commit 7ca819fa04
No known key found for this signature in database
GPG key ID: 7AC2B18EC1D09F27
3 changed files with 65 additions and 18 deletions

View file

@ -89,8 +89,14 @@
"location": "Hatfield, Hertfordshire", "location": "Hatfield, Hertfordshire",
"jobTitle": "Platform Automation Engineer", "jobTitle": "Platform Automation Engineer",
"duration": { "duration": {
"start": "January, 2017", "start": {
"end": "January, 2020" "year": "2017",
"month": "January"
},
"end": {
"year": "2020",
"month": "January"
}
}, },
"details": [ "details": [
"Ive created a Postgres Operator using Go and the Metacontroller which is used to create and manage Patroni PostgreSQL clusters onto production Kubernetes environments.", "Ive created a Postgres Operator using Go and the Metacontroller which is used to create and manage Patroni PostgreSQL clusters onto production Kubernetes environments.",
@ -108,8 +114,14 @@
"location": "London", "location": "London",
"jobTitle": "DevOps Consultant", "jobTitle": "DevOps Consultant",
"duration": { "duration": {
"start": "March, 2015", "start": {
"end": "November, 2016" "year": "2015",
"month": "March"
},
"end": {
"year": "2016",
"month": "November"
}
}, },
"details": [ "details": [
"I've built and supported production infrastructure hosted in UKCloud (for public sector projects) and AWS (for commercial projects).", "I've built and supported production infrastructure hosted in UKCloud (for public sector projects) and AWS (for commercial projects).",
@ -125,8 +137,14 @@
"location": "Home Office, London", "location": "Home Office, London",
"jobTitle": "DevOps Consultant", "jobTitle": "DevOps Consultant",
"duration": { "duration": {
"start": "October, 2014", "start": {
"end": "March, 2015 " "year": "2014",
"month": "October"
},
"end": {
"year": "2015",
"month": "March"
}
}, },
"details": [ "details": [
"I've built and supported new development, CIT and SIT environments for new projects at the Home Office.", "I've built and supported new development, CIT and SIT environments for new projects at the Home Office.",
@ -141,8 +159,14 @@
"location": "Worthing", "location": "Worthing",
"jobTitle": "Trainee DevOps Consultant", "jobTitle": "Trainee DevOps Consultant",
"duration": { "duration": {
"start": "September, 2014", "start": {
"end": "October, 2014" "year": "2014",
"month": "September"
},
"end": {
"year": "2014",
"month": "October"
}
}, },
"details": [ "details": [
"I've spent eight weeks in training to become a DevOps Consultant on behalf of QA Consulting.", "I've spent eight weeks in training to become a DevOps Consultant on behalf of QA Consulting.",
@ -157,8 +181,14 @@
"location": "Reading", "location": "Reading",
"jobTitle": "Undergraduate Researcher", "jobTitle": "Undergraduate Researcher",
"duration": { "duration": {
"start": "July, 2012", "start": {
"end": "September, 2012" "year": "2012",
"month": "July"
},
"end": {
"year": "2012",
"month": "September"
}
}, },
"details": [ "details": [
"This was a summer internship where I helped developed an interactive Java application that processes Terahertz signals in order to reveal hidden details behind walls.", "This was a summer internship where I helped developed an interactive Java application that processes Terahertz signals in order to reveal hidden details behind walls.",
@ -175,8 +205,14 @@
"location": "Reading", "location": "Reading",
"qualification": "MEng (Hons) in Robotics, 2:1", "qualification": "MEng (Hons) in Robotics, 2:1",
"duration": { "duration": {
"start": "October, 2009", "start": {
"end": "July, 2013" "year": "2009",
"month": "October"
},
"end": {
"year": "2013",
"month": "July"
}
} }
}, },
{ {
@ -184,8 +220,14 @@
"location": "London", "location": "London",
"qualification": "A-Levels in Maths, Physics and Product Design", "qualification": "A-Levels in Maths, Physics and Product Design",
"duration": { "duration": {
"start": "September, 2007", "start": {
"end": "July, 2009" "year": "2007",
"month": "September"
},
"end": {
"year": "2009",
"month": "July"
}
} }
} }
], ],

View file

@ -41,6 +41,11 @@ type Experience struct {
} }
type Duration struct { type Duration struct {
Start string `json:"start"` Start Date `json:"start"`
End string `json:"end"` End Date `json:"end"`
}
type Date struct {
Year string `json:"year"`
Month string `json:"month"`
} }

View file

@ -28,7 +28,7 @@
\section{EXPERIENCE} \section{EXPERIENCE}
<<- range .Employment>> <<- range .Employment>>
\jobsection{<<.Company>>}{<<.Location>>}{<<.JobTitle>>}{<<.Duration.Start>> - <<.Duration.End>>} \jobsection{<<.Company>>}{<<.Location>>}{<<.JobTitle>>}{<<.Duration.Start.Month>>, <<.Duration.Start.Year>> - <<.Duration.End.Month>>, <<.Duration.End.Year>>}
\startitemize \startitemize
<<range .Details>> <<range .Details>>
\item <<.>> \item <<.>>
@ -38,7 +38,7 @@
\section{EDUCATION} \section{EDUCATION}
<<range .Education ->> <<range .Education ->>
\jobsection{<<.School>>}{<<.Location>>}{<<.Qualification>>}{<<.Duration.Start>> - <<.Duration.End>>} \jobsection{<<.School>>}{<<.Location>>}{<<.Qualification>>}{<<.Duration.Start.Month>>, <<.Duration.Start.Year>> - <<.Duration.End.Month>>, <<.Duration.End.Year>>}
\startitemize \startitemize
<<range .Details>> <<range .Details>>
\item <<.>> \item <<.>>