Dennis Doomen
What you can learn from an open-source project with 500 million downloads
#1about 1 minute
Applying open source principles to internal projects
Lessons learned from maintaining open source projects can be applied within companies, a practice often called inner sourcing.
#2about 2 minutes
Streamlining contributions with issue templates and labels
Use structured issue templates and labels in GitHub to streamline bug reports and feature requests, preventing wasted effort on unapproved work.
#3about 2 minutes
Designing for extensibility and API consistency
Building extensible code requires predicting future use cases, carefully managing breaking changes, and maintaining API consistency.
#4about 1 minute
Improving repository quality with documentation
A well-structured README and a contributing guide are essential for helping new contributors understand, build, and use a project.
#5about 2 minutes
Essential command-line and Git tooling for developers
Enhance productivity with powerful command-line tools like Oh My Posh and ZLocation, alongside graphical Git clients for complex operations.
#6about 2 minutes
Automating code style and quality checks
Use tools like EditorConfig and Roslyn analyzers to enforce coding standards automatically, saving time and frustration during code reviews.
#7about 1 minute
Adopting functional and concise unit test naming
Evolve unit test naming conventions from long, descriptive sentences to shorter, more direct names that clearly state the expected outcome.
#8about 1 minute
Managing project settings and dependencies efficiently
Use Directory.Build.props for shared solution settings and PolySharp to enable modern C# features on older .NET frameworks.
#9about 2 minutes
Applying SOLID principles to package design
Structure dependencies so that packages only rely on more stable or abstract modules, creating separate packages for optional integrations.
#10about 1 minute
Using design patterns as refactoring goals
Design patterns should be used as a tool for refactoring complex code to improve communication and structure, not as an initial design goal.
#11about 2 minutes
Building robust CI/CD pipelines with Nuke
Replace complex YAML pipelines with Nuke, a C# based build automation tool that allows for local execution, debugging, and refactoring.
#12about 1 minute
Preventing breaking changes with API verification
Automatically detect unintended breaking changes by using snapshot testing on your public API surface with tools like PublicApiGenerator.
#13about 1 minute
Using micro-benchmarking for performance hotspots
Identify performance hotspots with a profiler and then create targeted micro-benchmarks to prevent future regressions in critical code paths.
#14about 1 minute
Integrating documentation and automated spell checking
Keep documentation in sync with code by using static site generators like Jekyll and ensure quality with automated spell-checking tools.
#15about 1 minute
Automating dependency management with Dependabot
Leverage Dependabot in GitHub to automatically create pull requests for dependency updates, keeping projects secure and up-to-date.
#16about 1 minute
Using code coverage and emoji-driven reviews
Treat code coverage as a developer insight tool rather than a management KPI and use emojis to add nuance to code review feedback.
#17about 3 minutes
Automating semantic versioning and release notes
Implement semantic versioning and use tools like GitVersion to automatically generate version numbers and release notes from your commit history.
#18about 1 minute
Accelerating projects with a .NET library starter kit
A pre-configured starter kit can bundle best practices for pipelines, issue templates, and API verification to bootstrap new library projects.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
00:12 MIN
A personal journey through open source development
The Snowball Effect of Open Source
16:09 MIN
Why open source is the new standard for development
Harnessing the Power of Open Source's Newest Technologies
51:53 MIN
Q&A on shared systems and scaling productivity
Forget Developer Platforms, Think Developer Productivity!
21:55 MIN
Q&A on tooling and open source contribution
Handling incidents collaboratively is like solving a rubix cube
09:33 MIN
How companies can ethically promote open source development
Open Source: The Engine of Innovation in the Digital Age
04:17 MIN
Using open source tools to secure the entire SDLC
Open Source Secure Software Supply Chain in action
33:54 MIN
The philosophy and process for open-sourcing internal tools
DevOps at Netflix
00:55 MIN
The benefits and risks of open sourcing code
Open sourcing a library: how hard can that be?
Featured Partners
Related Videos
Open sourcing a library: how hard can that be?
Johan Hutting
Answering the Million Dollar Question: Why did I Break Production?
Luís Ventura
Using code generation for test automation – the fancy way
Roman Alexis Anastasini
Keep your code refactorable
Gerrit Stapper
How GitHub secures open source
Joseph Katsioloudes
From boy scouting to redrawing the landscape
Tim te Beek
Building a large, complex product from the ground up with typescript & Atomic Design:lessons learned
Nathalia Rus
Testing .NET applications a Tool box for every developer
Alexandre Borges
From learning to earning
Jobs that call for the skills explored in this talk.


Senior Fullstack Engineer (all genders)
envelio
Köln, Germany
Remote
Senior
Python
JavaScript
Structured Query Language (SQL)


Team Lead and Senior Software Engineer with focus on AI
Dynatrace
Linz, Austria
Senior
Java
Team Leadership

Cloud Engineer (m/w/d)
fulfillmenttools
Köln, Germany
€50-65K
Intermediate
TypeScript
Google Cloud Platform
Continuous Integration

Backend Engineer (m/w/d)
fulfillmenttools
Köln, Germany
€35-65K
Intermediate
TypeScript
Agile Methodologies
Google Cloud Platform


