# Writing
> Essays on technology leadership, AI adoption, architecture and developer experience, published continuously since 2019.

## Pages

- ["Just Throw AI At It" Is Not a Strategy](https://rjj-software.co.uk/blog/just-throw-ai-at-it-is-not-a-strategy/index.md): An open sourced AI screener scored the same CV anywhere from 66 to 99. Why throwing AI at a problem without thinking it through fails, and the jobs that still need a human in the loop.
- [The Willingness to Have Your Mind Changed: Listening Lessons for Tech Leaders](https://rjj-software.co.uk/blog/continual-professional-development/the-willingness-to-have-your-mind-changed-listening-lessons-for-tech-leaders/index.md): Oscar Trimboli's How to Listen reframes listening as a deliberate, learnable skill. Ten quotes from the book, and what they mean for technical leaders.
- [From Author to Editor-in-Chief: The Shift That's Already Here](https://rjj-software.co.uk/blog/from-author-to-editor-in-chief-the-shift-thats-already-here/index.md): Aneesh Raman's Three Buckets framework, from Think Fast Talk Smart episode 280, maps almost exactly onto the author-to-editor-in-chief shift I described in a recent case study. When people outside software start describing the same transition, it is worth paying attention.
- [The Secret Language of Great Leadership: Lessons from &quot;Supercommunicators&quot; for Tech Leaders](https://rjj-software.co.uk/blog/continual-professional-development/the-secret-language-of-great-leadership-lessons-from-supercommunicators-for-tech-leaders/index.md): Charles Duhigg's Supercommunicators reveals that great communicators are not born that way; they practise a learnable set of skills. This post draws on ten key quotes from the book to explore why those skills are the foundation of effective tech leadership.
- [Building Psychological Safety in Your Development Team: Practical Strategies for Leaders](https://rjj-software.co.uk/blog/building-psychological-safety-in-your-development-team/index.md): Practical strategies for building and rebuilding psychological safety in development teams. From blameless culture to structured one-to-ones, here is what the work actually looks like.
- [Start With Why: The One Thing AI Can't Generate](https://rjj-software.co.uk/blog/continual-professional-development/start-with-why-the-one-thing-ai-cant-generate/index.md): Simon Sinek's Start With Why applied to software engineering and digital leadership. Why purpose matters more than ever when AI handles the code.
- [When Your AI Chatbot Becomes Someone Else's Free Compute: The Pepper Lesson](https://rjj-software.co.uk/blog/when-your-ai-chatbot-becomes-someone-elses-free-compute-the-pepper-lesson/index.md): Chipotle's Pepper chatbot was repurposed as a free coding assistant. The patch is in; the pattern is not. A short note on Denial of Wallet and AI governance.
- [Stop Chasing the AI Moonshot: The Case for Small, Deliberate Wins](https://rjj-software.co.uk/blog/stop-chasing-the-ai-moonshot-the-case-for-small-deliberate-wins/index.md): Why the biggest gains from AI adoption come from small, deliberate wins rather than big-bang strategy. A fractional CTO's case for the Kaizen approach to AI.
- [Rest: Why Stepping Away From the Screen Is Part of the Work](https://rjj-software.co.uk/blog/continual-professional-development/rest-why-stepping-away-from-the-screen-is-part-of-the-work/index.md): Alex Soojung-Kim Pang's Rest makes the case, backed by neuroscience and history, that rest is not the opposite of work but its partner. Lessons for software teams, engineering leaders, and anyone who has ever solved a hard problem in the shower.
- [The Skill Nobody Taught You: Emotional Intelligence for Tech Team Leaders](https://rjj-software.co.uk/blog/the-skill-nobody-taught-you-emotional-intelligence-for-tech-team-leaders/index.md): Emotional intelligence is the toolkit that makes psychological safety possible. A practical guide for tech leaders on self-awareness, regulation, empathy, and communication.
- [Thinking in Systems: Why the Job Was Never the Typing](https://rjj-software.co.uk/blog/continual-professional-development/thinking-in-systems-why-the-job-was-never-the-typing/index.md): Donella Meadows' systems thinking applied to software engineering. Why understanding systems matters more than writing code, especially in the age of AI.
- [Your Team's Silence Is Telling You Something: Psychological Safety in Development Teams](https://rjj-software.co.uk/blog/your-teams-silence-is-telling-you-something-psychological-safety-in-development-teams/index.md): Warning signs that your development team lacks psychological safety, and why the silence in your standups and retros is costing you more than you think. Part 1 of a series on building healthier engineering cultures.
- [Fundamentals of Software Architecture: Lessons for Modern Tech Teams](https://rjj-software.co.uk/blog/continual-professional-development/fundamentals-of-software-architecture-lessons-for-modern-tech-teams/index.md): Key lessons from Richards and Ford's Fundamentals of Software Architecture, from trade-off thinking to escaping memetic bubbles. A review for tech leaders navigating decisions under uncertainty.
- [Mechanical Sympathy: The Case for Giving Engineers Time to Optimise](https://rjj-software.co.uk/blog/mechanical-sympathy-the-case-for-giving-engineers-time-to-optimise/index.md): Most engineering teams care about performance. Most sprint processes don't reward it. This post makes the business case for giving engineers dedicated time to optimise, and explains what that time is actually worth.
- [The Checklist Manifesto: Lessons in Managing Complexity for Modern Tech Teams](https://rjj-software.co.uk/blog/continual-professional-development/the-checklist-manifesto-lessons-in-managing-complexity-for-modern-tech-teams/index.md): This blog post explores key lessons from Atul Gawande's &quot;The Checklist Manifesto&quot;, applying its insights to the challenges of managing complexity in modern software development. It makes the case that checklists are not a sign of weakness but a powerful tool for expert professionals; freeing mental capacity for the hard problems while ensuring the critical steps are never missed.
- [Too Many Waiters, Not Enough Cooks: Practical Steps For Change](https://rjj-software.co.uk/blog/too-many-waiters-not-enough-cooks-practical-steps-for-change/index.md): Part 3: Practical steps for reducing management overhead and building more effective software delivery organisations.
- [Kill It With Fire: Lessons from Legacy Systems for Modern Leaders](https://rjj-software.co.uk/blog/continual-professional-development/kill-it-with-fire-lessons-from-legacy-systems-for-modern-leaders/index.md): This blog post explores key lessons from Marianne Bellotti’s &quot;Kill It With Fire&quot;, applying its insights to the challenges of managing legacy systems in modern technology environments. It emphasizes the importance of people and communication alongside technical expertise, advocating for pragmatic modernisation strategies focused on delivering value to users. The post offers guidance for leaders and decision-makers on prioritizing stability, understanding existing systems, and avoiding the trap of chasing the latest technology without clear business justification.
- [Too Many Waiters, Not Enough Cooks: Finding The Right Balance](https://rjj-software.co.uk/blog/too-many-waiters-not-enough-cooks-finding-the-right-balance/index.md): Part 2: Understanding healthy ratios, knowing when management presence is justified, and assessing your team structure.
- [Securing Your Legacy and Future in Software Development: More Lessons from &quot;Alice & Bob Learn Secure Coding&quot;](https://rjj-software.co.uk/blog/continual-professional-development/securing-your-legacy-and-future-in-software-development-more-lessons-from-alice--bob-learn-secure-coding/index.md): Explore more essential security principles for software development, drawing wisdom from Tanya Janca's book, 'Alice & Bob Learn Secure Coding.'
- [Too Many Waiters, Not Enough Cooks: Why Your Software Team Might Be Manager-Heavy](https://rjj-software.co.uk/blog/too-many-waiters-not-enough-cooks-why-your-software-team-might-be-manager-heavy/index.md): Part 1: Recognising the pattern of management-heavy software teams and understanding the hidden costs of excessive overhead.
- [Building a Secure Foundation: Lessons from &quot;Alice & Bob Learn Secure Coding&quot; for Modern Tech Teams](https://rjj-software.co.uk/blog/continual-professional-development/building-a-secure-foundation-lessons-from-alice-and-bob-learn-secure-coding-for-modern-tech-teams/index.md): Learn key application security principles from 'Alice & Bob Learn Secure Coding'! Discover secure defaults, backend validation & more to build resilient & secure software
- [Beyond Verification: Building Teams That Use AI Responsibly](https://rjj-software.co.uk/blog/the-ai-amplification-paradox-part-2/index.md): Practical strategies for CTOs and teams to ensure AI enhances rather than replaces understanding
- [Level Up Your Leadership: Key Insights from 'Emotional Intelligence Habits' for the Modern Tech Workplace](https://rjj-software.co.uk/blog/continual-professional-development/level-up-your-leadership-key-insights-from-emotional-intelligence-habits-for-the-modern-tech-workplace/index.md): This post highlights key insights from Travis Bradberry's 'Emotional Intelligence Habits' and their relevance to tech leadership. It argues that EQ is crucial for success in the demanding tech world, impacting team performance and organizational health. The post breaks down eight core principles: owning emotions, controlling reactions, cultivating self-acceptance, practising gratitude, embracing 'good enough,'' active listening, celebrating small wins, and responding with kindness. Each principle is explained with practical examples and actionable takeaways for tech leaders. The post emphasizes that developing EQ isn't just about personal growth, but a strategic advantage for building resilient, collaborative, and high-performing teams.
- [The Amplification Paradox: When AI Tools Amplify the Wrong Things](https://rjj-software.co.uk/blog/the-ai-amplification-paradox-part-1/index.md): AI amplifies both great engineers and those lacking understanding. What does this mean for code quality?
- [Finding Strength in Vulnerability: Lessons for Tech Leaders from 'Rising Strong'](https://rjj-software.co.uk/blog/continual-professional-development/finding-strength-in-vulnerability-lessons-for-tech-leaders-from-rising-strong/index.md): This blog post explores the relevance of Dr. Brené Brown's 'Rising Strong' to the modern workplace, particularly for those leading software engineers and technology teams. Drawing on key quotes from the book, the post highlights the importance of avoiding false dichotomies, the power of experiential learning, managing emotions effectively, setting healthy boundaries, and embracing vulnerability as a strength. These concepts are presented as crucial for fostering resilient, innovative, and fulfilling work environments within the technology sector. The post underscores the role of leadership in modelling these behaviours and creating psychologically safe spaces for teams to thrive.
- [The Engineer Title: When Software Teams Aren't Actually Engineering](https://rjj-software.co.uk/blog/the-engineer-title-when-software-teams-arent-actually-engineering/index.md): - This blog post argues that many organisations misuse the "software engineer" title for developers who don't practice actual software engineering. Drawing from a decade of consultancy experience, the author contends that true software engineers demonstrate systematic approaches, quality focus, and professional practices, while many "engineers" simply code without proper planning, testing, or documentation.
- The post distinguishes between developers (who write functional code) and engineers (who apply rigorous methodologies), using quotes from The Modern .NET Show to support the argument. It identifies specific red flags indicating when teams aren't truly engineering, including absent automated testing, poor version control practices, and inadequate planning.
- The business case is clear: poor engineering practices cost organisations 40-60% more time on maintenance, create exponential technical debt, and reduce development velocity. Conversely, proper engineering practices deliver predictable timelines, sustainable development, and lower long-term costs.

- [Leading with Empathy: Lessons from &quot;Leaders Eat Last&quot; for the Modern Workplace](https://rjj-software.co.uk/blog/continual-professional-development/leading-with-empathy-lessons-from-leaders-eat-last-for-the-modern-workplace/index.md): - This blog post explores the core principles of Simon Sinek's "Leaders Eat Last" and how they are particularly relevant to leaders and teams in the technology industry. It argues that a leader's primary responsibility is to prioritize the well-being of their team, fostering a "Circle of Safety" built on empathy, trust, and mutual support.
- The post highlights the importance of psychological safety for innovation, collaboration, and high performance. It emphasizes that a supportive environment, where individuals feel valued and safe to take risks, is crucial for retaining talent and achieving organizational success. Ultimately, the article advocates for a leadership style centered on service and empowerment, recognizing that a strong team culture is the foundation for adaptability, resilience, and innovation in the rapidly evolving tech landscape.

- [Stop Treating Pentests Like Final Exams: Why Security Can't Be Your Last Step](https://rjj-software.co.uk/blog/stop-treating-pentests-like-final-exams-why-security-cant-be-your-last-step/index.md): - This blog post challenges the common practice of treating penetration testing as a final security checkpoint before release. It argues that discovering critical vulnerabilities during a pentest represents a fundamental failure in the development process, not a success of the testing process.
- The post introduces the concept of building security into every phase of the Software Development Life Cycle (SDLC), drawing on insights from security expert Tanya Janca. It provides specific security activities for each development phase: threat modeling during design, secure coding practices during development, automated scanning during builds, continuous testing, and runtime protection in production.
- For teams without dedicated security resources, the article details how to use the same tools that professional pentesters use (OWASP ZAP, Burp Suite, and SemGrep) and integrate them into CI/CD pipelines for continuous security testing. It includes practical code examples and automation configurations.
- The post provides a realistic 8-week preparation timeline for external pentests, emphasizing that these should confirm security practices are working, not discover basic vulnerabilities. It presents a clear business case comparing the costs of last-minute security fixes (£265,000+) versus continuous security practices (£45,000 annually).
- Building on previous articles about SBOMs and Attestations, the post positions penetration testing as part of a comprehensive security strategy. It concludes with a month-by-month roadmap for organizations to evolve from reactive security testing to proactive security integration, making external pentests a validation exercise rather than a crisis event.

- [Leading with Heart and Mind: Lessons from 'Dare to Lead' for the Modern Workplace](https://rjj-software.co.uk/blog/continual-professional-development/leading-with-heart-and-mind-lessons-from-dare-to-lead-for-the-modern-workplace/index.md): This blog post explores the relevance of Brené Brown's &quot;Dare to Lead&quot; for leaders in the technology sector. Drawing on key quotes from the book, it highlights the importance of vulnerability, empathy, and connection in fostering high-performing teams. The post emphasizes how these leadership principles can be applied to the unique challenges of software development, including managing burnout, encouraging innovation, and navigating complex projects. As a technology consultant, I share my experience applying these lessons to help organizations build stronger, more resilient teams. The post concludes with a call to action, inviting readers to explore my strategic technology consultation services.
- [From Strength to Strength: 2025 Wrapped](https://rjj-software.co.uk/blog/from-strength-to-strength-2025-wrapped/index.md)
- [When Agile Isn't Agile: How DORA Metrics Reveal What's Really Broken](https://rjj-software.co.uk/blog/when-agile-isnt-agile-how-dora-metrics-reveal-whats-really-broken/index.md): - This blog post addresses a common frustration among development teams: following all Agile ceremonies perfectly while still struggling to deliver value quickly. It reveals how many "Agile" teams are actually practising mini-waterfalls with two-week sprints, focusing on velocity theatre rather than genuine agility.
- The post introduces DORA metrics (Deployment Frequency, Lead Time for Changes, Time to Restore Service, and Change Failure Rate) as the reality check that exposes what's actually broken in your Agile process. Unlike story points or velocity, these metrics can't be gamed and directly measure your ability to deliver value to customers.
- Through specific examples, the article shows how DORA metrics reveal common antipatterns like "Sprint Waterfall" (batching work into sprint-sized chunks), "Fear of Production" (extensive testing that doesn't prevent failures), and "Fake Definition of Done" (marking work complete when it's not in production).
- The post provides a practical, month-by-month approach to improvement: establishing baselines, identifying constraints, targeting specific metrics, and adjusting Agile practices based on data rather than guesswork. It includes code examples, industry benchmarks, and a real client transformation showing 9x improvement in delivery speed.
- Building on the previous article about engineering dashboards, it demonstrates how DORA metrics serve dual purposes: proving value to leadership while driving internal process improvements. The core message: stop shooting in the dark with process changes. Use DORA metrics to build genuine agility based on data, not ceremonies.

- [Playing the Infinite Game: A New Approach to Technology Leadership](https://rjj-software.co.uk/blog/continual-professional-development/playing-the-infinite-game-a-new-approach-to-technology-leadership/index.md): A CPD review of Simon Sinek's The Infinite Game, focused on what changes for technology leaders when the game has no finish line: Circle of Safety, worthy rivals, leadership as enabling rather than directing, and what to invest in when the timescale is longer than the current quarter.
- [Excluding Auto-Generated Code from .NET 10 Coverage Reports](https://rjj-software.co.uk/blog/excluding-auto-generated-code-from-net-10-coverage-reports/index.md): A practical guide to excluding .NET 10's auto-generated code from Coverlet code coverage reports using Azure DevOps pipelines, with configuration examples in both YAML and XML formats
- [Attestations: The Missing Link Between Your Code and Production Trust](https://rjj-software.co.uk/blog/attestations-the-missing-link-between-your-code-and-production-trust/index.md): - This blog post explores attestations as the critical next step after implementing SBOMs in enterprise software development. While SBOMs document what components are in your software, attestations provide cryptographic proof that your software hasn't been tampered with during the build and deployment process.
- The post explains how attestations create a verifiable chain of trust from source code to production, preventing supply chain attacks where malicious code could be injected during the build process. It details what attestations can prove (including build provenance, dependency verification, security scan results, and test execution), and provides real-world scenarios where the absence of attestations has led to security breaches.
- Written for enterprise developers and technical leaders, the post offers a practical, progressive implementation approach starting with basic build attestations and advancing through SBOM attestations, vulnerability attestations, and policy-based attestations. Each level includes code examples and realistic timelines.

- [Practical Wisdom for the Modern Developer: Final Lessons from &quot;The Rules of Programming&quot;](https://rjj-software.co.uk/blog/continual-professional-development/the-rules-of-programming-5-practical-wisdom-for-the-modern-developer/index.md): This blog post explores key lessons from Chris Zimmerman's 'The Rules of Programming,'' focusing on its relevance to today's technology landscape. Drawing on insightful quotes from the book, I discuss the importance of writing readable code, the value of thoughtful comments, and the need for pragmatic problem-solving. The post emphasizes how these principles can improve developer experience, boost team productivity, and ultimately lead to more successful technology projects. As a technology consultant, I regularly apply these lessons to help organizations optimize their development processes and build more sustainable software.
- [CVE-2025-55315: Understanding 'Funky Chunks' and Why Your Organisation Needs to Act Now](https://rjj-software.co.uk/blog/cve-2025-55315-understanding-funky-chunks-and-why-your-organisation-needs-to-act-now/index.md): Critical HTTP/1.1 vulnerability enables request smuggling attacks across web frameworks. Decision makers must act now.
- [From 'Trust Us' to 'Look at This': Building Engineering Dashboards That Boards Actually Understand](https://rjj-software.co.uk/blog/from-trust-us-to-look-at-this-building-engineering-dashboards-that-boards-actually-understand/index.md): Your Agile process is working beautifully, but the board keeps asking 'How do we know?' Here's how to build dashboards that translate engineering excellence into executive confidence.
- [Finding Simplicity in Complexity: Lessons from &quot;The Rules of Programming&quot;](https://rjj-software.co.uk/blog/continual-professional-development/the-rules-of-programming-4-finding-simplicity-in-complexity/index.md): This blog post explores key principles from Chris Zimmerman's &quot;The Rules of Programming,&quot; arguing that simplicity and consistency are paramount for successful software development and high-performing teams. It emphasizes the importance of shared understanding, managing complexity rather than eliminating it, and prioritizing interface simplicity. The post highlights the dangers of stateful code and over-engineering, advocating for functional programming and a focus on clear, maintainable solutions. Ultimately, it underscores the need for team alignment and systematic debugging to create resilient, adaptable software and a more productive development environment.  The author, a technology consultant, shares practical takeaways and encourages readers to embrace these principles for improved outcomes.
- [Communities of Practice: Your Secret Weapon for Breaking Silos and Accelerating Learning](https://rjj-software.co.uk/blog/communities-of-practice-your-secret-weapon-for-breaking-silos-and-accelerating-learning/index.md): How a simple Wednesday lunch meeting transformed siloed teams into collaborative problem-solvers and turned 'that's not possible' into 'we shipped it last week.'
- [The Enduring Wisdom of 'The Rules of Programming'](https://rjj-software.co.uk/blog/continual-professional-development/the-rules-of-programming-3-the-enduring-wisdom/index.md): This blog post delves into the enduring relevance of Chris Zimmerman's 'The Rules of Programming' for modern development teams. It highlights key=principles from the book, including the importance of active code reviews, robust error handling, avoiding overly complex functions, and designing for resilience. The post emphasizes the social benefits of code reviews, the pitfalls of neglecting error handling, and the value of writing code that is clear, concise, and maintainable. Ultimately, it advocates for simplicity as a guiding principle in software development and underscores the need to address the challenges posed by legacy code. The author, a technology consultant, offers practical insights on how to apply these principles to improve developer experience and drive better business outcomes.
- [Why 'Upgrade and Pray' Cost My Client 140 Engineering Days (And How to Avoid It)](https://rjj-software.co.uk/blog/why-upgrade-and-pray-cost-my-client-140-engineering-days-and-how-to-avoid-it/index.md): A systematic approach to framework upgrades that prevents months of rework and actually improves Developer Experience.
- [Why Your 'Stable' Software Is a Ticking Time Bomb](https://rjj-software.co.uk/blog/why-your-stable-software-is-a-ticking-time-bomb/index.md): The car maintenance guide to software updates: Why ignoring that blinking dashboard light will leave you stranded at the worst possible moment.
- [Beyond the Buzzwords: More Practical Wisdom from 'The Rules of Programming' for the Modern Workplace](https://rjj-software.co.uk/blog/continual-professional-development/the-rules-of-programming-2-beyond-the-buzzwords-more-practical-wisdom-for-the-modern-workplace/index.md): This blog post delves into the practical wisdom found within Chris Zimmerman's 'The Rules of Programming,' specifically focusing on its relevance to the modern workplace, particularly for technology professionals. Drawing on key quotes from the book, the post highlights the importance of problem-focused development, resisting premature generalization, and prioritizing code simplicity over premature optimization. It argues that these principles are crucial for building maintainable, adaptable, and ultimately successful software. The post is geared towards team leaders, decision-makers, and technology managers, offering insights from a strategic technology consultant's perspective. It concludes with a call to action, inviting readers to explore how the consultant's services can help their organizations apply these principles and achieve their technology goals.
- [When Your Team Thinks They're Done Learning: A Tech Lead's Guide to Reigniting Growth](https://rjj-software.co.uk/blog/when-your-team-thinks-theyre-done-learning/index.md): Your developers have stopped learning. Not because they can't, but because they won't. Here's how to reignite their curiosity without becoming the 'mandatory training' villain.
- [Simplicity in Code: A Lesson for the Modern Workplace (The Rules of Programming)](https://rjj-software.co.uk/blog/continual-professional-development/the-rules-of-programming-1/index.md): This blog post delves into the timeless wisdom of Chris Zimmerman's 'The Rules of Programming,' exploring its relevance to the modern technology workplace. It highlights key quotes from the book, illustrating how principles like simplicity, questioning assumptions, and delaying complexity are crucial for building robust, maintainable systems and fostering high-performing teams. The post emphasizes the importance of a minimalist approach to coding, the value of team alignment, and the potential pitfalls of cognitive overload. Ultimately, it argues that a commitment to these principles is essential for navigating the challenges of today's fast-paced technology landscape. As a strategic technology consultant, I share my experience in applying these lessons to help organizations achieve their technology goals.
- [Get Back to the Office Before You're Forced: A Developer's Guide to Strategic RTO](https://rjj-software.co.uk/blog/get-back-to-the-office-before-youre-forced-a-developers-guide-to-strategic-rto/index.md): Why smart development teams should embrace hybrid working voluntarily, and how to do it right.
- [Embracing Failure: A Key to Success in the Modern Workplace](https://rjj-software.co.uk/blog/continual-professional-development/embracing-failure-a-key-to-success-in-the-modern-workplace/index.md): A CPD review of Amy C. Edmondson's Right Kind of Wrong, focused on what changes when engineering teams stop treating failure as a person to find and start treating it as a system to understand.
- [Why Blocking Developer Learning Is Your Most Expensive Technical Decision](https://rjj-software.co.uk/blog/why-blocking-developer-learning-is-your-most-expensive-technical-decision/index.md): That conference you just denied? It might have prevented your next production outage. Here's why the ROI on developer learning isn't just positive. It's exponential.
- [Designing for the Modern Workplace: Lessons from &quot;A Philosophy of Software Design&quot;](https://rjj-software.co.uk/blog/continual-professional-development/designing-for-the-modern-workplace-lessons-from-a-philosophy-of-software-design/index.md): This blog post delves into key principles of software design, drawing inspiration from 'A Philosophy of Software Design.' It emphasizes the importance of intentional design, prioritizing maintainability, and leveraging abstraction to create robust and adaptable systems. The post highlights the value of clean code, effective error handling, and iterative design processes like 'design-it-twice' and regular refactoring. Ultimately, it argues that a strategic approach to software design is an investment in long-term project success, leading to improved code quality, faster delivery, and greater team satisfaction. The author, a technology consultant, encourages readers to embrace these principles for building more resilient and efficient software solutions.
- [The Hidden Cost of Poor Developer Experience](https://rjj-software.co.uk/blog/the-hidden-cost-of-poor-developer-experience/index.md): Your £100k developers are operating at 20% capacity. Here's how poor Developer Experience is costing SMEs millions, and how to fix it.
- [Finding the Human in Software: Lessons from &quot;Managing Humans&quot;](https://rjj-software.co.uk/blog/continual-professional-development/finding-the-human-in-software-lessons-from-managing-humans/index.md): This post dives into key leadership lessons from Michael Lopp's 'Managing Humans,' specifically tailored for the challenges faced by technology leaders. It emphasizes the importance of prioritizing people, fostering open communication, and embracing a pragmatic approach to problem-solving within tech teams. The article highlights the need for genuine engagement, understanding diverse perspectives, and creating a supportive environment where team members feel valued and empowered. It stresses the value of intentional meetings, clear communication, and a willingness to adapt to change. Ultimately, the post argues that effective leadership in technology is fundamentally about understanding and supporting the individuals who drive innovation and success.
- [The £100K Developer Who's Actually Costing You £500K](https://rjj-software.co.uk/blog/the-100k-developer-whos-actually-costing-you-500k/index.md): Why your talented developers are delivering at 20% capacity, and how fixing it changes your competitive position fast.
- [Leading with Ownership: Lessons from Extreme Ownership for the Modern Workplace](https://rjj-software.co.uk/blog/continual-professional-development/leading-with-ownership-lessons-from-extreme-ownership-for-the-modern-workplace/index.md): This post explores how the principles of 'Extreme Ownership' – a book detailing leadership strategies used by Navy SEALs – can be powerfully applied to the modern technology workplace. It highlights key takeaways, emphasizing the importance of taking complete responsibility for outcomes, fostering humility and learning from mistakes, and building a collaborative team environment. The post stresses that effective tech leadership isn't about individual brilliance, but about empowering teams, prioritizing clear communication, and focusing on results. By embracing these principles, tech leaders can cultivate more resilient, adaptable, and successful teams.
- [The 5-Minute Investment That Could Save Your Company Millions: A Developer's Guide to SBOMs](https://rjj-software.co.uk/blog/the-5-minute-investment-that-could-save-your-company-millions-a-developers-guide-to-sboms/index.md): Why Software Bills of Materials aren't just 'compliance stuff' - they're your early warning system for dependency disasters, security breaches, and the key to sleeping soundly at night.
- [Why SMEs Fail at AI Implementation (And How to Succeed)](https://rjj-software.co.uk/blog/why-smes-fail-at-ai-implementation-and-how-to-succeed/index.md): Most SMEs waste £100k+ on failed AI projects. Here's why they fail and the strategic approach that guarantees ROI.
- [Your Competitors Are Using AI. Here's Why That's Good News](https://rjj-software.co.uk/blog/your-competitors-are-using-ai-heres-why-thats-good-news/index.md): While your competitors chase shiny AI toys, you can leap ahead with strategic AI implementation that actually delivers ROI. Here's how.
- [Empowering Future Engineers: RJJ Software's Involvement with Greenhead College, Huddersfield](https://rjj-software.co.uk/blog/empowering-future-engineers-rjj-softwares-involvement-with-greenhead-college-huddersfield/index.md): Explore RJJ Software's impactful collaboration with Greenhead College during their 'Step Into Your Future' week. Discover how our Chief Technology Officer, Jamie Taylor, engaged first-year students through interactive AI talks and real-world projects. Learn about fostering future tech leaders through mentorship and innovation in software engineering.
- [Workflow Inefficiencies: Simple Steps to Optimize Your Business Velocity](https://rjj-software.co.uk/blog/workflow-inefficiencies-simple-steps-to-optimize-your-business-velocity/index.md): Explore how RJJ Software, a UK-based tech leader, transforms SME workflows through bespoke AI solutions and efficient podcast production services. Discover our case studies showcasing significant improvements in operational efficiency and competitive advantage.
- [The Unseen Architecture: Why Information Flow is as Critical as Code Structure in Complex Systems](https://rjj-software.co.uk/blog/the-unseen-architecture-why-information-flow-is-as-critical-as-code-structure-in-complex-systems/index.md): Information flow is critical in complex systems; as critical as the code, if not more so. The post explores how critical information flow is in complex systems, emphasizing its importance alongside code structure. It delves into systemic challenges like silos between teams and slow communication, highlighting their impact on productivity and incident response.
- [The Silent Erosion of Developer Productivity: Unmasking Technical Debt as a Strategic Blind Spot](https://rjj-software.co.uk/blog/the-silent-erosion-of-developer-productivity-unmasking-technical-debt-as-a-strategic-blind-spot/index.md): The article highlights technical debt as an insidious challenge in software development that erodes organization productivity and leads to system instability. Ignoring this issue can increase maintenance costs and hinder future-proof systems, making proactive management crucial. Leadership plays a vital role by setting clear priorities, allocating resources effectively, and fostering sustainable practices to mitigate risks and ensure long-term code health.
- [Embracing Evolution Over Revolution: How RJJ Software Empowers SMEs to Outpace Competitors](https://rjj-software.co.uk/blog/embracing-evolution-over-revolution-how-rjj-software-empowers-smes-to-outpace-competitors/index.md): Discover how RJJ Software empowers SMEs to outpace their competitors by strategically modernising legacy systems without a disruptive full-scale rewrite. Learn why evolution beats revolution in software development through our success story with a world-renowned motor sports team, highlighting improved performance and scalability.
- [Charting Your Digital Course](https://rjj-software.co.uk/blog/charting-your-digital-course/index.md): Embrace the power of bespoke software to create a tailored digital strategy that aligns with your unique needs. In this blog post, we'll talk about how we provide expert guidance to ensure your systems are secure, scalable, and future-ready, driving innovation and growth with reliability and precision.
- [How Strategic Technology & Content Converge for Competitive Advantage](https://rjj-software.co.uk/blog/how-strategic-technology-and-content-converge-for-competitive-advantage/index.md): Learn how strategic technology (bespoke software, AI) and compelling content (professional podcast production) converge to drive business velocity and competitive advantage. Actionable insights for digital transformation.
- [Unlocking Your Digital Horizon](https://rjj-software.co.uk/blog/unlocking-your-digital-horizon/index.md): Bespoke software & digital strategy by RJJ Software. Award-winning experts delivering tailored, scalable solutions that drive real business growth.
- [The Art of Reviving Old Podcasts: How to Repurpose Episodes for New Content](https://rjj-software.co.uk/blog/the-art-of-reviving-old-podcasts-how-to-repurpose-episodes-for-new-content/index.md): Discover how to breathe new life into your old podcast episodes and attract new listeners. Learn the art of repurposing podcasts, from creating effective trailers and promotional content to leveraging backlinks and guest blogging. Get expert tips on reviving old podcasts and take your show to the next level.
- [The Case for Creating a Website for Your Podcast: Why It's Worth Considering](https://rjj-software.co.uk/blog/podcaster-questions/the-case-for-creating-a-website-for-your-podcast-why-its-worth-considering/index.md): Learn how a podcast website can take your show to the next level, from improved accessibility to increased online visibility and enhanced listener engagement. This comprehensive guide covers the benefits of having a central hub for your podcast, including extra content, SEO optimization, and customizable templates. Discover how to create a professional-looking site using website generation tools and optimize it for maximum impact. Perfect for aspiring and experienced podcasters looking to elevate their online presence and connect with their audience.
- [Can AI-Powered Podcasting Really Boost Productivity and Innovation?](https://rjj-software.co.uk/blog/podcaster-questions/can-ai-powered-podcasting-really-boost-productivity-and-innovation/index.md): Discover how AI is transforming podcasting - from boosting productivity and innovation to revolutionizing post-production. Get the inside scoop on leveraging AI in your podcasting workflow.
- [Starting a Podcast: Lessons from an Award-Winning Show](https://rjj-software.co.uk/blog/podcaster-questions/starting-a-podcast-lessons-from-an-award-winning-show/index.md): Learn how to start a successful podcast from the creator of our own award-winning podcast The Modern .NET Show! In this informative guide, we share our top tips and lessons learned on getting started with podcasting, including finding your unique voice, overcoming common fears, and growing and evolving as a creator. From writing outlines to producing episodes, discover the secrets to launching a hit podcast that resonates with listeners.
- [Unlocking Business Value from Data: How AI and Machine Learning Can Help](https://rjj-software.co.uk/blog/unlocking-business-value-from-data-how-ai-and-machine-learning-can-help/index.md): Unlock the power of your data with Artificial Intelligence (AI) and Machine Learning (ML). Discover how these technologies can help you gain valuable insights, drive growth, and stay ahead of the competition. Learn about the benefits, applications, and real-world examples of AI and ML in various industries.
- [How I Read More Than 50 Books a Year: My Top Tips for Boosting Your Reading Habits](https://rjj-software.co.uk/blog/study-advice/how-i-read-more-than-50-books-a-year-my-top-tips-for-boosting-your-reading-habits/index.md): Discover how to read more books in less time with our expert tips and tricks. From avoiding burnout to harnessing the power of audiobooks, learn how to boost your reading habits and retain more information from your reads. Get the inside scoop on productivity hacks, self-care, and more  - perfect for book lovers looking to level up their reading game.
- [10 Essential Steps to Implementing Successful AI in Your Business](https://rjj-software.co.uk/blog/10-essential-steps-to-implementing-successful-ai-in-your-business/index.md): Get ahead of the curve with AI! Learn how to identify your business challenges and develop tailored solutions that drive real value. Discover the 10 essential steps to successful AI implementation and find out why partnering with RJJ Software can be the key to unlocking your business's full potential
- [Navigating International Trade Missions: A Guide for First-Timers](https://rjj-software.co.uk/blog/navigating-international-trade-missions-a-guide-for-first-timers/index.md): Discover the essential guide to navigating international trade missions. From researching markets and managing finances to networking strategically and avoiding common pitfalls, this comprehensive article provides expert advice for first-time attendees. Learn how to make the most of your trade mission experience and increase your chances of success in foreign business deals. Read on for valuable tips and insights from a seasoned trade mission veteran.
- [Understanding Fair Use: A Guide for Podcasters](https://rjj-software.co.uk/blog/podcaster-questions/understanding-fair-use-a-guide-for-podcasters/index.md): Are you a podcaster looking to incorporate copyrighted material into your show without risking a copyright lawsuit? Fair Use is a legal doctrine that permits limited use of copyrighted material, but it can be complex and nuanced. In this article, we'll delve into the world of Fair Use, exploring its basics, limitations, and what it means for podcasters. From key factors in determining fair use to assessing the approval process with management teams, record labels, and music publishing companies, we'll cover everything you need to know about Fair Use in podcasting. Whether you're using copyrighted music as a bumper or identifier, creating reaction videos, or simply trying to stay within the bounds of copyright law, this guide is for you. Don't risk a costly lawsuit - learn how to navigate Fair Use and protect your podcast from potential legal issues. Get started with our comprehensive guide to Fair Use in podcasting today!
- [Introducing OwaspHeaders.Core: A Powerful, Free, and Open-Source Middleware for Enhanced Security in ASP.NET Core Applications](https://rjj-software.co.uk/blog/introducing-owaspheaders-core-a-powerful-free-and-open-source-middleware-for-enhanced-security-in-asp-net-core-applications/index.md): Enhance the security of your ASP.NET Core applications with OwaspHeaders.Core, a free and open-source NuGet package. Learn how to easily integrate this middleware into your project and reap the benefits of improved security, including comprehensive header configuration and regular security audits. Read more about using OwaspHeaders.Core to protect your users' data and trust.
- [The Podcasting Paradox: Why Stats Are Just a Sideshow, Not the Main Event](https://rjj-software.co.uk/blog/podcaster-questions/the-podcasting-paradox-why-stats-are-just-a-sideshow-not-the-main-event/index.md): Discover why podcasters should focus on engagement, not just numbers. Learn how to create content that resonates with your audience and builds meaningful connections.
- [Podcaster Questions: How Can I Grow My Audience?](https://rjj-software.co.uk/blog/podcaster-questions/how-can-i-grow-my-audience/index.md): 'How can I grow my audience?' is one of the most often asked question in podcaster forums and groups. And this blog post is Jamie's long form answer.
- [Mastering Your LinkedIn Feed: A Guide for Small Business Owners](https://rjj-software.co.uk/blog/mastering-your-linkedin-feed-a-guide-for-small-business-owners/index.md): Master the art of filtering your LinkedIn feed with our expert guide. Learn how to optimize your social media presence, reduce noise and distractions, and focus on high-priority connections while showcasing your industry expertise and driving business results.
- [The Myth of Niche Industry Experience: Why It's Not a Hard Requirement for Software Developers](https://rjj-software.co.uk/blog/the-myth-of-niche-industry-experience-why-its-not-a-hard-requirement-for-software-developers/index.md): Are companies prioritizing niche industry experience over diverse talent? This article explores why this approach is no longer tenable in the software development industry. We examine the risks of ignoring top talent, the principles of Domain-Driven Development, and how to redefine hiring practices to attract a more inclusive pool of developers.
- [A Year of Triumph: 2024 Wrapped](https://rjj-software.co.uk/blog/a-year-of-triumph-2024-wrapped/index.md): Discover how RJJ Software has achieved success and growth in 2024, from expanding our network to delivering exceptional digital transformation solutions. Read our reflection on the past year and learn about our achievements, client successes, and awards received.
- [The Prestige of Being a Microsoft MVP: Unlocking Expertise and Influence](https://rjj-software.co.uk/blog/the-prestige-of-being-a-microsoft-mvp-unlocking-expertise-and-influence/index.md): Discover what it means to be a Microsoft Most Valued Professional (MVP), a prestigious title reserved for individuals who have demonstrated exceptional expertise in their chosen technology field. In this comprehensive guide, we explore the benefits of being an MVP and share Jamie's inspiring journey to achieving this status as a Microsoft MVP for Developer Technologies.
- [A Milestone Achieved: 1 Million Downloads of OwaspHeaders.Core](https://rjj-software.co.uk/blog/a-milestone-achieved-1-million-downloads-of-owaspheaders-core/index.md): Discover how OwaspHeaders.Core, a popular open-source project, has reached a significant milestone of over 1 million downloads. Learn about its impact on secure web development and how it's making a difference in the .NET community.
- [Why We Choose Tailscale for Our Remote-First Company: A Decentralized VPN Solution](https://rjj-software.co.uk/blog/security-tips/why-we-choose-tailscale-for-our-remote-first-company-a-decentralized-vpn-solution/index.md): Discover how we leverage Tailscale, a peer-to-peer VPN solution, to foster secure collaboration and flexibility in our remote-first setup. Learn about the benefits of decentralized connectivity and get started with your own Tailscale implementation.
- [What's the Best Way to Keep My Podcast Audio Files Safe and Secure?](https://rjj-software.co.uk/blog/podcaster-questions/whats-the-best-way-to-keep-my-podcast-audio-files-safe-and-secure/index.md): Prioritize backups to safeguard your podcast's audio treasures. Learn how to create a robust backup system using the 3-2-1 rule, convert raw recordings to FLAC for reduced file size, and implement a multi-layered approach to archiving projects.
- [Spotting Phishing Emails: Red Flags and Warning Signs to Watch Out For](https://rjj-software.co.uk/blog/security-tips/spotting-phishing-emails/index.md): Learn how to spot phishing emails like a pro! This informative blog post reveals the common red flags to watch out for, including suspicious sender addresses, poor design language, and inconsistencies in email content. Discover why legitimate companies always use their official domain, address you directly, and maintain a consistent design language.
- [The Importance of Password Management: A Critical Component of Online Security](https://rjj-software.co.uk/blog/security-tips/the-importance-of-password-management-a-critical-component-of-online-security/index.md): Discover the importance of password management in today's digital age. Learn how password managers can boost your online security, provide convenience, and help you stay ahead of emerging threats. Read now and find out which reputable password manager solutions are best for you.
- [Are Take-Home Tech Tests Worth It? A Discussion on Their Relevance in Today's Job Market](https://rjj-software.co.uk/blog/are-take-home-tech-tests-worth-it-a-discussion-on-their-relevance-in-todays-job-market/index.md): In today's digital world, developers face competitive job markets where they must demonstrate their skills and expertise to potential employers. One common method used by companies to assess candidates is through take-home tech tests. Although these tests can be beneficial for junior developers to prove their fundamental understanding of programming concepts, the article delves into the limitations and drawbacks of these tests as it pertains to experienced professionals. The discussion examines concerns such as exclusionary factors, wasted time, and potential biases tied to take-home tech tests. The article concludes by advocating for alternative assessment methods that prioritize inclusivity and equity within the job market.
- [Celebrating 50 Years of Excellence: The University of Hull's Computer Science Department Anniversary Event](https://rjj-software.co.uk/blog/celebrating-50-years-of-excellence-the-university-of-hulls-computer-science-department-anniversary-event/index.md): Discover how the University of Hull's Computer Science Department celebrated its 50th anniversary with style and community spirit. Read about the event's highlights, including a quiz, a Dalek appearance, and more. Get an insider's look at the department's achievements and its impact on the gaming industry.
- [Keep Your Digital Footprint Safe: Enable Multi-Factor Authentication Today!](https://rjj-software.co.uk/blog/security-tips/keep-your-digital-footprint-safe-enable-multi-factor-authentication-today/index.md): At RJJ Software, we emphasise the importance of safeguarding your digital footprint in today's interconnected world. Cybersecurity threats are on the rise, and enabling multi-factor authentication (MFA) is a simple yet effective way to protect your accounts and connections online. This blog post discusses MFA and its benefits for a more secure digital experience. By following these steps, you can activate MFA on platforms like LinkedIn and extend it to other crucial services in your digital landscape. Enhance your cybersecurity posture with MFA and protect your personal brand and connections from malicious individuals.
- [Amplifying Your Presence on International Podcast Day with Social Media and Collaborations](https://rjj-software.co.uk/blog/amplifying-your-presence-on-international-podcast-day-with-social-media-and-collaborations/index.md): Explore the importance of an effective online presence for podcasters in today's thriving industry. By following advice from a recent International Podcast Day event with Jamie and Stephanie Fuccio, podcasters can expand their audience reach and partnership opportunities. Some strategies include creating dedicated social media pages, engaging with audiences, collaborating with others, utilizing multiple platforms, and sharing exclusive content. This helps foster connections within the community and elevate podcast success in the industry.
- [Crack the Code of Generative AI: Simple Steps for Smart Outcomes](https://rjj-software.co.uk/blog/generative-ai-tips/crack-the-code-of-generative-ai-simple-steps-for-smart-outcomes/index.md): Dive into the fascinating realm of Generative Artificial Intelligence with our comprehensive guide. Discover five practical and easy-to-follow tips that can significantly boost your efficiency when working with AIs! Learn how to effectively use a persona, understand an AI's decision logic, manage data with examples or schema, combat recency bias, and ensure the reliability of AI content through double-checking. Ideal for beginners and experts alike, our guide is your key to harnessing the power of Generative AI like never before!
- [Learning Something New? Leverage These 7 Pieces of Advice for Success!](https://rjj-software.co.uk/blog/study-advice/learning-something-new-leverage-these-7-pieces-of-advice-for-success/index.md): Learning something new can be challenging, but with the right mindset and strategies, it can also be incredibly rewarding. In this blog post, we'll explore seven pieces of advice that can help you learn more effectively, efficiently, and enjoyably. Whether you're learning a new language, studying for a course, or delving into the world of coding, these tips will help you stay on track and reach your goals.
- [Unravelling the Code Tapestry: Documenting Final Steps Before Implementing Changes](https://rjj-software.co.uk/blog/working-safely-with-legacy-code/unravelling-the-code-tapestry-documenting-final-steps-before-implementing-changes/index.md): In this part of our series, we focus on submitting a PR for documentation, running automated tests, performing manual testing, addressing issues, and confirming changes before committing updates to a legacy codebase. This ensures safe implementation while maintaining stability and functionality. By following these steps, developers can efficiently work within the codebase, streamlining integration processes for future contributors.
- [Unravelling the Code Tapestry: Learning the Release Process and PR Strategy](https://rjj-software.co.uk/blog/working-safely-with-legacy-code/unravelling-the-code-tapestry-learning-the-release-process-and-pr-strategy/index.md): In this part of the series on safely navigating legacy code, we explore understanding the release process and pull request strategy for these codebases. By familiarizing yourself with the existing processes, you can ensure your work is incorporated effectively without causing disruption or unintended consequences. Collaborate with teammates to refine existing processes and adapt them as necessary while documenting best practices for future reference. This will help promote efficient development practices within a legacy codebase.
- [Unravelling the Code Tapestry: Accessing a Development Database for Local Testing](https://rjj-software.co.uk/blog/working-safely-with-legacy-code/unravelling-the-code-tapestry-accessing-a-development-database-for-local-testing/index.md): &quot;Unravelling the Code Tapestry: Accessing a Development Database for Local Testing&quot; delves into accessing a development database for local testing and highlights the importance of using a copy of the database rather than live databases containing sensitive user information. The process involves obtaining access to development database credentials, analysing how the original codebase manages these credentials, hosting a local copy of the database in a secure environment, scrubbing any sensitive data, refactoring and testing the codebase while maintaining secure environment management. Maintaining security throughout the testing process ensures safe and controlled experimentation for developers, resulting in continuous improvement and innovation within their teams.
- [Unravelling the Code Tapestry: Documenting your Progress](https://rjj-software.co.uk/blog/working-safely-with-legacy-code/unravelling-the-code-tapestry-documenting-your-progress/index.md): &quot;Unravelling the Code Tapestry: Documenting your Progress&quot; focuses on the importance of well-organized documentation in software development projects, particularly in using plaintext or Markdown format and source control for easy accessibility, collaboration, and continuous improvement by developers. It emphasizes the adoption of tools such as VS Code's Microsoft Learn authoring pack and platforms like Confluence and Notion to ensure efficient documentation workflows throughout the entire project lifecycle. 
- [Unravelling the Code Tapestry: Before Running the Build](https://rjj-software.co.uk/blog/working-safely-with-legacy-code/unravelling-the-code-tapestry-before-running-the-build/index.md): In this blog post, we delve into working with legacy codebases by discussing crucial aspects such as creating local branches, understanding branch protection policies, ensuring correct permissions, learning team strategies, and documenting progress. These steps pave the way for efficient collaboration and contribute to a higher-quality product while maintaining optimal communication throughout the development process.
- [Unravelling the Code Tapestry: Why Documentation is Key to Legacy Code Success](https://rjj-software.co.uk/blog/working-safely-with-legacy-code/unravelling-the-code-tapestry-why-documentation-is-key-to-legacy-code-success/index.md): When working with legacy code, it's essential to gather as much information as possible before attempting to build or run the code. In this article, we explore the importance of documentation in ensuring stability and reliability during modernization efforts. By doing the necessary investigative work ahead of time, developers can avoid potential pitfalls and ensure a successful outcome for their projects
- [Unravelling the Code Tapestry: Conversations with Code Custodians](https://rjj-software.co.uk/blog/working-safely-with-legacy-code/unravelling-the-code-tapestry-conversations-with-code-custodians/index.md): &quot;Unravelling the Code Tapestry: Conversations with Code Custodians&quot; immerses readers in the heart of legacy systems as we engage in insightful dialogues with the developers who intimately know and nurture the code. This instalment advocates for a meticulous note-taking approach, encouraging a delicate balance between active listening and capturing the nuances shared during these profound discussions. With a focus on fostering collaboration and patience, the blog post transcends conventional approaches to unravelling legacy code, delving into the collective experiences that shape the software landscape. Join us on this transformative journey, where every line of code becomes a narrative thread in the intricate tapestry of software archaeology
- [Unravelling the Code Tapestry: Preparing to Tame Legacy Code With User-Led Odysseys](https://rjj-software.co.uk/blog/working-safely-with-legacy-code/unravelling-the-code-tapestry-preparing-to-tame-legacy-code-with-user-led-odysseys/index.md): In the illuminating post, we redefine the approach to legacy code by emphasizing a user-centric exploration before delving into technical intricacies. This unique odyssey begins with immersive demoes led by actual users, allowing developers to absorb the user experience without the interference of note-taking. Building connections with users becomes pivotal, transcending formalities to create a collaborative journey that intertwines the exploration of code with genuine human narratives. Unveiling the power of &quot;why,&quot; this post navigates the intricate tapestry of legacy code, unravelling the meaningful stories that shape its existence and paving the way for transformative development efforts deeply rooted in understanding, empathy, and genuine collaboration.
- [Unravelling the Tapestry of Legacy Code: A Series on Safely Navigating Software's Timeless Artifacts](https://rjj-software.co.uk/blog/working-safely-with-legacy-code/unravelling-the-tapestry-of-legacy-code-a-series-on-safely-navigating-softwares-timeless-artifacts/index.md): Embark on an illuminating journey with RJJ Software as we delve into the intricate world of legacy code in our blog series. Discover how we recently revitalized a mission-critical application for a multinational engineering firm, infusing new life into the codebase and harmonizing tradition with innovation. Throughout this series, we share our experiences spanning over a decade, drawing from real-world examples and the wisdom of industry experts. Join us in demystifying the complexities of legacy code, unlocking transformative insights, and unveiling a systematic approach—a mastery for navigating and enhancing software's timeless artifacts.
- [Choosing the Right Language: Navigating the Main Differences Between C#, .NET, Python, and Go](https://rjj-software.co.uk/blog/choosing-the-right-language-navigating-the-main-differences-between-csharp-.net-python-and-go/index.md): As a junior to mid-level developer embarking on a new project, the choice of programming language is akin to selecting the right tool for the job. In this comprehensive guide, we'll explore the 10,000-foot differences between C#, .NET, Python, and Go, shedding light on their unique features, use cases, and where each excels. Whether you're diving into the versatility of C#, the expansiveness of .NET, the simplicity of Python, or the efficiency of Go, this article aims to provide insights to empower your decision-making process..
- [Mastering the Art of Productive Study Sessions: 7 Tips to Boost Learning Efficiency](https://rjj-software.co.uk/blog/study-advice/mastering-the-art-of-productive-study-sessions-7-tips-to-boost-learning-efficiency/index.md): Embark on a transformative journey of self-directed learning with our comprehensive guide, 'Unlock Your Learning Potential: 7 Pro Tips for Mastering New Skills and Knowledge.' Whether you're delving into cutting-edge technology, navigating complex software libraries, or unravelling the intricacies of company processes, this in-depth listicle provides an arsenal of expert strategies. From the art of active listening to tailoring your study sessions based on individual concentration patterns, discover how to make every minute of your study time count. Elevate your learning experience with this extensive guide, ensuring that your pursuit of knowledge is not just efficient but also deeply rewarding.
- [Podcaster Questions: How Do I Grow Audience Engagement?](https://rjj-software.co.uk/blog/podcaster-questions/how-do-i-grow-audience-engagement/index.md): Dive into the intricacies of audience engagement as we guide you through envisioning your ideal listener and understanding their online habitat. Learn how to stealthily integrate into their communities, offering genuine value without a hard sell. Discover the profound impact of engagement and why it's the linchpin that transforms casual listeners into devoted subscribers. Elevate your podcasting game by building bridges with your audience, creating a community that goes beyond the microphone. We'll answer the question 'how do I drive engagement of my podcast?'
- [Revolutionizing Podcast Production By Unleashing the Power of AI in Podcast Mastering](https://rjj-software.co.uk/blog/revolutionizing-podcast-production-by-unleashing-the-power-of-ai-in-podcast-mastering/index.md): In the ever-evolving landscape of digital media, podcasts have emerged as a powerful and versatile platform for communication. As technology advances, so does the need for innovative solutions that enhance the podcasting experience. In this blog post, we explore the game-changing impact of Artificial Intelligence (AI) on podcast mastering, showcasing how our UK software development and podcast mastering consultancy is at the forefront of this revolution.
- [On Impostor Syndrome](https://rjj-software.co.uk/blog/on-impostor-syndrome/index.md): What do microwave ready meals, courage, vulnerability, and Theodore Roosevelt have in common? Impostor Syndrome. RJJ Software CTO Jamie Taylor talks through what Impostor Syndrome is, why it's a good thing to have, and how it relates to empathy, sympathy, and compassion. He relies on a number of quotes from vulnerability researcher Brené Brown, Jake Humphrey, Carl Sagan, Teddy Roosevelt, and Adam Grant. This post will teaches you that Impostor Syndrome is both scary and required in order to build compassionate software.
- [Continual Professional Development - 2023](https://rjj-software.co.uk/blog/continual-professional-development/2023/index.md): Complexity, failure, and vulnerability where the focus of 2023's CPD. In this blog post Jamie discusses 10 of the best books that he read in 2022 as part of his continual professional development
- [We Need To Do Better](https://rjj-software.co.uk/blog/we-need-to-do-better/index.md): Empathy and compassion are indispensable qualities for software developers because they bridge the gap between code and human experience. Empathy enables developers to step into the shoes of end-users, understanding their needs, pain points, and goals. This perspective drives user-centric design, ensuring that software solves real-world problems effectively.
- [Attending Leeds Cyber Security Conference 2023](https://rjj-software.co.uk/blog/attending-leeds-cyber-security-conference-2023/index.md): Jamie attended Leeds Cyber Security Conference, and wanted to write about his key take aways at this event and why you should attend local industry events.
- [Unlocking Possibilities with RJJ Software's Bespoke Software Development Services](https://rjj-software.co.uk/blog/unlocking-possibilities-with-rjj-softwares-bespoke-software-development-services/index.md): Welcome to the future of software development—a world where innovation knows no bounds and your unique vision takes center stage. At RJJ Software, we're your partners in crafting digital solutions that elevate your business and transform your digital landscape.
- [Where Vision Meets Innovation - Unlocking Podcasting Excellence with RJJ Software](https://rjj-software.co.uk/blog/where-vision-meets-innovation/index.md): Looking to take your podcasting journey to new heights? Discover how RJJ Software, led by former Microsoft MVP Jamie Taylor, transforms podcast visions into masterpieces. From bespoke podcasts to cutting-edge audio expertise, we're your partners in podcasting success.
- [Second Prestigious Award for RJJ’s Jamie](https://rjj-software.co.uk/blog/second-prestigious-award-for-rjjs-jamie/index.md): RJJ Software founder and CTO, Jamie Taylor has been awarded Managing Director of the Year award for Most Visionary Software Development &amp; Consultancy MD. This is his second prestigious award since founding the company in 2018, with his first being the MVP Award from Micrsoft in 2021 .
- [Eleven Tips for Surviving Conferences](https://rjj-software.co.uk/blog/eleven-tips-for-surviving-conferences/index.md): Attending conferences can be stressful. Jamie, freshly back from MVP Summit in Seattle, wanted to share eleven tips for your next conference. His tips range from staying hydrated to knowing and following the event code of conduct; but also include things like knowing how to get to and from the event space, and the pacman method for talking to people.
- [Podcaster Questions: Where Do I Post Links To My Podcast?](https://rjj-software.co.uk/blog/podcaster-questions/where-do-i-post-links-to-my-podcast/index.md): Your links to your podcast on social media aren't seeing a positive return, why? Well, it's more involved than just flinging links over the wall.
- [Seven Tips for Getting Started With Studying](https://rjj-software.co.uk/blog/study-advice/seven-tips-for-getting-started-with-studying/index.md): Studying any matter, whether it is guitar playing, a foreign language, or programming, follows the same principles: deliberate practice and setting yourself up for success. This blog post was written with the express purpose of sharing our tips for getting started on a learning journey, and ensuring that the reader falls into the pit of success rather than the pit of failure. These tips have all been used to ensure that we, at RJJ Software, allow for the best learning and teaching environments for our employees.
- [Podcaster Questions: How Should I Host My Podcast?](https://rjj-software.co.uk/blog/podcaster-questions/how-should-i-host-my-podcast/index.md): Deciding how to host your podcast can be a minefield. This blog post attempts to demystify some of the aspects of podcast hosting, and talks about the buy vs build argument about podcast hosting.
- [Podcaster Questions: I Can Buy Downloads?!](https://rjj-software.co.uk/blog/podcaster-questions/i-can-buy-downloads/index.md): Is it possible to pay for guaranteed downloads? In this blog post, Jamie talks about why you likely shouldn't do it, but also covers how it's done.
- [Continual Professional Development - 2022](https://rjj-software.co.uk/blog/continual-professional-development/2022/index.md): Communication, Empathy, and Leadership where the focus of 2022's CPD. In this blog post Jamie discusses 10 of the best books that he read in 2022 as part of his continual professional development.
- [Getting Started With Open Source Development](https://rjj-software.co.uk/blog/getting-started-with-open-source-development/index.md): Contributing to open source software is more accessible than ever. In this blog post, Jamie talks through a few of the ways that you can get started with building your portfolio of amazing code.
- [Podcaster Questions: Do I Need An Episode Release Schedule?](https://rjj-software.co.uk/blog/podcaster-questions/do-i-need-an-episode-release-schedule/index.md): Do you always have to release episodes of your podcast on schedule? Is there a 'best' day to release new episodes?
- [Records vs Classes in C#](https://rjj-software.co.uk/blog/records-vs-classes-in-c-sharp/index.md): Why do record types in C# exist when classes work fine? Jamie attempts to explain where you could use each.
- [Building .NET Maui Apps on Linux-Based Operating Systems](https://rjj-software.co.uk/blog/building-net-maui-android-apps-on-linux-based-operating-systems/index.md): Building .NET Maui applications on Linux isn't as easy as it is on Windows or Mac. but Jamie found a way.
- [Apprentice Dev Blog: Weeks 7 and 8 - .NET Maui and MVVMS](https://rjj-software.co.uk/blog/apprentice-dev-blog/weeks-7-and-8/index.md): As we come to the end Alex's time with us, they took some time to clean things up and look at James Montemagno's MVVMS architecture.
- [Azure & Why You Shouldn't Use Defaults](https://rjj-software.co.uk/blog/azure-why-you-shouldnt-use-defaults/index.md): A very simple mistake in building a GitHub workflow lead to three days of confusion with Azure WebApps. The simple solution will shock you.
- [Apprentice Dev Blog: Week 6 - Markup & New Ways To Design UIs](https://rjj-software.co.uk/blog/apprentice-dev-blog/week-6/index.md): Our 2022 apprentice has been deep diving into how to build UI's using XAML this week.
- [Apprentice Dev Blog: Week 5 - Looking To The Future](https://rjj-software.co.uk/blog/apprentice-dev-blog/week-5/index.md): Our 2022 apprentice has been working on adding unit tests and implementing the repository pattern this week.
- [Agile and Video Games](https://rjj-software.co.uk/blog/agile-and-video-games/index.md): Could some of the biggest video game release disasters have been avoided by using Agile practices rather than waterfall? Jamie think's so, and he'll attempt to prove it in this article.
- [Apprentice Dev Blog: Week 4 - Repositories and Testing](https://rjj-software.co.uk/blog/apprentice-dev-blog/week-4/index.md): Our 2022 apprentice has been working on adding unit tests and implementing the repository pattern this week.
- [Podcaster Questions: Can I Use Copyrighted Music In My Show?](https://rjj-software.co.uk/blog/podcaster-questions/can-i-use-copyrighted-music/index.md): Is it possible to play copyrighted music on a podcast? Mark talks you through the process, and what can happen if you don't get the appropriate sign off.
- [CreatorCollabs with Cher Jones](https://rjj-software.co.uk/blog/creatorcollabs-with-cher-jones/index.md): Friend of RJJ Software Cher Jones recently started a new series called 'CreatorCollabs'. The first episode was about getting feedback, which Jamie watched live. This blog post contains his ideas at the end of the live broadcast.
- [Apprentice Dev Blog: Week 3 - Refactoring and Validation](https://rjj-software.co.uk/blog/apprentice-dev-blog/week-3/index.md): Our 2022 apprentice has been working on refactoring and input validation this week
- [On Being Fully Remote & VPNs](https://rjj-software.co.uk/blog/on-being-fully-remote-and-vpns/index.md): Empathy is one of the most important skills for developers to have, especially empathy for the users of the software they build.
- [Podcaster Questions: Should I Transcribe My Show?](https://rjj-software.co.uk/blog/podcaster-questions/should-i-transcribe-my-show/index.md): Should you provide a transcript for your podcast? And, if so, how should you provide it?
- [Apprentice Dev Blog: Week 2 - Injecting Dependencies](https://rjj-software.co.uk/blog/apprentice-dev-blog/week-2/index.md): Our 2022 apprentice has started learning the basics of dependency injection and not hard coding config into your applications
- [Apprentice Dev Blog: Week 1 - Getting Started](https://rjj-software.co.uk/blog/apprentice-dev-blog/week-1/index.md): Our 2022 apprentice writes about the challenges that they have overcome and the knowledge they have gained in their first week with us
- [Important Skills for Developers: Empathy](https://rjj-software.co.uk/blog/important-skills-for-developers-empathy/index.md): Empathy is one of the most important skills for developers to have, especially empathy for the users of the software they build.
- [Five Reasons Why You Should Hire a Podcast Editor](https://rjj-software.co.uk/blog/five-reasons-why-you-should-hire-a-podcast-editor/index.md): Podcasting can be a great way to advertise a product or feature directly to your target audience. Hiring an audio editor is a must, as they are experts in engineering the experience you would like your audience you have.
- [On Drive and Gatekeepers](https://rjj-software.co.uk/blog/on-drive-and-gatekeepers/index.md): A Dave Grohl quote proves that if someone has the drive, they can achieve anything provided that they have supportive people around them. But gatekeepers will sap their energy, drive, and will to achieve.
- [Continual Professional Development - 2021](https://rjj-software.co.uk/blog/continual-professional-development/2021/index.md): Security, Refactoring, and Communication where the focus of 2021's CPD. In this blog post Jamie discusses 10 of the best books that he read in 2022 as part of his continual professional development
- [Reviewing Our Work: ABM Kitchens and Bathrooms](https://rjj-software.co.uk/blog/reviewing-our-work-abm-kitchens-and-bathrooms/index.md): A short review of a newly released website for a client of ours - ABM Kitchens and Bathrooms
- [Responsive Images Without JavaScript](https://rjj-software.co.uk/blog/responsive-images-without-javascript/index.md): How to have responsive images on your site, leveraging a simple HTML element, without the need for JavaScript or server-side code.
- [What is a Container, and What is Docker?](https://rjj-software.co.uk/blog/what-is-a-container-and-what-is-docker/index.md): Containers, Images, Docker, podman, DevOps and scalable applications; what do all of these things mean? Jamie talks us through them all.
- [Continual Professional Development - 2020](https://rjj-software.co.uk/blog/continual-professional-development/2020/index.md): DevOps, development best practises, and business where the focus of 2020's CPD. In this blog post Jamie discusses 10 of the best books that he read in 2022 as part of his continual professional development
- [Starting a Podcast - Our Advice](https://rjj-software.co.uk/blog/starting-a-podcast-our-advice/index.md): Do you want to get started in podcasting? This blog post has our top 15 pieces of advice for budding podcasters, or those who want to build on their knowledge
- [Getting Started in Podcasting](https://rjj-software.co.uk/blog/getting-started-in-podcasting/index.md): A new course on podcasting from RJJ Software - a world class Software development and Podcast production consultancy
- [Never Block Password Managers or The Paste Command in Web Applications](https://rjj-software.co.uk/blog/never-block-paste-and-password-managers/index.md): Why you should never block password managers or the paste command in web applications.
- [10 Lessons Learnt From the Last 2 Years in Podcasting](https://rjj-software.co.uk/blog/10-lessons-learnt-from-the-last-2-years-in-podcasting/index.md): Some advice from Jamie - the host of The .NET Core Podcast - about podcasting
- [A Single-line, Whole Page, Speed up Trick](https://rjj-software.co.uk/blog/single-line-speedup/index.md): How a single line change improved a client's page speed by almost 1.5 seconds
- [Securing a Webapp - Step 1: Start As You Mean To Go On](https://rjj-software.co.uk/blog/securing-web-apps-pt1/index.md): Security starts at the very inception of an idea, not at the end
- [Take a Vacation!](https://rjj-software.co.uk/blog/take-a-vacation/index.md): Everyone needs a rest from time to time, and here are our thoughts on why
- [Securing a Webapp - Step 0: An Introduction](https://rjj-software.co.uk/blog/securing-web-apps-pt0/index.md): Why we decided to write this series, and what it might contain
- [Giving Talks at Meetups](https://rjj-software.co.uk/blog/giving-talks-at-meetups/index.md): Some advice on getting into giving talks at Meetups
