What you can learn from an open-source project with 500 million downloads
What can a project with 500 million downloads teach you about inner sourcing? Discover how to automate quality and prevent breaking changes in your internal libraries.
#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.
Dev Digest 214: Claude Is Leaking, GitHub Is Listening & Axios Hacked!Inside last week’s Dev Digest 214 .
🕵️ Claude source code leaked, analysed and re-written in 2 days
🐙 GitHub auto-opts users into feeding their code to train their AI
🌐 Pretext shows how to show complex text rendering in the browser
🤖 How to securin...