<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Developing Skills]]></title><description><![CDATA[Helping software engineers to level up their leadership and soft skills.]]></description><link>https://read.developingskills.fyi</link><image><url>https://substackcdn.com/image/fetch/$s_!i15y!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F663d2f72-78ab-4f07-9f5c-60efc3c0042d_1080x1080.png</url><title>Developing Skills</title><link>https://read.developingskills.fyi</link></image><generator>Substack</generator><lastBuildDate>Thu, 09 Apr 2026 10:06:00 GMT</lastBuildDate><atom:link href="https://read.developingskills.fyi/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[John Crickett]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[developingskills@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[developingskills@substack.com]]></itunes:email><itunes:name><![CDATA[John Crickett]]></itunes:name></itunes:owner><itunes:author><![CDATA[John Crickett]]></itunes:author><googleplay:owner><![CDATA[developingskills@substack.com]]></googleplay:owner><googleplay:email><![CDATA[developingskills@substack.com]]></googleplay:email><googleplay:author><![CDATA[John Crickett]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[How To Escalate Effectively To Senior Manager]]></title><description><![CDATA[Escalating Isn&#8217;t Throwing the Problem Upstairs]]></description><link>https://read.developingskills.fyi/p/how-to-escalate-effectively-to-senior</link><guid isPermaLink="false">https://read.developingskills.fyi/p/how-to-escalate-effectively-to-senior</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 15 May 2025 14:24:49 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e5fc03a5-fcbf-403b-a548-99cb52edb613_4916x3506.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Escalating Isn&#8217;t Throwing the Problem Upstairs</h2><p>Escalating technical issues is one of the most misunderstood responsibilities in software engineering leadership. When done right, it builds trust. When done wrong, it erodes confidence fast. I want to share the simple, high-trust way to escalate problems.</p><p>You see, too many engineering leaders misunderstand what escalation really is.</p><p>They think it means <em>alerting their boss</em>. Ringing the alarm. Forwarding the pain.</p><blockquote><p>&#8220;Hey, this broke&#8212;someone above me needs to care about this now.&#8221;</p></blockquote><p>I&#8217;ve seen it happen countless times: a manager or tech lead kicks the problem up the chain with little context, no recommendation, and zero accountability.</p><p>That&#8217;s not escalation. That&#8217;s abdication. And it undermines your credibility.</p><p>True escalation is a leadership skill. It&#8217;s about helping people above you make a better, faster decision with less cognitive load. Done well, escalation is a signal that you are in control, even when things are going wrong.</p><p>Done poorly, it&#8217;s a signal that you&#8217;re over your head.</p><p>So what does <em>effective</em> escalation look like?</p><p>Here&#8217;s the simple framework I teach every engineering manager on my teams:</p><h3>1. What was the good state?</h3><p>Start by establishing the baseline.</p><p>What was working? What did we expect?</p><p>Example: &#8220;We normally make data available within 5 minutes of a complete simulation run, well below the 15 minute SLA.&#8221;</p><p>This grounds your audience in reality before things went wrong.</p><h3>2. What changed?</h3><p>Describe the deviation from that baseline.</p><p>What broke? What&#8217;s different now?</p><p>Example: &#8220;As of this week, the new data analysis is taking 14 minutes.&#8221;</p><p>Now they understand what went off the rails.</p><h3>3. What&#8217;s the impact?</h3><p>This is where you give them a reason to care.</p><p>Who is affected? What are the consequences if this continues?</p><p>Example: &#8220;As a result of the longer data analysis, the total time to make the data available is 17 minutes and we&#8217;re now breaching the SLA. There are financial penalties tied to this breach.&#8221;</p><p>Make it concrete. Emotional if necessary. Don&#8217;t bury this.</p><h3>4. What do I recommend and what do I need from you?</h3><p>This is where most escalations fail. You don&#8217;t just show the problem, you own the next step.</p><p>Offer a path forward and make a <em>clear ask</em> of the person you&#8217;re escalating to.</p><p>Example: &#8220;We recommend temporarily disabling the new analysis and rolling back to the old one. I need your help getting alignment with the Data team as we&#8217;ll delay their project and impact their customers.&#8221;</p><p>If you want to be seen as a strategic, dependable leader in engineering, learn to escalate like a peer, not a passenger. Show them what changed, what matters, what you&#8217;ll do about it, and how they can help. You&#8217;ll gain more trust and influence with this one habit than with a hundred status updates.</p><h3>Three Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I have a course on <strong><a href="https://johncrickett.me/p/build-your-personal-brand-on-linkedin">building your personal brand on LinkedIn</a></strong>, it explains how I&#8217;ve built an audience over over 180,000 on LinkedIn and changed my life.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[Go From Invisible to In-Demand]]></title><description><![CDATA[Grow your personal brand within your company, within your community and on social media to grow your career.]]></description><link>https://read.developingskills.fyi/p/go-from-invisible-to-in-demand</link><guid isPermaLink="false">https://read.developingskills.fyi/p/go-from-invisible-to-in-demand</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 08 May 2025 12:41:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9889fd90-6889-4013-9158-3f3756e48f7e_2400x1600.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: How To Go From <strong>Invisible to In-Demand</strong></h2><p>In today&#8217;s fiercely competitive tech industry, personal branding is an important tool for software engineers and founders. It influences how others understand your skills, values, and contributions.</p><p>A personal brand can help you build credibility, grow your network, and open up opportunities - whether you're looking to advance your career, attract collaborators, or promote a product.</p><p>But how do you build you personal brand?</p><p>There&#8217;s two main ways&#8230;</p><h2>In Person</h2><ol><li><p><strong>Know what you stand for</strong> - your values, strengths, and what kind of work or problems you&#8217;re passionate about. Be ready to communicate this clearly in conversations.</p></li><li><p><strong>Show up consistently -</strong> Attend meetups, conferences, and community events regularly. Being present in the same circles helps people associate your name and face with your area of expertise.</p></li><li><p><strong>Listen and contribute -</strong> Ask thoughtful questions, share relevant experiences, and offer help when it&#8217;s useful. This builds trust and shows that you're engaged and credible.</p></li><li><p><strong>Follow up -</strong> After meeting someone, follow up with a short message. Keep in touch occasionally by sharing something useful or checking in.</p></li></ol><h2>On Social Media</h2><p>Here&#8217;s the 10 step process I&#8217;ve used to build a personal brand on LinkedIn (193k) and X (11k):</p><ol><li><p><strong>Determine your goal</strong> - why do you want to build a personal brand?</p></li><li><p><strong>Identify the relevant audience</strong> - who do you want to reach (that can help you with 1)?</p></li><li><p><strong>Make your profile interesting to the audience</strong> - be credible.</p></li><li><p><strong>Identify people you want in your network</strong> - use the search to find people you want to connect with to help you with your goal.</p></li><li><p><strong>Reach out to people and build relationships</strong> <strong>-</strong> talk to them as a person.</p></li><li><p><strong>Share original content that resonates with your audience</strong> - show people what you know, what you can do, what you are interested in or what you are learning.</p></li><li><p><strong>Engage with your audience</strong> - See 5! It&#8217;s a social media!</p></li><li><p><strong>Comment on other people&#8217;s content</strong> - you guessed it, more networking and building relationships.</p></li><li><p><strong>Build a content pipeline</strong> - make it easy to create content regularly by adopting systems.</p></li><li><p><strong>Level up your copywriting game</strong> - the better you write, the more likely people are to read.</p></li></ol><p>That&#8217;s it!</p><p>Want to do it with a cohort of other people and discuss it with them and me live? Join the course I&#8217;m running that starts May 13th. Details here: <a href="https://maven.com/coding-challenges/linkedin-for-engineers">https://maven.com/coding-challenges/linkedin-for-engineers</a>.</p><p>As a reader of Developing Skills you can get 20% off with the code: <strong>DSREADER</strong></p><p>Regards, John</p>]]></content:encoded></item><item><title><![CDATA[How To Build Influence And Get The Outcome You Want]]></title><description><![CDATA[Learn how to use four key influencing styles]]></description><link>https://read.developingskills.fyi/p/how-to-build-influence-and-get-the</link><guid isPermaLink="false">https://read.developingskills.fyi/p/how-to-build-influence-and-get-the</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 01 May 2025 13:13:04 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/89b0e557-a492-4c85-b141-19161a00aced_2400x1600.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Understand Influencing Styles and How To Use Them To Drive The Outcomes You Want.</h2><p>When we want to persuade people to do something, change their mind or change their behaviour most of us default to the the influencing style that we feel comfortable with, which is often logical and data driven.</p><p>Unfortunately it&#8217;s rarely the most effective style, particularly when dealing with people who aren&#8217;t our immediate teammates.</p><p>In this article I&#8217;m going to introduce your to four influencing styles and explain how and when to use them.</p><h2>The Logical And Rational Style</h2><p>The logical and rational style of influence places and emphasis on logical reasoning and objective data. The focus is presenting clear, well structured and data-driven/evidence based arguments.</p><p>This approach is effective when a well-structured and logical argument is required to influence decisions. To make it work requires that the arguments are presented in a logical sequence creating a clear narrative that is easy to follow.</p><h2>The Emotional And Personal Style</h2><p>The emotional style of influence focuses on appealing to the emotions of the audience. It recognises that people are first and foremost emotional beings and our emotions heavily influence how we feel and the decisions we make.</p><p>This style is effective when it evokes strong emotions, creating a sense of urgency, desire, fear or hope, which in turn makes the message more memorable and compelling. This style needs to be used authentically and with care, which will build trust and strong connections with the audience.</p><p>If abused it is manipulation, which will undermine trust.</p><h2>The Cooperative And Collaborative Style</h2><p>The cooperative and collaborative style of influence focuses on building positive relationships with people. The focus is on understanding the needs of others, asking questions to find common ground and seeking to create a sense of unity. The focus is on finding mutual wins that meet the goals of all parties.</p><p>To use this style effectively requires:</p><p><strong>Active listening:</strong> seeking to understand the point of view of others, their concerns and their needs. It involves showing genuine interest and empathy.</p><p><strong>Collaboration and teamwork:</strong> involving others and creating a space for them to contribute, expressing gratitude for their contribution and welcoming diverse perspectives.</p><p><strong>Building rapport and trust:</strong> investing time into building real relationships with the people involved and earning and retaining their trust.</p><p><strong>Building con</strong>s<strong>ensus</strong>: engaging in constructive dialogue to explore different points of view and facilitate collective decision making.</p><h2>The Assertive And Experienced-Based Style</h2><p>This style is direct, assertive and confident, using confidence, knowledge and authority to influence others effectively. To use this style express ideas, opinions and recommendations with conviction and provide supporting evidence, expertise or authority to support them.</p><p>There is a fine line between being assertive and being overly pushy and forceful. Take care to avoid overstepping the mark and alienating the intended audience.</p><h2>What Now?</h2><p>Next time you need to influence, think about the person you need to influence and which of these styles will work best with them. Be mindful that it may be more than one.</p><p>Which style most suits you and which do you find hardest to use?</p><h3>Three Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I&#8217;m <strong><a href="https://forms.gle/orcemApsX6LD7Wj5A">available as a coach</a></strong> to help you or the software engineers on you team level up.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li><li><p>I have a course on <strong><a href="https://johncrickett.me/p/build-your-personal-brand-on-linkedin">building your personal brand on LinkedIn</a></strong>, it explains how I&#8217;ve built an audience over over 190,000 on LinkedIn and changed my life.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[And Now For Something Completely Different…]]></title><description><![CDATA[Learn Something Different - Four Underrated Ways to Level Up as a Software Engineer]]></description><link>https://read.developingskills.fyi/p/and-now-for-something-completely</link><guid isPermaLink="false">https://read.developingskills.fyi/p/and-now-for-something-completely</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 17 Apr 2025 13:37:28 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/989d4cf0-668c-4e7b-80a9-ae3777107715_7952x5304.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi! Remember me? It&#8217;s John from <strong><a href="https://read.developingskills.fyi/">Developing Skills</a></strong>!</em></p><p><em>I&#8217;ve taken a few months off writing here due to other commitments, but I&#8217;m back with a renewed focus on the delivery, leadership and soft skills that software engineers and software engineering leaders need to take their careers to the next level.</em></p><p><em>I hope you&#8217;re excited to join me on that journey, if there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Learn Something Different - Four Underrated Ways to Level Up as a Software Engineer</h2><p>When we think about improving as software engineer, we often reach for the obvious: learning a new language, mastering a new framework, or finally getting fluent with that algorithm book that has been gathering dust on the shelf.</p><p>But some of the most powerful ways to grow aren't technical at all &#8212; and they&#8217;re often overlooked. Here are four underrated ways to accelerate your growth and impact as a engineer.</p><h2>1. Pair With Non-Technical People</h2><p>Yes, really. Sit with a product manager, a sales rep, or a customer support agent. You&#8217;ll start to see the business through their eyes &#8212; the constraints they navigate, the language they use, the goals they chase, the user feedback they receive.</p><p>This kind of pairing offers two huge benefits:</p><ul><li><p><strong>You gain commercial awareness.</strong> You&#8217;ll understand how your code creates value, how decisions are made, and how features are prioritised. That context makes you a more strategic, product-minded engineer.</p></li><li><p><strong>They gain engineering insight.</strong> Many people in a business have no idea how software gets made. Pairing helps demystify what we do and builds trust across teams.</p></li></ul><h2>2. Read A Book On Leadership</h2><p>You don&#8217;t need a manager title to lead. In fact, many of the most effective leaders in engineering are individual contributors who&#8217;ve learned how to lead <em>without</em> authority.</p><p>Great leadership helps you:</p><ul><li><p><strong>Influence</strong> decisions and outcomes beyond your job description or even your team.</p></li><li><p><strong>Create momentum</strong> around ideas you care about.</p></li><li><p><strong>Increase your impact</strong> across your team and organisation.</p></li></ul><p>Here are two great books you could start with:</p><ol><li><p>The Art of Leadership by Michael Lopp</p></li><li><p>The Five Dysfunctions of a Team: A Leadership Fable by Patrick Lencioni</p></li></ol><h2>3. Take A Course On Writing</h2><p>Clear writing is a superpower. It helps you share knowledge, make decisions, explain ideas, and influence others.</p><p>As software engineers, we already write <em>a lot</em>: code, comments, documentation, pull requests, user stories, technical designs, architecture decision records (ADRs), and even the occasional Stack Overflow answer or LLM prompt.</p><p>But <strong>writing well gives you leverage</strong>. It makes your thinking easier to follow, your <strong>arguments more persuasive</strong>, and <strong>your ideas more likely to be heard</strong> and acted on.</p><p>If you&#8217;re not sure where to start, try a short course on technical writing, persuasive writing, or business communication. Your future readers (and your future self) will thank you.</p><p>Alternatively consider these three books:</p><ol><li><p>Simply Said: Communicating Better at Work and Beyond by Jay Sullivan</p></li><li><p>Writing Tools: 50 Essential Strategies for Every Writer by Roy Peter Clark</p></li><li><p>The Art of Explanation: How to Communicate with Clarity and Confidence by Ros Atkins</p></li></ol><h2>4. Learn Sales</h2><p>Sales? Yes, sales. Not in the cheesy, pushy way, you don&#8217;t need to become a used car salesman! Learn sales in the deeply human way of understanding needs, telling compelling stories, and motivating action.</p><p>Knowing how to sell helps you:</p><ul><li><p><strong>Sell yourself</strong> &#8212; on your resume, in interviews, and inside your company.</p></li><li><p><strong>Sell your ideas</strong> &#8212; when you're proposing a refactor, pitching a new tool, or leading a technical initiative.</p></li><li><p><strong>Sell your vision</strong> &#8212; especially important if you&#8217;re building something new, like a startup, an open source project, or an internal platform.</p></li></ul><p>Sales is ultimately about empathy, storytelling, and influence &#8212; all essential skills for any developer who wants to make a difference.</p><p><strong>In short:</strong> if you want to stand out as a software developer, don't just sharpen your technical skills &#8212; expand your influence, your communication skills, and your commercial awareness.</p><p>These are the things that turn good developers into great ones.</p><p>Want help growing your influence as a developer? Hit reply &#8212; I&#8217;d love to hear where you&#8217;re at and how I can help.</p><p></p><h3>Three Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I&#8217;m <strong><a href="https://forms.gle/orcemApsX6LD7Wj5A">available as a coach</a></strong> to help you or the software engineers on you team level up.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li><li><p>I have a course on <strong><a href="https://johncrickett.me/p/build-your-personal-brand-on-linkedin">building your personal brand on LinkedIn</a></strong>, it explains how I&#8217;ve built an audience over over 190,000 on LinkedIn and changed my life.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[Get More From 20 Hours Of Learning Than Most Do From 80!]]></title><description><![CDATA[Learn to learn - maximise the ROI on your investment in learning!]]></description><link>https://read.developingskills.fyi/p/get-more-from-20-hours-of-learning</link><guid isPermaLink="false">https://read.developingskills.fyi/p/get-more-from-20-hours-of-learning</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 14 Nov 2024 13:16:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6b5ce983-f8e0-454e-90a0-5815ebe34acc_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Learn To Learn Effectively</h2><p>&#8220;Hey John, we need to build a 3D animation for this page, any idea how we do that?&#8221;, Steve asked.</p><p>&#8220;Do we have a designer who can create it and then give us an animated GIF?&#8221; I replied. Steve smiled and said, &#8220;No. That wouldn&#8217;t work anyway, we need to render some text on it that the user has entered&#8221;</p><p>I thought for a moment, not sure if this would be possible. Then I opened up Internet Explorer and headed over to the Java website to check out if there was any 3D support in Java, maybe we could build a Java applet that would render the 3D image.</p><p>It turned out there was Java 3D had been available for a year! I installed the latest JDK, version 1.1 and got to work building prototype.</p><p>The next afternoon I was able to demo a crude version of what we needed. &#8220;How did you learn to do that so fast?&#8221; asked Mike after the demo.</p><p>That&#8217;s happened to me a lot throughout my career and the answer is that I&#8217;ve continuously optimised my approach to learning. Now I can usually pick up the basics of a new topic very quickly.</p><p>So how do I do it?</p><p>Firstly I figure out what I need to know. What are the key things I need to learn to achieve the goal of this learning. That often starts with one of more questions I want to answer. The more precise these questions are the clearer the focus of the learning.</p><p>I then use these questions to:</p><ol><li><p>Start reading around a topic and identifying what the foundational knowledge for the topic is.</p></li><li><p>Start positioning the knowledge I have/will acquire within the big picture of the topic - the goal here is to try and avoid becoming the &#8216;expert beginner&#8217;.</p></li></ol><p>I then combine this knowledge with steps that are very similar to the ones Josh Kaufman&#8217;s outlined in the book The First 20 Hours, specifically:</p><ol><li><p>Focus exclusively on learning just this one topic for the next 20 hours - don&#8217;t try to acquire other new skills at the same time.</p></li><li><p>Break the knowledge/skill down into smaller parts and acquire them one at a time through this process.</p></li><li><p>Get the tools I need to acquire the skill.</p></li></ol><p>I tend to be a bit obsessive about learning new things so it&#8217;s likely I&#8217;ll go all in on the topic immediately, getting through the first 20 hours in 2 to 3 days. That immersion really helps particularly if you&#8217;re applying the knowledge as you gain it. Which is why I like to have questions to answer or something to build (i.e. the reason for Coding Challenges).</p><p>Do this and you&#8217;ll learn more about a subject in 20 intense hours than most people will in 80 hours of unstructured learning.</p><h3>Three Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I have a course on <strong><a href="https://johncrickett.me/p/build-your-personal-brand-on-linkedin">building your personal brand on LinkedIn</a></strong>, it explains how I&#8217;ve built an audience over over 180,000 on LinkedIn and changed my life.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[Finding The Right Mentor For You]]></title><description><![CDATA[6 Tips on how to pick the right mentor for you.]]></description><link>https://read.developingskills.fyi/p/finding-the-right-mentor-for-you</link><guid isPermaLink="false">https://read.developingskills.fyi/p/finding-the-right-mentor-for-you</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 07 Nov 2024 13:01:43 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/45f76477-61c6-4f48-9717-fb32e8edb65a_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Pick Your Mentor Carefully</h2><p>A couple of months ago I surveyed software engineers on what mentoring they would like. Why? Because a number of people had asked me if I provided paid mentoring.</p><p>The results of the survey reminded me why I&#8217;ve avoided offering mentoring so far. Of the 154 responses I got to the survey, there were 81 different goals that they wanted my help with.</p><p>Some were well within my wheelhouse. I&#8217;d love to mentor new managers on the core aspects of their role, from stakeholder management, through conducting effective 121s to how to effectively coach their team. I&#8217;d be delighted to coach and mentor software engineers on soft skills and communication skills.</p><p>Others were bizarre, wanting my mentoring for topics like:</p><ul><li><p><em><strong>Advanced C#</strong></em> - sorry I haven&#8217;t done any C# since 2007, I&#8217;m the wrong person for that!</p></li><li><p><em><strong>Advanced Android development</strong></em> - Sure, I once built an Android app because I&#8217;m curious, but that was at least ten years ago too. So sorry, I&#8217;m not the right person for that.</p></li><li><p><em><strong>Become a Staff engineer in 1 year</strong></em> - from someone with less than a year of professional experience! I&#8217;m sorry, but that doesn&#8217;t happen. OK sometimes it happens through <em><strong>title inflation</strong></em>, but that&#8217;s just having the title, not the aptitude and skills.</p></li></ul><p>So here&#8217;s some advice for software engineers and software engineering leaders who have rightly identified that a mentor can help them accelerate their career.</p><p></p><h2>&#128680;&nbsp;Before That, I Have Exciting News To Share. &#128680;</h2><p>I&#8217;m re-launching the <strong><a href="https://maven.com/coding-challenges/challenge-redis?promoCode=EARLYDS">Coding Challenges Live course</a></strong> series beginning with the Redis edition.</p><p>Coding Challenges live is a cohort based intensive course that runs for one week during which you&#8217;ll implement a lite version of a&nbsp;Redis server. Starting from scratch we&#8217;ll work through building a clone of the original Redis server and extend it to support the RESP2 protocol and some additional commands.</p><p>This course touches on a wide variety of topics that are applicable to general programming, for example:</p><p>&#128073; Parsing skills. These can be applied to a variety of problems including data munging, scraping, protocol implementation and more.</p><p>&#128073; Understanding network programming. This can be applied to making more robust, secure and scalable distributed systems.</p><p>&#128073; Experience handling concurrency and parallelism in software. Giving you the core skills to build scalable distributed systems.</p><p>&#128073; Testing. Network servers are complex system software with components that can interact in non-trivial ways. Figuring out how to test them is a challenge. You&#8217;ll explore unit and integration testing.</p><p>This course is for experienced programmers who'd like to take on the challenge of building systems software, specifically a lite Redis server. Not many programmers actually get the opportunity to write network servers or systems software. So, if you're curious about what writing a network server is all about, this is the course for you.</p><p>This course is entirely project focused. The goal of the course is not just to learn how to write a server, but also how to approach the problem of server software. Part of the course involves group discussion about problem decomposition, coding techniques, design tradeoffs, testing, and other related topics. The rest of the time is spent working on individual coding.</p><p>Coding examples are written in Python. However, the project involves no third-party libraries, esoteric language-specific features, or language-dependent tooling. As such, you're free to implement the project in any programming language that you wish. Writing a server is a great way to learn a new programming language too.</p><p>You might not think that you're ready to write a server, but if you've been coding for a while and know the basics of data structures, it's something that you can tackle. No prior background in network servers is required although awareness of common programming language concepts (e.g., types, functions, classes, scoping rules, etc.) is strongly advised.</p><p>You can find out more / sign up on Maven here:</p><p><strong><a href="https://maven.com/coding-challenges/challenge-redis?promoCode=EARLYDS">https://maven.com/coding-challenges/challenge-redis?promoCode=EARLYDS</a></strong></p><p>If you sign up before 12th November you can get 20% using the code: <strong>EARLYDS</strong></p><p>OK, back to mentoring&#8230;</p><p></p><h2>Selecting The Right Mentor Is Key</h2><p>To make it work for you, you need the right mentor and that doesn&#8217;t necessarily mean someone you currently admire. Here are some tips to help you choose someone who can effectively guide you in reaching your goals.</p><h3>1. Define Your Goals</h3><p>Before seeking out a mentor, clearly define what you&#8217;re hoping to achieve. Do you want to strengthen your technical skills, gain insight into industry best practices, or receive guidance on career progression?</p><p>Knowing your goals will help you find someone who can meet your specific needs, different mentors may bring different strengths. It&#8217;ll also help you make the most of your time with them as you can clearly articulate what you&#8217;re looking for from the relationship.</p><h3>2. Look for Relevant Experience and Skills</h3><p>Choose a mentor with a background that aligns with your areas of interest. A mentor with this relevant experience can offer insights that are practical and directly applicable to your work. If you&#8217;re aiming to move into a leadership role, for example, seek someone who has successfully navigated that path.</p><h3>3. Find Someone Who Shares Your Values and Approach</h3><p>A good mentorship relationship is built on shared values and a compatible communication style. Find someone whose approach to work, problem-solving, and learning resonates with you. This alignment creates a foundation of trust and respect, making it easier to be open about challenges and receive constructive feedback.</p><h3>4. Prioritise A Mentor With A Growth Mindset</h3><p>Look for a mentor who is invested in continuous learning and has a growth-oriented mindset. A mentor who stays up-to-date with industry trends and emphasises personal and professional development will be better equipped to help you adapt to changes and pursue new opportunities. None of us know everything, there&#8217;s always more to learn.</p><h3>5. Start with a Trial Period</h3><p>It is hard to know if someone is a good fit until you&#8217;ve worked with them. A good mentor should be suggesting that you start with a few trial sessions to assess if the relationship is productive and if their guidance is helping you achieve your goals. This can save time and ensure you invest in the right mentorship.</p><h3>6. Reach Out with Specificity and Enthusiasm</h3><p>When you&#8217;re ready, reach out to potential mentors with a clear message about why you want to work with them and what you&#8217;re hoping to get from the relationship. Being specific about what you&#8217;re looking for and what your goals are. It will help them decide if they&#8217;re the right fit and allow them to be properly prepared to work together.</p><h2>How To Ask Them To Be Your Mentor</h2><p>There&#8217;s more than one way to ask someone to be your mentor, but to get you started here&#8217;s a template you can use for an email, slack message or social media DM. If you&#8217;re asking in person hit the same key points:</p><p><em>Dear [mentor&#8217;s name],</em></p><p><em>My name is [your name], and I currently work as a [job title] for [company name]. I've been following your work and have been impressed by your achievements, especially [mention a specific project, achievement, or skill].</em></p><p><em>As I am keen to [your primary goal], I believe your insights and expertise would be invaluable in helping me grow professionally.</em></p><p><em>My main goals are:</em></p><ol><li><p><em>[your primary and specific goal one]</em></p></li><li><p><em>[possibly a second specific goal]</em></p></li><li><p><em>[optionally specific goal three, but no more]</em></p></li></ol><p><em>To achieve them I believe I need to focus on these skills:</em></p><ol><li><p><em>[list at least one specific skill]</em></p></li><li><p><em>[probably a second specific skill]</em></p></li><li><p><em>[and perhaps a third specific skill]</em></p></li></ol><p><em>Are you open to taking on any new mentees at this time? If so what would be the next steps?</em></p><p><em>Many thanks for your time,</em></p><p><em>[Your name]</em></p><p>If you&#8217;re interested in any mentoring I might offer in future, please feel free to reply to this email or <strong><a href="https://forms.gle/GNYcmS9rsH6s4HEW8">fill in the mentoring survey</a></strong>.</p><p>Regards, John</p><p></p><h3>Three Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I have a course on <strong><a href="https://johncrickett.me/p/build-your-personal-brand-on-linkedin">building your personal brand on LinkedIn</a></strong>, it explains how I&#8217;ve built an audience over over 180,000 on LinkedIn and changed my life.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[Proper Prepping For DSA Interviews]]></title><description><![CDATA[13 tips on how to prepare for DSA style software engineering interviews]]></description><link>https://read.developingskills.fyi/p/proper-prepping-for-dsa-interviews</link><guid isPermaLink="false">https://read.developingskills.fyi/p/proper-prepping-for-dsa-interviews</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 31 Oct 2024 13:30:56 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/912a5390-6c1d-49c7-92e8-7e9f55c8d6a4_2400x2400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: How To Prep For DSA Style Interviews</h2><p>I dislike DSA style interview questions. A LOT!</p><p>I also understand why the big tech companies use them and I realise that whether I like it or not more and more software engineering interviews use them.</p><p>So here&#8217;s how I would tackle then and subsequently how I would prepare for them.</p><h3>Doing The Interview</h3><p>Following these six steps will maximise your chance of performing well in most coding interviews and in particular DSA focused interviews.</p><ol><li><p><strong>Listen carefully, then repeat the question</strong> - pay careful attention to the problem as your interviewer describes it. Then repeat it back to them in your own words. This will help ensure you&#8217;ve understood it and demonstrate to the interviewer that you have. Then if you haven&#8217;t they&#8217;ve got a chance to correct you before you spend time solving the wrong problem.</p><p>Repeating the problem in your own words will also help you think through the problem more clearly, putting you in a good position to&#8230;</p></li><li><p><strong>Check you assumptions -</strong> either by design or by accident (it depends on the quality of the interviewer) most of these problems are in some way ambiguous. Start writing down your assumptions and then ask questions to verify them. When you&#8217;re writing, say it out loud too - tell the interviewer what you are doing, aka &#8216;think out loud&#8217; - they can&#8217;t read your mind.</p><p>It&#8217;s always worth checking the following:</p><ol><li><p>Will the input fit in memory? Alternately what is the min/max/typical size of the input.</p></li><li><p>Is the input always valid?</p></li><li><p>Will the elements be unique / are duplicates allowed?</p></li><li><p>Is there only one solution?</p></li><li><p>Can I assume the input is sorted/not sorted (where appropriate)?</p></li><li><p>What should it do for edge cases? For example, empty and single element inputs.</p></li><li><p>What are the time/space constraints?</p></li><li><p>If there is multiple outputs, should they be ordered?</p></li></ol></li><li><p><strong>Create some test cases -</strong> write down some example input and the expected output. This gives the interviewer another chance to spot any errors in your assumptions and some examples to work through when you begin to&#8230;</p></li><li><p><strong>Sketch out some solutions -</strong> think out loud about some solutions. I&#8217;d often think about the brute force option first, the describe the time and space complexity of it. That gives you an upper bound for a target solution. Then consider a best cases (lower) bound. For example for an array based question that&#8217;s likely to be N, given you&#8217;ll need to visit every element at least once. Remember faster code often needs more space - consider the space / time tradeoff.</p><p>Consider whether the best data structure is going to be an array, a linked list, hash table or tree. Having considered the best data structure and sketched out your solution it&#8217;s time to&#8230;</p></li><li><p><strong>Write working code -</strong> Using the language you know best (more on this in preparing for the interview) start writing down working code. Implement the solution you sketched out. This should be the shortest of these six steps as you&#8217;re just writing up the solution and thinking you&#8217;ve done so far. Then when the function is done, be sure to&#8230;</p></li><li><p><strong>Test your code -</strong> work through those tests cases you created in step 3. Check that your code handles the edge case and check that each example results in the right output.</p></li></ol><h3>Preparing For The Interview</h3><p>The reality is most software engineers will fail a DSA style interview without preparation. It&#8217;s a skillset that we just don&#8217;t use regularly. So if you know it&#8217;s coming, you need to prepare. Here&#8217;s how I would prepare for the interview.</p><ol><li><p><strong>Use the language you know best, if in doubt use Python</strong> - you want to spend as little time as possible actually writing the code, leaving you as much time as possible to understand the problem, create tests and brainstorm solutions before writing the code, as well as leaving time to test the solution after writing the code.</p><p>Therefore pick a language you know very well, or if in doubt pick Python as it&#8217;s fairly terse and the core data structures are all part of the language.</p></li><li><p><strong>Learn Big O -</strong> Big O notation gives us a common notation to describe the limiting behaviour of a function / algorithm. Check your favourite algorithm text book for an explanation. Or hit reply and tell me I should write a post explaining it!</p></li><li><p><strong>Practice -</strong> like many things in life, from building software to playing guitar we have to do the thing to get better at the thing.</p></li><li><p><strong>Practice effectively -</strong> there are many people on social media boasting about doing 1000s of DSA problems, that&#8217;s wasteful. Group the problems by type, i.e. string related, two-pointer, linked list, etc. and solve enough of each type to be familiar with it then move on. Be consistent with your practice too, it&#8217;s better to do 30 minutes every other day than 3 hours once then nothing for two weeks.</p></li><li><p><strong>Learn the patterns -</strong> There are common patterns and approaches. Learn what these are, i.e. two pointers for finding pairs, binary search to find something in a sorted list, sliding window to track a subset of elements.</p></li><li><p><strong>Build muscle memory -</strong> return to some of the problems you&#8217;ve solved before and redo them. Get used to writing common implementations in the programming language you use.</p></li><li><p><strong>Practice doing the questions as if you were doing the interview -</strong> don&#8217;t be tempted to visit one of the popular websites and read the problem, write some code and try it. Try to make your practice reflect doing the interview. Read the problem statement out loud. Reword it and make notes. Think out loud throughout.</p></li></ol><p>If you do lots of DSA interviews, what other tips would you add?</p><p></p><h3>Three Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I have a course on <strong><a href="https://johncrickett.me/p/build-your-personal-brand-on-linkedin">building your personal brand on LinkedIn</a></strong>, it explains how I&#8217;ve built an audience over over 180,000 followers on LinkedIn and changed my life.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[How To Create Your Own Luck]]></title><description><![CDATA[And use it to accelerate your career.]]></description><link>https://read.developingskills.fyi/p/how-to-create-your-own-luck</link><guid isPermaLink="false">https://read.developingskills.fyi/p/how-to-create-your-own-luck</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 24 Oct 2024 12:02:52 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/20cd17f6-99f8-43d1-82a4-78f5846e1285_2400x1600.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Increase Your Luck Surface Area</h2><p>When I started my career as a software engineer I was lucky enough to get to work on the most interesting project the company had.</p><p>Then when that project was done, I moved on to the next, new and very interesting project. Weirdly, when that project was over I moved to a third really interesting project. At this point people around me started commenting on it: &#8220;Hey, John, you&#8217;re so lucky, you get to work on the best projects and you&#8217;re just a junior developer. I wish I could work those projects instead of what I&#8217;m doing!&#8221;</p><p>Fast forward eighteen months, I&#8217;ve started my own business and it&#8217;s going well. I&#8217;ve managed to land a couple of good clients and we&#8217;re making a reasonable profit. I start to hear the same thing again: &#8220;Hey, John, you&#8217;re so lucky, you started a business and a couple of good clients just fell in your lap. I&#8217;ve struggled to grow my business for two years and never got such good clients&#8221;.</p><p>Before that I&#8217;d never regarded myself as a lucky person. I still don&#8217;t. So what happened?</p><p>I believe the answer lies in the idea of a Luck Surface Area, as described by Jason Roberts in 2010. Here&#8217;s what he said:</p><p>&#8220;<em>If there's one thing I've discovered in recent years it's this. The amount of serendipity that will occur in your life, your Luck Surface Area, is directly proportional to the degree to which you do something you're passionate about combined with the total number of people to whom this is effectively communicated. It's a simple concept, but an extremely powerful one because what it implies is that you can directly control the amount of luck you receive. In other words, you make your own luck.</em></p><p><em>Here's how it works. When you pour energy into a passion, you develop an expertise and an expertise of any kind is valuable. But quite often that value can actually be magnified by the number people who are made aware of it. The reason is that when people become aware of your expertise, some percentage of them will take action to capture that value, but quite often it will be in a way you would never have predicted. Maybe they'll want to hire you, or partner with you, or invest in you, or who knows what. But in whatever way it happens, it will be serendipitous</em>.&#8221;</p><p>He went one step further and formalised it in the equation:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i58V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i58V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png 424w, https://substackcdn.com/image/fetch/$s_!i58V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png 848w, https://substackcdn.com/image/fetch/$s_!i58V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png 1272w, https://substackcdn.com/image/fetch/$s_!i58V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i58V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png" width="1290" height="156" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:156,&quot;width&quot;:1290,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26537,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!i58V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png 424w, https://substackcdn.com/image/fetch/$s_!i58V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png 848w, https://substackcdn.com/image/fetch/$s_!i58V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png 1272w, https://substackcdn.com/image/fetch/$s_!i58V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4ff27b2-0ebd-439d-9355-332577e3a7d8_1290x156.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The point is simply; the more you do and the more people you tell about it, the larger your Luck Surface Area will become. Or If you prefer a graphical representation:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jGsR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jGsR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png 424w, https://substackcdn.com/image/fetch/$s_!jGsR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png 848w, https://substackcdn.com/image/fetch/$s_!jGsR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png 1272w, https://substackcdn.com/image/fetch/$s_!jGsR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jGsR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png" width="600" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:15057,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jGsR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png 424w, https://substackcdn.com/image/fetch/$s_!jGsR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png 848w, https://substackcdn.com/image/fetch/$s_!jGsR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png 1272w, https://substackcdn.com/image/fetch/$s_!jGsR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01539cb5-55c8-42af-8f08-adb7ea8271c9_600x400.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To me this explains why I was &#8220;so lucky&#8221; and got to work on the interesting projects in my first role as a junior developer and then managed to win some good clients and grow my business. I was making my own luck through a combination of my passion for what I was doing and my constant drive to share what I was learning and doing with others.</p><p>I have continued to do this throughout my career.</p><p>As I pursued my business I wrote a book, I networked, I wrote for industry journals, I spoke at conferences and presented on entrepreneurship at local chambers of commerce and the University of Bath.</p><p>Later, as blogging took off I wrote a blog for 18 months, gaining over one million monthly unique visitors and subsequently being featured in magazines like Mens Fitness, invited to appear in several TV shows and offered a book deal.</p><p>Fast forward to 2023 and I started writing again, this time on LinkedIn. I set out to build an audience of software engineers in the hope that it would lead me to a business idea I was passionate about.</p><p>As a result of writing on LinkedIn I ended up creating <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Coding Challenges&quot;,&quot;id&quot;:1483213,&quot;type&quot;:&quot;pub&quot;,&quot;url&quot;:&quot;https://open.substack.com/pub/codingchallenges&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14c3fd5e-953d-4509-ab4c-cbbb37d99969_1080x1080.png&quot;,&quot;uuid&quot;:&quot;aab4f82b-1a41-43b2-88e6-ac47d528a5c4&quot;}" data-component-name="MentionToDOM"></span>, I have offered a book deal, offered several lots of sponsorship, offered consulting, been invited to speak at several conferences, and been invited to be a guest on numerous podcasts.</p><p>I&#8217;ve also done a number of collaborations with great people like <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Gregor Ojstersek&quot;,&quot;id&quot;:106098672,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b7fdc30-d8c4-45f2-b0df-0b60baf9d4f4_1000x1000.jpeg&quot;,&quot;uuid&quot;:&quot;e965577a-e0b6-4e02-bf10-0b6af82bf4fd&quot;}" data-component-name="MentionToDOM"></span> and <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Jordan Cutler&quot;,&quot;id&quot;:58854493,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fe86d99-af64-4285-b982-9466a4c58d63_1311x1312.jpeg&quot;,&quot;uuid&quot;:&quot;0d9a3b2d-8113-4b8a-9786-02cb4b4521ef&quot;}" data-component-name="MentionToDOM"></span> and have more lined up for the future.</p><p>So I believe you can create your own luck by <strong>doing</strong> and <strong>telling</strong>.</p><h2><strong>So How Can You Get More Lucky?</strong></h2><p>My advice is build a <strong>personal brand</strong>. Become known for what you do, by doing it and telling others about what you do, why you do it, how you do it and how you&#8217;ve learned to do it.</p><p>If that sounds good to you, here&#8217;s a simple 6 step plan to create your personal brand:</p><ol><li><p>Determine your goal - why do you want to improve your personal brand?</p></li><li><p>Identify the relevant audience - who is the audience that you need to build your brand with to reach your goal?</p></li><li><p>Make yourself interesting to the audience - build your credibility with them.</p></li><li><p>Identify people you want in your network - who can help you reach more of your audience.</p></li><li><p>Reach out to people and build relationships - be interested in people and provide them with value.</p></li><li><p>Keep in touch.</p><p></p></li></ol><p>All those steps are the same for in-person and online networking. 5 of the additional things you can do to grow your personal brand are:</p><ol><li><p>Share original content that resonates with your audience.</p></li><li><p>Engage with your audience.</p></li><li><p>Comment on other people&#8217;s content.</p></li><li><p>Build a content pipeline.</p></li><li><p>Level up your copywriting game.</p><p></p></li></ol><p>These steps can be applied to LinkedIn, Twitter, Medium, Instagram and other social media. I&#8217;ve personally focused on LinkedIn. If you&#8217;re interested in building a personal brand on LinkedIn and want more detail, I&#8217;ve recently launched a <strong><a href="https://johncrickett.me/p/build-your-personal-brand-on-linkedin">course</a></strong> teaching you the process I used to:</p><p>&#9989;&nbsp;Grow my LinkedIn following from <strong>3,000</strong> to <strong>130,000+</strong> in just 12 months (and on to over <strong>182,000</strong> today).</p><p>&#9989;&nbsp;Become the <strong>No. 1</strong> ranked &#8216;IT &amp; Tech&#8217; influencer on LinkedIn in the UK and 34th worldwide.</p><p>&#9989;&nbsp;Generate <strong>40 Million</strong> post impressions on LinkedIn.</p><p>Want to know more? Then check out my <strong><a href="https://www.notion.so/Issue-50-Build-Your-Personal-Brand-7d56051f584e4955985d0939756da91e?pvs=21">Build Your Personal Brand On LinkedIn</a></strong> course.</p><p></p><h3>Two Other Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[The Simple Trick to Learn From the Leaders You Admire]]></title><description><![CDATA[Three simple ways to learn from the best leaders you know.]]></description><link>https://read.developingskills.fyi/p/the-simple-trick-to-learn-from-the</link><guid isPermaLink="false">https://read.developingskills.fyi/p/the-simple-trick-to-learn-from-the</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 17 Oct 2024 12:03:16 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3970e64f-4d2f-4ba7-87b8-59d813de23bd_2400x1417.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Learn From The Leaders You Admire</h2><p>One of the best ways to level up as a software engineer is to become a leader.</p><p>No, that doesn&#8217;t mean becoming a manager. I&#8217;m talking about becoming a leader, taking the lead on a project, task or initiative that you are interested in.</p><p>Things like:</p><ul><li><p>Getting rid of that technical debt that&#8217;s annoying you.</p></li><li><p>Automating a process you and your team hate doing.</p></li><li><p>Introducing a new technology.</p></li></ul><p>Because leadership is something you do, not a role you are appointed to. Which mean anyone can do it once they decide to.</p><h2>So How Do You Learn To Be A Leader?</h2><p>There are many ways, but there&#8217;s one simple trick that works well. Learn from the best leaders around you! Model their behaviour, because it&#8217;s working for them in the context you share.</p><p>Remember <a href="https://read.developingskills.fyi/p/leadership-is-situational">leadership is situational</a> and they&#8217;re already figured out the right style, you can learn from them how they do it, in the environment you&#8217;re both in.</p><p>Look around at the organisation you work for, consider:</p><ul><li><p>Whose ideas are always adopted?</p></li><li><p>Who do you admire and follow?</p></li><li><p>Who do the people you need to convince listen to?</p></li></ul><p>Then reach out to those people and ask them for help. Make it really simple for them to do so. Here's how.</p><h3>1. Ask for Recommendations</h3><p>Simply ask, that could look something like this:</p><p><em>"Hi, I love your leadership style. Do you recommend any books, podcasts, or newsletters that I should check out to improve my leadership skills?"</em></p><p>Or:</p><p><em>"Hi, I love how you get the management to buy into adopting Rust, I&#8217;d like to learn how to do that. Do you recommend any books, podcasts, or newsletters that I should check out to learn how?"</em></p><p>This is a low effort ask from them and it gives you some resources to check out. For the best results follow up by sharing what you learned, thanking them, and ask for more recommendations.</p><h3>2. Volunteer for Projects</h3><p>If you're looking to get some hands-on experience and to learn by doing, you could use:</p><p><em>"I'm working on my leadership skills and would love to take on some tasks or projects where I can develop further. Do you have any tasks or projects I can do for you?"</em></p><h3>3. Ask To Tag Along To Observe Them in Action</h3><p>Sometimes it helps to see what good looks like before we try to do it ourselves, In that case you could ask to tag along and see how they do it. Try asking something like this:</p><p><em>"I'm keen to improve my leadership skills and I really admire how you influence in meetings. Are there any additional meetings I could sit in on and observe you leading in person?"</em></p><h2>Wrapping Up</h2><p>These small asks help you learn directly from the leaders you admire without being a burden making it easy for them to help you grow!</p><p>If you follow through on all of this, keeping them informed of your progress, you&#8217;ll be earning their trust making them more likely to offer help, including mentoring or coaching.</p><p></p><h3>Two Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[A Practical Guide To Coaching Software Engineers]]></title><description><![CDATA[Learn how to coach software engineers.]]></description><link>https://read.developingskills.fyi/p/a-practical-guide-to-coaching-software</link><guid isPermaLink="false">https://read.developingskills.fyi/p/a-practical-guide-to-coaching-software</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 10 Oct 2024 12:01:33 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b5235874-6990-498c-98bb-821a1f9a6e62_2400x1600.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>How to Coach Software Engineers: A Practical Guide</h2><p>Coaching is a great way to help the member of our teams to achieve their full potential. Unlike teaching or mentoring, where the focus is on sharing knowledge or providing guidance from experience, coaching is about fostering self-discovery and problem-solving in the coachee.</p><p>If you&#8217;re not sure whether you should be teaching, mentoring or coaching, check out my article that explains <a href="https://read.developingskills.fyi/p/teaching-mentoring-and-coaching-oh">when and how to use teaching, mentoring or coaching.</a></p><p>As a leader, coaching involves helping our software engineers find solutions on their own rather than us giving direct instructions. We do that by insightful questions, listening actively, and providing feedback that encourages personal and professional development. By focusing on the engineer's goals, strengths, and areas for growth, coaching helps them become more confident and effective in their roles.</p><h3>When to Use Coaching</h3><p>There are several situations where coaching is particularly beneficial for software engineers:</p><ol><li><p><strong>Developing Problem-Solving Skills:</strong> As software engineers we often face complex problems that don&#8217;t have one obvious solutions, so we need to learn to select the best option for our specific context. It takes experience to learn how to do this and to have the confidence to do it. If we just tell an engineer what to do, they don&#8217;t get the change to develop this skill. So, instead of giving them the answer, coaching encourages them to think critically and develop problem-solving skills</p></li><li><p><strong>Fostering Independence:</strong> Early-career software engineers, in particular, benefit from coaching when they need to build confidence in their own decision-making processes. Coaching encourages independence by helping them work through the challenges on their own in a safe environment.</p></li><li><p><strong>Navigating Career Transitions:</strong> Whether an engineer is moving into a leadership role, taking on more responsibility, or switching to a new technology stack, coaching can help them adapt by addressing their concerns and helping them set clear goals.</p></li><li><p><strong>Improving Soft Skills:</strong> Coaching is useful for improving communication, collaboration, time management, and other soft skills that are vital to a software engineer&#8217;s success but aren&#8217;t typically covered in technical training.</p></li></ol><h3>How To Coaching for Software Engineers</h3><p><strong>Start with a Foundation of Trust and Empathy</strong></p><p>Before we can coach people we need to earn their trust. The engineers we are coaching need to feel that they are in a safe, non-judgmental environment where they can share their thoughts and challenges openly.</p><p>Building empathy is key to achieving this, show a genuine interest in their work and challenges, and avoid rushing to judge.</p><p>Trust can also be built by being reliable and consistent as a coach. If an engineer feels that you're not fully present or that their concerns aren&#8217;t important, they&#8217;ll be less likely to engage fully in the coaching process.</p><p><strong>Set Clear Expectations and Goals</strong></p><p>At the start of the coaching relationship, clarify what the goals are. You both need to have a clear understanding of where they are today and where they want to be.</p><p><strong>Use Questions to Drive Discovery</strong></p><p>The most effective coaching relies on asking good, open-ended questions that help the engineer think critically and explore different perspectives. Do not offer solutions. Coaching is about helping them them to come up with their own by asking questions like:</p><ul><li><p>&#8220;What have you already tried?&#8221;</p></li><li><p>&#8220;What is the biggest challenge you're facing with this approach?&#8221;</p></li><li><p>&#8220;How would you solve this if you had unlimited resources?&#8221;</p></li><li><p>&#8220;What outcome are you hoping to achieve?&#8221;</p></li></ul><p>These types of questions push the coachee to think deeper, encouraging creativity and self-reliance.</p><p><strong>Create Accountability</strong></p><p>To get the most out of the coaching, ensure that they follow through on the actions they've agreed to take. During each session, review their progress toward their goals and discuss any challenges they encountered. This keeps them motivated and responsible for their own development.</p><h3>Common Mistakes to Avoid in Coaching Software Engineers</h3><p><strong>Mentoring / Providing Solutions Instead of Coaching</strong></p><p>One of the most common mistakes managers make is slipping into mentoring or providing solution. Coaching isn&#8217;t about telling someone what to do or checking in constantly to monitor progress. It&#8217;s about empowering them to solve their own problems. Do not take over the task or provide step-by-step instructions. We coach when they have the skills or knowledge, but are struggling to apply them.</p><p><strong>Focusing Only on Short-Term Goals</strong></p><p>While it's important to help engineers achieve immediate goals, such as completing a project or fixing a bug, coaching should also focus on long-term career development. Help them think beyond their current role and consider their future trajectory, whether that&#8217;s specialising in a technical area or moving into management.</p><p><strong>Not Following Up</strong></p><p>Coaching isn't a one-time event; it&#8217;s an ongoing process. Make sure to follow up regularly on the engineer&#8217;s progress and adjust your approach as necessary. Without consistent follow-up, the coaching process can lose momentum, and progress may stall.</p><h3>Conclusion</h3><p>Coaching software engineers is about fostering growth over the medium to long term. By helping engineers develop critical thinking, independence, and long-term skills, coaching can have a lasting impact on their careers and the teams they work with. It&#8217;s one of the highest leverage activities you can do for them as a leader.</p><h3>Two Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[Teaching Mentoring and Coaching, Oh My!]]></title><description><![CDATA[Know the right way to level up your team!]]></description><link>https://read.developingskills.fyi/p/teaching-mentoring-and-coaching-oh</link><guid isPermaLink="false">https://read.developingskills.fyi/p/teaching-mentoring-and-coaching-oh</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 03 Oct 2024 12:02:20 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b5b41c78-79a1-4900-aa8b-ecc0acdff71e_1456x1048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: You&#8217;ve Got To Know When To Teach &#8216;Em, Know When To Mentor &#8216;Em, Know When To Coach &#8216;Em&#8230;</h2><p>As a software engineering leader, it&#8217;s crucial to address any gaps in the skillset, aptitude and behaviours of your team. Not only will it keep your team productive but it will also foster growth, adaptability, and satisfaction among your engineers.</p><p>The challenge, then is to choose the most effective way to support your team&#8217;s learning and development.</p><p>There are three primary approaches you can use: <strong>teaching, mentoring, and coaching</strong>. Each offers unique benefits, but their effectiveness depends on the needs of the individual and the team. Understanding when to apply each method is key to cultivating a high-performing team.</p><h3>Teaching</h3><p>Teaching is the direct transfer of knowledge from an expert to learners. It involves structured learning, such as workshops, courses, or lectures, where a subject is presented systematically and in detail. Teaching follows a clear plan, designed to build understanding from foundational concepts to more complex ideas.</p><p><strong>When to Use Teaching:</strong></p><ul><li><p><strong>For foundational skills:</strong> When engineers lack essential knowledge in new tools, languages, or methodologies, teaching is the most efficient way to bring them up to speed.</p></li><li><p><strong>Clear knowledge gaps:</strong> If there&#8217;s a defined need (e.g., learning a new programming language), teaching provides the structured approach to fill the gap.</p></li><li><p><strong>Limited time:</strong> When there&#8217;s a tight deadline and you need to quickly equip your team with specific technical knowledge, teaching can offer fast, targeted learning.</p></li></ul><p><strong>When Not to Use Teaching:</strong></p><ul><li><p><strong>Soft skills development:</strong> Teaching is not as effective for developing interpersonal skills like communication, problem-solving, or teamwork.</p></li><li><p><strong>Long-term growth:</strong> Teaching provides short-term knowledge but may not encourage the continuous, critical thinking required for ongoing development.</p></li><li><p><strong>Experienced engineers:</strong> Experienced engineers may already possess foundational knowledge and benefit more from hands-on guidance or situational learning.</p></li></ul><h3>Mentoring</h3><p>Mentoring is a relationship-focused approach where a more experienced engineer (mentor) guides a less experienced engineer (mentee) over a period of time. This relationship allows for informal learning through discussion, feedback, and advice. The mentor shares with the mentee their thought process, explaining how they would tackle a problem.</p><p><strong>When to Use Mentoring:</strong></p><ul><li><p><strong>Career growth and guidance:</strong> Mentoring is ideal for helping engineers navigate their career paths, offering advice not only on technical skills but also on industry trends, leadership, and soft skills.</p></li><li><p><strong>Building confidence:</strong> For less experienced engineers who need support and encouragement, mentoring can help them grow confidence in their abilities through regular feedback.</p></li><li><p><strong>Long-term development:</strong> Mentoring works well for sustained personal and professional growth, where incremental improvements and thoughtful reflection on experiences are key.</p></li></ul><p><strong>When Not to Use Mentoring:</strong></p><ul><li><p><strong>For immediate technical skills:</strong> Mentoring isn&#8217;t designed for rapid, intensive learning. If the team needs to master a specific tool or skill quickly, mentoring may not deliver fast enough.</p></li><li><p><strong>Mentor availability and expertise:</strong> If mentors are not well-matched in terms of expertise or availability, the mentoring relationship may not yield the desired results.</p></li></ul><h3>Coaching</h3><p>Coaching is a goal-driven process where a coach helps engineers unlock their potential, usually through structured questioning, active listening and reflection. Coaching focuses on empowering individuals to find their own solutions rather than providing answers.</p><p><strong>When to Use Coaching:</strong></p><ul><li><p><strong>For problem-solving skills:</strong> Coaching helps engineers improve their decision-making and analytical skills by encouraging them to think through problems and find their own solutions.</p></li><li><p><strong>For high-performers:</strong> Coaching can be particularly useful for experienced engineers who want to enhance their leadership, communication, or strategic thinking.</p></li><li><p><strong>For behavioural change:</strong> When a mindset or attitude adjustment is needed (e.g., improving team collaboration or handling stress), coaching is a great tool to foster introspection and self-driven improvement.</p></li></ul><p><strong>When Not to Use Coaching:</strong></p><ul><li><p><strong>For technical skills acquisition:</strong> Coaching isn't the best method when your team needs specific technical knowledge. It's more about fostering development in skills such as leadership, communication, or adaptability.</p></li><li><p><strong>For skill acquisition:</strong> Coaching focuses on helping the person apply what they already know, if they need to acquire new skills, use teaching or mentoring as appropriate.</p></li><li><p><strong>For novice engineers:</strong> Coaching might be less effective for inexperienced engineers who lack enough foundational knowledge to ask the right questions or drive their own solutions.</p></li></ul><h3>Choosing the Right Approach</h3><p>Upskilling your software engineers is crucial, but it&#8217;s important to choose the right method depending on the situation. If your team needs to quickly learn new tools or methodologies, <strong>teaching</strong> is the best route. For sustained growth and personal development, <strong>mentoring</strong> offers a nurturing environment, while <strong>coaching</strong> helps unlock an engineer&#8217;s potential, driving high performance and behavioural change.</p><p>By understanding when to apply each approach, you can tailor your upskilling strategy to meet both the immediate and long-term needs of your team.</p><p></p><h3>Two Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[Leadership Is Situational]]></title><description><![CDATA[Adapt Your Style To Your Situation, Not Your Preference!]]></description><link>https://read.developingskills.fyi/p/leadership-is-situational</link><guid isPermaLink="false">https://read.developingskills.fyi/p/leadership-is-situational</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 26 Sep 2024 12:14:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5dce4343-6389-480f-8b18-73da63feb80c_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><h2>Tip of The Week: Leadership Is Situational. Adapt Your Style To Your Situation, Not Your Preference!</h2><p>When we become leaders or get promoted into a management or leadership role many of us default to the leadership style we feel comfortable with, which is often the one we&#8217;ve seen modelled by current or previous bosses.</p><p>Unfortunately that means we often stick to that one style, whether or not it is appropriate for our current team/organisation.</p><p>In this article I&#8217;d like to introduce you to 13 different leadership styles, when to use them, and when to avoid them.</p><h3><strong>Coercive Leadership Style</strong></h3><p>This is a top-down, authoritarian approach focused on demanding immediate compliance and action. It is also known as: <strong>Autocratic</strong>, <strong>Authoritarian</strong>, or <strong>Commanding</strong> leadership.</p><p><strong>When to use:</strong></p><ul><li><p><strong>Crisis situations</strong>: When swift decisions and clear directions are essential (e.g., during an emergency or crisis situation).</p></li><li><p><strong>Short-term, urgent goals</strong>: Where there&#8217;s no time for collaboration or feedback.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p><strong>For daily management</strong>: It will usually demotivate employees and harm morale.</p></li><li><p><strong>Creative and knowledge-based roles</strong>: It stifles innovation and initiative.</p></li></ul><h3><strong>Affiliative Leadership Style</strong></h3><p>A relationship-based approach focused on building strong relationships, and creating a supportive, positive work environment. It is also known as: <strong>Relational</strong> leadership.</p><p><strong>When to use:</strong></p><ul><li><p><strong>To rebuild trust</strong>: After conflicts or when morale is low, this style helps heal and strengthen relationships.</p></li><li><p><strong>To promote teamwork</strong>: Encourages collaboration and a strong sense of belonging.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p><strong>When performance issues need addressing</strong>: With a strong focus on praise and nurturing this leadership style can often be overlook the need for constructive feedback causing performance issues to be overlooked and unaddressed.</p></li><li><p><strong>As a stand-alone style</strong>: It is best combined with authoritative or coaching styles.</p></li></ul><h3><strong>Bureaucratic Leadership Style</strong></h3><p>A rule-driven approach focused on following established processes and procedures. It prioritises structure and control over flexibility or innovation therefore bureaucratic leaders are typically found in large, established organisations or highly regulated environments where adherence to strict rules is important.</p><p><strong>When to use:</strong></p><ul><li><p><strong>In highly regulated industries</strong>: Where compliance and risk management are crucial (e.g., healthcare, finance).</p></li><li><p><strong>For routine tasks</strong>: In environments where consistency and accuracy are important (e.g., manufacturing).</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p><strong>In creative environments</strong>: It stifles innovation and flexibility.</p></li><li><p><strong>During times of change</strong>: It can prevent organisations from adapting quickly to new challenges or disruptions.</p></li></ul><h3><strong>Coaching Leadership Style</strong></h3><p>Focuses on personal and professional development by helping employees identify and work towards long-term goals through coaching and feedback. A coaching leader spends a lot of time and energy on identifying and nurturing the individual strengths of each member of their team.</p><p>The coaching leadership style is similar to democratic and affiliative leadership, but coaching leaders place more emphasis on the growth and success of individual employees.</p><p><strong>When to use:</strong></p><ul><li><p><strong>For individual growth</strong>: Use during one-on-one sessions, performance reviews, or mentoring.</p></li><li><p><strong>To develop skills</strong>: Ideal for helping employees grow into new roles or advance in their careers.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p><strong>In urgent situations</strong>: This style is time-intensive and not suited to environments requiring quick decisions.</p></li><li><p><strong>With unmotivated employees</strong>: It&#8217;s less effective if employees are not interested in self-improvement or growth.</p></li></ul><h3><strong>Democratic Leadership Style</strong></h3><p>A collaborative approach that values input from team members, encourages participation, and incorporates diverse perspectives in decision-making. It is also known as: <strong>Facilitative</strong> or <strong>Participative</strong> leadership.</p><p>A leader who employs the democratic leadership style values the knowledge, skills, and diversity of their team. They are a consensus-builder, constantly seeking input from their direct reports and peers.</p><p>Democratic leaders are excellent listeners, and they develop confidence in their leadership by utilising the collective wisdom their team and peers have to offer. They are creators of future&nbsp;leaders. By empowering employees to exercise authority, they are preparing them for future promotions.</p><p><strong>When to use:</strong></p><ul><li><p><strong>When you need ideas and feedback</strong>: Ideal for brainstorming and problem-solving where team input adds value.</p></li><li><p><strong>When your team has expertise</strong>: It works well with knowledgeable and skilled employees who can contribute meaningfully.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p><strong>In times of crisis</strong>: Immediate action is needed, and collaboration may slow the decision-making process.</p></li><li><p><strong>With inexperienced teams</strong>: They may lack the necessary knowledge or insight to contribute effectively.</p></li></ul><h3><strong>Laissez-Faire Leadership Style</strong></h3><p>A laissez-faire leader provides minimal direction and trusts employees to manage their own tasks, allowing for a high degree of autonomy. Also known as <strong>Delegative</strong> leadership.</p><p><strong>When to use:</strong></p><ul><li><p>When leading a highly skilled, self-motivated team.</p></li><li><p>In entrepreneurial start-ups where innovation and autonomy are critical.</p></li><li><p>When employees are experienced and need little supervision.</p></li><li><p>In situations where the team requires freedom to experiment and innovate.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p>When employees require guidance, feedback, or course correction.</p></li><li><p>In environments where structure and accountability are essential.</p></li><li><p>When the team lacks the experience or motivation to manage themselves effectively.</p></li></ul><h3>Emergent <strong>Leadership Style</strong></h3><p>Emergent leadership develops organically as a team member gains influence and respect through interactions, rather than through formal appointment or election. This style relies on relationship-building and reciprocal exchanges to establish leadership. An emergent leader relies on influence rather than authority.</p><p><strong>When to use:</strong></p><ul><li><p>In teams where formal leadership roles are not defined or are evolving and the would-be leader holds no authority.</p></li><li><p>In situations where informal leadership can complement or enhance existing structures.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p>In highly structured environments where formal authority and clear leadership roles are crucial.</p></li><li><p>When immediate and decisive leadership is needed and formal authority is required.</p></li><li><p>If the team struggles to accept informal leadership or if there is resistance to change.</p></li></ul><h3><strong>Pacesetting Leadership Style</strong></h3><p>A pacesetting leader leads by example. They set high standards and sets demanding performance expectations and lead by example in the expectation that others will follow suit.</p><p><strong>When to use:</strong></p><ul><li><p><strong>With high-performing, self-motivated teams</strong>: Ideal for teams who thrive under pressure and enjoy being pushed to achieve excellence.</p></li><li><p><strong>For short bursts</strong>: When tight deadlines or urgent goals need to be met.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p><strong>For long-term management</strong>: It can lead to burnout, stress, and reduced employee engagement.</p></li><li><p><strong>With inexperienced teams</strong>: They may feel overwhelmed by high expectations.</p></li></ul><h3><strong>Servant Leadership Style</strong></h3><p>A people-centric style that focuses on serving and supporting employees by putting their needs first, fostering growth, and encouraging collaboration. Servant leaders share authority, put the needs of others first, and help people realise their potential.</p><p><strong>When to use:</strong></p><ul><li><p><strong>To build a strong team culture</strong>: Ideal for creating a sense of loyalty, trust, and respect among team members.</p></li><li><p><strong>For employee development</strong>: When your focus is on empowering employees to grow and succeed.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p><strong>In high-stakes situations</strong>: It can be too passive during crises where quick decisions are needed.</p></li><li><p><strong>With highly independent teams</strong>: They may need less hands-on support and more autonomy.</p></li></ul><h3>Strategic <strong>Leadership Style</strong></h3><p>Strategic leaders balance day-to-day operations with long-term growth opportunities, navigating complex and changing environments. The strategic leader creates a vision, clearly communicate that vision, and effectively drive that vision into reality.</p><p><strong>When to use:</strong></p><ul><li><p>In dynamic environments where managing current operations while pursuing growth is crucial.</p></li><li><p>When a clear vision and strategic direction are needed to guide the organisation.</p></li><li><p>To enhance productivity and align employee performance with organisational goals.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p>In stable environments where routine management without a focus on strategic growth is sufficient.</p></li><li><p>When employees need immediate, concrete guidance rather than a broad vision.</p></li><li><p>If the organisation lacks the resources or support to implement strategic changes effectively.</p></li></ul><h3><strong>Transactional Leadership Style</strong></h3><p>A performance-based approach where leaders provide rewards or consequences based on task completion, with a focus on achieving short-term goals. Transactional leaders are only concerned with the work their employees do.</p><p><strong>When to use:</strong></p><ul><li><p><strong>For short-term, goal-oriented projects</strong>: Works well when clear tasks and objectives are laid out and rewards can motivate employees.</p></li><li><p><strong>With routine tasks</strong>: Where incentives can drive productivity and efficiency.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p><strong>For long-term development</strong>: This style doesn&#8217;t focus on employee growth or motivation beyond immediate rewards.</p></li><li><p><strong>In creative or dynamic settings</strong>: It can stifle creativity and limit intrinsic motivation.</p></li></ul><h3>Transformational <strong>Leadership Style</strong></h3><p>Transformational leaders focus on continuous improvement by pushing their team beyond their comfort zone, often setting ambitious stretch goals. The most effective transformational leaders are charismatic. They are skilled communicators, eloquent and able to communicate to employees on a deep, emotional level.</p><p><strong>When to use:</strong></p><ul><li><p>In high-growth organisations that require innovation and rapid change.</p></li><li><p>To inspire and motivate teams to achieve ambitious goals.</p></li><li><p>When fostering a culture of continuous improvement and personal development.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p>When employees lack the support or coaching needed for challenging new responsibilities.</p></li><li><p>In situations where consistency and stability are prioritised over change.</p></li><li><p>When the risk of burnout is high due to constant pressure.</p></li></ul><h3><strong>Visionary Leadership Style</strong></h3><p>A future-focused approach where the leader inspires and guides employees toward a compelling vision of the future, encouraging innovation and long-term goals.</p><p>Visionary leaders are natural born problem solvers. They are able to visualise possibilities that most don&#8217;t. They can not only see what&#8217;s possible, but they can also articulate it to their team.</p><p>Steve Jobs is a prime example of a visionary leader: passionate, open-minded, and creative, he created a culture of innovation during his time at Apple.</p><p><strong>When to use:</strong></p><ul><li><p><strong>During periods of transformation</strong>: When your organisation or team needs a clear vision to drive them toward change or new opportunities.</p></li><li><p><strong>To inspire innovation</strong>: When fostering creativity and a sense of purpose is important to the organisation&#8217;s growth.</p></li><li><p><strong>With a capable team:</strong> When the team needs a vision to follow but not guidance on how to execute. Visionary leaders often rely on others to execute their vision.</p></li></ul><p><strong>When NOT to use:</strong></p><ul><li><p><strong>In day-to-day management</strong>: It&#8217;s less effective for handling immediate tasks or operational details.</p></li><li><p><strong>With inexperienced teams</strong>: They may need more concrete guidance and support to execute the vision.</p><p></p></li></ul><h3><strong>Adapt Your Leadership Style</strong></h3><p>To be the most effective leader you can, you should to understand each of these leadership styles, their strengths and weaknesses and then adapt your approach to match the situation and the people you are dealing with.</p><p>Effective leaders know when to adjust their leadership style based on the situation:</p><ul><li><p><strong>Coercive leadership</strong> is useful in crisis situations or when immediate action is required but should be avoided for daily management or creative environments.</p></li><li><p><strong>Affiliative leadership</strong> is perfect for rebuilding trust or promoting teamwork but should be paired with other styles when performance issues arise.</p></li><li><p><strong>Bureaucratic leadership</strong> ensures compliance in regulated industries but can stifle creativity in dynamic, fast-changing environments.</p></li><li><p><strong>Coaching leadership</strong> is great for fostering long-term employee growth but is less effective in urgent, high-pressure situations.</p></li><li><p><strong>Democratic leadership</strong> works well when seeking input from skilled teams, but it slows decision-making during crises.</p></li><li><p><strong>Laissez-faire leadership</strong> empowers highly skilled, self-motivated teams but fails in situations where employees need more guidance or structure.</p></li><li><p><strong>Emergent leadership</strong> thrives when formal leadership is absent, but struggles in environments that require clear authority.</p></li><li><p><strong>Pacesetting leadership</strong> drives high-performing teams to excel but can lead to burnout if used too often or with inexperienced teams.</p></li><li><p><strong>Servant leadership</strong> builds loyalty and trust through a people-first approach but may not provide quick decisions during high-stakes situations.</p></li><li><p><strong>Strategic leadership</strong> excels in balancing day-to-day operations with long-term growth but can be too visionary in stable environments.</p></li><li><p><strong>Transactional leadership</strong> is effective for short-term, goal-oriented tasks but doesn&#8217;t focus on employee development or creativity.</p></li><li><p><strong>Transformational leadership</strong> motivates teams to achieve beyond their limits but can risk burnout if not balanced with proper support.</p></li><li><p><strong>Visionary leadership</strong> inspires teams during times of transformation but may leave inexperienced employees needing more guidance.</p><p></p></li></ul><h3>Two Other Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[82% Of Managers Are Accidental Managers!]]></title><description><![CDATA[Are you one of them?]]></description><link>https://read.developingskills.fyi/p/82-of-managers-are-accidental-managers</link><guid isPermaLink="false">https://read.developingskills.fyi/p/82-of-managers-are-accidental-managers</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 05 Sep 2024 12:00:16 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8e41cb96-dba7-4607-89bb-4e2f062bc559_1080x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Don&#8217;t Be An Accidental Manager!</h2><p>82% of managers have had no formal training!</p><p>These managers are known as &#8216;accidental managers&#8217;. They no formal leadership training and it shows!</p><p>Accidental managers directly contribute to <strong>almost a third</strong> of their staff leaving their role. That&#8217;s no surprise given <strong>only 27% of employees</strong> consider their manager to be effective.</p><p>It&#8217;s not great for the managers either. Many of them are not confident about their leadership abilities and most of them feel strongly that they need for more training and development to be effective.</p><p>I&#8217;m one of the &#8220;lucky&#8221; <strong>18% of managers</strong> who have been given formal training and it hasn&#8217;t helped!</p><p>Why? Because all the formal training I received from organisation&#8217;s was focused on how to handle poor performance, ensuring managers had a clear understanding of the formal process of conducting a Performance Improvement Plan (PIP).</p><p>I hated that! I wanted to learn how to recruit and build a high performing team! I wanted to know:</p><ol><li><p>How to write an effective job specification so I attract good candidates and avoid bias.</p></li><li><p>How to interview effectively.</p></li><li><p>How to onboard staff effectively.</p></li><li><p>How to ensure the culture in my team sets them up for success.</p></li><li><p>How to create psychological safety within the team.</p></li><li><p><a href="https://read.developingskills.fyi/p/get-the-most-from-your-one-to-one">How to run an effective one-to-one</a>.</p></li><li><p>What leadership style should I use and when.</p></li><li><p><a href="https://read.developingskills.fyi/p/issue-8-getting-software-developers">How to get my team to take on difficult challenges.</a></p></li><li><p><a href="https://read.developingskills.fyi/p/appreciate-people-and-lift-them-up">How to appreciate my team and my colleagues</a>.</p></li><li><p>How to up-skill my team.</p></li><li><p>When should I use teaching, mentoring or coaching to up-skill them.</p></li><li><p><a href="https://read.developingskills.fyi/p/be-a-great-mentor-to-software-engineers">How to effectively mentor</a>.</p></li><li><p>How to coach effectively.</p></li><li><p><a href="https://read.developingskills.fyi/p/communicate-effectively-to-get-what">How to communicate effectively</a>.</p></li><li><p><a href="https://read.developingskills.fyi/p/how-to-talk-to-non-technical-people">How to talk to non-technical people and get their agreement</a>.</p></li><li><p>How to deliver difficult news to people.</p></li><li><p>How to deliver feedback effectively.</p></li><li><p>How to manage conflict.</p></li><li><p><a href="https://read.developingskills.fyi/p/you-are-wrong">How to tell people they are wrong without offending them</a>.</p></li><li><p><a href="https://read.developingskills.fyi/p/issue-6-become-well-connected">How to network effectively</a> within the organisation.</p></li><li><p>How to influence effectively and how to <a href="https://read.developingskills.fyi/p/how-to-influence-without-authority">influence without authority</a>.</p></li><li><p>Stakeholder management.</p></li><li><p><a href="https://read.developingskills.fyi/p/issue-11-how-to-get-buy-in-from-your">How to get buy-in from my boss and their boss</a>.</p></li><li><p>Goal setting and OKRs.</p></li><li><p>Project and programme management.</p></li><li><p><a href="https://read.developingskills.fyi/p/why">How to make better decisions</a>.</p></li><li><p><a href="https://read.developingskills.fyi/p/now-next-later">How to build a technical roadmap</a>.</p></li></ol><p>If you&#8217;re a software engineering manager, does this reflect your experience?</p><p>I&#8217;d really love to know! Please either <strong>hit reply</strong> and tell me about your experience. If you&#8217;d prefer to be anonymous I&#8217;ve put together a <a href="https://forms.gle/qbe9x8twGuRhUi9Q8">short (four questions) anonymous survey you can fill in</a>.</p><p>Many thanks, John</p><p></p><h3>Three Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I run a YouTube channel <strong><a href="https://www.youtube.com/@johncrickett">sharing advice on software engineering</a></strong>.</p></li><li><p>I have some courses available:</p><ol><li><p><strong><a href="https://codingchallenges.podia.com/become-a-better-software-developer-by-building-your-own-redis-server">Become a Better Software Developer by Building Your Own Redis Server (Python Edition)</a></strong> which guides you through solving the Redis Coding Challenge in Python.</p></li><li><p><strong><a href="https://shop.codingchallenges.fyi/build-your-own-shell-go-edition">Build Your Own Shell (Go Edition)</a></strong> which guides you through solving the Shell Coding Challenge in Go.</p></li></ol></li></ol><p></p>]]></content:encoded></item><item><title><![CDATA[People Or Tech Skills - Which Matters More?]]></title><description><![CDATA[Balance Technical and Soft Skills to Accelerate Your Career]]></description><link>https://read.developingskills.fyi/p/people-or-tech-skills-which-matters</link><guid isPermaLink="false">https://read.developingskills.fyi/p/people-or-tech-skills-which-matters</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 29 Aug 2024 18:34:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ca72c6fa-d826-4fde-87fb-5f7371077acb_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>News - I Have A YouTube Channel For Software Engineers</h2><p>I&#8217;ve recently started building a <a href="https://www.youtube.com/@johncrickett">YouTube channel sharing short videos on software engineering</a>. I&#8217;ll be sharing more of the advice I publish in Developing Skills.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.youtube.com/@johncrickett" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c_Aj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48ec7a16-e418-48b1-9f04-7e6900cdb22c_794x178.png 424w, https://substackcdn.com/image/fetch/$s_!c_Aj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48ec7a16-e418-48b1-9f04-7e6900cdb22c_794x178.png 848w, https://substackcdn.com/image/fetch/$s_!c_Aj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48ec7a16-e418-48b1-9f04-7e6900cdb22c_794x178.png 1272w, https://substackcdn.com/image/fetch/$s_!c_Aj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48ec7a16-e418-48b1-9f04-7e6900cdb22c_794x178.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c_Aj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48ec7a16-e418-48b1-9f04-7e6900cdb22c_794x178.png" width="194" height="43.4911838790932" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48ec7a16-e418-48b1-9f04-7e6900cdb22c_794x178.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:178,&quot;width&quot;:794,&quot;resizeWidth&quot;:194,&quot;bytes&quot;:20462,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.youtube.com/@johncrickett&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c_Aj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48ec7a16-e418-48b1-9f04-7e6900cdb22c_794x178.png 424w, https://substackcdn.com/image/fetch/$s_!c_Aj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48ec7a16-e418-48b1-9f04-7e6900cdb22c_794x178.png 848w, https://substackcdn.com/image/fetch/$s_!c_Aj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48ec7a16-e418-48b1-9f04-7e6900cdb22c_794x178.png 1272w, https://substackcdn.com/image/fetch/$s_!c_Aj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48ec7a16-e418-48b1-9f04-7e6900cdb22c_794x178.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p></p><p>I&#8217;m doing a free lightning lesson with <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Gregor Ojstersek&quot;,&quot;id&quot;:106098672,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b7fdc30-d8c4-45f2-b0df-0b60baf9d4f4_1000x1000.jpeg&quot;,&quot;uuid&quot;:&quot;c483e855-7e62-4c19-ad9f-ae75fb89c01b&quot;}" data-component-name="MentionToDOM"></span> It&#8217;s all about <strong>why being a great engineer to work with will get you promoted</strong>! It&#8217;s on Thursday, September the 5th, 2024 at 5:00 PM (GMT+1) <a href="https://maven.com/p/643ffd/being-a-great-engineer-to-work-with-will-get-you-promoted">Full details here</a>!</p><p></p><h2>Tip of The Week: Balance Technical and Soft Skills to Accelerate Your Career</h2><p>In software engineering, technical skills are always revered. But focusing on technical skills alone is a mistake. Soft skills &#8212; the abilities to communicate, collaborate, and lead &#8212; are critical.</p><p></p><h3>Why Soft Skills Matter Most</h3><p>Soft skills are underrated, they are the glue that holds teams and projects together. Here&#8217;s three reasons why.</p><p>Firstly, software development is a team sport. No matter how brilliant your technical skills are, they&#8217;re worthless if you can&#8217;t collaborate with others. The best software engineers know how to listen, communicate clearly, and empathise with their teammates. They bring people together and ensure everyone is moving in the same direction.</p><p>Secondly, the problems we face building software are rarely straightforward. They often involve handling ambiguity and dealing with conflicting requirements and constraints. Engineers with strong soft skills aren&#8217;t just coding to spec; they&#8217;re solving the right problems in the right way.</p><p>Finally, as you become more senior, your technical contributions will matter less than your ability to lead and inspire others. Engineers who can communicate a vision, build consensus, and manage conflict are far more valuable than those who simply churn out code. Leadership is about influence, and influence is rooted in soft skills of communication, empathy, and emotional intelligence.</p><p></p><h3>Technical Skills Are The Foundation</h3><p>That said, technical skills are the foundation of your career as a software engineer. They are non-negotiable. You simply can&#8217;t be a software engineer without the ability to build software.</p><p></p><h3>Finding The Balance</h3><p>The key to a successful career is to find the right balance of soft and technical skills. Here&#8217;s how:</p><ol><li><p><strong>Conduct Self-Assessment</strong>: Look at your current skill set. Where are you excelling, and where are you falling short? Get feedback from colleagues and mentors &#8212; not just on your coding abilities but on your teamwork, communication, and leadership qualities. Being honest about your weaknesses is the first step toward improvement.</p></li><li><p><strong>Set Ambitious, Balanced Goals</strong>: Don&#8217;t just aim to become a better coder. Set goals that push you to improve both technically and interpersonally. Don&#8217;t just focus on learning new technology, but also explore taking a course on effective communication or leadership.</p></li><li><p><strong>Actively Seek Diverse Learning Experiences</strong>: Technical skills don&#8217;t only develop at your desk, and soft skills aren&#8217;t just about team meetings. Mix it up. As well as the technical skills development you&#8217;re doing, look for opportunities to join communication workshops or volunteer for leadership roles to build your soft skills. The more varied your experiences, the more balanced your growth. For a double win, volunteer to lead a technical initiative such as running a series of professional development talks, mentoring programme or a technical book club.</p></li><li><p><strong>Integrate Soft Skills Into Technical Tasks</strong>: Don&#8217;t silo your skills. Use every opportunity to practice soft skills in technical contexts. When debugging with a team, emphasise collaborative problem-solving. When presenting a technical solution, focus on clarity and storytelling.</p><p></p></li></ol><h3>Recognise That The Balance Changes As You Progress Through Your Career</h3><p>As you advance in your career, the balance between soft and technical skills doesn&#8217;t just shift &#8212; it transforms. Here&#8217;s what to expect:</p><p><strong>Junior to Mid-Level Engineers</strong>: Early in your career, your focus should be on technical skill-building. You&#8217;re learning the ropes, writing code, and becoming proficient in the tools of the trade. But don&#8217;t neglect soft skills. The engineers who stand out are those who are not only technically competent but also great team players and communicators.</p><p><strong>Mid-Level to Senior Engineers</strong>: As you progress to this level, you&#8217;re expected to take on more responsibility &#8212; leading parts of projects, mentoring juniors, and making technical decisions. Your technical skills still matter, but soft skills become more important, particularly as you move to senior.</p><p><strong>Staff+ Engineers</strong>: At this stage, you&#8217;re expected to take on more responsibility &#8212; leading projects, mentoring mid- and senior level engineers, and making architectural decisions. Your technical skills still matter, but soft skills become equally, if not more important. You&#8217;re now moving to a position where influencing others, making strategic decisions, and fostering a collaborative environment are key.</p><p><strong>Leadership Roles</strong>: As you step into leadership roles, the game changes entirely. Your job is no longer about coding, it&#8217;s now about leading teams, setting strategic directions, and driving the organisation forward. Here, soft skills are your primary skills. Your technical background informs your decisions, but your ability to lead, communicate, and inspire is what will define your success.</p><p>Find the right balance for where you are now and have a plan to achieve where you want to be.</p><p></p><h3>Three Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I run a YouTube channel sharing <strong><a href="https://www.youtube.com/@johncrickett">advice on software engineering</a></strong>.</p></li><li><p>I have some courses available:</p><ol><li><p><strong><a href="https://codingchallenges.podia.com/become-a-better-software-developer-by-building-your-own-redis-server">Become a Better Software Developer by Building Your Own Redis Server (Python Edition)</a></strong> which guides you through solving the Redis Coding Challenge in Python.</p></li><li><p><strong><a href="https://shop.codingchallenges.fyi/build-your-own-shell-go-edition">Build Your Own Shell (Go Edition)</a></strong> which guides you through solving the Shell Coding Challenge in Go.</p></li></ol></li></ol>]]></content:encoded></item><item><title><![CDATA[Don’t Be An Alpha Geek]]></title><description><![CDATA[There&#8217;s a fine line between pursuing technical excellence and being an alpha geek.]]></description><link>https://read.developingskills.fyi/p/dont-be-an-alpha-geek</link><guid isPermaLink="false">https://read.developingskills.fyi/p/dont-be-an-alpha-geek</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Fri, 23 Aug 2024 12:02:31 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/72a22a11-f72b-47f9-b7ae-33ddfde654dc_1080x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Don&#8217;t Be An Alpha Geek</h2><p>&#8220;What is this rubbish? Which idiot wrote this code? It&#8217;s the dumbest thing I&#8217;ve ever see!&#8221; came booming out of the conference room.</p><p>Uh-oh! Jenny thought. A quick look through the glass wall showed the engineers all cowering around the conference table with Simon pacing around the room ranting about the dire code he&#8217;d just reviewed.</p><p>Jenny stuck her head through the door and asked Simon if he could spare her a minute. They stepped into another meeting room and before she could utter a word Simon was off, &#8220;These guys are idiots, they&#8217;re writing terrible code, why do we have to have them on the team? I could do it all better on my own!&#8221;</p><p>Jenny paused, took a deep breath and prepared herself for another challenging conversation with Simon. He was a great engineer, but the rest of the team were scared of upsetting him and incurring his wrath and it was hurting their productivity.</p><p>So what&#8217;s the problem here?</p><p>There&#8217;s a fine line between pursuing technical excellent and being an alpha geek and Simon was on the wrong side of the line. An alpha geek is often an excellent software&nbsp;engineer&nbsp;who is driven to always have the right answers, and solve hard problems.</p><p>They tend to value technical skills above all else and believe that the best technical person should make all the decisions. It&#8217;s therefore inconceivable to them that anyone else should get a say in how things are done.</p><p>When they become managers or CTOs things are even worse, they believe they&#8217;re creating a culture of excellence, when really they&#8217;re creating a culture of fear.</p><p><strong>How To Avoid Being The Alpha Geek</strong></p><p>To avoid becoming an alpha geek work on your emotional intelligence. In particular focus on developing self-awareness and empathy. Self-awareness helps you be more aware of your behaviour and empathy helps you understand how other people feel.</p><p>To develop your self-awareness use introspection. Observe your own thoughts and feelings, but instead of asking &#8220;why&#8221;, ask &#8220;what&#8221; questions. For example, instead of asking &#8220;why are people intimidated by my technical knowledge&#8221;, ask &#8220;what am I doing that makes people feel intimidated by me?&#8221;</p><p>To develop your empathy give looping a go. When you&#8217;re speaking to someone, ask a question and give the other person time to answer but don&#8217;t stop there. After they&#8217;ve answered paraphrase what they&#8217;ve said, and follow up with a question such as, &#8220;Is that right?&#8221; or &#8220;What else am I missing?&#8221; Focus on what is really important to them. Repeat the process until both of you agree and have a shared understanding. The aim is for you to understand where they are.</p><p>If you&#8217;re concerned you might be an alpha geek, you might also like to read my earlier post: <a href="https://read.developingskills.fyi/p/12-ways-to-tell-if-youre-a-difficult">12 Ways To Tell If You&#8217;re A Difficult Engineer (And What To Do About It)</a> and add considering those 12 points to your introspection.</p><p><strong>How To Avoid Promoting An Alpha Geek To A Management Role</strong></p><p>If you currently manage a technically brilliant software engineer who is perhaps sometimes difficult to deal with or always has to be the smartest person in the room, please don&#8217;t promote them to management.</p><p>You won&#8217;t be doing them, or the team they will lead a favour, in fact you&#8217;ll be hurting them. If the engineer is great, work to keep them and find a way to extend the non-management track in your organisation&#8217;s career ladder so they can continue their career as an individual contributor.</p><p><strong>What To Do If You&#8217;ve Promoted One To A Management Role</strong></p><p>If for some reason you&#8217;ve promoted an alpha geek to a management role, I&#8217;d suggest moving them sideways ASAP. Think about alternative roles they can take. A CTO can become a Chief Science Officer or Chief Architect. An engineering manager or director can become an architect, for example.</p><p><strong>What to Do If You Are The Alpha Geek</strong></p><p>Instead of focusing on being right, try to focus on what is important. Sometimes it&#8217;s technical, sometimes it&#8217;s team cohesion, sometimes it&#8217;s solving the right problem and sometimes it&#8217;s admitting you were wrong.</p><p>Don&#8217;t just focus on your technical skills, recognise that domain knowledge, business skills and people skills are hugely important too and work on them.</p><p>Become a mentor to other engineers. If you can bring yourself to view your mentee as someone to teach and guide and your role is to change your style and approach to what works best for them, then you&#8217;ll learn how to share your knowledge in a constructive way without shouting others down. Leading through influence instead of fear.</p><p>If you don&#8217;t then you might find yourself in the same position as Simon. As great an engineer as he was, Jenny had to let Simon go a couple of months later. For a month or so after that the team struggled but after that the team&#8217;s productivity shot up and they did better than ever.</p><p>Engineering excellence matters, being likeable and being able to work with the team matters too. Be a leader, not an alpha geek!</p><p>Got a story of being or working with an alpha geek? Then please share it in the comments!</p><p>Regards, John</p><h3>Two Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I have some courses available:</p><ol><li><p><a href="https://codingchallenges.podia.com/become-a-better-software-developer-by-building-your-own-redis-server">Become a Better Software Developer by Building Your Own Redis Server (Python Edition)</a> which guides you through solving the Redis Coding Challenge in Python.</p></li><li><p><a href="https://shop.codingchallenges.fyi/build-your-own-shell-go-edition">Build Your Own Shell (Go Edition)</a> which guides you through solving the Shell Coding Challenge in Go.</p></li></ol></li></ol>]]></content:encoded></item><item><title><![CDATA[How To Talk To Non-Technical People And Get Their Agreement.]]></title><description><![CDATA[Speak their language to reach a win-win situation.]]></description><link>https://read.developingskills.fyi/p/how-to-talk-to-non-technical-people</link><guid isPermaLink="false">https://read.developingskills.fyi/p/how-to-talk-to-non-technical-people</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 15 Aug 2024 12:37:52 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9e7fcad4-b9d2-4cec-8daa-a4fcc9176420_1920x1280.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: How To Talk To Non-Technical People In A Way They Understand So They Will Agree With You</h2><p>&#8220;Why won&#8217;t management give us the time to fix the technical debt?&#8221; asked Steve.</p><p>My usual response was out of my mouth before I even thought about it: &#8220;what did you say to them?&#8221;</p><p>&#8220;I explained that we had 103 tickets open and 47 of them related to technical debt. The key issues we need to tackle are related to the cloud platform and some legacy APIs we built way back. Plus we need to tackle some issues in the data pipeline so we can improve our training data for Borg.&#8221; replied Steve.</p><p>I began to see the problem. Steve had been talking to the CEO and CFO about tickets, technical debt, cloud platforms, APIs and data pipelines. It meant nothing to them. The CEO had a sales background and the CFO had never worked in the tech sector before. They had absolutely no idea what he was on about.</p><p>If you find yourself in this position, talk to people in their language. Don&#8217;t use domain specific jargon - things like API, tickets, cloud. It will confuse, not clarify the message. Instead try to understand their concerns and translate the message into terms they understand and can relate to their concerns.</p><p>Put another way, if you aren&#8217;t transferring information or it&#8217;s not being understood, you&#8217;re not communicating.</p><p>So how can you talk to non-technical people and get them to understand and agree with your ideas? Here&#8217;s how:</p><ol><li><p><strong>Get to know them and their concerns</strong> - spend some time in their world getting to know what they are concerned about, what their goals and priorities are and how they speak about them.</p></li><li><p><strong>Tailor your content for your audience</strong> - speak to them using their language, address their priorities and concerns. Translate what you care about into what they care about.</p></li><li><p><strong>Check your message has been understood</strong> - too often we assume that just because we&#8217;ve said our piece or sent our email that it&#8217;s been received and understood. Often it hasn&#8217;t. So when you&#8217;re communicating be sure to get feedback from your audience to ensure they have understood your message. To do this ask them open ended questions like:</p></li></ol><ul><li><p>What are your thoughts?</p></li><li><p>Can you give me some feedback on the ideas I&#8217;ve presented?</p></li><li><p>How would you like to proceed?</p></li><li><p>Which option would you like more details on and what would you like to know?</p></li><li><p>What are the next steps that we a can agree on?</p></li></ul><p>I worked with Steve to apply this approach and over the coming weeks and months we got support to address the key issue. For example:</p><ul><li><p>We grouped the tickets into themes that affected upcoming customer sales presentations or renewals then explained how they would potentially impact our future revenue - both the CEO and CFO understood and cared about that.</p></li><li><p>We addressed the cost of the cloud platform and gave the CFO some simple reports that gave him some insight into the monthly costs and the trend.</p><p></p></li></ul><h3>Two Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I have some courses available:</p><ol><li><p><a href="https://codingchallenges.podia.com/become-a-better-software-developer-by-building-your-own-redis-server">Become a Better Software Developer by Building Your Own Redis Server (Python Edition)</a> which guides you through solving the Redis Coding Challenge in Python.</p></li><li><p><a href="https://shop.codingchallenges.fyi/build-your-own-shell-go-edition">Build Your Own Shell (Go Edition)</a> which guides you through solving the Shell Coding Challenge in Go.</p></li></ol></li></ol>]]></content:encoded></item><item><title><![CDATA[Don’t Criticise]]></title><description><![CDATA[Criticising people is a great way to alienate them!]]></description><link>https://read.developingskills.fyi/p/dont-criticise</link><guid isPermaLink="false">https://read.developingskills.fyi/p/dont-criticise</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 08 Aug 2024 11:55:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/393ecb5d-18e5-4b99-b970-af0f1ed57468_1920x1280.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Don&#8217;t Criticise</h2><p>&#8220;From the logs we saw something weird was happening in the chunk lambda. We&#8217;ve identified a potential bug and are creating a test for it, once &#8230;&#8221;</p><p>Mark was cut off by Dan butting in: &#8220;That&#8217;s not going to account for the increase in DynamoDB write though, that lambda doesn&#8217;t even write to DynamoDB! You must be looking at the wrong thing!&#8221;</p><p>&#8220;We&#8217;re starting from the beginning of the process and&#8230;&#8221;</p><p>But Dan cut Mark off again: &#8220;Well that&#8217;s dumb! We know the problem is a cascade of writes to DynamoDB. The only thing that writes to that is the audit lambda. You should have started there!&#8221;</p><p>Mark was getting visibly annoyed now, he didn&#8217;t like being interrupted, but he hated being publicly criticised.</p><p>After the meeting Mark did fix the bug he found, along with several others, including one in the place Dan thought might be the issue. He also complained to his manager about Dan&#8217;s behaviour and was reluctant to take on any work that might result in him having to collaborate with Dan. He wasn&#8217;t the only one.</p><p>Eventually, as good a software engineer as he was, Dan was let go because the team couldn&#8217;t work with him.</p><p>So what&#8217;s wrong with criticism?</p><p>Well, criticise is <a href="https://dictionary.cambridge.org/dictionary/english/criticize">defined as</a>: &#8220;to&nbsp;express&nbsp;disapproval&nbsp;of someone or something&#8221;. It&#8217;s even worse when you look at the list of words that mean the same (synonyms): attack, castigate, chastise, condemn, rail, and slam.</p><p>Ouch, who wants to be on the receiving end of that?</p><p>In short when you criticise someone you are going to upset them. You&#8217;re going to lose any goodwill you had with them. Instead of having a potential ally in future, you have a potential enemy.</p><p>Yet many software engineers seem to make it their personal duty to criticise the work of anyone and everyone around them. Sure they might be smart but that does not give them license to tear down everyone else.</p><p>Their behaviour hurts their teams too. The very people who could and should be coming to them for help are now reluctant to do so. After all who wants to deal with someone who attacks them? So instead of improving the work of the people they criticise they create barriers to collaboration, reducing the effectiveness of the team.</p><p>The problem is criticism wastes a lot of time and energy. It puts people on the defensive and makes meetings like the one Mark and Dan were in unproductive.</p><p>Ah, but what about constructive criticism I hear you ask.</p><p>The reality is many people take criticism personally. To them it&#8217;s criticism and they don&#8217;t know what your intention was. Even if you tell them it&#8217;s intended as constructive criticism, they&#8217;re still likely to feel bad. That doesn&#8217;t mean you can&#8217;t correct someone, it just means you need to take care how you do it.</p><p>So next time you feel like criticising pause and ask yourself:</p><ol><li><p>Why are you going to criticise them?</p></li><li><p>Are you trying to help them?</p></li><li><p>Or are you trying to make yourself look better?</p></li><li><p>What is the positive outcome you want?</p></li><li><p>Is there a better way to achieve it?</p></li></ol><p>When you really do need to correct someone here are 3 simple tips:</p><ol><li><p>Do it in private, don&#8217;t put them in a position where they feel the need to publicly defend themselves.</p></li><li><p>Focus on the behaviour, facts, work or data, not on the person.</p></li><li><p>Soften the blow. Praise what you can. Offer some positive feedback and support on what they are right about / did well.</p></li></ol><p>You can read more about how to correct people effectively in my earlier post: <a href="https://read.developingskills.fyi/p/you-are-wrong">YOU ARE WRONG!</a></p><p></p><h3>Two Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I have some courses available:</p><ol><li><p><a href="https://codingchallenges.podia.com/become-a-better-software-developer-by-building-your-own-redis-server">Become a Better Software Developer by Building Your Own Redis Server (Python Edition)</a> which guides you through solving the Redis Coding Challenge in Python.</p></li><li><p><a href="https://shop.codingchallenges.fyi/build-your-own-shell-go-edition">Build Your Own Shell (Go Edition)</a> which guides you through solving the Shell Coding Challenge in Go.</p></li></ol></li></ol>]]></content:encoded></item><item><title><![CDATA[Why Knowing Someone’s Name And Using It Matters]]></title><description><![CDATA[Learn People&#8217;s Names And Use Them To Build Better Professional Relationships]]></description><link>https://read.developingskills.fyi/p/why-knowing-someones-name-and-using</link><guid isPermaLink="false">https://read.developingskills.fyi/p/why-knowing-someones-name-and-using</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 01 Aug 2024 12:01:31 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/67b027c4-1750-4bd2-976c-d94c89d88eab_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Learn People&#8217;s Names And Use Them To Build Better Professional Relationships</h2><p>Our names are an integral part of our identity. They matter to us. A lot. Why? Because our name is one of the first words that we learned as babies, and our parents often share with pride the reason for our names.</p><p>So, when someone uses our name, we register it. It triggers a response from us because, our whole lives we&#8217;ve been conditioned to recognise and respond to it.</p><p>And if we&#8217;ve chosen to use another name, be that a nickname or an shortened version of our name, that&#8217;s just as important to us, because we&#8217;ve chosen it.</p><blockquote><p>Remember that a person&#8217;s name is to that person the sweetest and most important sound in any language. &#8212;&nbsp;Dale Carnegie</p></blockquote><p>When other people remember and use our names correctly, it sends a clear message: they have paid attention to us. It makes us feel valued. It makes us feel seen. It makes us feel as though we&#8217;ve made enough of an impression to be memorable.</p><p>That in turn makes it easier for us to relax, to connect, and feel more comfortable in our relationship with them. We tend to have a favourable opinion of the person who has remembered our name, and that just makes communication flow.</p><p>When people forget our name, mispronounce it, or intentionally address us using the wrong name, the message is very different. We feel dismissed, disrespected, that we&#8217;re not important enough for someone to make the effort. We tune out. We think less of the person abusing our name.</p><p>And not knowing someones name sends and even stronger message, particularly if they are subordinate to you.</p><p>So, learn people&#8217;s names and use them when you speak to them, they&#8217;ll like you more and you&#8217;ll build better, stronger relationships.</p><p>Simple right? Well, no, not always.</p><p>Sometimes we are afraid to ask someone their name. Sometimes we worry that it&#8217;ll be inappropriate, sometimes we worry that we&#8217;re intruding and sometimes we&#8217;re just embarrassed to admit we don&#8217;t know it.</p><p>None of these reasons are good reasons not to learn someone&#8217;s name, so keep it simple and use one of these three ways to ask:</p><ol><li><p>Hi, I&#8217;m John, what&#8217;s your name?</p></li><li><p>Could you tell me your name place?</p></li><li><p>I&#8217;d love to be able to address you by name please?</p></li></ol><p>Keep it simple. No one will be offended by you asking for their name.</p><p>Sometimes we believe we&#8217;re not very good at remembering names. If that&#8217;s the case, create a system to ensure you remember them. You&#8217;re an engineer, it&#8217;s a problem for you to solve, not ignore.</p><p>To get you started, here are three tips you can use to help you remember someone&#8217;s name:</p><ol><li><p><strong>Use your phone to make a note or write it down:</strong> You can then refer back to your notes to remind yourself, repeating this will ensure you remember it.</p></li><li><p><strong>If you&#8217;re at work, check the org chart:</strong> Use it remind yourself - often you&#8217;ll be able to see their name, photo and some context, which can help you remember.</p></li><li><p><strong>Repetition, repetition, repetition:</strong> Repeating their name (quietly to yourself) helps you remember.</p></li></ol><p>Sometimes we struggle to pronounce people&#8217;s names or don&#8217;t even know how to. In that cases here are three tips to ensure you are correctly pronouncing someone&#8217;s name:</p><ol><li><p><strong>When they tell you their name, repeat it:</strong> This will help you remember everyone&#8217;s names as well as the pronunciation of them.</p></li><li><p><strong>When you don&#8217;t know, just ask:</strong>&nbsp;Then repeat their name a few times. When people see that you&#8217;re committed to getting it right, they will appreciate the effort more than they&#8217;ll mind minor errors.</p></li><li><p><strong>If you can&#8217;t ask, search online:</strong> YouTube is full of videos that cover the pronunciation of names. It&#8217;s that important people have realised there&#8217;s a lot of value in creating these videos. There are plenty of websites that will let you enter the name too.</p></li></ol><p>It&#8217;s worth repeating: remembering and using people&#8217;s names is one of the simplest ways to make a positive impact on a person&#8217;s perception of you.</p><p>On that note, Hi, I&#8217;m John, what&#8217;s your name? Hit reply and let me know. I&#8217;d also love to know how I can help you advance your career in tech. Send me your questions and I&#8217;ll answer them in future newsletters.</p><p>I look forward to hearing from you.</p><p>Regards, John</p><p></p><h3>Two Ways I Can Help You Level Up As A Software Engineer:</h3><ol><li><p>I write another newsletter, <strong><a href="https://codingchallenges.substack.com/">Coding Challenges</a></strong> that helps you become a better software engineer through coding challenges that build real applications.</p></li><li><p>I have some courses available:</p><ol><li><p><strong><a href="https://codingchallenges.podia.com/become-a-better-software-developer-by-building-your-own-redis-server">Become a Better Software Developer by Building Your Own Redis Server (Python Edition)</a></strong> which guides you through solving the Redis Coding Challenge in Python.</p></li><li><p><strong><a href="https://shop.codingchallenges.fyi/build-your-own-shell-go-edition">Build Your Own Shell (Go Edition)</a></strong> which guides you through solving the Shell Coding Challenge in Go.</p></li></ol></li></ol>]]></content:encoded></item><item><title><![CDATA[12 Ways To Tell If You’re A Difficult Engineer (And What To Do About It)]]></title><description><![CDATA[I know you don&#8217;t want to be a difficult software engineer. I know you find it at least as stressful as other people do working with you.]]></description><link>https://read.developingskills.fyi/p/12-ways-to-tell-if-youre-a-difficult</link><guid isPermaLink="false">https://read.developingskills.fyi/p/12-ways-to-tell-if-youre-a-difficult</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 25 Jul 2024 12:01:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/aa230615-1f3e-4c8b-8f41-a7b16ba64e41_1920x1280.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s Developing Skills - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Figure Out If You Are The Problem And Fix It</h2><p>One of the things that attracted me to software engineering was the idea that I could write code all day and not have to deal with people.</p><p>The reality is we have to deal with people and it&#8217;s a lot easier for them and a lot less stressful for us if we&#8217;re not difficult to deal with. It&#8217;s a lesson I&#8217;ve learned the hard way.</p><h3>12 Ways To Tell If You&#8217;re A Difficult Software Engineer</h3><ol><li><p><strong>Your manager tells you you are</strong> - It&#8217;s the most obvious indicator and it comes in two versions: your manager finds you difficult to deal with or other people have complained to your manager that you&#8217;re difficult to work with.</p></li><li><p><strong>You are continually challenging or correcting everyone</strong> - You challenge every decision and correct everything you perceive to be wrong believing that no one else is ever right.</p></li><li><p><strong>People are nervous or guarded around you</strong> - People change, becoming quieter, more guarded and seem to be walking on eggshells around you, they might be afraid of how you&#8217;re going to behave.</p></li><li><p><strong>You view people asking you questions as an annoying distraction</strong> - When people ask you questions you&#8217;re short with them or even ignore them, keeping your back to them and hands on your keyboard or your camera off and you keep coding during a call.</p></li><li><p><strong>You think your technical skills make you better/more important than other people</strong> - People can tell when you think highly of yourself, they recognise when you&#8217;re too proud and unwilling to work with them.</p></li><li><p><strong>People problems follow you around</strong> -If you find you&#8217;re suffering constant friction wherever you work, then you might be the problem. As the saying goes, where there&#8217;s smoke, there&#8217;s fire.</p></li><li><p><strong>You expect other people to accept you for who you are and deal with it</strong> - Instead of taking responsibility for your own shortcomings and actions you expect other people to accept the way you are. It&#8217;s their problem for not being able to handle that you&#8217;re blunt and/or direct.</p></li><li><p><strong>You blame others when things go wrong</strong> - You never admit your mistakes and always blame others when something goes wrong.</p></li><li><p><strong>You prefer to work alone/other people slow you down</strong> - Whenever possible you work alone and you make it clear collaborating with others is a chore.</p></li><li><p><strong>You always complain, yet rarely offer solutions</strong> - You complain about everything, always seeing the worst, yet you never suggest solutions.</p></li><li><p><strong>You take all the credit</strong> - When things go well, you take the credit for it all. Everything was built off the excellent work you did alone.</p></li><li><p><strong>You hoard knowledge</strong> - You&#8217;re reluctant to share knowledge with other people and you make it hard to the rest of the team to understand your work.</p></li></ol><p>If more than one of these applies to you, you may well be a difficult engineer. Changing just a little will make your life better.</p><h3>What To Do If You Are A Difficult Software Engineer</h3><p>Here are my top 12 tips if you want to change:</p><ol><li><p><strong>Decide to change</strong> - Actually decide to change and make a commitment to it. It&#8217;s going to take time and it won&#8217;t be easy. You&#8217;ll have to be humble and you&#8217;ll probably need help. Only you can decide to do it.</p></li><li><p><strong>Ask your manager for specific feedback and help</strong> - If you believe your manager is or would be genuinely interested in helping ask them for help. Start with specific feedback on what you did, why it wasn&#8217;t good and how you can change for the better.</p></li><li><p><strong>Ask for a mentor or coach</strong> - If you&#8217;re not comfortable working with your manager, perhaps the relationship isn&#8217;t good enough, ask HR or another manager for a mentor or coach. If the business can&#8217;t find one internally, find your own outside the business.</p></li><li><p><strong>Make sure your coach/mentor is going to model the right behaviours</strong> - Don&#8217;t pick Linus or some other famous, and perhaps famously difficult engineer as your mentor. Find someone who can empathise with you and also model the right behaviour.</p></li><li><p><strong>Take responsibility for your actions, your behaviour and your mistakes</strong> - stop blaming others. Own what you do. Own responsibility for the change too.</p></li><li><p><strong>Be humble</strong> - Seek first to understand before seeking to be understood. Ask questions and try to understand other people&#8217;s ideas, find some common ground on which you can build.</p></li><li><p><strong>Before criticising or correcting ask yourself these three questions</strong>:</p><ol><li><p>Does this need to be said?</p></li><li><p>Does this need to be said by me?</p></li><li><p>Does this need to be said by me now?</p></li></ol><p>If the answer to any of those questions is no, keep quiet.</p></li><li><p><strong>Count to 10 before responding</strong> - give yourself time to process, resist the temptation to respond on impulse.</p></li><li><p><strong>Encourage others to share their ideas</strong> - Let them speak up and ask them to share. Be curious. Often if they are wrong you can lead them to discovering that for themselves by asking questions.</p></li><li><p><strong>Share your knowledge</strong> - You might think hoarding knowledge makes people think you are an expert. The reality is you will be perceived as more of an expert when you share your knowledge freely.</p></li><li><p><strong>Focus on solutions not problems - M</strong>ake a commitment to yourself that you won&#8217;t raise a problem without a solution.</p></li><li><p><strong>Give credit generously -</strong> You&#8217;ll get more credit for what you did and bonus credit for sharing.</p></li></ol><p>I know that it&#8217;s far easier to point out what you should do than it is to do it. These 12 tips aren&#8217;t going to cause a miraculous change overnight. They are the start of a journey. It will take time to make a change and to replace existing habits with new ones.</p><p>I know, I&#8217;ve been there, it takes time. The key is to decide to change and start.</p><p>If you&#8217;re struggling hit reply and tell me more, or reach out to me on <a href="https://www.linkedin.com/in/johncrickett/">LinkedIn</a>.</p><p>John</p>]]></content:encoded></item><item><title><![CDATA[YOU ARE WRONG!]]></title><description><![CDATA[Learn the four steps to correcting people without offending them.]]></description><link>https://read.developingskills.fyi/p/you-are-wrong</link><guid isPermaLink="false">https://read.developingskills.fyi/p/you-are-wrong</guid><dc:creator><![CDATA[John Crickett]]></dc:creator><pubDate>Thu, 18 Jul 2024 08:01:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e0d8e00e-1916-4338-8b27-e91a5d15a962_1920x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Welcome!</h2><p><em>Hi this is John with this week&#8217;s <strong>Developing Skills</strong> - Skills for Developers looking to develop their careers.</em></p><p><em>If there is a topic you&#8217;d like to see covered, please let me know by replying to this email&#128231;</em></p><h2>Tip of The Week: Learn To Correct People Without Offending Them</h2><p>As I returned from the kitchen with a fresh cup of coffee Simon ran out of the office in tears. What was that about? I looked at his fellow junior engineers questioningly, wondering what had happened. They looked embarrassed and uncomfortable then away.</p><p>As I put my coffee down, I noticed a private message flash up on my laptop from one of the senior engineers: &#8220;Hey John, poor Simon has just been torn apart by Bob. Sure Simon was wrong - hey, he&#8217;s a junior it&#8217;s gonna happen - but Bob was pretty harsh every time he corrected him.&#8221;</p><p>When I went outside and spoke to Simon he confirmed it, Bob has been correcting him all day and it was undermining his confidence. He wanted to quit his job right then.</p><p>Like Bob, it&#8217;s inevitable that at some point in our career we will have to correct someone. It&#8217;s an unavoidable part of being in a healthy, growing team. After all, we can&#8217;t all know everything, so we should be able to correct each other and lift each other up.</p><p>When it&#8217;s done well, correcting someone can change their behaviour, helping them achieve better results and strengthen your relationship with them. Yet too often we do it badly, damaging the relationship and causing resentment. Like Bob did.</p><p>Here are four steps you can take to avoid that.</p><p>1. Be like Elsa from Disney&#8217;s Frozen and &#8220;<strong>let it go&#8221;</strong> - a lot of the time it really doesn&#8217;t matter if someone is wrong. So before you rush to correct them, take a moment and ask yourself - does it really matter if they are wrong? Is there anything important at stake here if you don&#8217;t correct them? If not, <strong>let it go</strong>.</p><p>2. If you really do need to correct them, <strong>correct them in private</strong> - it&#8217;s human nature to be embarrassed when we&#8217;re wrong. We&#8217;re even more embarrassed if we&#8217;re wrong in public. So, to limit that embarrassment correct people in private. If you really need to correct in public take care to minimise the impact. For example if someone is presenting a plan that you believe is flawed, don&#8217;t pick it apart publicly, instead slow things down and offer to help. For example:</p><blockquote><p>Thank you for the work you&#8217;ve done on this proposal. There are a few suggestions I&#8217;d like to make, perhaps we can get together after this meeting and work on it together?</p></blockquote><p>You&#8217;ve stopped the current issue and can later in private constructively correct them and help refine the proposal.</p><p>3. When you are correcting someone, <strong>focus on the behaviour or outcome, not the person</strong> - when you focus on the person, it becomes personal and intended or will feel like a personal attack. That is going to make the other person defensive, damage your relationship and lead to a negative outcome.</p><p>Instead focus on the observable behaviour or outcome and not on them. For example:</p><blockquote><p>I noticed some errors in the proposal, I would like to see them addressed before we review it with the team again.</p></blockquote><p>Be sure to then provide specific examples of the issues that need to be corrected.</p><p>4. None of us like being corrected, we&#8217;re embarrassed by our mistakes so when you have to correct someone, <strong>soften the blow</strong> - don&#8217;t just knock them down and then keep kicking them, instead praise what you can. Offer some positive feedback and support.</p><p>You can do this well by beginning with a positive statement about their work or behaviour and some praise for their achievement so far. Then provide the correction and follow it up with a reminder of the praise and wrap up on a positive, supportive note.</p><p>For example:</p><blockquote><p>Thank you for taking on this difficult challenge, I really appreciate you stepping up and volunteering to work in the proposal. Especially as I know you&#8217;d rather be writing code than documents. I really appreciate the teamwork.</p><p>I noticed some errors in the proposal, I would like to see them addressed before we review it with the team again. <em>List specific examples..</em>.</p><p>This was a difficult task, so I really appreciate you taking it on and getting us to where we are today. Thank you for stepping up. Please let me know if I can help with the revisions in any way.</p></blockquote><p>Unfortunately, this was very early in my career, when I wasn&#8217;t experienced enough to give Bob this advice. Instead we had a frank discussion in private, but without me having the experience to cushion the blow and stick firmly to talking only about the behaviour.</p><p>Sadly that meant Bob felt wronged too.</p><p>Therefore his behaviour didn&#8217;t change and a few weeks later he was fired. The working environment improved for those that remained, but it was a net loss for all of us. Bob lost his job, we lost his expertise.</p><p>So please don&#8217;t be like Bob or I were, learn from our mistake.</p><h2>FINAL CALL! Would You Like To Build a Personal Brand on LinkedIn?</h2><p>Starting on the 22nd July I&#8217;m running a course and 30 day challenge where I show you how I:</p><p>&#9989;&nbsp;Grew my LinkedIn following from 3,000 to 130,000+ in just 12 months.</p><p>&#9989;&nbsp;Became the No. 1 ranked &#8216;IT &amp; Tech&#8217; influencer on LinkedIn in the UK and 34th worldwide.</p><p>&#9989;&nbsp;Generated over 40 Million post impressions on LinkedIn.</p><p>&#9989;&nbsp;Grew my newsletter to over 100,000 subscribers on LinkedIn and over 50,000 on Substack.</p><p>And how you can too. You can learn more and sign up here: <a href="https://johncrickett.gumroad.com/l/30day-li-challenge/">https://johncrickett.gumroad.com/l/30day-li-challenge/</a></p>]]></content:encoded></item></channel></rss>