-
Notifications
You must be signed in to change notification settings - Fork 0
/
StevenWatermanCV.tex
346 lines (259 loc) · 17.7 KB
/
StevenWatermanCV.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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
\documentclass[hidelinks, 12pt, a4paper]{article}
\usepackage[margin=0.5in]{geometry}
\usepackage[sfdefault,light]{roboto}
\usepackage[none]{hyphenat}%Remove hyphenation
\usepackage{fontawesome}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage{tabularx}
\usepackage{tikz}
\usepackage{graphbox}
\usepackage{multicol}
\usepackage{wrapfig}
\hypersetup{
colorlinks=true,
linkcolor=blue,
filecolor=blue,
citecolor = black,
urlcolor=blue,
}
%No page numbering
\pagenumbering{gobble}
\setlength{\parindent}{0pt}
\setlength\multicolsep{0pt}
\begin{document}
\begin{Huge}Steven Waterman\end{Huge}
\vspace{6pt}\hspace{120pt} \begin{large}Technical Coach\end{large}\\
\begin{wraptable}{r}{5cm}
\vspace{-75pt}
\begin{tabular}{rc}
\href{https://en.wikipedia.org/wiki/Durham,_England}{Durham, UK} & \href{https://en.wikipedia.org/wiki/Durham,_England}{\faHome} \\
\href{mailto:[email protected]}{[email protected]} & \href{mailto:[email protected]}{\faEnvelope} \\
\href{http://www.stevenwaterman.uk}{stevenwaterman.uk} & \href{http://www.stevenwaterman.uk}{\faLink} \\
&\\
\href{https://www.linkedin.com/in/steven-waterman/}{steven-waterman} & \href{https://www.linkedin.com/in/steven-waterman/}{\faLinkedin} \\
\href{https://twitter.com/SteWaterman}{SteWaterman} & \href{https://twitter.com/SteWaterman}{\faTwitter} \\
\href{https://github.com/stevenwaterman}{StevenWaterman} & \href{https://github.com/stevenwaterman}{\faGithub}
\end{tabular}
\end{wraptable}
I'm a Software Engineer with a history of ignoring job descriptions.
While I \emph{could} just write the code myself, I'm happier and more impactful when I spend my time helping others.
I want to support your product teams, getting my hands dirty and building a culture of technical excellence.
% I love working with people, helping to reinforce the cycles of continuous improvement that ensure we're eventually great.
% That's why I love helping everyone else work effectively by solving the problems in their way.
% \begin{multicols}{2}
% As a generalist, I quickly learn skills across many domains.
% I'm excited by elegant solutions, but when that's not an option, I can draw from other areas to find an 80\% solution.
% I use my experience to coach software teams towards technical excellence and transformative collaboration.\\
%
% Currently, I'm working on my own startup as a solo founder. It has been an incredible technical challenge and a real learning experience, but I've realised that I don't enjoy running all aspects of a business at once. I'm seeking new opportunities that let me focus on my strengths.\\
% \end{multicols}
\vspace{24pt}
\begin{tabularx}{\textwidth}{@{}llXrr@{}}
\begin{Large}How I Help\end{Large}&
\rule{80pt}{1pt}&&
\rule{63pt}{1pt}&
\textbf{Impact}
\end{tabularx}\\
\begin{multicols}{2}
Your values say openness and transparency, but nobody got the memo.
You want tight-knit teams of friends, but got competing silos.
You try and learn from failure, but everyone's busy assigning blame.
Your trickle-down culture... doesn't.\\
I believe in the power of a strong company culture.
It can transform teams, uniting them for a common goal, and solving issues before they start.
But culture isn't just about your values.\\
You also need to develop \emph{norms} - the way your company operates on the ground level.
All too often, we just announce some values and call it a day.
You need someone working bottom-up to align your norms and values.\\
As a Technical Coach, I cut across teams and hierarchy to help them resolve issues in the day-to-day work.
I exemplify your values, and show that there \emph{is} a better way of doing things.
\end{multicols}
\begin{tabularx}{\textwidth}{@{}Xrr@{}}&
\rule{50pt}{1pt}&
\textbf{Duties}
\end{tabularx}\\
\begin{multicols}{2}
Coaching is a constant cycle of listening to people, understanding the issues they face, and supporting them to fix it.
That could mean pair-programming, hosting workshops, or just creating a supportive space.
The focus is always on continuous improvement through teamwork.
I'm not a manager, don't lead a team, and don't have any authority on-project.
I'm a resource for people to use, helping them figure out the answer for themselves.
Sitting outside the hierarchy, I can transcend any bureaucracy and get information where it needs to go, keeping everyone aligned.
\end{multicols}
% \begin{multicols}{2}
% I want to work with a software team, coaching them towards best practices and more effective collaboration.
% I'm happy to get my hands dirty and help write code, but it's a means to an end.\\
%
% I can't guarantee your project will be a success, but I can make sure that the next one is better.
% My priority is ensuring we achieve long-term growth.\\
%
% A typical day might involve pair-programming, facilitating a retro, planning a mobbing session, and chatting with team members individually to understand how I can help them out.\\
%
% \emph{Technical Coach} is the best description of me, but I'm not picky. In your company, I might be a \emph{Lead Developer}, \emph{Scrum Master}, or even \emph{CTO}.\\
% \end{multicols}
%
% \begin{tabularx}{\textwidth}{@{}Xrr@{}}&
% \rule{50pt}{1pt}&
% \textbf{Culture}
% \end{tabularx}\\
%
% \begin{multicols}{2}
% Your leadership must value openness and transparency, empowering individuals to fix the problems they see.
% You must embrace tight-knit teams that work together as friends.
% Success should be celebrated, while learning from failures.\\
%
% So far, I've only talked about what leadership thinks - your \emph{values}.
% Your \emph{norms} are even more important.
%
% However, culture is not just about \emph{values} - the things you stick on a poster.
% It's also about \emph{norms}, and how they align with your values.
%
%
%
%% As a large part of my role is helping to \emph{create} that culture, I only have one real requirement.
%% Management \emph{must} see the value in building a culture of high-trust, collectivism, and psychological safety.
%% It can't be an uphill battle.
% \end{multicols}
\vspace{24pt}
\begin{tabularx}{\textwidth}{@{}llXrr@{}}
\begin{Large}Skills\end{Large}&
\rule{80pt}{1pt}&&
\rule{63pt}{1pt}&
\textbf{Technical}
\end{tabularx}\\
\begin{multicols}{2}
My core expertise is full-stack web development, with specialisms in developer experience, API design, and semantic type constraints.\\
As a generalist, my most important skill is the ability to learn quickly by relying on my past experiences.
I can see similarities between tasks and transfer knowledge from one area to another.\\
I won't be an expert, but I'll know enough to work with experts.
There's too much to list, but here are some of the stranger things I've got up to:\\
\begin{itemize}[noitemsep,topsep=0pt,partopsep=0pt]
\item \begin{small}Built a Streaming Platform (Cloud, Community)\end{small}
\item \begin{small}Prototyping Electronics (CAD/CAM, Electronics)\end{small}
\item \begin{small}Financial Modeling (Statistics, AI/ML)\end{small}
\item \begin{small}Making Background Audio (Music Production)\end{small}\\
\end{itemize}
\end{multicols}
\begin{tabularx}{\textwidth}{@{}Xrr@{}}&
\rule{50pt}{1pt}&
\textbf{Soft Skills}
\end{tabularx}\\
\begin{multicols}{2}
I always prioritise expressing myself clearly.
My tech blog has a small following, with a few viral hits.
A history in improvised comedy means I'm a calm and adaptable presenter, often giving tech talks or live-coding on Twitch.\\
I'm friendly and approachable, making it safe to ask for help without blame or shame.\\
While Tech and development are my home, I'm currently running my own business and have experience talking to people across business functions.
When there's an issue outside of my scope, I know how to make change happen.\\
I understand my duty to the people I support, and will fight to make sure their voices get heard.\\
\end{multicols}
\newpage
\begin{tabularx}{\textwidth}{@{}llXrr@{}}
\begin{Large}Career History\end{Large}&
\rule{80pt}{1pt}&&&
\end{tabularx}\\
\begin{tabularx}{\linewidth}{@{}Xr@{}}
\textbf{Founder @ \href{https://www.lexoral.com/}{Lexoral}} & \textbf{May 2021 --- Present}
\end{tabularx}\vspace{2pt}
\begin{multicols}{2}
After watching my partner struggle to transcribe their PhD interviews, I founded Lexoral.
We give you an AI \emph{assistant} that transcribes the easy bits for you, asking for help when it's not sure.\\
I ran all aspects of the business, from design to development, accounting to marketing.
Lexoral closed out 2021 by joining the \href{https://dcincubator.co.uk/}{Durham City Incubator}, an intensive 6-month program.\\
I've discovered how much I didn't know before, getting real experience interviewing users, designing a marketing strategy, and building a meaningful value prop based on the things customers actually cared about.\\
After hearing concerns about data security, I embraced a philosophy of radical transparency.
To prove that we weren't hiding anything, Lexoral went \href{https://github.com/stevenwaterman/Lexoral/}{open-source} with public CD pipelines, and most of it was written live on \href{https://twitch.tv/lexoral}{Twitch}.\\
Lexoral was a crash-course in cloud-native development.
Everything is serverless, clients talk to firebase \href{https://lexoral.com/blog/svelte-firestore-binding/}{directly}, and \href{https://twitter.com/SteWaterman/status/1445041856023339011}{one part of the pipeline} runs on over 1000 instances in parallel (per user!).\\
I still believe that Lexoral can be successful.
It has a niche, and solves a real need.
However, running a pre-seed startup alone is not for me.
Sadly, it's time to move on and refocus on my strengths.\\
\end{multicols}
\begin{tabularx}{\linewidth}{@{}Xr@{}}
\textbf{Senior Developer @ \href{https://www.nhsbsa.nhs.uk/}{NHS BSA}} & \textbf{Nov 2020 --- May 2021}
\end{tabularx}\vspace{2pt}
\begin{multicols}{2}
Shocked at the poor developer experience caused by outdated tooling and organisational barriers, I made it my mission to resolve those issues.
Seeing people run 15 microservices by hand, I moved development to containers and onboarded the team.
After spending half an hour setting up test data, I refactored our frontend integration tests, creating a custom DSL that makes it trivial.\\
I constantly pushed for more communication between functions and ran action-focussed retros, making it more than just a place to vent and giving the team ownership over our ways of working.
Since leaving, they have adopted some of my more radical ideas, including a complete restructuring of the project to de-silo the teams and allow people to self-organise.\\
\end{multicols}
\begin{tabularx}{\linewidth}{@{}Xr@{}}
\textbf{Consultant Developer @ \href{https://www.scottlogic.com/}{Scott Logic}} & \textbf{Aug 2019 --- Oct 2020}
\end{tabularx}\vspace{2pt}
\begin{multicols}{2}
I worked on a number of demanding projects, often expected to pick up new languages, technologies, or business domains, and be able to contribute within a few days.\\
As the COVID-19 pandemic set in, I worked in a trio advising NHS Digital on how to rearchitect the data pipeline feeding the Shielding Patients List.
We planned and oversaw the in-place migration from complex SQL queries to a Databricks cluster, ran detailed knowledge transfer sessions with NHS devs, and advised senior leadership on how to prevent similar situations in future.\\
Prior to that, I worked on an upcoming product for a multinational bank, and a Twitter-like equities research platform.
I have always been drawn to developer-facing improvements, working on projects like inter-service authentication, data auditing, and continuous deployment pipelines.\\
Throughout my time at Scott Logic, I actively pushed to improve our ways of working.
I ran retros and knowledge-sharing sessions to help integrate with client development teams.
To make sure there was a lasting record to learn from, I documented the decisions we made in a wiki.\\
\end{multicols}
\vspace{24pt}
\begin{tabularx}{\textwidth}{@{}llXrr@{}}
\begin{Large}Education\end{Large}&
\rule{80pt}{1pt}&&&
\end{tabularx}\\
\begin{tabularx}{\linewidth}{@{}Xr@{}}
\textbf{\href{https://www.dur.ac.uk/courses/info/?id=11509\&title=Computer+Science\&code=G400\&type=BSC\&year=2016}{BSc Computer Science} @ Durham University (1st Class Hons.)} & \textbf{2016 --- 2019}
\end{tabularx}\vspace{2pt}
Dissertation title: \emph{Tailoring horror games with biosignals}\\
\begin{tabularx}{\linewidth}{@{}Xr@{}}
\textbf{\href{https://www.dur.ac.uk/courses/info/?id=11558\&title=General+Engineering\&code=H100\&type=MENG\&year=2015}{MEng General Engineering} @ Durham University (Certificate)} & \textbf{2015 --- 2016}
\end{tabularx}\vspace{2pt}
Changed course after taking an elective CS module.
A year of Engineering is surprisingly handy!
\newpage
\begin{tabularx}{\textwidth}{@{}llXrr@{}}
\begin{Large}Other Work\end{Large}&
\rule{80pt}{1pt}&&
\rule{63pt}{1pt}&
\textbf{Writing}
\end{tabularx}\\
I've written for many tech blogs over the years. Here are a few of my highlights:
\begin{itemize}
\item \begin{small}\href{https://lexoral.com/blog/you-dont-need-js/}{\textbf{5 things you don't need Javascript for}} - A tour of some lesser-known HTML and CSS features that let you create sleek websites without JS, from animated diagrams to dark mode.\end{small}
\item \begin{small}\href{https://lexoral.com/blog/svelte-firestore-binding/}{\textbf{Database sync like magic, with Svelte + Firestore}} - Discussing Lexoral's data layer, built from first principles.\end{small}
\item \begin{small}\href{https://blog.scottlogic.com/2020/10/09/ergo-rabbit-hole.html}{\textbf{Down the ergonomic keyboard rabbit hole}} - The story of how I ended up with \href{https://blog.scottlogic.com/swaterman/assets/ergo-rabbit-hole/layer0.png}{such} a weird \href{https://ergodox-ez.com/}{keyboard}.\end{small}
\item \begin{small}\href{https://blog.scottlogic.com/2020/01/03/rethinking-the-java-dto.html}{\textbf{Rethinking the Java DTO}} - Exploring how we added extra type constraints onto our DTOs using Lombok, making them more flexible and more resistant to runtime errors. Featured in \href{https://www.baeldung.com/java-weekly-315}{Java Weekly}.\end{small}
\end{itemize}
\begin{tabularx}{\textwidth}{@{}Xrr@{}}&
\rule{50pt}{1pt}&
\textbf{Speaking}
\end{tabularx}\\
I'm a seasoned speaker, and have given a number of tech talks at local meetups, including:
\begin{itemize}
\item \begin{small}\href{https://www.youtube.com/watch?v=2ibiA5TEsxw}{\textbf{NE:Tech}} - Where I talked about Minesweeper and threw chocolates at people.\end{small}
\item \begin{small}\href{https://www.youtube.com/watch?v=P6u0Uv_VxCU}{\textbf{NE-RPC}} - Where I live-coded a website from scratch in Svelte.\end{small}
\item \begin{small}\href{https://www.twitch.tv/stewaterman}{\textbf{Twitch}} - Where I regularly live-code my projects (mixed with some games).\end{small}
\end{itemize}
\begin{tabularx}{\textwidth}{@{}Xrr@{}}&
\rule{50pt}{1pt}&
\textbf{Projects}
\end{tabularx}\\
I'm always working on something new, take a look at some of my side projects:
\begin{itemize}
\item \begin{small}\href{https://github.com/stevenwaterman/narration.studio}{\textbf{Narration.Studio}} - an in-browser narration editing tool using the web speech recognition API to be completely hands-free. Integrates with WebGL for high-performance waveform rendering. As a result of being built entirely with pre-release APIs, it no longer works. Looking back, this is the precursor to Lexoral.\end{small}
\item \begin{small} \href{https://stevenwaterman.uk/musetree/}{\textbf{MuseTree}} (\href{https://github.com/stevenwaterman/musetree}{Source}) - A custom tree-based frontend for OpenAI's \href{https://openai.com/blog/musenet/}{MuseNet}, made for real music production workloads. I hand-wrote the instrument synthesisers you hear using the Web Audio API.\end{small}
\item \begin{small}\href{https://stevenwaterman.uk/NoTimeToStalk}{\textbf{No Time To Stalk}} (\href{https://github.com/stevenwaterman/NoTimeToStalk}{Source}) - an experimental murder mystery game that was secretly multiplayer. Every action you take is recorded, and you become an NPC for the next player. How long until \emph{you} get accused?\end{small}
\item \begin{small}\href{https://github.com/stevenwaterman/sharpshot}{\textbf{Sharpshot}} - an esoteric visual programming language where data flies around a 2d grid and can collide in mid-air. Created for \href{http://www.durhack.com}{Durhack 2018}, winning the \emph{GitHub Prize for Best Dev Tool} and 2\textsuperscript{nd} place overall.\end{small}
\item \begin{small}\href{https://linktr.ee/prevoid_art}{\textbf{Prevoid}} - An exploration into AI-generated art using CLIP-guided diffusion models.\end{small}
\item \begin{small}\href{https://soundcloud.com/user-872603169/welcome-to-the-theatre}{\textbf{Soundcloud}} - A few samples of my music and remixes I've created.\end{small}
\end{itemize}
\begin{tabularx}{\textwidth}{@{}Xrr@{}}&
\rule{50pt}{1pt}&
\textbf{Weird}
\end{tabularx}\\
It's always good to have a few fun facts to hand, so here are some of mine:
\begin{itemize}
\item \begin{small}I performed improvised comedy at the Edinburgh Fringe Festival.\end{small}
\item \begin{small}I built an electric bike that can do 50mph.\end{small}
\item \begin{small}I helped design a Robot Wars bot.\end{small}
\item \begin{small}I founded the Durham University Bureaucracy Society, with the aim of growing to the point that we were too bureaucratic to have any spare time for recruitment. It only took 12 members.\end{small}
\end{itemize}
\end{document}