-
Notifications
You must be signed in to change notification settings - Fork 2
/
cv.tex
227 lines (207 loc) · 12.1 KB
/
cv.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
%% start of file `template.tex'.
%% Copyright 2006-2013 Xavier Danaux ([email protected]).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/.
\documentclass[11pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman')
% moderncv themes
\moderncvstyle{casual} % style options are 'casual' (default), 'classic', 'oldstyle' and 'banking'
\moderncvcolor{blue} % color options 'blue' (default), 'orange', 'green', 'red', 'purple', 'grey' and 'black'
%\renewcommand{\familydefault}{\sfdefault} % to set the default font; use '\sfdefault' for the default sans serif font, '\rmdefault' for the default roman one, or any tex font name
%\nopagenumbers{} % uncomment to suppress automatic page numbering for CVs longer than one page
% character encoding
\usepackage[utf8]{inputenc} % if you are not using xelatex ou lualatex, replace by the encoding you are using
%\usepackage{CJKutf8} % if you need to use CJK to typeset your resume in Chinese, Japanese or Korean
% adjust the page margins
\usepackage[scale=0.75]{geometry}
%\setlength{\hintscolumnwidth}{3cm} % if you want to change the width of the column with the dates
%\setlength{\makecvtitlenamewidth}{10cm} % for the 'classic' style, if you want to force the width allocated to your name and avoid line breaks. be careful though, the length is normally calculated to avoid any overlap with your personal info; use this at your own typographical risks...
\usepackage{multicol}
\usepackage[cm]{fullpage}
% personal data
\name{Thomas}{Grainger}
\title{Curriculum Vitae} % optional, remove / comment the line if not wanted
\address{Flat 10 -- Adrian House}{32 Jupp Road}{London E15 1LF}% optional, remove / comment the line if not wanted; the "postcode city" and and "country" arguments can be omitted or provided empty
\phone[mobile]{+44~(7733)~933~161} % optional, remove / comment the line if not wanted
%\phone{+2~(345)~678~901} % optional, remove / comment the line if not wanted
%\fax{+3~(456)~789~012} % optional, remove / comment the line if not wanted
\email{[email protected]} % optional, remove / comment the line if not wanted
\social[github]{graingert}
%\homepage{graingert.co.uk} % optional, remove / comment the line if not wanted
%\extrainfo{additional information} % optional, remove / comment the line if not wanted
%\quote{Some quote} % optional, remove / comment the line if not wanted
% to show numerical labels in the bibliography (default is to show no labels); only useful if you make citations in your resume
%\makeatletter
%\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}
%\makeatother
%\renewcommand*{\bibliographyitemlabel}{[\arabic{enumiv}]}% CONSIDER REPLACING THE ABOVE BY THIS
% bibliography with mutiple entries
%\usepackage{multibib}
%\newcites{book,misc}{{Books},{Others}}
%----------------------------------------------------------------------------------
% content
%----------------------------------------------------------------------------------
\begin{document}
%\begin{CJK*}{UTF8}{gbsn} % to typeset your resume in Chinese using CJK
%----- resume ---------------------------------------------------------
\makecvtitle
\begin{minipage}{\linewidth}
\section{Education}
\cventry{2009--2013}{MEng Computer Science}{University of Southampton}{2.1}{}{}
\cventry{2007--2009}{A Level}{Peter Symonds College}{Winchester}{}{
\begin{multicols}{3}
\begin{itemize}
\item A2 Maths: A
\item A2 Further Maths: A
\item A2 Physics: A
\item A2 Chemistry: B
\item AS Biology: B
\end{itemize}
\end{multicols}
}
\cventry{2003--2007}{10 GCSEs A*-C Including English, Maths and Science}{The Westgate School}{Winchester}{}{}
\end{minipage}
\begin{minipage}{\linewidth}
\vspace{3ex}
\section{Experience}
\cventry{January 2016 - Current}{Senior Software Engineer \& DevOps Lead}{Procensus Limited}{}{}{
Transformed a legacy Scala and ES5 `script-tag' app into a modern SOA
system with fully automated CI/CD onto Amazon ECS using Docker and GitLab CI.
Managed the migration of AngularJS components to React
Service for server side rendering of complex mixed AngularJS/highcharts/d3/React
pages for live generation of PDF reports and presentations.
Used functional programming with Scala, lodash/fp and xstream Observables.
Instigated unit and functional tests with scalatest, pytest, karma and
snapshot tests with selenium.
Mentored a data scientist in the creation of a type-safe (mypy)
Sanic/asyncio/Python 3.6 service for online and batch data processing.
}
\cventry{October 2014 - January 2016}{Data Engineer}{LeanWorks Ltd. (YPlan)}{}{}{
Provided software engineering advice on best practices for the datascience
team in terms of code review and test-driven refactoring. Working in Python
using numpy, pandas and SQLAlchemy. Increased code quality with specific aims
of performance, design and reliability. Reimplemented the product
recommendation system using a Bayesian inference approach. Processed
tracking data for reporting from Mixpanel and Segment using Amazon Redshift.
Also worked with other YPlan engineering teams on cross-team full stack
projects including integrating the new recommender and fixes for security
vulnerabilities.
}
\cventry{July 2013 - October 2014}{Python Developer}{Hogarth Worldwide, Technology Services Department}{}{}{
Worked as a member of a nine person agile development team on a workflow and
asset management web application from inception to final delivery. Alongside
Django development, took responsibility for the design and implementation
of a large integration project with third-party systems and assisted in the
transition to an XHR (AJAX) driven single-page application. Worked with
DevOps to package and deploy the application using SaltStack configuration
management and VMware vSphere. Introduced GitHub pull request driven
code review. Reduced a multi-hour Jenkins build queue to zero. Ensured
that the product was delivered on schedule despite extensive rewrites of the
application due to requirement changes.
}
\cventry{Summer 2012}{Research Assistant}{University of Southampton, Web and Internet Science Research Group}{}{}{
Investigated University IT security and enhanced a PHP prototype web application related to the security of the eduroam world-wide roaming access service.
Specifically security vulnerabilities such as XSS and CSRF were removed and the application was rearchitected to use client side rendering with AngularJS communicating to an HTTP API backend.
Part of this process involved porting the code to Django, with raw SQL being converted to the equivalent Django ORM queries.
}
\cventry{Summer 2010 and 2011}{Formal Test}{IBM Storage Subsystems Group}{Hursley}{}{
Developed an application to parse and store RAID performance test results and Django website for analysing those results.
Formal test for the IBM Storwize v7000, announced in October 2010 requiring the use of the \href{http://www.lecroy.com/ProtocolAnalyzer/ProtocolOverview.aspx?seriesid=147}{LeCroy SAS Sierra M6-4} Protocol Analyser/Jammer.
}
\cventry{Summers 2006--2008}{Developer}{IBM Storage Subsystems Group}{Hursley}{}{
Multiple short work experience summers developing a Cluster based SCSI command injector in C and a web based error log decoder in Perl. Both of these projects required use of the Finisar Fibre Channel Protocol Analyser/Jammer.
}
\end{minipage}
\begin{minipage}{\linewidth}
\vspace{3ex}
\section{Programming Languages}
\cvitem{Python}{
Contributions to projects such as mypy, Gunicorn, Celery, Eventlet and
docker-compose. Maintainer of PyPI packages:
\href{http://github.com/graingert/python-clamd}{clamd} (over 72,000
downloads),
\href{http://github.com/sqlalchemy-redshift}{sqlalchemy-redshift} (over 72,000 downloads)
and
\href{http://github.com/6si/shipwright}{shipwright} (over 15,000 downloads)
}
\cvitem{ECMAScript 2017+ (JS)}{
Contributions to projects such as AngularJS, yarn, eslint, webpack
and babel. Maintainer of various packages on npm.
}
\cvitem{JVM Java/Scala + Android}{
Successfully completed
\href{https://skillsmatter.com/courses/516-scala-advanced-with-dick-wall}{`Advanced Stairway to Scala'}
course.
Contributions to sbt (Scala Build Tool) and maintainer of Maven Central
package \href{http://github.com/scamandrill}{scamandrill}
}
\cvitem{C/C++, Rust}{Simple allocator implementation, OpenGL graphics project.}
\cvitem{PHP, Perl, Ruby}{Simple web applications, security patches to existing systems.}
\end{minipage}
\begin{minipage}{\linewidth}
\vspace{3ex}
\section{Computer Skills}
\cvitem{Source Control}{Git (advanced), Subversion and \href{https://en.wikipedia.org/wiki/CMVC}{CMVC}.}
\cvitem{Testing}{Developed using TDD with automated test tools including nose, py.test and tox. Advanced use and configuration of Jenkins jobs, slaves and executors.}
\cvitem{Web Technologies}{HTML technologies such as WebSockets and inadvisable CSS hacks, Semantic Web technologies such as RDF and SPARQL.}
\cvitem{Frameworks}{Django, Sanic, Flask and Rails.}
\cvitem{DevOps}{
VMware vSphere, Ubuntu 17.10 Linux, use of and contributions to SaltStack and
Ansible. Lead maintainer of Docker image build pipeline
\href{http://github.com/6si/shipwright}{shipwright}.
}
\cvitem{Distributed Computing}{Celery, RabbitMQ, Bitcoin}
\cvitem{Databases}{MySQL/MariaDB, PostgreSQL and Redis.}
\end{minipage}
\begin{minipage}{\linewidth}
\vspace{3ex}
\section{Interests \& Side Projects}
\cvitem{Humanism}{
Committee member of the Southampton Atheist Society between 2010--2013 and
since moving to London now regularly attend the Central London Humanist
Group.
}
\cvitem{IPv6}{
Deployed the next-generation Internet Protocol, IPv6, at home and consequently
earned \href{https://ipv6.he.net/certification/}{Hurricane Electric IPv6
Certification}.
}
\cvitem{Cyber security Workshop}{
Wrote and delivered a workshop teaching Wi-Fi, Web and Network penetration
testing as part of the University of Southampton's UK-China Cyber Security workshop.
}
\end{minipage}
\begin{minipage}{\linewidth}
\vspace{3ex}
\section{References}
\begin{cvcolumns}
\cvcolumn{IBM Internships}{
Jon Short\\
IBM Storage Subsystems Group, Hursley\\
SAN Volume Controller, Regression Test Team Leader\\
}
\cvcolumn{University of Southampton Internship}{
\href{http://id.ecs.soton.ac.uk/person/446}{Dr. Tim Chown}\\
ECS, Faculty of Physical and Applied Sciences\\
University of Southampton\\
}
\end{cvcolumns}
\end{minipage}
% Publications from a BibTeX file without multibib
% for numerical labels: \renewcommand{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}% CONSIDER MERGING WITH PREAMBLE PART
% to redefine the heading string ("Publications"): \renewcommand{\refname}{Articles}
\nocite{*}
\bibliographystyle{plain}
\bibliography{publications} % 'publications' is the name of a BibTeX file
% Publications from a BibTeX file using the multibib package
%\section{Publications}
%\nocitebook{book1,book2}
%\bibliographystylebook{plain}
%\bibliographybook{publications} % 'publications' is the name of a BibTeX file
%\nocitemisc{misc1,misc2,misc3}
%\bibliographystylemisc{plain}
%\bibliographymisc{publications} % 'publications' is the name of a BibTeX file
%\clearpage\end{CJK*} % if you are typesetting your resume in Chinese using CJK; the \clearpage is required for fancyhdr to work correctly with CJK, though it kills the page numbering by making \lastpage undefined
\end{document}
%% end of file `template.tex'.