Skip to content

Commit c821a84

Browse files
Added blog post
1 parent 4e19f3d commit c821a84

10 files changed

+108
-3
lines changed

firebase.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
],
3030
"headers": [
3131
{
32-
"source": "**/*.@(woff2|webp|jpg|png)",
32+
"source": "**/*.@(woff2|webp|jpg|png|mp4)",
3333
"headers": [
3434
{
3535
"key": "Cache-Control",

web/components/QuasarVideo.vue

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<template>
2+
<figure class="q-py-md">
3+
<QVideo
4+
:ratio="ratio ?? 16 / 9"
5+
:src
6+
:style="{ maxHeight: maxHeight }"
7+
fit="scale-down"
8+
class="rounded-borders"
9+
/>
10+
<figcaption class="text-caption text-center text-italic text-grey-6">
11+
<slot />
12+
</figcaption>
13+
</figure>
14+
</template>
15+
16+
<script setup lang="ts">
17+
defineProps<{
18+
src: string;
19+
maxHeight?: string;
20+
ratio?: number;
21+
}>();
22+
</script>
23+
24+
<style scoped></style>

web/content/7-strategies-for-using-code-reviews-in-technical-interviews.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ description: Ready to incorporate code reviews into your candidate selection pro
1212

1313
When using code reviews as an interview tool, think of it like creating a sandbox or playground for the interviewer and candidate to explore.
1414

15-
Like burying treasures buried in the sand, the objective is to create multiple points of interest which can allow a candidate to express both their breadth and depth as you explore together.
15+
Like burying treasures in the sand, the objective is to create multiple points of interest which can allow a candidate to express both their breadth and depth as you explore together. Unlike leetcode based interviews which can feel more binary in outcome, a well-designed code review can allow for better stratification of candidates by providing a greater range of responses.
1616

1717
Try to keep it interesting by mixing and matching these 7 different strategies in your code review!
1818

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
date: 2025-02-10
3+
author: Charles Chen
4+
description: AI coding assistants signal the industrialization of the programming profession where production of code changes from a bespoke craft to a high-output process; it's time to rethink the "operators" of the future.
5+
---
6+
7+
# AI's Coming Industrialization of Coding
8+
9+
[{{ $doc.author }}]{.post-author } - [{{ $doc.date }}]{.post-date}
10+
11+
[{{ $doc.description }}]{.post-desc}
12+
13+
The age of AI coding assistants is upon us and with this comes an *industrialization* of the profession of programming and software engineering.
14+
15+
Despite many decades of attempts to formalize the act of programming, by and large, it is still more accurate to think of it as a craft rather than an engineering discipline. UML, for example, was intended to be a transformative tool that formalized the craft through detailed descriptions of design, logic, and flow from which entire systems could be generated automatically. But decades on, its practice has largely faded having fallen far from the lofty vision of replacing coding with diagraming.
16+
17+
To this day, it is more accurate to think of each program as bespoke and hand shaped by artisans, skilled in their craft. AI coding assistants -- even in their current fledgling state -- shift this dynamic from bespoke creation by skilled artisans to industrial operators.
18+
19+
---
20+
21+
In a recent article, *[The End of Programming as We Know It](https://www.oreilly.com/radar/the-end-of-programming-as-we-know-it/)*, Tim O'Reilly evokes the era of telephone operators when each call had to be manually routed from caller to callee. This manual task was eventually entirely replaced by software and hardware to perform the routing.
22+
23+
::quasar-image{src="/images/oreilly-operators.png" max-height="500px"}
24+
Screenshot from O'Reilly's op-ed; perhaps not the most accurate take on how AI copilots are going to change coding.
25+
::
26+
27+
But perhaps this isn't quite the right model to consider when thinking about how AI copilots will change the craft of coding; a better analogy -- at least in the near future -- might be to consider the industrialization of a different medium: hardware fasteners.
28+
29+
---
30+
31+
Consider the humble, every-day hardware fastener: the nail. Before the industrialization, if one needed fasteners, one needed a skilled blacksmith to transform raw metals into functional hardware through a process of shaping and hammering by hand.
32+
33+
::quasar-image{src="/images/hand-crafted-nails.png" max-height="500px"}
34+
Prior to industrial manufacturing of fasteners, each one was hand crafted and bespoke.
35+
::
36+
37+
Today, the process of creating hardware fasteners is *very different* with machines capable of mass producing nearly identical fasteners. While a skilled blacksmith may produce a few hundred fasteners a day, modern industrial machines can produce *hundreds per minute*.
38+
39+
::quasar-video{src="https://www.youtube.com/embed/woH-m3TRakA" max-height="500px"}
40+
Modern day industrial manufacturing of hardware fasteners like nails occurs so fast that the process is only discernible when slowed down.
41+
::
42+
43+
---
44+
45+
The transition from the craft age to the industrial age of hardware fasteners means that it is no longer necessary to have a skilled blacksmith to produce hundreds of bespoke fasteners a day; *a modern machine can produce the same volume in a fraction of that time*. It follows, then, that to produce fasteners in the modern age, *a hiring process selecting for skilled blacksmiths is probably the wrong choice*; the right choice is to instead hire the "operators" that:
46+
47+
- Oversee these industrial machines,
48+
- Maintain them as needed,
49+
- And check to ensure the quality of the output
50+
51+
It's easy to see the parallels to how AI coding copilots will change the profession of software engineering. When an industrial machine can produce lines of code 100x or even *1000x* faster than even the most competent engineers, then it would seem that teams should consider selecting for the right "operators" of these fantastic machines!
52+
53+
As an example, the N-Queens family of leetcode challenges are both considered "hard":
54+
55+
::quasar-image{src="/images/n-queens-rating.png" max-height="500px"}
56+
Both are considered "hard" problems
57+
::
58+
59+
Yet GPT makes short work of this, generating the output hundreds of times faster than even a developer could -- even if the developer already knew the algorithm and solution.
60+
61+
::quasar-video{src="/images/n-queens-solved.mp4" max-height="600px" ratio=1.3}
62+
Modern day industrial manufacturing of hardware fasteners like nails occurs so fast that the process is only discernible when slowed down.
63+
::
64+
65+
This huge disparity is not unlike the gap between a blacksmith and a modern industrial machine producing nails; there's simply no comparison. Is the solution for teams to make even more convoluted and complicated puzzles? To select for the few superhuman engineers that could even solve them? Or perhaps the right direction is to embrace this coming era of industrialized coding?
66+
67+
Companies that wanted to enter the fastener business today surely wouldn't select for skilled blacksmiths; such companies would select for skilled operators and maintainers of the machines that produce the nails and the workers that could ensure the quality of the output.
68+
69+
---
70+
71+
For teams that are in the process of hiring technical talent, solely focusing on an engineer's ability to craft bespoke code is perhaps the wrong way to go about it. In this age of AI coding copilots and the industrialization of the craft of programming, what teams should consider is selecting for a different set of skills that focus more on the safe, efficient operation of that fantastic machinery as well as ensure the quality of its output and fitness for purpose.
72+
73+
Teams that fail to incorporate code reviews into their hiring process will be selecting for *"codesmiths"* in this coming era of industrial code production machines.

web/pages/blog.vue

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
>
77
<QList>
88
<QItem
9-
v-for="post in posts"
9+
v-for="post in sortedPosts"
1010
class="rounded-borders q-pa-md"
1111
@click="navigateTo(post.path)"
1212
clickable
@@ -89,6 +89,14 @@ const $route = useRoute();
8989
9090
console.log($route.path);
9191
92+
const sortedPosts = computed(() => {
93+
return posts.value?.sort((a, b) => {
94+
if (a.date > b.date) return -1;
95+
if (a.date < b.date) return 1;
96+
return 0;
97+
});
98+
});
99+
92100
const { data: posts } = await useAsyncData("blog", () => queryCollection("blog").all());
93101
</script>
94102

545 KB
Loading

web/public/images/n-queens-rating.png

26.6 KB
Loading

web/public/images/n-queens-solved.gif

1.84 MB
Loading

web/public/images/n-queens-solved.mp4

380 KB
Binary file not shown.
1.78 MB
Loading

0 commit comments

Comments
 (0)