Skip to content

Instantly share code, notes, and snippets.

View dneimke's full-sized avatar

Darren Neimke dneimke

  • AmbientPlaces
  • Australia
View GitHub Profile
@dneimke
dneimke / egoless.md
Last active February 14, 2025 21:48
Egoless Engineering: Cooperation, Curiosity, and Teamwork in Tech

Summary of Dan McKinley's "Egoless Engineering,"

Egoless Engineering

https://egoless.engineering/

The Problem: Dysfunctional Team Dynamics

Many companies struggle with team dynamics due to parochialism and ego, which can manifest as a lack of curiosity, territoriality, or dismissiveness towards others. This often leads to breakdowns in empathy and inefficient workflows. Companies often make the mistake of creating new role types for every new task instead of encouraging collaboration. This results in the arrangement of people into assembly lines, which feels obvious to leaders, but is often mathematically wrong. Poorly factored organizational boundaries also create unnecessary work.

Common Issues:

@dneimke
dneimke / events-list
Last active October 5, 2022 06:40
Prototype of a coding form. Designed to work with a tool such as https://github.com/dneimke/forms-parse to create a configurable runtime solution for dynamic forms. Events and Switches can be clicked to activate them. When a label is clicked, metadata is applied to all active events.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Web proto</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
</head>
<body class="p-4">
<div class="px-4 pt-5 text-center border-bottom">
@dneimke
dneimke / azure-pipeline.yml
Created April 16, 2022 06:00
Example script for building versioned deployment packages for Octopus. Refer article on Medium for additional information https://medium.com/@dneimke/hosting-packaged-code-in-octopus-8513ab6028ad
trigger:
branches:
include:
- main
pool:
vmImage: windows-latest
stages:
- stage: build
<EditForm Model="@ContactDetails" OnValidSubmit="@FormSubmitted">
<CustomValidator />
...
</EditForm>
public class CustomValidator : ComponentBase
{
[CascadingParameter] EditContext CurrentEditContext { get; set; }
protected override void OnInitialized()
{
var messages = new ValidationMessageStore(CurrentEditContext);
CurrentEditContext.OnValidationRequested +=
(sender, eventArgs) => ValidateModel((EditContext)sender, messages);
protected override void OnInitialized()
{
_editContext = new EditContext(_contactDetails);
_editContext.SetFieldCssClassProvider(new BootstrapStyleProvider());
_editContext.OnFieldChanged += HandleFieldChanged;
}
public class BootstrapStyleProvider : FieldCssClassProvider
{
public override string GetFieldCssClass(EditContext editContext, in FieldIdentifier fieldIdentifier)
{
var isValid = !editContext.GetValidationMessages(fieldIdentifier).Any();
return isValid ? "is-valid was-validated" : "is-invalid was-validated";
}
}
<EditForm Model="@ContactDetails" OnValidSubmit="@FormSubmitted">
<DataAnnotationsValidator />
...
</EditForm>
<EditForm Model="@ContactDetails" OnSubmit="@FormSubmitted">
<BootstrapInput @bind-Value="ContactDetails.Name" />
<button class="btn btn-primary mt-3" type="submit">Submit</button>
</EditForm>
@inherits InputText
<div class="form-group">
@if (!string.IsNullOrWhiteSpace(Label)) {
<label class="form-control-label" for="@Id">@Label</label>
}
<InputText
Class="form-control"
placeholder="@Label"