changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > blog / annotate draft/hello-world.org

changeset 20: 889759cafcc2
parent: d77884ec2b44
child: 1204cefcfd28
author: Richard Westhaver <ellis@rwest.io>
date: Thu, 06 Jun 2024 23:15:38 -0400
permissions: -rw-r--r--
description: style update
18
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 #+title: (hello world)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 #+options: toc:t h:1
20
889759cafcc2 style update
Richard Westhaver <ellis@rwest.io>
parents: 18
diff changeset
3
 #+setupfile: ../../../clean.theme
18
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
4
 * COMMENT Introduction
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 Hello World,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
 I've worked in and around software systems for many years. Throughout
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
 my journey I've worked with some incredibly capable programmers,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 leaders, sales professionals, and curious minds from all walks of
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
 life. I've been fortunate to witness some highly effective teams on
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 complex projects deliver under impossible constraints. I've also seen
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 the other side - where a team isn't effective for one reason or
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 another, even on simple problems.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
 My work as of late is stemmed from the simple premise that there
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
 exists an /environment/ in which a team can be highly effective. My
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
17
 goal is to find those local optimums in my areas of interest where
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
18
 such an environment can be built and /great work/ can be done.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
19
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
20
 In my professional experience, it is becoming much more difficult to
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
21
 build an /environment/ where people can be effective. There are
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
22
 several contributing factors which muddy the waters but it all boils
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
 down to capabilities and politics.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
24
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
25
 Your environment must be capable. It must provide everything your team
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
26
 needs now and /may/ need in the future. If the environment doesn't
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
27
 provide something, you need to provide all building materials for it -
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
 /even if you don't know what you're building yet/.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
 To build a capable environment you need to discard politics from your
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
 decision-making process. In other words, drop the ego. This requires a
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
32
 high degree of introspection. It's hard enough for individuals, let
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
33
 alone an entire team or company. In the world of software we tend to
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
34
 have two camps - the pro-dev who prefers ergonomic but proprietary
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
35
 tools and the foss-dev who prefers clunky but open-source
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
 alternatives. You can't limit your environment based on the camp you
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
37
 align with.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
38
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
39
 * COMMENT The Compiler Company
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
40
 Without further ado, I'd like to announce /The Compiler Company,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
 LLC/. The purpose of /The Compiler Company/ is to /compile/
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
 /companies/.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
44
 More specifically, I'm writing a software suite which specializes in
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
45
 building environments.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
46
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
47
 The software isn't for everyone - modules will be rewritten
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
 frequently, code may be terse in places, with specialized tools,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
 custom compilers, and advanced hardware features. It's for a specific
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
 type of programmer - an /operator/ if you will, who may use it for
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
51
 rapid-development of their own programs (or companies). The barrier to
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
52
 entry is high.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
53
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
 At this stage, I'm interested in *systems*, *processes*, and
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
 *protocols* - not *products* and *services*. /The Compiler Company/'s
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
56
 most valuable assett its ideas. A /demo/ system is being written which
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
57
 serves as a reference implementation but this is currently designed
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
58
 for internal benchmarking.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
59
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
60
 ** [[https://compiler.company/docs/core][core]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
61
 The =core= is a collection of applications and libraries built from
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
62
 the bottom-up with modularity in mind. It's primarily written in
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
63
 Common Lisp and Rust with minimal external dependencies.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
64
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
65
 *Lisp* is a first-class citizen of our internal environment. We
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
66
 currently rely on the Steel Bank Common Lisp compiler but even if we
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
67
 switch to a different implementation there will always be Lisp. It's
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
68
 our dedicated high-level programming language (and much more, as we'll
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
69
 explain later).
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
70
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
71
 *Rust* is second-class. It meets an arbitrary criteria for what I
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
72
 would consider /good enough/ but there are many contenders including
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
73
 C, C++, and Zig. It helps fill the gaps in our Lisp environment which
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
74
 would be extremely difficult to implement from scratch like
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
75
 eliminating GC, compile-time type safety, cross-compilation features,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
76
 and advanced networking protocols. The community support and my
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
77
 personal experience with the language are also contributing
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
78
 factors. The trade-off is that we need to support another language
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
79
 environment in parallel to Lisp.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
80
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
81
 ** [[https://compiler.company/docs/infra][infra]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
82
 Unfortunately, ideas can't host themselves. We need a robust
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
83
 infrastructure to compensate for this. The project =infra= contains
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
84
 scripts for building and maintaing the entire corporate
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
85
 infrastructure.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
86
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
87
 We typically host services on Arch Linux. Podman and QEMU are used for
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
88
 virtualization. Modules can be built and deployed separately to make
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
89
 host-migration easier as we expand.