Oliver Gilan

A stream of my random, half-baked, bite-sized ideas inspired by my friend Jason.

Everything Is on Fire

Feb 14, 2024

I definitely have perfectionist tendencies in me but over the past ~6 years I’ve made conscious efforts to overcome those. The counterintuitive reality is that if you wish to build a successful startup or be a leader of any kind then perfectionism is not a great trait to have. The reason is that everything is on fire all the time. You need to be okay letting most things burn and putting out the fires that matter. As a perfectionist your instict will be to snuff out every fire that you come across but that will leave you chasing every spark as the rest of your house burns down. As a leader you must direct your efforts to the minority of most important fires and save your perfectionism for the systems you build that can fight the rest of them.

Prices Law

Jan 16, 2024

Half of the work is done by the square root of the total number of people participating in the work.

If you have a 100 employees, 10 of them are doing 50% of the work. When a company grows, competence grows linearly and incompetence grows exponentially. If you can prevent that exponential growth of incompetence even a little you will have a massive advantage as a company.

Writing Code Is a Dstraction

Dec 24, 2023

It occasionally strikes me as absurd how much time I and other engineers spend on physically writing and managing lines of code. Fixing syntax errors, wrangling types, finding logic bugs, typing out boilerplate, etc. At the end of the day basically all programs are are just transformations on data and then combining these transformations with other systems that can provide, store, and transform data in other ways. It feels like for our industry to mature we need to get to a point where engineers spend the majority of their time focusing on systems and the characteristics of those systems rather than the minutiae of how those systems are actually implemented.

This is also why no-code tools rarely deliver on their promise. They get rid of the process of writing code physically but then you’re still stuck moving blocks or doing some code-writing equivalent and they haven’t actually eased the burden of building and managing a complex application system as a whole.

3 Modes of Consciousness

Dec 13, 2023

I find that there are 3 main modes of consciousness that my brain can enter into:

  1. Consuming - the mode that is active when I watch TV or listen to music or scroll Twitter. It isn’t bad in and of itself (and it can be used to learn and be productive) but I must be careful not to spend an unbalanced amount of time in this mode. It’s probably the most addictive mode and the easiest one to slip into because context switching into this mode is easy and with little cost. Overindulgence in this mode robs me of agency.
  2. Creating - the mode that is hardest for me to enter and sustain. At the limit this mode of consciousness is what’s called Flow State. In this mode I think of what instead of how. If I think of how — how to use this tool, how to connect to an api, how to be grammatically correct — then I’m not purely in this mode. Context switching in this mode is destructive.
  3. Solving - the mode I find myself in the most often. In this mode I’m usually holding a lot of state in my mind at once and trying to optimize amongst many variables. I try to reason from principles and build a mental model of whatever I’m working on. I usually visualize things in this mode and quite literally rotate shapes in my head. In this mode I’m working towards a solution and usually find myself pushing to get across a finish line. Context switching in this mode is costly because of the state I carry around from problem to problem.

Most of my time is spent in some combination of these three states of mind and one of the keys for me to avoid burnout is to make sure I am not spending too much time in any one of them. There’s a 4th mode that I do not quite know how to classify yet other than to say it’s the mode of Awareness.

Seniority Changes Criteria of Judgement

Dec 12, 2023

Boris gave me some advice yesterday that boils down to: judge junior employees by their attempt, judge senior employees by their results.

It’s such an obvious philosophy in hindsight yet so easy to forget as a leader. People early in their career will make so many subtle mistakes and work through so many inefficiencies and what matters most is not necessarily the ultimate outcome — if you’re hinging something really important on the performance of a single junior employee then you have bigger problems — but how that employee grows from it. On the other hand if you’re an executive then you are supposed to be approaching mastery in your line of business. It’s no longer an excuse to blame the tools you have or the unfortunate circumstances that arose because you should have the foresight to foresee and plan around those circumstances and you should have the versatility to succeed with a variety of resources at your disposal.

Simplicity Over Complexity

Aug 27, 2023

I have been taught repeatedly by the universe that life’s most important questions always have simple answers. I must not confuse complexity with wisdom and I must not mistake simplicty for easiness. Sometimes the simplest solutions are the hardest to implement. Losing weight, finding love, being happy, being successful. We search hoping to find a new answer that is complex enough to solve our problem but knowing the solution doesn’t ever solve the problem. We often have the answer and that answer is usually simple. The rest is just doing the work.

Experience Changes Reality

Aug 22, 2023

When I watch a football game today I see a different game than what I watched when I was younger. Understanding formations, strategies, skillsets, and the nuances of the game at a deeper level means each snap and each second between plays contains more information than what I could previously see. Similarly when my friends watch Baseball they are seeing something I simply do not. What looks boring to me is rich with information and nuance to them.

With all things in life your knowledge and experience shapes the way your perceive reality. Whether it’s programming, business, love, sports, music, etc. The more you know the more you can understand the nuances of an experience in a way that fundamentally changes it.

Application Architecture

Mar 14, 2023

Apps have 4 main layers:

  1. the infra
  2. the core
  3. the platform
  4. the interface

Infrastructure is all hardware and software necessary to run the app. The Core is the main business logic. The Platform wraps the Core and productizes it with features like auth, subscription tiers, auditability, etc. The Interface is how the user interacts with the platform whether it’s a GUI, CLI, API, etc.

Only the Core and to a lesser extent the Interface provide value but most of the time spent in enterprise software development is on the Infra and the Platform.

Power Law

Mar 1, 2023

The Pareto principle might be the key to everything.

Know What Game You're Playing

Feb 19, 2023

The above tweet is correct but so is the quoted tweet it mocks. The lesson is simply to know what game you are playing.

Work Harder

Feb 5, 2023

A recent common narrative is creative geniuses and experts in various fields work a maximum of 4 hours a day. Recently at work I spent a week slogging through the refactoring of one of our core features only to realize at the end that all my hard work was the wrong approach and there was a simpler implementation that was better in every way. I threw away my code changes and implemented the better pattern in a day. The unfortunate truth is as a junior engineer I wouldn’t have arrived at the optimal solution had I not grinded through the unoptimal one. Four hours per day might be the upper limit of truly creative, intense work but junior engineers are not experienced or efficient enough to even know how to spend those hours in an optimal fashion. Those experts and geniuses weren’t masters because they only worked four hours a day; they only worked four hours a day because they were masters. The grind through inefficiency leads to the 10,000 hours required to become a master.