-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
345 lines (303 loc) · 20 KB
/
index.html
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>BenH - Research Portfolio</title>
<!-- Bootstrap core CSS -->
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom fonts for this template -->
<link href="https://fonts.googleapis.com/css?family=Saira+Extra+Condensed:100,200,300,400,500,600,700,800,900" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i" rel="stylesheet">
<link href="vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet">
<link href="vendor/devicons/css/devicons.min.css" rel="stylesheet">
<link href="vendor/simple-line-icons/css/simple-line-icons.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/resume.min.css" rel="stylesheet">
</head>
<body id="page-top">
<nav class="navbar navbar-expand-lg navbar-dark bg-primary fixed-top" id="sideNav">
<a class="navbar-brand js-scroll-trigger" href="#page-top">
<span class="d-block d-lg-none"></span>
<span class="d-none d-lg-block">
<img class="img-fluid img-profile rounded-circle mx-auto mb-2" src="img/profile2.jpg" alt="">
</span>
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#about">About</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#publications">Publications</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#experience">Research Projects</a>
</li>
</ul>
</div>
</nav>
<div class="container-fluid p-0">
<section class="resume-section p-3 p-lg-5 d-flex d-column" id="about">
<div class="my-auto">
<h1 class="mb-0">Ben
<span class="text-primary">Hull</span>
</h1>
<br>
<p>Software engineer focusing on backend development. Previously worked as a Cyber Security consultant focusing on offensive security. I have a masters degree in Mathematics and Physics from the University of Durham and hold the OSCP and CRT Cyber Security certifications. My research interests span machine learning, particuarly on financial datasets, deep learning, natural language processing and Cyber.</p>
<!-- <ul class="list-inline list-social-icons mb-0">
<li class="list-inline-item">
<a href="#">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-linkedin fa-stack-1x fa-inverse"></i>
</span>
</a>
</li>
<li class="list-inline-item">
<a href="#">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-github fa-stack-1x fa-inverse"></i>
</span>
</a>
</li>
</ul> -->
</div>
</section>
<section class="resume-section p-3 p-lg-5 d-flex flex-column" id="publications">
<div class="my-auto">
<h2 class="mb-5">Publications</h2>
<div class="resume-item d-flex flex-column flex-md-row mb-5">
<div class="resume-content mr-auto">
<h3 class="mb-0">Domain-specific prompt injection detection</h3>
<div class="subheading mb-3">Benjamin Hull and Donato Capitella</div>
<p>Unlike traditional injection attacks, such as SQL injection, where deterministic solutions exist, prompt injection in LLMs operates within the realm of natural language, where there is no clear separation between instructions and data. This makes it challenging to address the issue directly. Instead, the solutions we outlined and that are currently used in the industry rely on approaches that treat the LLM and its outputs as untrusted. These include implementing external authorization controls to limit the scope of actions LLM agents can perform using tools/plugins, sanitizing outputs to remove potentially harmful content, and employing human-in-the-loop oversight to ensure that all actions taken by the LLM are explicitly approved by a human operator. Additionally, we emphasized the importance of sanitizing input in two ways: (1) by reducing the accepted character sets to thwart attackers' attempts to embed malicious instructions, and (2) the detection of potential adversarial prompts by leveraging machine learning models trained to identify signs of injection attempts.</p>
<a class="nav-link" href="https://labs.withsecure.com/publications/detecting-prompt-injection-bert-based-classifier">Domain-specific prompt injection detection, WithSecure Labs, April 2024</a>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row mb-5">
<div class="resume-content mr-auto">
<h3 class="mb-0">Using residual heat maps to visualise Benford's multi-digit law</h3>
<div class="subheading mb-3">Benjamin Hull, Alexander Long and Ifan G Hughes</div>
<p>Benford's law, established over a century ago, reveals that the occurrence of the first significant digit in large numerical datasets follows a nonuniform distribution. This counterintuitive nature is useful in forensic accounting and detecting financial fraud. A recent investigation on house price data in England and Wales pre and post-2014 shows two distinct patterns of human intervention: selling property just below tax thresholds and psychological pricing with a bias towards final digits being 0 or 5. The analysis indicates that the 2014 legislative change to soften tax thresholds significantly impacted house price data.</p>
<a class="nav-link" href="https://iopscience.iop.org/article/10.1088/1361-6404/ac3671">Benjamin Hull et al 2022 Eur. J. Phys. 43 015803</a>
</div>
</div>
</div>
</section>
<section class="resume-section p-3 p-lg-5 d-flex flex-column" id="experience">
<div class="my-auto">
<h2 class="mb-5">Research Projects</h2>
<div class="resume-item d-flex flex-column flex-md-row mb-5">
<div class="resume-content mr-auto">
<h3 class="mb-0">Language Translation using the Transformer Architecture</h3>
<div class="subheading mb-3">Personal Research</div>
<p>Implements a translation model using the Transformer architecture, based on the groundbreaking paper "Attention is All You Need" (Vaswani et al., 2017). The implementation focuses on English-to-French translation whilst offering a simple to understand implementation of the architecture in PyTorch.</p>
<a class="nav-link js-scroll-trigger" href="https://colab.research.google.com/github/bluehood/Transformer-Translation/blob/main/Transformer_Translation.ipynb">Colab Notebook</a>
<a class="nav-link js-scroll-trigger" href="https://github.com/bluehood/Transformer-Translation">GitHub Repository</a>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row mb-5">
<div class="resume-content mr-auto">
<h3 class="mb-0">An Implementation of GPT using Pytorch</h3>
<div class="subheading mb-3">Personal Research</div>
<p>A from-scratch implementation of the GPT (Generative Pre-trained Transformer) architecture using PyTorch. The implementation focuses on understanding the core components of the transformer architecture and its application to language modeling.</p>
<a class="nav-link js-scroll-trigger" href="https://colab.research.google.com/github/bluehood/GPT-Implementation/blob/main/GPT_Implementation.ipynb">Colab Notebook</a>
<a class="nav-link js-scroll-trigger" href="https://github.com/bluehood/GPT-Implementation/">GitHub Repository</a>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row mb-5">
<div class="resume-content mr-auto">
<h3 class="mb-0">Investment Strategy using Machine Learning and Technical Indicators</h3>
<div class="subheading mb-3">Personal Research</div>
<p>The following paper aims to introduce some basic machine learning models to identify buy-
ing and selling conditions for financial assets. In particular, the S&P500 index will be con-
sidered, with technical indicator features being extracted from historical price data. We will
also consider techniques to identify and address overfitting, a condition where the model
fails to generalise well to new data. We will then optimise the resultant model by tuning its
hyperparameters to better fit the data. Our final model has an accuracy of 68% and could
be used as part of a investment strategy to identify buying and selling conditions in stock
indexes.</p>
<a class="nav-link js-scroll-trigger" href="/research/benh_machine_learning_technical_indicators_2024.pdf">benh_machine_learning_technical_indicators_2024.pdf</a>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row mb-5">
<div class="resume-content mr-auto">
<h3 class="mb-0">Detecting Network Based Intrusions using Neural Networks</h3>
<div class="subheading mb-3">Personal Research</div>
<p>The following paper aims to give an overview of some basic machine learning techniques
that can be used to identify network based intrusions. This will include prepossessing steps
used to format the data correctly. Neural network based models will then be applied to
perform binary classification of network intrusion data into either normal patterns or attack
patterns. The effectiveness of these models will be evaluated and improvements, including
tuning their hyperparameters, will be considered.</p>
<a class="nav-link js-scroll-trigger" href="/research/benh_machine-learning-intrusion-detection_2024.pdf">benh_machine-learning-intrusion-detection_2024.pdf</a>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row mb-5">
<div class="resume-content mr-auto">
<h3 class="mb-0">Can Benford's law be used to detect financial fraud?</h3>
<div class="subheading mb-3">Durham University Physics Level 4 Project</div>
<p>Benford's law (BL) describes the probability of a given digit occurring at a position (index) in a number. By analysing financial statements and other documents and measuring conformity with this law, it is could be possible to detect financial fraud. This project focuses on house price data, techniques used to measure conformity and SEC filling to determine how this law could be used to detect financial fraud.</p>
<a class="nav-link js-scroll-trigger" href="/research/benh_benfords-law-financial-fraud_2021.pdf">benh_benfords-law-financial-fraud_2021.pdf</a>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row mb-5">
<div class="resume-content mr-auto">
<h3 class="mb-0">Benford's Law as an Extension of Zipf's Law</h3>
<div class="subheading mb-3">Personal Reserach</div>
<p>Analytically, samples taken from a log-uniform distribution comply with Benford's law (BL). A statistical derivation of Benford's law, originally given by Hill, relies on this fact. Zipf's law describes the occurrence of words in a given languages and follows a similar digit law to BL. When a language has an infinite number of words Zipf's law reduces to the Riemann Zeta function. By considering an extension of Zipf's law as a summation of an uncountable infinite number of languages, each with an infinite number of words, we show a connection between Zipf's law, the Zeta function and Benford's law. This immediately extends the BL beyond its classical definition and provides a rich mathematical structure to the theory which is related to the Zeta function.
</p>
<a class="nav-link js-scroll-trigger" href="/research/benh_generating-benford-distributions_2023.pdf">benh_generating-benford-distributions_2023.pdf</a>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row mb-5">
<div class="resume-content mr-auto">
<h3 class="mb-0">Solving Patience</h3>
<div class="subheading mb-3">Personal Reserach</div>
<p>Patience is a simple card game and is similar to Solitaire. The outcome of Patience is caused entirely by the arrangement of the pack of cards the game is played with. In theory, if a player can analyse the deck before playing they should be able to determine the score they will achieve. This research aims to analyse the process of playing Patience programmatically and whether the final score can be predicted given any shuffled pack of cards. A time series interpretation of the data is presented and further research topics suggested, such as the K-Mean clustering algorithm to detect features and trends in the underling time series distribution.
</p>
<a class="nav-link js-scroll-trigger" href="/research/benh_patience-solution-research_2023.pdf">benh_patience-solution-research_2023.pdf</a>
</div>
</div>
</div>
</section>
<!-- <section class="resume-section p-3 p-lg-5 d-flex flex-column" id="education">
<div class="my-auto">
<h2 class="mb-5">Education</h2>
<div class="resume-item d-flex flex-column flex-md-row mb-5">
<div class="resume-content mr-auto">
<h3 class="mb-0">University of Colorado Boulder</h3>
<div class="subheading mb-3">Bachelor of Science</div>
<div>Computer Science - Web Development Track</div>
<p>GPA: 3.23</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">August 2006 - May 2010</span>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row">
<div class="resume-content mr-auto">
<h3 class="mb-0">James Buchanan High School</h3>
<div class="subheading mb-3">Technology Magnet Program</div>
<p>GPA: 3.56</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">August 2002 - May 2006</span>
</div>
</div>
</div>
</section> -->
<!-- <section class="resume-section p-3 p-lg-5 d-flex flex-column" id="skills"> -->
<!-- <div class="my-auto">
<h2 class="mb-5">Skills</h2>
<div class="subheading mb-3">Programming Languages & Tools</div>
<ul class="list-inline list-icons">
<li class="list-inline-item">
<i class="devicons devicons-python"></i>
</li>
<li class="list-inline-item">
<i class="devicons devicons-c"></i>
</li>
<li class="list-inline-item">
<i class="devicons devicons-javascript"></i>
</li>
<li class="list-inline-item">
<i class="devicons devicons-bash"></i>
</li>
<li class="list-inline-item">
<i class="devicons devicons-azure"></i>
</li>
<li class="list-inline-item">
<i class="devicons devicons-less"></i>
</li>
<li class="list-inline-item">
<i class="devicons devicons-bootstrap"></i>
</li>
<li class="list-inline-item">
<i class="devicons devicons-wordpress"></i>
</li>
<li class="list-inline-item">
<i class="devicons devicons-grunt"></i>
</li>
<li class="list-inline-item">
<i class="devicons devicons-gulp"></i>
</li>
<li class="list-inline-item">
<i class="devicons devicons-npm"></i>
</li> -->
<!-- </ul>
<div class="subheading mb-3">Workflow</div>
<ul class="fa-ul mb-0">
<li>
<i class="fa-li fa fa-check"></i>
Mobile-First, Responsive Design</li>
<li>
<i class="fa-li fa fa-check"></i>
Cross Browser Testing & Debugging</li>
<li>
<i class="fa-li fa fa-check"></i>
Cross Functional Teams</li>
<li>
<i class="fa-li fa fa-check"></i>
Agile Development & Scrum</li>
</ul>
</div>
</section> -->
<!-- <section class="resume-section p-3 p-lg-5 d-flex flex-column" id="interests">
<div class="my-auto">
<h2 class="mb-5">Interests</h2>
<p>Apart from being a web developer, I enjoy most of my time being outdoors. In the winter, I am an avid skiier and novice ice climber. During the warmer months here in Colorado, I enjoy mountain biking, free climbing, and kayaking.</p>
<p class="mb-0">When forced indoors, I follow a number of sci-fi and fantasy genre movies and television shows, I am an aspiring chef, and I spend a large amount of my free time exploring the latest technolgy advancements in the front-end web development world.</p>
</div>
</section> -->
<!-- <section class="resume-section p-3 p-lg-5 d-flex flex-column" id="awards">
<div class="my-auto">
<h2 class="mb-5">Awards & Certifications</h2>
<ul class="fa-ul mb-0">
<li>
<i class="fa-li fa fa-trophy text-warning"></i>
Google Analytics Certified Developer</li>
<li>
<i class="fa-li fa fa-trophy text-warning"></i>
Mobile Web Specialist - Google Certification</li>
<li>
<i class="fa-li fa fa-trophy text-warning"></i>
1<sup>st</sup>
Place - University of Colorado Boulder - Emerging Tech Competition 2009</li>
<li>
<i class="fa-li fa fa-trophy text-warning"></i>
1<sup>st</sup>
Place - University of Colorado Boulder - Adobe Creative Jam 2008 (UI Design Category)</li>
<li>
<i class="fa-li fa fa-trophy text-warning"></i>
2<sup>nd</sup>
Place - University of Colorado Boulder - Emerging Tech Competition 2008</li>
<li>
<li>
<i class="fa-li fa fa-trophy text-warning"></i>
1<sup>st</sup>
Place - James Buchanan High School - Hackathon 2006</li>
<li>
<i class="fa-li fa fa-trophy text-warning"></i>
3<sup>rd</sup>
Place - James Buchanan High School - Hackathon 2005</li>
</ul>
</div>
</section> -->
</div>
<!-- Bootstrap core JavaScript -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Plugin JavaScript -->
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<!-- Custom scripts for this template -->
<script src="js/resume.min.js"></script>
</body>
</html>