-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.xml
More file actions
285 lines (285 loc) · 34.6 KB
/
index.xml
File metadata and controls
285 lines (285 loc) · 34.6 KB
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
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Eric Hotinger</title>
<link>https://ehotinger.com/</link>
<description>Recent content on Eric Hotinger</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Fri, 18 Apr 2025 10:06:17 -0700</lastBuildDate>
<atom:link href="https://ehotinger.com/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Amazon ECS Set Default Log Driver Blocking Mode</title>
<link>https://ehotinger.com/blog/amazon-ecs-set-default-log-driver-blocking-mode/</link>
<pubDate>Fri, 18 Apr 2025 10:06:17 -0700</pubDate>
<guid>https://ehotinger.com/blog/amazon-ecs-set-default-log-driver-blocking-mode/</guid>
<description>Amazon ECS Set Default Log Driver Blocking Mode As of April 17th, 2025 in Amazon Elastic Container Service (ECS), you can set the defaultLogDriverMode for your tasks at an account level using the PutAccountSettingDefault API.
What is the problem with logs? Docker has a logging daemon implementation which will read STDOUT and STDERR of a container and convert logs into an in-memory ring buffer (see code here). Those messages get sent to a log driver, such as the AWS log driver, which can then upload them to a service such as CloudWatch.</description>
</item>
<item>
<title>2025 Papers and Books</title>
<link>https://ehotinger.com/blog/2025-papers-and-books/</link>
<pubDate>Thu, 02 Jan 2025 10:24:56 -0800</pubDate>
<guid>https://ehotinger.com/blog/2025-papers-and-books/</guid>
<description>2025 Books Fourth Wing (The Empyrean, 1) by Rebecca Yarros Sage, Huntress, Lover, Queen by Mara Branscombe Dopamine Detox: A Short Guide to Remove Distractions and Get Your Brain to Do Hard Things by Thibaut Meurisse The Autistic Brain: Helping Different Kinds of Minds Succeed by Temple Grandin The Anxious Generation: How the Great Rewiring of Childhood Is Causing an Epidemic of Mental Illness by Jonathan Haidt Educated: A Memoir by Tara Westover 21 Lessons for the 21st Century by Yuval Noah Harari Beyond the Wand: The Magic and Mayhem of Growing Up a Wizard Paperback by Tom Felton The Nightingale by Kristin Hannah The Daily Stoic: 366 Meditations on Wisdom, Perseverance, and the Art of Living by Ryan Holiday, Stephen Hanselman Life 3.</description>
</item>
<item>
<title>System Design Guide: Scalable Job Schedulers & Cluster Management</title>
<link>https://ehotinger.com/blog/system-design-guide-scalable-job-schedulers-cluster-management/</link>
<pubDate>Sun, 21 Jul 2024 09:28:22 -0700</pubDate>
<guid>https://ehotinger.com/blog/system-design-guide-scalable-job-schedulers-cluster-management/</guid>
<description>System Design Guide: Scalable Job Schedulers &amp; Cluster Management Design a cloud service where users can execute arbitrary jobs on a recurring schedule or manually.
Functional Requirements Users should be able to create/read/update/delete jobs and schedules A job is any arbitrary program/computation that a user writes. For example, I could write a program in Python that does print(&quot;Hello World!&quot;), or you could write one that downloads a file and uploads it into a blob storage service.</description>
</item>
<item>
<title>Technical Program Manager (TPM) Example Interview Questions</title>
<link>https://ehotinger.com/blog/technical-program-manager-example-interview-questions/</link>
<pubDate>Mon, 01 Jul 2024 08:55:46 -0700</pubDate>
<guid>https://ehotinger.com/blog/technical-program-manager-example-interview-questions/</guid>
<description>Technical Program Manager (TPM) Example Interview Questions Below is a collection of various interview questions I&rsquo;ve asked to TPMs in the past along with an example calibration guideline you can use.
Technical Problem Solving Can you give me an example where you had to dive deep into a problem and be hands on with the engineering team to figure out a solution to a problem? How would you run a project to upgrade users to a new version of an API?</description>
</item>
<item>
<title>2024 Papers and Books</title>
<link>https://ehotinger.com/blog/2024-papers-and-books/</link>
<pubDate>Tue, 02 Jan 2024 10:24:56 -0800</pubDate>
<guid>https://ehotinger.com/blog/2024-papers-and-books/</guid>
<description>2024 Below is a list of papers and books I&rsquo;ve read in 2024.
Books * The Meditations of Marcus Aurelius A Sorceress Comes to Call by T. Kingfisher Project Hail Mary by Andy Weir King, Warrior, Magician, Lover by Robert Moore by Douglas Gillette * Walden by Henry David Thoreau * Endurance by Alfred Lansing * Ikigai: The Japanese Secret to a Long and Happy Life by Héctor García, Francesc Miralles Clearer, Closer, Better: How Successful People See the World by Emily Balcetis Tress of the Emerald Sea: A Cosmere Novel by Brandon Sanderson * Relentless: From Good to Great to Unstoppable by Tim Grover, Shari Wenk The Three-Body Problem Series by Cixin Liu The Three-Body Problem The Dark Forest Death&rsquo;s End The Mountain Is You: Transforming Self-Sabotage Into Self-Mastery Bushido, The Soul Of Japan by Inazo Nitobe * A Psalm for the Wild-Built: A Monk and Robot Book (Monk &amp; Robot, 1) by Becky Chambers * A Prayer for the Crown-Shy: A Monk and Robot Book (Monk &amp; Robot, 2) by Becky Chambers Blogs Rebuilding Netflix Video Processing Pipeline with Microservices Slack’s Migration to a Cellular Architecture Skeleton Key Gen AI Jailbreak Resource Management in Aurora Serverless Continuous reinvention: A brief history of block storage at AWS Life Lessons from the First Half-Century of My Career by David Patterson Papers DBMS What Goes Around Comes Around&hellip; And Around&hellip; by Michael Stonebraker and Andrew Pavlo Resource Management in Aurora Serverless Job/Cluster Scheduling Apollo: Scalable and Coordinated Scheduling for Cloud-Scale Computing by Boutin, Microsoft Research et al Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center by Hindman, et al Hawk: Hybrid Datacenter Scheduling by Delgado, et al Apache Hadoop YARN: Yet Another Resource Negotiator by Vavilapallih, et al Tarcil: reconciling scheduling speed and quality in large shared clusters by Delimitrou, et al Large-scale cluster management at Google with Borg by Verma, et al Container Loading in AWS Lambda by Marc Brooker Quincy: Fair Scheduling for Distributed Computing Clusters by Isgard, et al Mercury: Hybrid Centralized and Distributed Scheduling in Large Shared Clusters by Karanasos, et al Sparrow: distributed, low latency scheduling by Ousterhout et al </description>
</item>
<item>
<title>Optimizing Impact and the Realities of Principal Engineering</title>
<link>https://ehotinger.com/blog/optimizing-impact-and-the-realities-of-principal-engineering/</link>
<pubDate>Sun, 12 Nov 2023 17:12:26 -0800</pubDate>
<guid>https://ehotinger.com/blog/optimizing-impact-and-the-realities-of-principal-engineering/</guid>
<description>Optimizing Impact and the Realities of Principal Engineering The problem with being a Principal Engineer is the number of opportunities. There are so many teams that need help, so which door do you go through? You have to say no or you&rsquo;re going to fail. Pick the things you&rsquo;re not going to do.
We often talk about the fear of missing out - but as a PE, you are doomed to the certainty of missing out.</description>
</item>
<item>
<title>Self Discovery and Career Growth to Principal Engineering</title>
<link>https://ehotinger.com/blog/self-discovery-and-career-growth-to-principal-engineering/</link>
<pubDate>Sun, 12 Nov 2023 17:09:37 -0800</pubDate>
<guid>https://ehotinger.com/blog/self-discovery-and-career-growth-to-principal-engineering/</guid>
<description>Self Discovery and Career Growth to Principal Engineering A lot of people get promoted to senior engineer, and then they ask how to go to principal. This is not how it works. For any promotion, I tell people not to worry about immediately figuring out how to get to the next level, but especially as a senior engineer. Just focus on being a really great senior engineer first. Be great at whatever level you’re currently at.</description>
</item>
<item>
<title>Introduction to Principal and Staff Engineering</title>
<link>https://ehotinger.com/blog/introduction-to-principal-and-staff-engineering/</link>
<pubDate>Sun, 12 Nov 2023 12:50:06 -0800</pubDate>
<guid>https://ehotinger.com/blog/introduction-to-principal-and-staff-engineering/</guid>
<description>Introduction to Principal and Staff Engineering As a principal engineer (PE), you’ll find out that your whispers become roars. Casual comments you make in meetings will magically transform into roadmap items. Suddenly, you have a megaphone that you’re speaking out of at all times. Many PEs are stunned at how much people believe in their ideas and how much faith they have in them.
In the last year, I saw a story from a newly minted PE.</description>
</item>
<item>
<title>A Tour of Amazon CodeWhisperer</title>
<link>https://ehotinger.com/blog/a-tour-of-amazon-codewhisperer/</link>
<pubDate>Fri, 14 Apr 2023 22:41:30 -0700</pubDate>
<guid>https://ehotinger.com/blog/a-tour-of-amazon-codewhisperer/</guid>
<description>A Tour of Amazon CodeWhisperer Overview On April 12th, Amazon CodeWhisperer was announced as Globally Available. CodeWhisperer is a developer tool that can write entire functions, documentation, or complex logical blocks of code for you. The best part of this tool is how fluid and responsive it is. Unlike many other developer tools and large language models (LLMs), there is a constant stream of suggestions at your fingertips as you&rsquo;re writing.</description>
</item>
<item>
<title>A Tour of AWS Lambda Response Streaming</title>
<link>https://ehotinger.com/blog/a-tour-of-aws-lambda-response-streaming/</link>
<pubDate>Tue, 11 Apr 2023 21:27:56 -0700</pubDate>
<guid>https://ehotinger.com/blog/a-tour-of-aws-lambda-response-streaming/</guid>
<description>AWS Lambda Response Streaming Overview In April 2023, AWS Lambda made an exciting announcement and released response streaming which makes it one of the first function providers to offer streaming support in the world. Before, Lambda-based applications had to use a traditional request-response model which meant applications had to fully generate and buffer responses before returning anything to a client.
Response Streaming is a new invocation pattern:
There is an InvokeWithResponseStream API and a new handler signature for applications.</description>
</item>
<item>
<title>Engineers Must Own Quality</title>
<link>https://ehotinger.com/blog/engineers-must-own-quality/</link>
<pubDate>Sat, 08 Apr 2023 19:32:20 -0700</pubDate>
<guid>https://ehotinger.com/blog/engineers-must-own-quality/</guid>
<description>Why Quality &amp; Assurance Teams are Not Enough: Engineers Must Take Responsibility Engineers must own the quality of the code that they write. Typical quality &amp; assurance teams do not reinforce correct ownership.
As engineers, our job is to push for quality. We&rsquo;re the only ones that are close enough to the code to understand the shortcuts we&rsquo;re taking, what problems we&rsquo;re creating for the future, and what issues may happen down the road as a result of our actions.</description>
</item>
<item>
<title>Create DataShare EricShare</title>
<link>https://ehotinger.com/blog/create-datashare-ericshare/</link>
<pubDate>Tue, 28 Mar 2023 06:12:11 -0700</pubDate>
<guid>https://ehotinger.com/blog/create-datashare-ericshare/</guid>
<description>CREATE DATASHARE ericshare; Several years ago, I was helping build Amazon Redshift&rsquo;s Data Sharing feature. I had the fortune of being one of the first people in the world to ever call CREATE DATASHARE and run queries across producers and consumers.
Any time I work on a new feature, I always create a developer guide for setting up the complete environment. I use developer guides as my personal notes while I work on a project.</description>
</item>
<item>
<title>Prompt SEO Optimizations with ChatGPT, Claude, etc.</title>
<link>https://ehotinger.com/blog/prompt-seo-optimization/</link>
<pubDate>Sun, 05 Feb 2023 20:48:16 -0800</pubDate>
<guid>https://ehotinger.com/blog/prompt-seo-optimization/</guid>
<description>Example Prompts Here are some example prompts to improve your SEO using ChatGPT, Claude, etc.
Brainstorming Rewrite the following blog post to be longer with more detail and introduce some new ideas. Write me an overview summary for the following blog post. Give me 3 SEO optimized titles for the following blog post. Polishing Content Find grammar issues for the following content. Provide a list of statistics or references with similar content to this post.</description>
</item>
<item>
<title>Automating Newsletters With Hugo, TinyLetter, and Zapier</title>
<link>https://ehotinger.com/blog/automating-newsletters-with-hugo-tinyletter-and-zapier/</link>
<pubDate>Sun, 05 Feb 2023 13:01:11 -0800</pubDate>
<guid>https://ehotinger.com/blog/automating-newsletters-with-hugo-tinyletter-and-zapier/</guid>
<description>Automating Newsletters With Hugo, TinyLetter, and Zapier This short post will teach you how to automatically send emails using Zapier to an email subscription list on TinyLetter for a personal blog created using Hugo.
The setup takes about 10 minnutes and is completely free until you have over 5000 subscribers. If you reach that point, your blog is so successful it&rsquo;d be worth it to spend a few bucks!
Create your TinyLetter account on https://www.</description>
</item>
<item>
<title>How Do Experienced Developers Learn New Programming Languages</title>
<link>https://ehotinger.com/blog/how-do-experienced-developers-learn-new-programming-languages/</link>
<pubDate>Sat, 04 Feb 2023 20:24:21 -0800</pubDate>
<guid>https://ehotinger.com/blog/how-do-experienced-developers-learn-new-programming-languages/</guid>
<description>How do experienced programmers learn a new programming language? I recently read through [1] - Here we go again: why is it difficult for developers to learn another programming language?. In this paper, they interviewed a large sample size of experienced developers and asked them various questions about how they learn a new programming language. Some of the takeaways and trends were pretty interesting (in bold below).
Programmers learned languages on their own Yeah, once you graduate university, chances are you won&rsquo;t ever take a class to learn a new programming language again.</description>
</item>
<item>
<title>Practical Developer Productivity</title>
<link>https://ehotinger.com/blog/practical-developer-productivity/</link>
<pubDate>Sat, 04 Feb 2023 10:49:13 -0800</pubDate>
<guid>https://ehotinger.com/blog/practical-developer-productivity/</guid>
<description>Practical Developer Productivity Developer productivity has been studied extensively across the last few decades because developers are typically the most expensive piece of software development. Despite decades of research, nobody has cracked the case. Moreover, most teams struggle to come up with a metric or goal to even define what it means to capture &ldquo;developer productivity.&rdquo;
Over the last few months, I&rsquo;ve spent a significant amount of energy in the space of developer productivity for an organization of ~500 developers.</description>
</item>
<item>
<title>Install Gala Node V3 on Ubuntu Linux</title>
<link>https://ehotinger.com/blog/install-gala-node-v3-on-ubuntu-linux/</link>
<pubDate>Sun, 29 Jan 2023 15:01:03 -0800</pubDate>
<guid>https://ehotinger.com/blog/install-gala-node-v3-on-ubuntu-linux/</guid>
<description>These are the all scripts required to install Gala Games v3 nodes. It&rsquo;s a trimmed down version of the main blog post.
Install Docker sudo apt install docker.io -y sudo systemctl status docker sudo systemctl enable --now docker Install the Gala Image sudo wget --trust-server-names https://links.gala.com/DownloadLinuxNode It downloads a file name called gala-node-vX.X.X.tar.gz. sudo tar xzvf gala-node-v3[version number].tar.gz sudo ./gala-node/install.sh sudo gala-node config api-key your API key here Run sudo gala-node licenses Based on your licenses use sudo gala-node config workloads &lt;workload&gt; For example sudo gala-node config workloads founders sudo gala-node start Verify it&rsquo;s up: sudo gala-node status Optional step:</description>
</item>
<item>
<title>Operating in Grey Modes</title>
<link>https://ehotinger.com/blog/operating-in-grey-modes/</link>
<pubDate>Thu, 19 Jan 2023 13:26:55 -0800</pubDate>
<guid>https://ehotinger.com/blog/operating-in-grey-modes/</guid>
<description>Grey Modes In complex distributed systems, hardware failure is inevitable. The ability to operate in a grey mode (a mode in which a system is partially working) is an important and deliberate architectural choice to consider. Ask yourself the following question: would customers be more upset to have a completely nonfunctional system, or have a subset of the functionality working? For example, if you are working on a storage layer, perhaps it would be better to serve reads even though you can&rsquo;t serve writes at the same time.</description>
</item>
<item>
<title>The Most Important Software Documentation</title>
<link>https://ehotinger.com/blog/the-most-important-software-documentation/</link>
<pubDate>Tue, 17 Jan 2023 07:45:40 -0800</pubDate>
<guid>https://ehotinger.com/blog/the-most-important-software-documentation/</guid>
<description>The most important documentation in software engineering is the rationale behind architectural decisions and critical components. This rationale is should be discussed and recorded in a document via design meetings. The design document should contain architectural options which list off pros/cons. The document should have an opinion on the preferred approach and tell the reader why it is the preferred approach.
Ideally, the design discussions are also recorded and any feedback is persisted into the architectural design document.</description>
</item>
<item>
<title>How to Ask and Answer Questions Effectively</title>
<link>https://ehotinger.com/blog/how-to-ask-and-answer-questions-effectively/</link>
<pubDate>Mon, 09 Jan 2023 15:14:14 -0800</pubDate>
<guid>https://ehotinger.com/blog/how-to-ask-and-answer-questions-effectively/</guid>
<description>A common question from junior engineers is: &ldquo;how long should I wait before I ask for help?&rdquo; The below post will offer guidance for junior engineers on when and how to ask effective questions. We&rsquo;ll also cover guidance to senior engineers on how to answer questions from junior engineers.
This post offers advice from both sides of the coin to help provide you the perspective of your fellow engineers. Remember: you were once a junior engineer and one day you will be the senior engineer!</description>
</item>
<item>
<title>Behavioral Interviews: Framework and Strategy</title>
<link>https://ehotinger.com/blog/behavioral-interviews-framework-and-strategy/</link>
<pubDate>Sun, 08 Jan 2023 14:13:36 -0800</pubDate>
<guid>https://ehotinger.com/blog/behavioral-interviews-framework-and-strategy/</guid>
<description>Behavioral Interviews: Framework and Strategy 1. The Framework Use the Situation, Task, Action, Result framework. Also known as STAR.
Situation: The interviewer wants you to present a recent challenging situation in which you found yourself. Task: What were you required to achieve? The interviewer will be looking to see what you were trying to achieve from the situation. Action: What did you do? The interviewer will be looking for information on what you did, why you did it and what the alternatives were.</description>
</item>
<item>
<title>Coding Interviews: Framework and Strategy</title>
<link>https://ehotinger.com/blog/coding-interviews-framework-and-strategy/</link>
<pubDate>Sun, 08 Jan 2023 12:22:00 -0800</pubDate>
<guid>https://ehotinger.com/blog/coding-interviews-framework-and-strategy/</guid>
<description>Coding Interviews: Framework and Strategy The goal of this post is to provide you with a reliable strategy and framework for general coding and technical interviews. At the end, I provide a rough calibration guide to be used in any coding interview so that you can evaluate your performance and others&rsquo; performance with mock practice once you understand the framework and strategies.
The Framework Every coding interview can be broken into four high-level steps:</description>
</item>
<item>
<title>System Design Interviews: Framework and Strategy</title>
<link>https://ehotinger.com/blog/system-design-interviews-framework-and-strategy/</link>
<pubDate>Sun, 08 Jan 2023 09:22:14 -0800</pubDate>
<guid>https://ehotinger.com/blog/system-design-interviews-framework-and-strategy/</guid>
<description>System Design Interviews: Framework and Strategy System design interviews are often the most difficult technical interviews and can be daunting to tackle. They require a candidate to gather requirements, deal with ambiguity, communicate, and optimize their solution using all of their computer science knowledge. To make matters worse, these interviews are open-ended with hundreds of potential variations to achieve the desired end state of a system. How could anyone expect someone to design such a complex system in only an hour of time?</description>
</item>
<item>
<title>Availability Numbers Every Programmer Should Know</title>
<link>https://ehotinger.com/blog/availability-numbers-every-programmer-should-know/</link>
<pubDate>Sun, 08 Jan 2023 07:22:14 -0800</pubDate>
<guid>https://ehotinger.com/blog/availability-numbers-every-programmer-should-know/</guid>
<description>Availability Numbers Every Programmer Should Know Availability refers to the amount of continuous uptime of a service. This is measured in a percentage, where 100% means a service has zero downtime and 0% means the service is never operational.
A service level agreement (SLA) is a commitment from a provider to a customer. When SLAs are mentioned for availability, providers will be stating their commitment to the uptime of the system, after which you are usually entitled to some form of compensation.</description>
</item>
<item>
<title>2023 Papers and Books</title>
<link>https://ehotinger.com/blog/2023-papers-and-books/</link>
<pubDate>Mon, 02 Jan 2023 10:24:56 -0800</pubDate>
<guid>https://ehotinger.com/blog/2023-papers-and-books/</guid>
<description>2023 Below is a list of papers and books I&rsquo;ve read in 2023 with some minor notes around each. Each section represents a general theme/category for software development.
Books Outlive: The Science and Art of Longevity by Peter Attia The Little Book of Common Sense Investing by John Bogle Never Finished by David Goggins Die With Zero by Bill Perkins How to Win Friends &amp; Influence People by Dale Carnegie Four Thousand Weeks: Time Management for Mortals The Way Out by Alan Gordon, Alon Ziv Papers No Silver Bullet — Essence and Accident in Software Engineering Written in 1986!</description>
</item>
<item>
<title>2022 Papers and Books</title>
<link>https://ehotinger.com/blog/2022-papers-and-books/</link>
<pubDate>Sun, 02 Jan 2022 10:24:56 -0800</pubDate>
<guid>https://ehotinger.com/blog/2022-papers-and-books/</guid>
<description>2022 Papers &amp; Books As 2022 comes to a close, I wanted to reflect on some of the books I&rsquo;ve had the opportunity to read this year. While I&rsquo;ve enjoyed all of the books I&rsquo;ve read, there are a few that stand out as particularly noteworthy.
The Expectation Effect: How Your Mindset Can Change Your World was, hands down, the best book I read this year. This book delves into the power of our mindset and how it can shape our reality.</description>
</item>
<item>
<title>Books for the soul</title>
<link>https://ehotinger.com/blog/books-for-the-soul/</link>
<pubDate>Sat, 14 Aug 2021 18:12:03 -0700</pubDate>
<guid>https://ehotinger.com/blog/books-for-the-soul/</guid>
<description>I frequently get asked what books helped me grow the most. What would you recommend that I read to get superpowers? How did you learn about that one algorithm or data structure? How did you learn so much about something for work?
The truth is, the books and experiences that I feel like helped me the most, have nothing to do with my job. I&rsquo;ll recommend those below, in a stack-ranked list and I&rsquo;ll also recommend the books I think helped me learn to be technical.</description>
</item>
<item>
<title>Windows Subsystem for Linux Installation</title>
<link>https://ehotinger.com/blog/windows-subsystem-for-linux-installation/</link>
<pubDate>Sat, 14 Aug 2021 12:14:50 -0700</pubDate>
<guid>https://ehotinger.com/blog/windows-subsystem-for-linux-installation/</guid>
<description>Here are a few common problems that I hit when installing WSL. This is my personal mini guide to get it up and running in a few minutes.
First, you can visit https://docs.microsoft.com/en-us/windows/wsl/install-win10#simplified-installation-for-windows-insiders to get a beta build and run the commands to install WSL.
WSL can fail on a new machine even after this because it relies on virtualization:
Enable Hyper-V (Turn Windows features on or off -&gt; Hyper-V) Enable virtualization in the BIOS (go to your CPU Config and you&rsquo;ll find it) Bonus oddities:</description>
</item>
<item>
<title>Invisible</title>
<link>https://ehotinger.com/blog/invisible/</link>
<pubDate>Tue, 06 Jul 2021 23:58:35 -0700</pubDate>
<guid>https://ehotinger.com/blog/invisible/</guid>
<description>I&rsquo;ve created something magical: an invisible compass. The product is not astonishing; it&rsquo;s fragile and young, yet blissful. It hasn&rsquo;t been announced yet, but it will be later this year. I hope you will find it equally mesmerizing.
For the last six months, I&rsquo;ve worked tirelessly to offer a chance for it to succeed. It&rsquo;s not my own company and I&rsquo;m not getting paid some exuberant amount of money to stay committed to an arbitrary mission.</description>
</item>
<item>
<title>The Fearless Leader</title>
<link>https://ehotinger.com/blog/the-fearless-leader/</link>
<pubDate>Mon, 21 Sep 2020 21:43:07 -0700</pubDate>
<guid>https://ehotinger.com/blog/the-fearless-leader/</guid>
<description>When you are in a living nightmare, the moment you start thinking of yourself instead of others, you have failed.
When you think of others, you stop focusing on yourself and your own desires. You ignore the fiery hell you are in. It becomes tolerable; a mild nuisance.
Take all of the negativity and use it to shield others. Pick up the torch and run as far and fast as you can.</description>
</item>
<item>
<title>Give up on CI/CD</title>
<link>https://ehotinger.com/blog/give-up-on-ci-cd/</link>
<pubDate>Tue, 08 Sep 2020 22:20:29 -0700</pubDate>
<guid>https://ehotinger.com/blog/give-up-on-ci-cd/</guid>
<description>Give up on your glorious vision of CI/CD. I don&rsquo;t want it and your customers don&rsquo;t either. If you break me one more time this month I will lose my mind and start looking at competitors. I can afford to wait 3 months for your new features. On second thought, I don&rsquo;t care if I get any new features ever again.
I&rsquo;ve written software whose sole purpose was to make CI/CD better.</description>
</item>
<item>
<title>The Best Developer I Have Ever Met Was the Worst</title>
<link>https://ehotinger.com/blog/the-best-dev-i-met-was-the-worst/</link>
<pubDate>Tue, 25 Aug 2020 21:33:08 -0700</pubDate>
<guid>https://ehotinger.com/blog/the-best-dev-i-met-was-the-worst/</guid>
<description>Many moons ago I met the best developer I have ever encountered. I was enamored by their ability to recall any piece of information that they have ever seen. They had dozens of patents, scientific papers, and a work history nothing short of genius. They built tools and languages I used on a daily basis. They were a true prodigy and I could not believe I had the privilege of working under them.</description>
</item>
<item>
<title>The Developer's Outlook Rules</title>
<link>https://ehotinger.com/blog/the-developers-outlook-rules/</link>
<pubDate>Sat, 31 Aug 2019 14:30:43 -0700</pubDate>
<guid>https://ehotinger.com/blog/the-developers-outlook-rules/</guid>
<description>Every developer should have a To, CC, and Other folder in Outlook.
You should have 3 main rules in order from most to least important:
Anything sent to me as a To goes to the To folder Anything sent to me as a CC goes to the CC folder Anything else gets sent to the Other folder. You should never look at your original Inbox folder from this point on.</description>
</item>
<item>
<title>GitHub Pages, Route 53, Cloud Front, and SSL</title>
<link>https://ehotinger.com/blog/github-pages-aws-ssl/</link>
<pubDate>Sat, 31 Aug 2019 00:05:35 -0700</pubDate>
<guid>https://ehotinger.com/blog/github-pages-aws-ssl/</guid>
<description>This is how I set up my blog which uses GitHub pages to have a custom domain and SSL all on AWS for $12/year &ndash; just the cost of the .com. The other services are all in the free-tier.
Register your domain Use Route 53: https://aws.amazon.com/route53/
All you have to do here is go through the Register Domain workflow that Amazon has created. It&rsquo;ll allow you to buy a domain name of your choice for about $12 (for a .</description>
</item>
<item>
<title>ACR Tasks Image Vulnerability Scanning</title>
<link>https://ehotinger.com/blog/acr-tasks-image-scanning/</link>
<pubDate>Fri, 19 Jul 2019 18:23:31 -0700</pubDate>
<guid>https://ehotinger.com/blog/acr-tasks-image-scanning/</guid>
<description>In this blog you&rsquo;ll learn how to set up vulnerability scanning for all of your container images using Azure Container Registry Tasks and Aqua&rsquo;s microscanner. By the end, you&rsquo;ll know how to create a relatively complex workflow which prevents your images getting pushed to a container registry if they have vulnerabilities found during build time, preventing the distribution of them entirely.
This is generic, so you can bring whatever image scanner you prefer.</description>
</item>
<item>
<title>Azure Container Registry Tasks Daily Autopurge</title>
<link>https://ehotinger.com/blog/acr-tasks-daily-autopurge/</link>
<pubDate>Tue, 16 Jul 2019 14:15:54 -0700</pubDate>
<guid>https://ehotinger.com/blog/acr-tasks-daily-autopurge/</guid>
<description>Azure Container Registry Tasks came out with a lot of new features in the last year. Many people don&rsquo;t realize the insane potential of this service, so I wanted to share a few things that you probably didn&rsquo;t know and some of the things the team has been working on.
In particular, I wanted to use one of the most common feature requests of the Azure Container Registry - automatic garbage collection of old or unused tags/manifests/images - as an example of how you can make the world your oyster using ACR Tasks.</description>
</item>
<item>
<title>Bypassing the character limit displayed when debugging with Delve and VSCode</title>
<link>https://ehotinger.com/blog/vscode-delve-debugging/</link>
<pubDate>Mon, 25 Feb 2019 00:00:00 -0700</pubDate>
<guid>https://ehotinger.com/blog/vscode-delve-debugging/</guid>
<description>Debugging Go applications with Visual Studio Code and Delve is extremely powerful. However, there are some default settings which you may want to tweak to improve this experience and they&rsquo;re not straightforward to find out.
Sometimes when you&rsquo;re debugging if a variable&rsquo;s value is really long, i.e. more than 64 characters, you&rsquo;ll see the value&rsquo;s content end as &ldquo;&hellip;+7 more&rdquo; or however many characters were truncated. To get around this, you need to customize your workspace or user settings in Visual Studio Code.</description>
</item>
<item>
<title>Installing Go on Windows (including Make)</title>
<link>https://ehotinger.com/blog/installing-go-windows/</link>
<pubDate>Sat, 07 Jul 2018 00:00:00 -0700</pubDate>
<guid>https://ehotinger.com/blog/installing-go-windows/</guid>
<description>This is an extremely brief guide to setting up Go on Windows. There are plenty of guides out there for setting up Go, but none that also include how to get your Makefiles working cross-platform easily. The easiest way I&rsquo;ve found to do this is to change shells. This is especially true if you have Makefiles like I do, where $(shell) is everywhere. With the default shell you&rsquo;ll end up with CREATE PROCESS(NULL, .</description>
</item>
<item>
<title>Making a Github Pages Hugo Blog</title>
<link>https://ehotinger.com/blog/making-a-github-pages-hugo-blog/</link>
<pubDate>Thu, 31 May 2018 12:02:45 -0700</pubDate>
<guid>https://ehotinger.com/blog/making-a-github-pages-hugo-blog/</guid>
<description>This is a quick-start guide to setting up Hugo with GitHub pages, since it took too much effort to find the full instructions anywhere else. It should hopefully take you ~15 minutes to complete the entire thing.
Make two GitHub repositories, i.e., https://github.com/ehotinger/blog and https://github.com/ehotinger/ehotinger.github.io - the first repository is for the unrendered Hugo content, and the second is for the rendered content. Note: you could just have one repository as your GitHub page, but this approach allows you to easily switch off GitHub pages if you want to.</description>
</item>
</channel>
</rss>