You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Developed, oversaw, and drove the technical vision for Platform Engineering and Infrastructure at Datavant.
44
-
Executed on broad impact projects with high visibility, leveled up the technical excellence of the organization, accelerated timelines exponentially, and derisked key initiatives.
44
+
Executed on broad impact projects with high visibility, leveled up the technical excellence of the organisation, accelerated timelines exponentially, and derisked key initiatives.
45
45
46
46
- Architected the "Golden Path" of the company, building alignment around a strategy for reducing technical fatigue and accelerating development efforts.
47
47
- Designed and executed the observability strategy, including incremental adoption, improvement, platform capabilities and end-user integrations.
@@ -69,7 +69,7 @@ Led the Platform Org in an explicitly interim capacity, focusing on preparing th
69
69
70
70
- Built awareness around resource allocation needs for the Platform Org, leading to substantially re-allocating resources in order to right-size our infrastructure investment.
71
71
- Built a data-driven and strategic process around identifying and allocating developer experience interventions, leading to substantial improvements to developer satisfaction and velocity.
72
-
- Worked with Product Engineering, Security, and the CTO Leadership Team to build a narrative of cross-functional collaboration and trust, bringing about a significant improvement in the organization's alignment and messaging around Security and Platform.
72
+
- Worked with Product Engineering, Security, and the CTO Leadership Team to build a narrative of cross-functional collaboration and trust, bringing about a significant improvement in the organisation's alignment and messaging around Security and Platform.
Copy file name to clipboardExpand all lines: src/_talks/platform-engineering-day-kubecon-eu-2025--so-you-want-to-hire-for-platform-engineering/slides.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,7 @@ We're covering:
37
37
38
38
- The part of the hiring process engineering leaders have control over
39
39
- One way to view the differences between Platform Engineers, Infrastructure, SREs, etc.
40
-
- How to think about skills your organization needs
40
+
- How to think about skills your organisation needs
41
41
- Hazel's Opinions and Experiences (which have been very successful!)
Copy file name to clipboardExpand all lines: src/_talks/qcon-san-francisco-2023--understanding-platforms-what-they-are-why-they-work-when-to-use-them-how-to-build-them/index.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: "Understanding Platforms: What They Are, Why They Work, When to Use Them,
3
3
description: |
4
4
Technical concepts are something that are thought of, approached, and understood differently across engineers, managers, and executives. Bridging the gaps and providing understanding to a complex and nuanced topic across all three groups can sometimes feel impossible. In this talk, we'll do just that.
5
5
6
-
Together, we're going to go over not just platforms and platform engineering, but the very fabric of doing, what it means to learn, and how collective thought scales across a team, an organization and an industry. Utilizing that, we'll go over platform engineering from the perspectives of an engineer, a manager, and an executive. All at the same time.
6
+
Together, we're going to go over not just platforms and platform engineering, but the very fabric of doing, what it means to learn, and how collective thought scales across a team, an organisation and an industry. Utilizing that, we'll go over platform engineering from the perspectives of an engineer, a manager, and an executive. All at the same time.
7
7
8
8
Not only will we go over a consistent framework for how each group can think about and understand platform engineering, we'll spend time going over how each group can communicate with other and understand each other in a way that's effective, actionable, and transformative.
Copy file name to clipboardExpand all lines: src/_talks/scale-22x-2025--redefining-observability-observability-3-0/slides.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -261,7 +261,7 @@ layout: quote
261
261
zoom: 0.7
262
262
---
263
263
264
-
# You’re paying what? 10-20% of your _entire_ infrastructure budget for something that 5% of the organization is going to use, 10% of that 5% are going to be actually deeply competent in, and 10% of that 10% are going to be an expert in.<br/>That’s the worst possible way to spend 20% of your budget.
264
+
# You’re paying what? 10-20% of your _entire_ infrastructure budget for something that 5% of the organisation is going to use, 10% of that 5% are going to be actually deeply competent in, and 10% of that 10% are going to be an expert in.<br/>That’s the worst possible way to spend 20% of your budget.
Copy file name to clipboardExpand all lines: src/blog/beginner-mistakes-and-oddities-i-encountered.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ I had a lot of these; mostly due to my inexperience, but also GHC is a pretty ol
15
15
Unfortunately it’s not really something where comprehensive documentation can easily be written down other than a general "best practices" approach (which I think I’ll write up).
16
16
17
17
- GHC has a lot of submodules. Before working you should not only pull the master but you should also run `git submodule update`; I had quite a few issues early on with extraneous files in git status before I learned to do that.
18
-
- Git notes is really not that ergonomic at all. If you have any namespaces used in your git notes (which this project does) you’ll need –ref=perf for damn near every command you use. It’s a small thing, but it can sometimes take a while to realize what you missed.
18
+
- Git notes is really not that ergonomic at all. If you have any namespaces used in your git notes (which this project does) you’ll need –ref=perf for damn near every command you use. It’s a small thing, but it can sometimes take a while to realise what you missed.
19
19
- Running the ./validate script is the only way to guarantee a clean anything. Switch a branch and something weird breaks? ./validate; Not quite sure why tests started failing after a git pull and a small innocuous code changes? ./validate. The real bummer here is that ./validate wipes everything and rebuilds the entire damn compiler and all that stuff from scratch and then runs the most extensive version of the testsuite. The exhaustive version of the testsuite alone can take nearly 2 hours on my computer if it’s not run threaded, so it’s definitely a huge time sink if you don’t have this thing optimized.
20
20
- Related pain-point; there’s a lot of things you can do to tweak and fix your setup so that you can build and validate quicker. Unfortunately, this is all something that you just have to kind of learn over time and there’s no real way to intelligently "auto-configure" this nicely. You’ll have to suffer super long build times for GHC and long runtimes for the testsuite or sink quite a few hours into configuring the "quicker options" for your specific usecase.
21
21
- Update: Thanks to a few helpful Reddit comments, I’m now aware that `dist/maintainer clean` instead of ./validate will help you out quite a bit. Unfortunately, this still doesn’t clean out everything.
@@ -41,7 +41,7 @@ Things I really needed and had to learn:
41
41
## Sanity checks
42
42
43
43
Programmers need sanity checks for everything, especially when working in a language like python.
44
-
I can’t begin to mention how many times I was working on something only to have everything break for hours before I realized I was implicitly assuming something that wasn’t accurate.
44
+
I can’t begin to mention how many times I was working on something only to have everything break for hours before I realised I was implicitly assuming something that wasn’t accurate.
45
45
Not all tests are performance tests, some tests involve measuring the compiler, some don’t, etc.
46
46
Sanity checks don’t just involve the code, they also involve your environment as well;
47
47
I’ve accidentally ran tests on the wrong commit, used the wrong flags, accidentally wasted 2 hours building the wrong version of a program...
@@ -102,7 +102,7 @@ This applies to everything in my life and it’s why making breakfast takes me a
102
102
So these are just some of the things I’ve learned and struggled with while working on this project. I’d probably summarize this into a few key points:
103
103
104
104
- Abstraction is the process of communicating more precisely about something. Use it whenever possible and helpful to make code more robust.
105
-
- Be explicit about your assumptions and use implicit behavior as little as possible; ideally document that implicit behavior in a comment whenever you can.
105
+
- Be explicit about your assumptions and use implicit behaviour as little as possible; ideally document that implicit behaviour in a comment whenever you can.
106
106
- Be deliberate and methodical about your sanity checks; write them down so you can verify things consistently and thoroughly.
107
107
- Do _one_ thing at a time, learn your git hygiene, and use it.
108
108
- Write down your thought processes somewhere whenever you’re doing something more intensive than fixing an immediate, small issue.
Copy file name to clipboardExpand all lines: src/blog/halfway-there.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,12 +25,12 @@ After that, things have been going increasingly swimmingly and I’m sure my men
25
25
- Similarly, data from git notes can now be loaded into the test driver.
26
26
- Finally, I’ve started working on some tooling to start comparing performance metrics across commits.
27
27
28
-
This progress corresponds to, in my proposal, basically completing phase one. What remains now is still quite a bit, but the first big hurdle is done. The comparisons done right now in the test driver have basically not been modified much in any way; it was right around the point where I finished adding stuff into git notes that I realized we’re going to need a separate tool for sane performance metric comparison; so, I’ve done some preliminary work on that. Unfortunately, git notes are a bit tricky and not very ergonomic to work with so I’ll be working on making that as seamless as possible as well; ideally, nobody will ever need to touch them or even know they exist. Technically, at this point, the ticket for this project could probably be closed as
28
+
This progress corresponds to, in my proposal, basically completing phase one. What remains now is still quite a bit, but the first big hurdle is done. The comparisons done right now in the test driver have basically not been modified much in any way; it was right around the point where I finished adding stuff into git notes that I realised we’re going to need a separate tool for sane performance metric comparison; so, I’ve done some preliminary work on that. Unfortunately, git notes are a bit tricky and not very ergonomic to work with so I’ll be working on making that as seamless as possible as well; ideally, nobody will ever need to touch them or even know they exist. Technically, at this point, the ticket for this project could probably be closed as
29
29
"successfully completed", but it’d be a shame to do so without developing the tooling to help make using the performance test-suite as painless as possible.
30
30
31
31
## What now?
32
32
33
-
At first, I was thinking that the next logical step towards working on the tooling and the project was going to be working on things like: Developing tooling to make sure that the right information is added to git notes, that the correct information is maintained and propagated into the future, into different branches, etc.,; and the auto builders will need some additional configuration in order to handle the git notes (git notes do not work very seamlessly). But then, with Ben’s help, I fleshed out the workflows a bit and realized that none of that really needs to happen if I just rip all of the performance metric comparison out of the test-driver. After that, things fell into place a bit more and the new plan is:
33
+
At first, I was thinking that the next logical step towards working on the tooling and the project was going to be working on things like: Developing tooling to make sure that the right information is added to git notes, that the correct information is maintained and propagated into the future, into different branches, etc.,; and the auto builders will need some additional configuration in order to handle the git notes (git notes do not work very seamlessly). But then, with Ben’s help, I fleshed out the workflows a bit and realised that none of that really needs to happen if I just rip all of the performance metric comparison out of the test-driver. After that, things fell into place a bit more and the new plan is:
34
34
35
35
- Create a "library" to import into the test-driver. It’ll contain a few tools:
36
36
- Boolean "pass/fail" function to compare whether a test varies beyond a certain variance % between two commits (generally HEAD and HEAD~1).
0 commit comments