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
49:52 MIN
Answering audience questions on GitHub Actions
Lights, Camera, GitHub Actions!
39:23 MIN
Q&A on developer tooling and testing best practices
Data Mining Accessibility
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
33:07 MIN
Microsoft's modern approach to enterprise development
Develop enterprise-ready applications for Microsoft Teams with Azure resources on modern web technologies
Featured Partners
Related Videos
Open sourcing a library: how hard can that be?
Johan Hutting
Using code generation for test automation – the fancy way
Roman Alexis Anastasini
Keep your code refactorable
Gerrit Stapper
Lies we Tell Ourselves As Developers
Stefan Baumgartner
From Monolith Tinkering to Modern Software Development
Lars Gentsch
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
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.



QA Engineer - Software Testing · Backend & Frontend · Open Source
SerNet GmbH
Remote
JIRA
Groovy
Gitlab
Vue.js
+4

Site Reliability EngineerSpeechmatics
Speechmatics
London, United Kingdom
Remote
Linux
Gitlab
Docker
Terraform
+1

Software Engineer with C# Java and Azure
Nexus
€60-95K
Intermediate
JSON
Data analysis
Microsoft Office
Microsoft SQL Server
+1



