<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ben</title>
    <description>The latest articles on DEV Community by Ben (@justanothertechlead).</description>
    <link>https://dev.to/justanothertechlead</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2166590%2F796b8c85-a1b3-440b-b6b1-a0a1655d4eef.jpg</url>
      <title>DEV Community: Ben</title>
      <link>https://dev.to/justanothertechlead</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/justanothertechlead"/>
    <language>en</language>
    <item>
      <title>The Importance of Review in Software Testing: Best Practices Explained</title>
      <dc:creator>Ben</dc:creator>
      <pubDate>Wed, 12 Mar 2025 09:35:04 +0000</pubDate>
      <link>https://dev.to/justanothertechlead/the-importance-of-review-in-software-testing-best-practices-explained-5053</link>
      <guid>https://dev.to/justanothertechlead/the-importance-of-review-in-software-testing-best-practices-explained-5053</guid>
      <description>&lt;h1&gt;
  
  
  What is Software Review?
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What is a review in software testing?
&lt;/h2&gt;

&lt;p&gt;There are different types of reviews that happen at different points in the software development lifecycle (SDLC), and we’ll dive into them all in this article.&lt;/p&gt;

&lt;p&gt;Reviewing throughout the entire software development process is key. You shouldn’t just test the final product at the end of development. That’s far too late.&lt;/p&gt;

&lt;p&gt;Reviewing in software ensures that you maintain quality, produce the right thing, and do so in a timely manner.&lt;/p&gt;

&lt;p&gt;I’ve been in all stages of the software review process many many times over the years. It’s one of the key skills that a software engineer has to be comfortable with outside of writing code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Objectives and Benefits of Software Review
&lt;/h2&gt;

&lt;p&gt;Whenever I’m thinking of reviews, I have a few key things I’m trying to achieve.&lt;/p&gt;

&lt;p&gt;The first purpose I think of for the review process, is to make sure you identify and issues as early as possible in the software development life cycle and fix them. In almost all cases, the earlier you find and fix a problem, the cheaper and easier it is.&lt;/p&gt;

&lt;p&gt;Another main purpose I’m striving for in the software review is the make sure that you’re actually creating the software that your users are expecting.&lt;/p&gt;

&lt;p&gt;In my experience, It’s pretty common for engineers to veer off from course a little and before too long you are creating quality software, but not the quality software that your user wanted.&lt;/p&gt;

&lt;p&gt;A successful review at any point in the review process aims to ensure both the quality and direction of the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Software Review
&lt;/h2&gt;

&lt;p&gt;There are many types of software review, including, but not limited to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code Review&lt;/li&gt;
&lt;li&gt;Peer Review&lt;/li&gt;
&lt;li&gt;Technical Review&lt;/li&gt;
&lt;li&gt;Pair Programming&lt;/li&gt;
&lt;li&gt;Management review&lt;/li&gt;
&lt;li&gt;Peer Review / Code Review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The peer review is one of the earliest forms of formal review for the actual code to be checked for quality and direction.&lt;/p&gt;

&lt;p&gt;Peer software developers (the reviewer, usually from the same development team) will look at the associated work item (Test Case, User Story, Documentation) and make sure that the code you’ve written matches the intent of that work item.&lt;/p&gt;

&lt;p&gt;Once they are happy that the written code matches the intent of the work item, they will do code inspections to look for any bugs or code that could be written in a more efficient or easier to understand manner.&lt;/p&gt;

&lt;p&gt;The peer review is usually a collaborative effort and can be picked up by one or more software engineers familiar with the software product and code base.&lt;/p&gt;

&lt;p&gt;When I review code, I make sure that I am not just looking for basic technical faults (divide by zero bugs, etc), but that I am also looking for code structure, well named variables, well architeted solutions.&lt;/p&gt;

&lt;p&gt;I am very picky with my code reviews as you I am a firm believer that code is written once and read a thousand times. Get it right before it gets merged to main.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technical Review
&lt;/h3&gt;

&lt;p&gt;A Technical Review is where a group of people from different roles get together to assess the overall state of may parts of the software project.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Participants include:&lt;/li&gt;
&lt;li&gt;Software Architects&lt;/li&gt;
&lt;li&gt;Senior Developers&lt;/li&gt;
&lt;li&gt;Business Analysts&lt;/li&gt;
&lt;li&gt;QA&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a fairly formal review meeting where the group will cover topics such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project Scope&lt;/li&gt;
&lt;li&gt;Requirements documents and specifications&lt;/li&gt;
&lt;li&gt;Test Plans&lt;/li&gt;
&lt;li&gt;Prototypes or MVCs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea behind the technical review process is to verify the correctness of the requirements, the direction of the project and the technical roadmap. All of this is to look forwards to try and ensure a smooth project process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Management Review
&lt;/h3&gt;

&lt;p&gt;This part of the review process is to give high-level stakeholders high-level details about the status of the project.&lt;/p&gt;

&lt;p&gt;Managers tend to want to know about whether deadlines are being met (if not, why not) and if the cost of the project is on target.&lt;/p&gt;

&lt;p&gt;There’s no software inspections, no looking at source code and no worrying about testing in this review. The key phrase here is “status report”.&lt;/p&gt;

&lt;h3&gt;
  
  
  Software Audit Review
&lt;/h3&gt;

&lt;p&gt;Software audit review is an exterior review where a single or multiple reviewers outside the development team inspect the software development processes to check compliance with standards, requirements, and specifications.&lt;/p&gt;

&lt;p&gt;These tend to be infrequent and only really done at a high level.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Role of Review in the Software Development Process
&lt;/h2&gt;

&lt;p&gt;Each of the above review types is crucial in its own way to the success of a project.&lt;/p&gt;

&lt;p&gt;Reviews highlight issues and miscommunications early on. They keep the project on track and in the right direction.&lt;/p&gt;

&lt;p&gt;People are familiar with &lt;a href="https://calculatorlord.com/compound-interest-calculator/" rel="noopener noreferrer"&gt;compounding in finance&lt;/a&gt;, but I think that compounding in process is less talked about. With each review process that occurs, the process gets better. You then build upon that better base by getting better at the next review and so on.&lt;/p&gt;

&lt;p&gt;Whether formal or informal reviews, reviews get people talking. They gather stakeholders and knowledgeable people in the same place and get multiple minds solving and validating all of the work.&lt;/p&gt;

&lt;p&gt;Reviews help companies ensure that their software complies with regulatory and industry standards.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges and Solutions in Software Review
&lt;/h2&gt;

&lt;p&gt;Admin and beurocreacy.&lt;/p&gt;

&lt;p&gt;In my experience, these are the two most common complaints from engineers about the software review process.&lt;/p&gt;

&lt;p&gt;I’ve worked in many companies with many smart people.&lt;/p&gt;

&lt;p&gt;Unfortunately, smart engineers don’t often like many meetings. They don’t like doing Jira admin. They don’t like people scrutinizing their code.&lt;/p&gt;

&lt;p&gt;Adding time and effort between a coder and writing code is rarely something you want to do.&lt;/p&gt;

&lt;p&gt;However, going slower to get to the end goal faster is always a smart move.&lt;/p&gt;

&lt;p&gt;Showing engineers that putting the effort in upfront on generating the correct specifications, and test cases and how reviews play a critical role in delivering what the client actually wants will make your life a lot easier.&lt;/p&gt;

&lt;p&gt;Another issue is showing the people involved that the effort they are putting in to code reviews, technical reviews etc has a real world benefit is hard to do.&lt;/p&gt;

&lt;p&gt;You can’t run A-B tests on this type of thing. All you can do is highlight the successes that this process has had in the past and how running projects without these processes have failed in the past.&lt;/p&gt;

&lt;p&gt;Software development and the development process is about metrics. Prove how this type of project management has worked with stats from the past.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices for Effective Software Review
&lt;/h2&gt;

&lt;p&gt;Let’s summarise some of the best practices I’ve mentioned throughout this post:&lt;/p&gt;

&lt;p&gt;Establish clear objectives and scope for the review.&lt;/p&gt;

&lt;p&gt;Assign roles and responsibilities to team members.&lt;/p&gt;

&lt;p&gt;Use a structured review process, such as entry evaluation, review process management, planning, preparation, and analysis and exit evaluation.&lt;/p&gt;

&lt;p&gt;Use tool-assisted reviews for efficient and asynchronous reviews.&lt;/p&gt;

&lt;p&gt;Track metrics to justify the time and brainpower required for code review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Testing and Review: A Collaborative Approach
&lt;/h2&gt;

&lt;p&gt;You should always have automated tests for your code. However, manual testing with QA is a vital step in creating a polished software product.&lt;/p&gt;

&lt;p&gt;QA think differently to Engineers. QA look to break things, engineers tend to think about the “happy path”.&lt;/p&gt;

&lt;p&gt;Once you as an engineering team have delivered and tested a vertical flow, hand it over to QA to do their thing.&lt;/p&gt;

&lt;p&gt;They will bend and twist your software in ways you can’t imagine.&lt;/p&gt;

&lt;p&gt;This is a vital step in the software review process.&lt;/p&gt;

&lt;p&gt;The post The Importance of Review in Software Testing: Best Practices Explained appeared first on &lt;a href="https://justanothertechlead.com" rel="noopener noreferrer"&gt;Just Another Tech Lead&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>software</category>
      <category>softwareengineering</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>How Often Are Sprint Reviews Conducted or Held?</title>
      <dc:creator>Ben</dc:creator>
      <pubDate>Tue, 24 Dec 2024 12:47:17 +0000</pubDate>
      <link>https://dev.to/justanothertechlead/how-often-are-sprint-reviews-conducted-or-held-178d</link>
      <guid>https://dev.to/justanothertechlead/how-often-are-sprint-reviews-conducted-or-held-178d</guid>
      <description>&lt;p&gt;How Often Are Sprint Reviews Conducted or Held?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sprint Reviews are held on the last day of every sprint.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Different teams may have different length sprints, but in general, a Sprint is either two or three weeks.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Therefore, sprint review meetings are held every two or three weeks (always on the last day of the sprint)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let’s dig into more about what a sprint review meeting is, and what it’s used for.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Sprint Review?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F12%2F59821db5-1242-4d2e-bef0-a3bb3091bc74.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F12%2F59821db5-1242-4d2e-bef0-a3bb3091bc74.webp" alt="How Often Are Sprint Reviews Conducted or Held?" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Definition and purpose of a sprint review
&lt;/h3&gt;

&lt;p&gt;A &lt;a href="http://cleancoder.com/products" rel="noopener noreferrer"&gt;Sprint review&lt;/a&gt; meeting is a meeting that is attended by the entire &lt;a href="https://dev.to/justanothertechlead/if-scrum-teams-become-too-large-they-should-split-2pm8-temp-slug-3394396"&gt;scrum team&lt;/a&gt; as well as key stakeholders for the project.&lt;/p&gt;

&lt;p&gt;A successful &lt;a href="https://dev.to/justanothertechlead/agile-ways-of-working-what-are-they-and-why-do-we-use-them-2cgl-temp-slug-9727802"&gt;sprint review will be focused on the work&lt;/a&gt; that has been completed towards the product, in the previous sprint.&lt;/p&gt;

&lt;p&gt;During the sprint review, the agile team (mostly the development team) get key feedback from the stakeholders about whether or not they are on track with what they are working on. Did they deliver what was required and are they on time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Importance of sprint reviews in Agile development
&lt;/h3&gt;

&lt;p&gt;The sprint review is one of the key agile events in Scrum.&lt;/p&gt;

&lt;p&gt;One of the core agile principles is iteration and improvement.&lt;/p&gt;

&lt;p&gt;The sprint review allows for small and quick iterations of improvement (product increment) whilst continually improving the product (through feedback).&lt;/p&gt;

&lt;h2&gt;
  
  
  The Purpose and Benefits of Sprint Reviews
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F12%2Fff00fcee-251f-4ed7-98e5-2bf511206a4e.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F12%2Fff00fcee-251f-4ed7-98e5-2bf511206a4e.webp" alt="Stakeholder feeback" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Iterative feedback loop
&lt;/h3&gt;

&lt;p&gt;Agile relies on iteration to succeed.&lt;/p&gt;

&lt;p&gt;Agile sprint reviews give regular feedback from stakeholders every two weeks (or whatever sprint review frequency your team has). This is very quick compared with other &lt;a href="https://justanothertechlead.com/software/top-agile-cheat-sheet-essential-tips-and-terminology-2/" rel="noopener noreferrer"&gt;project planning&lt;/a&gt; techniques such as Waterfall.&lt;/p&gt;

&lt;p&gt;The quick sprint review frequency affords you rapid adjustment based on feedback from product owners and other key stakeholders.&lt;/p&gt;

&lt;h3&gt;
  
  
  Early detection of issues
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpmb1qklhv29nwxp7qqhx.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpmb1qklhv29nwxp7qqhx.jpeg" alt="traffic signs, attention, right of way" width="640" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agile likes to fail fast.&lt;/p&gt;

&lt;p&gt;If you’re going to write software that deviates from what your Product and customer want, make sure that someone spots it early and course corrects.&lt;/p&gt;

&lt;p&gt;It’s far better to waste two weeks (or however often your sprint reviews conducted) than 6 months (typical for Waterfall process)&lt;/p&gt;

&lt;h3&gt;
  
  
  Opportunity for iterative refinement
&lt;/h3&gt;

&lt;p&gt;Having your sprint ceremonies every two to four weeks allows you to become better at planning the further through the project you go.&lt;/p&gt;

&lt;p&gt;Whereas in Waterfall you may spend months planning the entire project and then set off writing code following the plan exactly (regardless of if it seems wrong), in agile teams, you plan as you go, so the further into the project you go, the better you know the product and code, and the more accurate your planning is.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adaptation to changing priorities
&lt;/h3&gt;

&lt;p&gt;Anyone who has worked in Software Engineering for long enough (or business in general) will know too well that what is important today is forgotten tomorrow.&lt;/p&gt;

&lt;p&gt;The Development Team will be told by the Product owner to lay down tools and focus on new client X who is the saviour of the company. Next week, client Y enters the picture and client X is relegated to the lower leagues of priority.&lt;/p&gt;

&lt;p&gt;I’ve seen it time and time again.&lt;/p&gt;

&lt;p&gt;Fortunately, Agile has you covered here.&lt;/p&gt;

&lt;p&gt;Because you are working in a method that allows for a change of direction every two weeks, you are no more than two weeks away from being able to course correct or have a new priority enter.&lt;/p&gt;

&lt;p&gt;Now, let me be clear, I do not approve of throwing away an entire project part way through and having a new top priority enter every couple of months, I’m just saying that I think Agile teams generally deal with this quite well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Empowerment of stakeholders
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujsnhjqlz73hbguogsdn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujsnhjqlz73hbguogsdn.png" alt="hand, fist, freedom" width="640" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sprint reviews give stakeholders a peek into the otherwise blackbox nature of the software development lifecycle.&lt;/p&gt;

&lt;p&gt;Every two-week sprint, stakeholders get the chance to see what has been worked upon as the team members demonstrate their hard work.&lt;/p&gt;

&lt;p&gt;Stakeholders then get to give feedback, get status updates and generally be much more involved in the project than they may be without regular sprint updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sprint Review Frequency and Timing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F12%2Fcd0cce96-179b-4469-911d-bd9b69a2528b.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F12%2Fcd0cce96-179b-4469-911d-bd9b69a2528b.webp" alt="Project Timelines." width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  End-of-sprint timing
&lt;/h3&gt;

&lt;p&gt;The Sprint review is held at the end of each sprint. This would generally be every two to four weeks.&lt;/p&gt;

&lt;p&gt;The length of sprint is designed to be long enough to deliver significant and valuable work, but short enough so that you can quickly and iteratively deliver to the customer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common sprint durations and their impact on reviews
&lt;/h3&gt;

&lt;p&gt;Usually, sprint lengths are between 1-4 weeks.&lt;/p&gt;

&lt;p&gt;From my experience, I’ve seen two and three week sprints used the most and to bests effect.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adapting standard frequencies
&lt;/h3&gt;

&lt;p&gt;Agile wouldn’t be very agile if it didn’t allow for (or even encourage) change based on feedback.&lt;/p&gt;

&lt;p&gt;If a two week sprint doesn’t work for you, try a three week sprint. If that’s worse, move back to two week sprints.&lt;/p&gt;

&lt;p&gt;I’ve found that different teams and different projects work better within different time frames.&lt;/p&gt;

&lt;p&gt;Don’t be afraid to change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Factors to Consider When Scheduling Sprint Reviews
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Project complexity and size
&lt;/h3&gt;

&lt;p&gt;If you are starting a very complex project from scratch, it may be infeasible to deliver anything of value in two-week increments. You may need to start off with three-week sprints if you want to demonstrate valuable output every sprint.&lt;/p&gt;

&lt;p&gt;Conversely, complex projects may actually need more regular reviews if you are requiring stakeholder feedback to ensure alignment between the development team and Product.&lt;/p&gt;

&lt;h3&gt;
  
  
  Team size and distribution
&lt;/h3&gt;

&lt;p&gt;If you are working in an office together and your scrum team is located next to major stakeholders, you may not need as regular stakeholder feedback as if you are all working remotely across timezones.&lt;/p&gt;

&lt;p&gt;Whilst I’m a fan of WFH, there’s no denying that information passes quicker and more easily in person.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stakeholder availability
&lt;/h3&gt;

&lt;p&gt;If the person with the most knowledge of the product you are trying to deliver is the managing director, chances are you won’t be able to tie them down for a couple of hours every few weeks.&lt;/p&gt;

&lt;p&gt;When I worked for start ups and small companies, the CEO/Managing Directors were so involved in the product as they typically were product experts. They also had a lot of other commitments, meaning we our scrum events (&lt;a href="https://dev.to/justanothertechlead/sprint-review-vs-retrospective-a-real-world-guide-to-the-difference-3id2-temp-slug-7770425"&gt;Sprint retrospective&lt;/a&gt;, spring planning, sprint review) had to be at a lower frequency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conducting Effective Sprint Review Meetings
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Encourage active participation
&lt;/h3&gt;

&lt;p&gt;Agile requires honest feedback.&lt;/p&gt;

&lt;p&gt;If you have a psychologically safe environment, people will want to participate more and give their honest feedback.&lt;/p&gt;

&lt;p&gt;Psychologically safety also helps create a truly collaborative environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Foster open communication
&lt;/h3&gt;

&lt;p&gt;There should be no boundaries between the most junior and most senior members of the review.&lt;/p&gt;

&lt;p&gt;Everyone should have a voice that can be heard and taken in.&lt;/p&gt;

&lt;p&gt;If people are afraid to share, your sprint review will be less effective.&lt;/p&gt;

&lt;h3&gt;
  
  
  Focus on progress and improvement
&lt;/h3&gt;

&lt;p&gt;Rather than simply talking about exactly what you’ve worked on, also cover how much overall progress you’ve made for the project overall.&lt;/p&gt;

&lt;p&gt;Showcase process enhancements and other improvements to the product and project delivery.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happens During a Sprint Review?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Review of completed work
&lt;/h3&gt;

&lt;p&gt;Review the completed work from the sprint and get stakeholder feedback as to whether the work delivers what was expected.&lt;/p&gt;

&lt;p&gt;Take note of feedback and plan any required changes in to the next sprint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sprint Review Best Practices
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Consistency is key: establishing a reliable rhythm
&lt;/h3&gt;

&lt;p&gt;Ensuring that you have a repeated meeting booked out for the same time and the same place, every 2 weeks for the next six months gives people time to arrange other work and meeting to make sure they are able to attend the sprint review.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prepare for success: crafting an effective agenda
&lt;/h3&gt;

&lt;p&gt;Keep the agenda simple and consistent.&lt;/p&gt;

&lt;p&gt;Work through your Jira items (or whatever other planning and tracking software you use) and have pre-recorded demos with a presenter talking through what the room is watching.&lt;/p&gt;

&lt;p&gt;Ensure that the agenda is clear, concise, and focused on progress and improvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion – How often are sprint reviews conducted or held?
&lt;/h2&gt;

&lt;p&gt;Well, how often are sprint reviews conducted or held?&lt;/p&gt;

&lt;p&gt;At the end of every sprint.&lt;/p&gt;

&lt;p&gt;How long are sprints? Between two and four weeks.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://justanothertechlead.com/agile/how-often-are-sprint-reviews-conducted-or-held/" rel="noopener noreferrer"&gt;How Often Are Sprint Reviews Conducted or Held?&lt;/a&gt; appeared first on &lt;a href="https://justanothertechlead.com" rel="noopener noreferrer"&gt;Just Another Tech Lead&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>agile</category>
    </item>
    <item>
      <title>Is the Full Stack Engineer Dead?</title>
      <dc:creator>Ben</dc:creator>
      <pubDate>Thu, 31 Oct 2024 09:21:12 +0000</pubDate>
      <link>https://dev.to/justanothertechlead/is-the-full-stack-engineer-dead-10n1</link>
      <guid>https://dev.to/justanothertechlead/is-the-full-stack-engineer-dead-10n1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F10%2Ffullstack2.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F10%2Ffullstack2.webp" alt="Full stack engineer" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ve been pondering recently on the term full stack engineer and if full stack engineers really still exist.&lt;/p&gt;

&lt;p&gt;I used to know what full stack engineering meant.&lt;/p&gt;

&lt;p&gt;I used to call myself one.&lt;/p&gt;

&lt;p&gt;For the last 7 years I’ve been a purely back end guy and haven’t really kept up with the UI trends and job market.&lt;/p&gt;

&lt;p&gt;It wasn’t until joining X and becoming more active on the platform this year that I started noticing more and more people calling themselves full stack engineers, and I started to wonder if this was still even an achievable title for anyone.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction: The Rise of the Full Stack Engineer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F10%2Fb42b6b80-c0cb-4170-abcb-b34ada1a0179.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F10%2Fb42b6b80-c0cb-4170-abcb-b34ada1a0179.webp" alt="avatar, icon, placeholder" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To understand if it’s still possible to be a full stack developer, we need to go back to its roots.&lt;/p&gt;

&lt;p&gt;The term Full Stack Engineer was first seen in 2008, widely accredited to &lt;a href="https://www.linkedin.com/in/randy-schmidt-41730315/" rel="noopener noreferrer"&gt;Randy Schmidt&lt;/a&gt;, Managing Director at Burns &amp;amp; McDonnell.&lt;/p&gt;

&lt;p&gt;Schmidt described full stack developers to be someone who could work across multiple layers of development, from the front-end user interface, to back-end and database and complete the full software development process.&lt;/p&gt;

&lt;p&gt;Full stack engineers work across the boundaries of front end development, back end development and databases.&lt;/p&gt;

&lt;p&gt;The full stack engineering skill set was perfect for small companies and start ups where smaller web applications were the main focus.&lt;/p&gt;

&lt;p&gt;Having full stack engineers who could perform all of these roles appealed to &lt;a href="https://justanothertechlead.com/interviewing/how-to-prepare-for-a-software-engineering-interview/" rel="noopener noreferrer"&gt;hiring managers&lt;/a&gt;, and generally it was feasible to know enough of each of the layers, with the limited technology and frameworks that you could achieve this role.&lt;/p&gt;

&lt;p&gt;Initially, this would mean that someone as able to use something like &lt;a href="http://ASP.Net" rel="noopener noreferrer"&gt;ASP.Net&lt;/a&gt; and created the UI, the back end code and some stored procs. Full stack engineers, compared to software engineers in general, often had to master a broader range of skills across different layers of development.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Full Stack Developers Thrived Initially&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F10%2Ffa784f58-2420-4e3d-87d4-0bf139760c11.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjustanothertechlead.com%2Fwp-content%2Fuploads%2F2024%2F10%2Ffa784f58-2420-4e3d-87d4-0bf139760c11.webp" alt="The year is 2010" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The year is 2010.&lt;/p&gt;

&lt;p&gt;People are leaving theatres across the world in a daze after watching Inception. The iPad was the latest and greatest tech that would change people’s lives for good and full stack developers were thriving in an environment with limited frameworks, libraries and tools.&lt;/p&gt;

&lt;p&gt;Early web applications were less complex.&lt;/p&gt;

&lt;p&gt;The code base was generally bundled as one. Take for example Microsoft WebForms. Your whole code base (minus the database) could be deployed as one.&lt;/p&gt;

&lt;p&gt;Applications were generally monolithic and deployed as a single unit.&lt;/p&gt;

&lt;p&gt;Sometimes two or three units.&lt;/p&gt;

&lt;p&gt;The choices of technology were limited.&lt;/p&gt;

&lt;p&gt;Enterprise products were generally made of a combination of the following:&lt;/p&gt;

&lt;p&gt;Font End / Web Development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;HTML, CSS and JavaScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adobe Flash (already on the way out)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSS Frameworks like Bootstrap of Foundation coming in&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Band-End&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;LAMP Stack&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ruby On Rails&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://ASP.Net" rel="noopener noreferrer"&gt;ASP.Net&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Java and Spring&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Databases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Relational DBs mostly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Emerging noSQL databases, but not very widespread or adopted.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This Tech stack is limited and to some extent can be tamed by good engineers.&lt;/p&gt;

&lt;p&gt;Now comes the question.&lt;/p&gt;

&lt;p&gt;Does full stack engineering mean that you are able to do front end, back end and database in the languages and frameworks you choose, or all languages and frameworks?&lt;/p&gt;

&lt;p&gt;I think it would be harsh to say that you needed to know all languages and frameworks to be classed as a full stack engineer.&lt;/p&gt;

&lt;p&gt;So by that definition, given that I knew HTML/CSS/Javascript, &lt;a href="http://ASP.Net" rel="noopener noreferrer"&gt;ASP.Net&lt;/a&gt; MVC / SPA etc, as well as C# back end and Microsoft SQL Server, I classed myself as full stack.&lt;/p&gt;

&lt;p&gt;I didn’t know Ruby On Rails, but I was confident that if I needed to transition in to being “Full Stack” on Ruby, I would need to &lt;a href="https://justanothertechlead.com/books/the-best-books-for-senior-software-engineers/" rel="noopener noreferrer"&gt;retrain my brain&lt;/a&gt; on the language, but not learn a whole new paradigm.&lt;/p&gt;

&lt;p&gt;The career path for software developers wanting to become full stack was known and was achievable. Similarly, the career path for software engineers, including full stack engineers, was well-defined and achievable, with significant earnings and a strong emphasis on technical skills and education.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Technological Explosion: The Expanding Tech Stack&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4klo5xbqyy3dfj96hhr1.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4klo5xbqyy3dfj96hhr1.jpeg" alt="avatar, icon, placeholder" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By the mid 2010’s, the front-end and web development frameworks were starting to get out of control.&lt;/p&gt;

&lt;p&gt;Angular, React, Vue, Svelte, Knockout, Ember, Backbone all became prolific in the tech industry.&lt;/p&gt;

&lt;p&gt;Some of these were created earlier than the mid 2010’s, but they became prolific then.&lt;/p&gt;

&lt;p&gt;I remember learning Knockout.js (which I still love by the way – an MVVM JS framework!) and thinking I’d be left behind if I didn’t also learn Angular (which later did), let alone the ten other frameworks sky rocketing at that time.&lt;/p&gt;

&lt;p&gt;The back-end changed too.&lt;/p&gt;

&lt;p&gt;We went from mostly monoliths to micro-services.&lt;/p&gt;

&lt;p&gt;Express, Django, Rails, .Net Core.&lt;/p&gt;

&lt;p&gt;It was now more common to separate your concerns and have services that handled one thing and one thing well.&lt;/p&gt;

&lt;p&gt;With the rise of separating your services, also came the rise of more middleware options with which to connect them.&lt;/p&gt;

&lt;p&gt;Kafka, Azure Service Bus, RabbitMq, ActiveMq, TIBCO etc.&lt;/p&gt;

&lt;p&gt;of course with all of the new complexity of having more technologies separated by more middleware, the idea of containerization (Docker, Kubernetes) and CI/CD pipelines became a must.&lt;/p&gt;

&lt;p&gt;After all, you need to be able to test the integration of all of these components.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcv5obwwmofeqfzsqmisc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcv5obwwmofeqfzsqmisc.png" alt="number of frameworks over time. See appendix for the list of frameworks" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Knowledge Overload Problem&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;It’s now 2024 and we have a problem.&lt;/p&gt;

&lt;p&gt;Everyone wants to be part of the full stack engineers group, but the definition has not changed to match the landscape.&lt;/p&gt;

&lt;p&gt;We now have too many technologies, frameworks and DevOps procedures for this to really mean anything.&lt;/p&gt;

&lt;p&gt;Sure, someone can still know one UI framework, one back end technology and one database and call themselves a full stack engineer. But what good is that really? What does that define?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://justanothertechlead.com/careerprogression/best-online-programming-courses-uk/" rel="noopener noreferrer"&gt;To be effective,&lt;/a&gt; you need knowledge of multiple front end, back end, middleware and database technologies.&lt;/p&gt;

&lt;p&gt;We now have a problem of Depth vs Breadth in knowledge terms.&lt;/p&gt;

&lt;p&gt;To have knowledge of enough of these frameworks to fulfil that criteria, you probably have a more shallow set of knowledge than if you specialised in a few.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Rise of Specialization and the Team-Based Model&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Companies in recent years (from what I’ve seen) have been replacing Full Stack with more specialised roles compared to the broader category of software engineers:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://frontendmasters.com/guides/front-end-handbook/2018/what-is-a-FD.html" rel="noopener noreferrer"&gt;Front end&lt;/a&gt;, &lt;a href="https://www.careerexplorer.com/careers/back-end-developer/" rel="noopener noreferrer"&gt;Back end&lt;/a&gt;, dev ops, cloud engineer etc.&lt;/p&gt;

&lt;p&gt;These individual specialists as a team are effective. They have deep knowledge of their domain and as long as processes and communication are good, are able to build spectacular things.&lt;/p&gt;

&lt;p&gt;Deeper expertise tends to mean higher efficiency and better quality control.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Modern “Full Stack” Engineer: Still Alive or a Myth?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Does the Full Stack Engineer still exist?&lt;/p&gt;

&lt;p&gt;Well that depends on your definition.&lt;/p&gt;

&lt;p&gt;In my opinion, it’s a murky area. It always has been.&lt;/p&gt;

&lt;p&gt;The reality is, when building large scale commercial projects, generalisers (or full stack) will need to work with specialists.&lt;/p&gt;

&lt;p&gt;I think Indie Hackers are certainly full stack. I think small companies with smaller code bases can possibly be full stack.&lt;/p&gt;

&lt;p&gt;Can you be an industry wide successful full stack engineer? Probably not.&lt;/p&gt;

&lt;p&gt;People are emerging now as “T shape engineers” which means a generalised knowledge of a wide variety of areas, but specialising in one. This concept fits within the broader category of software engineers, who often need to balance generalist skills with specialized expertise to advance in their careers.&lt;/p&gt;

&lt;p&gt;I think this is a good approach.&lt;/p&gt;

&lt;p&gt;Polyglot engineers are happy writing code in multiple languages, but they may all lay in the same domain (back end for instance).&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Are Full Stack Engineers Truly Dead?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Well that answer really depends on what your definition what Full Stack Engineers are.&lt;/p&gt;

&lt;p&gt;If your definition is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Knows at least one front end/web development framework&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Knows at least one back-end framework&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Knows at least one database&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then probably not.&lt;/p&gt;

&lt;p&gt;If your definition is: Can apply for any Full Stack Engineers role regardless of the technologies that are required, then I would say yes, the term Full Stack Engineer is dead.&lt;/p&gt;

&lt;p&gt;I would suggest that T Shaped Engineer is more fitting and a better target to aim for – A broad knowledge of a lot, with one or two pillar topics of expertise.&lt;/p&gt;

&lt;p&gt;As time marches forwards, the role of the Software Engineer will change anyway. Full stack engineers fit within the broader category of software engineers, who are known for their significant earnings and diverse career pathways.&lt;/p&gt;

&lt;p&gt;AI will be guided by human engineers to craft solutions.&lt;/p&gt;

&lt;p&gt;Maybe Full Stack Engineers can be rekindled with the help of AI?&lt;/p&gt;

&lt;p&gt;Who knows.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion: Embracing the Evolution of the Full Stack Engineering Roles&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;What’s my point with all of this.&lt;/p&gt;

&lt;p&gt;Nothing really.&lt;/p&gt;

&lt;p&gt;I just thought it was interesting.&lt;/p&gt;

&lt;p&gt;I thought it was an unfair bar for people to set for themselves these days and not necessarily the career path many should take.&lt;/p&gt;

&lt;p&gt;Full stack developer is term that was created in a time we no longer live in.&lt;/p&gt;

&lt;p&gt;What title do I give myself? Well, a Software Engineering Manager now, but Software Engineer would be my title of choice if I wasn’t a manager.&lt;/p&gt;

&lt;p&gt;The important thing for an engineer is that they are adaptable. That they can use problem solving and abstract skills to solve problems in any framework and language. That they can hone the knowledge that they have gained over the years to spot pitfalls and advantages to different platforms and frameworks.&lt;/p&gt;

&lt;p&gt;Be adaptable and you will thrive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Appendix
&lt;/h2&gt;

&lt;p&gt;This is the 25 front end Frameworks that are considered “large in the market” in 2024:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;React&lt;/strong&gt; – Popular JavaScript library for building user interfaces, developed by Facebook.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vue.js&lt;/strong&gt; – Progressive framework focused on simplicity and flexibility.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Angular&lt;/strong&gt; – Full-featured framework by Google for complex, large-scale applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Svelte&lt;/strong&gt; – Compiles components at build time for improved runtime performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Next.js&lt;/strong&gt; – React-based framework with server-side rendering and static generation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Nuxt.js&lt;/strong&gt; – Server-side rendering framework for Vue.js.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ember.js&lt;/strong&gt; – Robust framework with strong conventions for ambitious applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Preact&lt;/strong&gt; – Lightweight alternative to React, optimized for performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Solid.js&lt;/strong&gt; – Fast, reactive framework with fine-grained reactivity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lit&lt;/strong&gt; – Web components library by Google, focused on minimal overhead.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Backbone.js&lt;/strong&gt; – Lightweight framework that provides structure with models and collections.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Alpine.js&lt;/strong&gt; – Minimal framework for handling JavaScript behavior in the DOM.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stencil&lt;/strong&gt; – Compiler for generating standards-based web components.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Qwik&lt;/strong&gt; – Designed for delivering instantly loadable applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Marko&lt;/strong&gt; – Framework with reactive components and fast server-side rendering.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mithril&lt;/strong&gt; – JavaScript framework with a small footprint, ideal for SPAs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hyperapp&lt;/strong&gt; – Tiny framework focused on simplicity and modularity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Aurelia&lt;/strong&gt; – Framework known for its clean syntax and extensibility.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Meteor&lt;/strong&gt; – Full-stack framework, but popular for front-end development with JavaScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dojo&lt;/strong&gt; – JavaScript framework known for building high-performance applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inferno&lt;/strong&gt; – High-performance, React-like library focused on speed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blazor&lt;/strong&gt; – Front-end framework by Microsoft for building interactive web UIs with .NET.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Riot.js&lt;/strong&gt; – Simple, lightweight framework for building UI components.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CanJS&lt;/strong&gt; – Focused on building maintainable and performant applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VuePress&lt;/strong&gt; – Static site generator powered by Vue, primarily for documentation sites.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The post &lt;a href="https://justanothertechlead.com/misc/is-the-full-stack-engineer-dead/" rel="noopener noreferrer"&gt;Is the Full Stack Engineer Dead?&lt;/a&gt; appeared first on &lt;a href="https://justanothertechlead.com" rel="noopener noreferrer"&gt;Just Another Tech Lead&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>misc</category>
    </item>
    <item>
      <title>Code, Culture &amp; Cognition: 24.43 – Fast, Good or Cheap. Pick Two.</title>
      <dc:creator>Ben</dc:creator>
      <pubDate>Fri, 25 Oct 2024 13:06:32 +0000</pubDate>
      <link>https://dev.to/justanothertechlead/code-culture-cognition-2443-fast-good-or-cheap-pick-two-2dpc</link>
      <guid>https://dev.to/justanothertechlead/code-culture-cognition-2443-fast-good-or-cheap-pick-two-2dpc</guid>
      <description>&lt;h2&gt;
  
  
  What’s been on my mind this week?
&lt;/h2&gt;

&lt;p&gt;This week I’ve been thinking a lot about rigor in software engineering.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://justanothertechlead.com/misc/who-am-i/" rel="noopener noreferrer"&gt;I write software&lt;/a&gt; for Investment Banks, Hedge Funds, Central Banks and the largest financial institutions in the world.&lt;/p&gt;

&lt;p&gt;For those who aren’t familiar with &lt;a href="https://www.eiopa.europa.eu/digital-operational-resilience-act-dora_en" rel="noopener noreferrer"&gt;DORA&lt;/a&gt; (Digital Operational Resilience Act), it’s a new regulation that’s coming in to play in the EU to enforce certain guidelines to technology written for financial institutions.&lt;/p&gt;

&lt;p&gt;This is to help ensure the safety of everyone’s money.&lt;/p&gt;

&lt;p&gt;It’s pretty important.&lt;/p&gt;

&lt;p&gt;Well, at the opposite end of that spectrum are the ship fast, ship often crew of small contributors and indie hackers.&lt;/p&gt;

&lt;p&gt;I have admiration for them and I think they are amazing at what they do. They create things very very quickly, get feedback and get money.&lt;/p&gt;

&lt;p&gt;I don’t for one second believe that they are intentionally putting out insecure or badly tested code either.&lt;/p&gt;

&lt;p&gt;This is by no means a shot at those people, it’s an observation from someone who has had to build very large-scale, secure, and extensible systems over the years.&lt;/p&gt;

&lt;p&gt;Speed comes at a price.&lt;/p&gt;

&lt;p&gt;It’s the &lt;a href="https://www.business.com/articles/fast-good-cheap-pick-three/" rel="noopener noreferrer"&gt;Iron Triangle&lt;/a&gt;. Pick two: Fast, good or cheap&lt;/p&gt;

&lt;p&gt;Writing and shipping at speed is great to get initial customer feedback. It’s vital in fact. There’s no reason to pour your heart soul and energy into a project that no one will use or need.&lt;/p&gt;

&lt;p&gt;However, once you have gained the initial market fit, you need to reconsider your code base.&lt;/p&gt;

&lt;p&gt;The two general practices for gauging product, and market fit are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ask people to sign up for your service before you even create anything. This shows positive intent&lt;/li&gt;
&lt;li&gt;Create an MVP that people can actually use. If they use it, build that out.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once you have a solid understanding of if your product is wanted and people would pay for it, you need to take a step back and ask yourself:&lt;/p&gt;

&lt;p&gt;“Is the code which I have shipped so far good enough to be the base of a larger project that people can rely on for safety and quality?”&lt;/p&gt;

&lt;p&gt;If the answer is no, take a step back and assess.&lt;/p&gt;

&lt;p&gt;You know people want it, you know people will pay for it. Put the time and effort in to building it properly.&lt;/p&gt;

</description>
      <category>newsletter</category>
    </item>
    <item>
      <title>Top Software Engineering Personal Statement: Tips and Examples</title>
      <dc:creator>Ben</dc:creator>
      <pubDate>Fri, 25 Oct 2024 08:16:20 +0000</pubDate>
      <link>https://dev.to/justanothertechlead/top-software-engineering-personal-statement-tips-and-examples-kg0</link>
      <guid>https://dev.to/justanothertechlead/top-software-engineering-personal-statement-tips-and-examples-kg0</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fin3sgqbrqwputg5egmr4.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fin3sgqbrqwputg5egmr4.jpeg" alt="Software Engineering Personal Statement" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A good Software Engineering Personal Statement statement for software engineering is your ticket to a &lt;a href="https://justanothertechlead.com/interviewing/effective-junior-software-engineer-resumes-examples-and-expert-tips-for-a-winning-job-search/" rel="noopener noreferrer"&gt;tech career&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As computer technology continues to evolve, writing a good personal statement is more important than ever.&lt;/p&gt;

&lt;p&gt;With my years of reviewing &lt;a href="https://justanothertechlead.com/interviewing/how-to-prepare-for-a-software-engineering-interview/" rel="noopener noreferrer"&gt;interview&lt;/a&gt; applications I’ll show you how to write a great statement that shows your passion for software engineering and computer tech.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing a Strong personal statement for software engineering
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffqz3irot5wjxcypk7yg7.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffqz3irot5wjxcypk7yg7.jpeg" alt="typewriter, ballpoint, writing" width="640" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your statement should start by telling your story of how you got into software engineering, especially if you started early.&lt;/p&gt;

&lt;p&gt;Many successful candidates show their natural aptitude for computer programming from an early age or early projects.&lt;/p&gt;

&lt;p&gt;Whether you started by exploring computer systems or teaching yourself to code, these early experiences form the foundation of your narrative.&lt;/p&gt;

&lt;p&gt;When writing your UCAS personal statement focus on authenticity.&lt;/p&gt;

&lt;p&gt;Universities want to see real enthusiasm for computer science and practical experience.&lt;/p&gt;

&lt;p&gt;Your statement should show both your theoretical understanding and hands on experience of computer tech and how these have prepared you for a career as a software developer.&lt;/p&gt;

&lt;p&gt;Don’t forget admissions tutors are looking for more than technical knowledge.&lt;/p&gt;

&lt;p&gt;They want to see your motivation, creativity and potential for growth in software engineering.&lt;/p&gt;

&lt;p&gt;Consider including examples of how you’ve overcome challenges or contributed to team projects.&lt;/p&gt;

&lt;p&gt;Tell them of times you’ve shown leadership skills, or used different methods of running programs.&lt;/p&gt;

&lt;p&gt;What is your favourite programming language and why?&lt;/p&gt;

&lt;p&gt;Personal statements should be just that. Personal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Engineering Fundamentals
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr16hpnk266wux0lad74d.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr16hpnk266wux0lad74d.jpeg" alt="binary code, binary, binary system" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Software has changed the modern world so you need to show you understand the basics.&lt;/p&gt;

&lt;p&gt;Your statement should show how computer science intersects with different industries and innovations including artificial intelligence and &lt;a href="https://www.investopedia.com/terms/d/data-analytics.asp" rel="noopener noreferrer"&gt;data analytics&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Key areas to cover in your statement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Your experience of different areas of computer science&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your approach to problem solving in technical situations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How software engineering drives innovation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your practical computer programming projects&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Emerging computer tech trends&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consider including specific projects or experiences that show your understanding of the basics.&lt;/p&gt;

&lt;p&gt;This could be coursework, personal projects or extracurricular activities that show your commitment to learning and applying software engineering concepts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Skills
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1ru5dqsqjry7o95n5qd.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1ru5dqsqjry7o95n5qd.jpeg" alt="technical, drawing, blueprint" width="427" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In software engineering &lt;a href="https://justanothertechlead.com/books/the-best-books-for-senior-software-engineers/" rel="noopener noreferrer"&gt;theoretical knowledge&lt;/a&gt; must be balanced with practical skills. Your statement should show:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Projects that demonstrate your computer science skills&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Real world applications of your software engineering skills&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Problem solving in development scenarios&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Experience of different programming languages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Software development methodologies&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Include specific examples of how you’ve applied computer science concepts in real world scenarios.&lt;/p&gt;

&lt;p&gt;This shows not just your knowledge but your ability to turn theory into practice.&lt;/p&gt;

&lt;p&gt;Describe any significant projects you’ve done, challenges you’ve overcome and lessons you’ve learned from hands on experience.&lt;/p&gt;

&lt;p&gt;When talking about technical projects focus on your problem solving process rather than the end result.&lt;/p&gt;

&lt;p&gt;Explain how you approached the problem, what alternatives you considered and why you made specific technical decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future and Professional Development
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgz0v1ynbx5sdetnh7uy9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgz0v1ynbx5sdetnh7uy9.png" alt="development, web, design" width="640" height="636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Software engineering is constantly evolving so continuous learning is essential.&lt;/p&gt;

&lt;p&gt;Your statement should show your commitment to growth and your vision for the field.&lt;/p&gt;

&lt;p&gt;How do you plan to build on your computer science foundation and adapt to new ideas and emerging technologies?&lt;/p&gt;

&lt;p&gt;Consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Areas of software engineering that interest you&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technologies or &lt;a href="https://www.blackduck.com/blog/top-4-software-development-methodologies.html" rel="noopener noreferrer"&gt;methodologies&lt;/a&gt; you want to get into&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How you keep up to date with industry news&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your long term career goals&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What you hope to contribute to the field&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Writing and Structure
&lt;/h2&gt;

&lt;p&gt;When writing your &lt;a href="https://www.ucas.com/applying/applying-to-university/writing-personal-statement/how-write-personal-statement" rel="noopener noreferrer"&gt;UCAS statement&lt;/a&gt; keep it simple and logical from your initial interest in software engineering to your future goals.&lt;/p&gt;

&lt;p&gt;Remember:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Start with a hook that shows your passion for software engineering&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show practical computer programming experience&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show understanding of computer science basics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Highlight problem solving experiences&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Link your background to your software engineering goals&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Keep your writing clear, concise and jargon free unless you really need to use technical terms.&lt;/p&gt;

&lt;p&gt;Each paragraph should flow into the next to tell the story of your journey and aspirations in software engineering.&lt;/p&gt;

&lt;p&gt;This personal statement is also a good way to show off your communications skills.&lt;/p&gt;

&lt;p&gt;Communication skills are key skills that help in solving problems as a group, team work uni business in general.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm3r2b86esjf6o6y3gvp8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm3r2b86esjf6o6y3gvp8.jpeg" alt="place-name sign, enough, off" width="640" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your statement should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Show your commitment to computer science&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show software engineering experience&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show understanding of computer tech&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show problem solving&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Show a clear vision for your future in software engineering&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember to proof read carefully and make sure it flows and includes all the key points.&lt;/p&gt;

&lt;p&gt;A good personal statement can set you apart in a competitive software engineering and computer science field.&lt;/p&gt;

&lt;h2&gt;
  
  
  Revising and Refining
&lt;/h2&gt;

&lt;p&gt;Take time to review and refine your statement multiple times.&lt;/p&gt;

&lt;p&gt;Share it with mentors, teachers or professionals in the field for feedback.&lt;/p&gt;

&lt;p&gt;Consider getting both technical and non technical people to review it as this will help ensure it’s technically correct and readable.&lt;/p&gt;

&lt;p&gt;Look out for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The overall flow and structure of your story&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The technical vs personal balance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clarity of your examples and explanations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Strength of your opening and closing paragraphs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authenticity of your voice throughout&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try to submit a statement that meets the formal requirements and shows your real passion for tech and development.&lt;/p&gt;

&lt;p&gt;With the right mix of technical knowledge, practical experience and personal insights your statement will show why you’re the perfect candidate for software engineering.&lt;/p&gt;

&lt;p&gt;Hopefully, you now have all you need to perfect your software engineering personal statement.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://justanothertechlead.com/interviewing/top-software-engineering-personal-statement-tips-and-examples/" rel="noopener noreferrer"&gt;Top Software Engineering Personal Statement: Tips and Examples&lt;/a&gt; appeared first on &lt;a href="https://justanothertechlead.com" rel="noopener noreferrer"&gt;Just Another Tech Lead&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>interviewing</category>
    </item>
    <item>
      <title>Understanding Idempotency in Software: A Guide to Error-Free Systems</title>
      <dc:creator>Ben</dc:creator>
      <pubDate>Fri, 18 Oct 2024 11:44:15 +0000</pubDate>
      <link>https://dev.to/justanothertechlead/understanding-idempotency-in-software-a-guide-to-error-free-systems-ofm</link>
      <guid>https://dev.to/justanothertechlead/understanding-idempotency-in-software-a-guide-to-error-free-systems-ofm</guid>
      <description>&lt;h1&gt;
  
  
  Understanding Idempotency in Software: A Guide to Error-Free Systems
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What is Idempotency in Software?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F253a7c119r80l3bybbaq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F253a7c119r80l3bybbaq.jpg" alt="Idempotency in software" width="300" height="199"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Idempotency in it’s simplest form is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The ability for a service or consumer to read the same message multiple times yielding the same results as if they only read it once.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To state that as an example:&lt;/p&gt;

&lt;p&gt;Imagine I have a Kafka topic with one producer and one consumer.&lt;/p&gt;

&lt;p&gt;The producer takes “new user” data from a web UI and publishes that in a message to Kafka in the form of a “createUserRequest”.&lt;/p&gt;

&lt;p&gt;The consumer’s job is to read the createUserRequest and:&lt;/p&gt;

&lt;p&gt;Create a row in a database table&lt;/p&gt;

&lt;p&gt;Send a welcome email&lt;/p&gt;

&lt;p&gt;It should not matter if the consumer reads that createUserRequest 1 time or 100 times, there should only ever be one row in the database and one welcome email sent. Idempotency guarantees this. You will get the same result from that service if you call it once or many times.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9z8lxcjeq3ugwghg7dja.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9z8lxcjeq3ugwghg7dja.gif" alt="Idempotent" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I.e. An idempotent service can process the same request more than once without the side effects happening more than once.&lt;/p&gt;

&lt;p&gt;Idempotency is essential in distributed systems, where network failures or system crashes can lead to the same message being processed multiple times.&lt;/p&gt;

&lt;h2&gt;
  
  
  Idempotent Functions
&lt;/h2&gt;

&lt;p&gt;As well as having idempotent services, you also have idempotent functions.&lt;/p&gt;

&lt;p&gt;Idempotent functions produce the same output given the same inputs, regardless of the number of times they are applied.&lt;/p&gt;

&lt;p&gt;Same input. Same outcome. Same result.&lt;/p&gt;

&lt;p&gt;Importance of Idempotency&lt;/p&gt;

&lt;p&gt;Imagine you had a system that was dealing with charging a client’s bank account for purchasing a new item. Let’s say an iPad.&lt;/p&gt;

&lt;p&gt;You have one service whose job it is to deal with the purchasing (let’s call it purchaseSvc) and another whose sole purpose is to take a request to withdraw funds for a purchased item (let’s call it fundsSvc).&lt;/p&gt;

&lt;p&gt;Imagine that purchaseSvc has a bug whereby it sends the same message twice due to a looping error.&lt;/p&gt;

&lt;p&gt;This means that for the same user action (buying one iPad), the fundsSvc receives the message twice.&lt;/p&gt;

&lt;p&gt;Now let me ask you this.&lt;/p&gt;

&lt;p&gt;Would you be happy to be charged twice for the purchase of one iPad? Probably not!&lt;/p&gt;

&lt;p&gt;Through the fundsSvc service being idempotent, it should recognise that it has received multiple identical requests and not process it a second time. Your hard earned money is safe!&lt;/p&gt;

&lt;p&gt;A duplicate message should not affect the running of a system.&lt;/p&gt;

&lt;p&gt;Idempotent operations are crucial for scalability and reliability in distributed systems.&lt;/p&gt;

&lt;p&gt;Idempotency simplifies error handling, concurrency management, debugging, and monitoring in operations and APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Idempotent vs. Safe
&lt;/h2&gt;

&lt;p&gt;Idempotency ensures that repeated operations yield the same outcome, while safety ensures that the returned value is not modified.&lt;/p&gt;

&lt;p&gt;A safe method does not change the value that is returned, it reads – but it never writes.&lt;/p&gt;

&lt;p&gt;Idempotent methods are safe, but not all safe methods are idempotent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementing Idempotency in APIs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv58dikcupdxtdswfn2qe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv58dikcupdxtdswfn2qe.jpg" alt="API Design" width="300" height="199"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://www.atlassian.com/microservices/microservices-architecture/distributed-architecture#:~:text=a%20distributed%20system%3F-,A%20distributed%20system%20is%20a%20collection%20of%20computer%20programs%20that,synchronize%20over%20a%20common%20network." rel="noopener noreferrer"&gt;distributed systems&lt;/a&gt;, the use of unique identifiers on the messages is hugely important.&lt;/p&gt;

&lt;p&gt;There are many types of IDs that are used on messages in distributed systems: SagaId, TransactionId, correlationId, messageId.&lt;/p&gt;

&lt;p&gt;The one we care about for idempotent operations is the messageId. This uniquely identifies that specific message.&lt;/p&gt;

&lt;p&gt;Now that we have a way to identify if multiple requests are actually the same message multiple times, we can put in place the code required to be idempotent.&lt;/p&gt;

&lt;p&gt;When first reading the message, you want to take note of the ID. You then need to do a check against a local database to see whether or not you have already seen that message.&lt;/p&gt;

&lt;p&gt;There are two different outcomes to this check:&lt;/p&gt;

&lt;p&gt;You’ve not seen this message before. You should insert a row into your database stating that you have now received the message and process the message&lt;/p&gt;

&lt;p&gt;You have seen the message before, and the message is completed. Disregard this new message as you don’t want to apply the same operation multiple times.&lt;/p&gt;

&lt;p&gt;Remember, the key point here is that no matter how many times you receive the same message, you don’t want to process it more than once.&lt;/p&gt;

&lt;p&gt;Idempotency is crucial in APIs because a resource may be called multiple times if the network is interrupted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Idempotency
&lt;/h2&gt;

&lt;p&gt;Being Idempotent allows systems to be consistent and predictable. Even when faced with network disruptions, service restarts, and retries, you can guarantee “process at most once” semantics and ensure that you get the same result when calling a service once vs many times.&lt;/p&gt;

&lt;p&gt;A service being idempotent also simplifies error situations where having duplicate data may cause bugs. How would you for instance undo the duplicate withdrawal of funds mentioned above?&lt;/p&gt;

&lt;p&gt;Some errors such as a duplicate row in a database may be “easy” to undo, but what if the side effect of processing a message is updating an external system to yours? Do you always have a way to undo that?&lt;/p&gt;

&lt;h2&gt;
  
  
  Idempotency in API Design
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://medium.com/@9cv9official/what-are-get-post-put-patch-delete-a-walkthrough-with-javascripts-fetch-api-17be31755d28" rel="noopener noreferrer"&gt;GET, HEAD, PUT, and DELETE&lt;/a&gt; request methods are idempotent, as they don’t change the data or have the same effect when repeated.&lt;/p&gt;

&lt;p&gt;POST is not inherently idempotent, as making the same POST request multiple times can result in different outcomes or create multiple instances of submitted data.&lt;/p&gt;

&lt;p&gt;Idempotency in API design ensures that the server’s state remains consistent and unchanged, even if the request is repeated multiple times.&lt;/p&gt;

&lt;h2&gt;
  
  
  Idempotency in Distributed Systems
&lt;/h2&gt;

&lt;p&gt;Being idempotent is a concept. That concept can be implemented as part of a point-to-point call or in pub/sub architectures.&lt;/p&gt;

&lt;p&gt;In distributed systems, one subscriber consuming a message more than once could lead to a chain effect.&lt;/p&gt;

&lt;p&gt;If service X reads from your middleware and then produces a message back which downstream consumers pick up, service X reading the message and processing it more than once leads to their downstream services then having multiple messages to consume (probably with their own unique Ids so they seem like two genuinely separate messages).&lt;/p&gt;

&lt;p&gt;Idempotency in distributed systems ensures that even with network failures or system crashes, your system will have overall correctness.&lt;/p&gt;

&lt;p&gt;It is important that all services in a distributed system define their publish and consume semantics. Do they guarantee to consume at most once? Do they guarantee publish at least once?&lt;/p&gt;

&lt;h2&gt;
  
  
  Idempotency in Database Migrations
&lt;/h2&gt;

&lt;p&gt;To properly be able to test and roll out schema changes to a database, you need to be able to re-run the script multiple times ensuring that each run is not impacted by the previous or next run.&lt;/p&gt;

&lt;p&gt;Usually you would do this via checking if assets exist, dropping and then recreating.&lt;/p&gt;

&lt;p&gt;Something like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foggz0cl8mjkufi57g1tp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foggz0cl8mjkufi57g1tp.png" alt="SQL Exists" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Idempotency in Message Queueing Systems
&lt;/h2&gt;

&lt;p&gt;A message queue can make a system idempotent by ensuring that even if a message is delivered multiple times, the operation it triggers is executed only once.&lt;/p&gt;

&lt;p&gt;Idempotency in message queueing systems ensures that the system can handle retries and failures without affecting the overall correctness.&lt;/p&gt;

&lt;p&gt;Idempotent message queueing systems ensure that the same message is not processed multiple times.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Idempotency is a powerful concept in &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/" rel="noopener noreferrer"&gt;software engineering&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Idempotent operations guarantee that the same request is not processed more than once and the receiving service does not have the same effect twice: i.e. sending an email twice, creating two rows in a database etc.&lt;/p&gt;

&lt;p&gt;By implementing idempotent functions, APIs and infrastructure architecture (queues) systems become more robust and less prone to failure and data inconsistency.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://justanothertechlead.com/software/understanding-idempotency-in-software-a-guide-to-error-free-systems/" rel="noopener noreferrer"&gt;Understanding Idempotency in Software: A Guide to Error-Free Systems&lt;/a&gt; appeared first on &lt;a href="https://justanothertechlead.com" rel="noopener noreferrer"&gt;Just Another Tech Lead&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>software</category>
    </item>
    <item>
      <title>Effective Junior Software Engineer Resumes: Examples and Expert Tips for a Winning Job Search</title>
      <dc:creator>Ben</dc:creator>
      <pubDate>Tue, 08 Oct 2024 05:49:21 +0000</pubDate>
      <link>https://dev.to/justanothertechlead/effective-junior-software-engineer-resumes-examples-and-expert-tips-for-a-winning-job-search-35fc</link>
      <guid>https://dev.to/justanothertechlead/effective-junior-software-engineer-resumes-examples-and-expert-tips-for-a-winning-job-search-35fc</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ub39huw189yw246fu1q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ub39huw189yw246fu1q.png" alt="Junior Software Engineer Resumes" width="640" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When thinking about Junior Software Engineer Resumes, we first need to define what a junior software engineer is.&lt;/p&gt;

&lt;p&gt;This may be controversial, or maybe not, but my definition is any engineer with less than four years experience.&lt;/p&gt;

&lt;p&gt;Now, bear with me here because it does get a little tricky when we start to talk about “experience”.&lt;/p&gt;

&lt;p&gt;A Software Engineer who has done the same thing every year for twenty years could be considered to have one year of experience twenty times over.&lt;/p&gt;

&lt;p&gt;However someone with 4 years of experience who has had two completely different roles in different environments and different sectors could be considered to have a wider variety of experience.&lt;/p&gt;

&lt;p&gt;For the sake of having to come up with a generalised number of years, I say less than four years is a junior software engineer.&lt;/p&gt;

&lt;p&gt;Great. Now that we’ve got that out of the way, let’s look at what the role of a Junior software engineer actually is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Junior Software Engineer Role
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqlqq6jhsuzw8kixhvw90.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqlqq6jhsuzw8kixhvw90.jpeg" alt="code, coding, computer" width="640" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I find that one of the most important things you can do with any employee is define what their role should be.&lt;/p&gt;

&lt;p&gt;Without this common understanding, it’s difficult for both &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/" rel="noopener noreferrer"&gt;leader&lt;/a&gt; and employee to measure if someone is doing well.&lt;/p&gt;

&lt;p&gt;As always, a generic job title will differ from company to company, but in my experience, these are the common roles that make up a Junior Software Engineer role.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technical skills
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1jwmd2jy14te51wzqnbb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1jwmd2jy14te51wzqnbb.png" alt="technical, technology, device" width="640" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A Junior software engineer will develop, test and implement software solutions usually under the guidance of a&lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/" rel="noopener noreferrer"&gt;senior software engineer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This means writing code that may or may not have been designed by the junior software engineer.&lt;/p&gt;

&lt;p&gt;The extent and complexity of the tasks given to the junior will depend on the company and competency of the junior software engineer.&lt;/p&gt;

&lt;p&gt;Programming languages will vary depending on the company, but in general if you are a junior the company will more than likely not require previous experience in that programming language.&lt;/p&gt;

&lt;p&gt;Other areas such as database management, web development or system performance may or may not be a factor depending on the role for which you are applying and the level of experience you already have.&lt;/p&gt;

&lt;p&gt;I would suggest if you are applying for a role that is focused on something like system performance, that you have a solid understanding of the fundamentals even if you don’t have first hand experience.&lt;/p&gt;

&lt;p&gt;You will want to be able to debug existing software as well as write new, green field software and have some basic understanding of user interfaces (even if you are applying for a back end role, it doesn’t hurt)&lt;/p&gt;

&lt;h3&gt;
  
  
  Methodologies
&lt;/h3&gt;

&lt;p&gt;Being a Software Engineer isn’t just writing thousands of lines of code with your headphones on and some techno blazing. Despite what the movies show us, coding skills aren’t the only thing you need to be a great software engineer.&lt;/p&gt;

&lt;p&gt;As a Junior software engineer, you won’t need to have experience with project management methodologies, but having a basic understanding of a difference between agile methodologies and Waterfall will impress hiring &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/" rel="noopener noreferrer"&gt;managers&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Problem solving skills
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6uk9681dpzvw49ojfwgb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6uk9681dpzvw49ojfwgb.jpeg" alt="hand, rubik, cube" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All useful software solutions solve problems. They meet customers needs and make the clients life easier.&lt;/p&gt;

&lt;p&gt;As a junior software engineer, you may or may not have real world experience in solving the clients problems, but you should have a solid set of problem solving skills.&lt;/p&gt;

&lt;p&gt;One of the differences between average engineers and great engineers is the ability to truly understand the problem that the client is having and using your skills to solve their problems.&lt;/p&gt;

&lt;p&gt;As Henry Ford once said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If I’d have asked customers what they wanted they’d have said “faster horses”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The great engineers understand the problem and create a solution. Average engineers just do what the client asks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Soft Skills
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4f3geo2lcr8y7tjdztdm.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4f3geo2lcr8y7tjdztdm.jpeg" alt="speech bubbles, nature, balloons" width="640" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No large companies succeed based on individual people working in silo’s, especially those who are trying to solve clients needs.&lt;/p&gt;

&lt;p&gt;For a junior software engineer to grow effectively, they will need to have good communication skills and general soft skills to enable them to ask the right questions, get the right feedback and build a community of people around them that can help them develop as a software engineer.&lt;/p&gt;

&lt;p&gt;When hiring managers are interviewing, they are &lt;a href="https://justanothertechlead.com/interviewing/how-to-prepare-for-a-software-engineering-interview/" rel="noopener noreferrer"&gt;interviewing&lt;/a&gt; for fit as much as technical skills.&lt;/p&gt;

&lt;p&gt;If someone isn’t a team player or won’t fit in to a team, they will likely not get the job.&lt;/p&gt;

&lt;p&gt;There’s nothing more costly than a bad hire and nothing more toxic to a good team than a bad fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Crafting a Winning Resume
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Resume Structure and Layout
&lt;/h3&gt;

&lt;p&gt;Here’s where the fun starts.&lt;/p&gt;

&lt;p&gt;How do you get someone who does not know you, to notice you? How do you differentiate yourself from the rest?&lt;/p&gt;

&lt;h4&gt;
  
  
  Summary / Introduction
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxcrdl2ox3c146g8js82v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxcrdl2ox3c146g8js82v.png" alt="public speaking, introduction, microphone" width="640" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before we talk about the context of the CV/Resume, let’s talk about personalisation.&lt;/p&gt;

&lt;p&gt;You should always (ALWAYS for those who couldn’t hear me at the back) personalise your CV for the job to which you are applying.&lt;/p&gt;

&lt;p&gt;I’m not saying that you should change it to lie and make yourself seem more suited, I’m saying that you should emphasise experiences and skills that you do have that are more relevant to the role in question.&lt;/p&gt;

&lt;p&gt;Cover letters are a matter for another discussion.&lt;/p&gt;

&lt;p&gt;Start with a quick elevator pitch of yourself. This should grab attention and let them know why they should continue to read your CV. Going back to what I said above about personalising the CV to suit the role. Do that here. Make them understand in the first one or two sentences why you are a good fit for the role.&lt;/p&gt;

&lt;p&gt;After the summary section comes the skills.&lt;/p&gt;

&lt;h4&gt;
  
  
  Skills
&lt;/h4&gt;

&lt;p&gt;Highlight any skills that are relevant to that role at the top of the skills section (again, personalise the CV) to grab the attention of the &lt;a href="https://justanothertechlead.com/interviewing/how-to-prepare-for-a-software-engineering-interview/" rel="noopener noreferrer"&gt;interviewer&lt;/a&gt;. If the role requires database knowledge, list the databases on which you have worked at the top. If the role requires that you ride a horse. Horse riding should be the very top skill in the section. You get the point.&lt;/p&gt;

&lt;p&gt;“Technical Skills” is a broad term. You can include (but are not limited to):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Programming Languages&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codecademy.com/article/what-is-an-ide" rel="noopener noreferrer"&gt;IDEs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Project management software&lt;/li&gt;
&lt;li&gt;Problem solving skills&lt;/li&gt;
&lt;li&gt;Version control systems&lt;/li&gt;
&lt;li&gt;Software development methodologies&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Work Experience
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fer5pvfhkm1jny8jxiuu7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fer5pvfhkm1jny8jxiuu7.png" alt="construction, building, business" width="640" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, in reverse chronological order, list any relevant software engineering work experience.&lt;/p&gt;

&lt;p&gt;These should be fairly brief as your whole CV should be no more than 2 pages of A4, but with enough information to convey what you worked on.&lt;/p&gt;

&lt;p&gt;You want to emphasise deep knowledge of what you worked on here. The customer problem it solved, the deliverables and your involvement.&lt;/p&gt;

&lt;p&gt;I learn nothing when I read &lt;em&gt;“Converted 10 python services to python3.9”.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I want to know the reason behind it, the impetuous, the benefits, the technical challenges. Bring me in to the story.&lt;/p&gt;

&lt;h3&gt;
  
  
  Showcasing Your Experience and Skills
&lt;/h3&gt;

&lt;p&gt;Junior software engineers may not have a large backlog of work achievements from which to draw.&lt;/p&gt;

&lt;p&gt;You may however, have contributions to open source software, personal projects, your own Blog, &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; repo etc.&lt;/p&gt;

&lt;p&gt;Highlighting these may set you apart from the pack. In my view, these are not the same as commercial work experience, but certainly do show an extra level of dedication and willing to learn.&lt;/p&gt;

&lt;p&gt;You may also have interned somewhere or done a placement. These are hugely important to include at the start of your career.&lt;/p&gt;

&lt;h3&gt;
  
  
  Highlighting Your Education and Certifications
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpi3iibsdumyk3ehxg7rk.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpi3iibsdumyk3ehxg7rk.jpeg" alt="glasses, reading, books" width="640" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The end of the CV is where you add your qualifications. These again are generally in reverse chronological order.&lt;/p&gt;

&lt;p&gt;List all of your relevant (or not relevant) degrees such as computer science, maths etc, with their start and completion dates as well as the university from which you graduated.&lt;/p&gt;

&lt;p&gt;Highlight any specific modules or courses you may have done that relate to the role to which you are applying.&lt;/p&gt;

&lt;p&gt;Add any extra qualifications or relevant technical skills that you believe can be transferred to the role of software engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Essential Skills for Junior Software Engineers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Programming languages
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3isemwjz6mw7cl3p1uj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3isemwjz6mw7cl3p1uj.jpeg" alt="binary code, binary, binary system" width="640" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You should known at least one programming language to start your path in to software engineering.&lt;/p&gt;

&lt;p&gt;Whether that be from a formal education from a computer science university, or a personal project that you are able to display to the hiring managers.&lt;/p&gt;

&lt;p&gt;If you’re not sure where to start, google “top programming languages in demand”. Or just choose Python (Python appeared in 27% of job adverts in the UK last year)&lt;/p&gt;

&lt;h3&gt;
  
  
  Software Development Tools
&lt;/h3&gt;

&lt;p&gt;Tooling sucks a Git, Jenkins, Docker. All of these are considered fairly essential in the day to day life of a software developer. I would say that these are less relevant in a hiring situation of a junior software engineer though as they can be easily taught.&lt;/p&gt;

&lt;h3&gt;
  
  
  Problem Solving abilities
&lt;/h3&gt;

&lt;p&gt;Most of software engineering boils down to solving problems. If you have the right mindset and have a brain that allows you to logically step through breaking down a problem, you’ll go far in software engineering.&lt;/p&gt;

&lt;h3&gt;
  
  
  Software Development Patterns
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6tzol137upadp3s08ddp.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6tzol137upadp3s08ddp.jpeg" alt="coding, programming, css" width="640" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to set yourself apart from the crowd, learn some &lt;a href="https://refactoring.guru/design-patterns" rel="noopener noreferrer"&gt;design patterns&lt;/a&gt; and methodologies. Tell the hiring managers where you have applied them and why. Show that not only can you solve a problem, but you can solve it with good design in mind.&lt;/p&gt;

&lt;p&gt;Again, as a junior software engineer, you may not require this. But it will be a differentiator.&lt;/p&gt;

&lt;h3&gt;
  
  
  Software Testing
&lt;/h3&gt;

&lt;p&gt;Again, you don’t need to have deep knowledge of this as a junior software engineer, but you need to have an understanding of s&lt;a href="https://www.ibm.com/topics/software-testing" rel="noopener noreferrer"&gt;oftware testing&lt;/a&gt; and how that leads to high quality software solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips for a Winning Job Search
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuefw8l1gxf0ado75cev.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuefw8l1gxf0ado75cev.jpeg" alt="dream job, application, job" width="640" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I mention this once of twice above, but tailor your CV to the job to which you are applying.&lt;/p&gt;

&lt;p&gt;This really is key.&lt;/p&gt;

&lt;p&gt;You should ensure that the skills and experience you have that match the role for which you are applying are in the opening summary and top of the skills lists.&lt;/p&gt;

&lt;p&gt;Look at the job advert and look for keywords that they use. See if you can build these keywords in to your CV. When hiring managers are skimming through CVs, their eyes will be drawn to the words and phrases that they themselves wrote in the advert.&lt;/p&gt;

&lt;p&gt;Get your professional summary at the top as good as it can be. Really really focus on this. As the saying goes, “you don’t get a second chance at a first impression”. This may be the make or break for you. Write it once, sleep on it, read it and re-write it. Repeat this until you are really happy with it.&lt;/p&gt;

&lt;p&gt;Order your technical skills section based on the needs of the role to which you are applying. The most important skills for that particular job at the top. The programming languages that you know that are applicable to the role, highlight them. No really. Make them bold. Make it easy for the person reviewing your CV. If you make their life easier, you are more likely to get an &lt;a href="https://justanothertechlead.com/interviewing/how-to-prepare-for-a-software-engineering-interview/" rel="noopener noreferrer"&gt;interview&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Write enough detail that shows the reader that you have a good understanding of the projects on which you worked, but being brief enough that they don’t get bored. I can guarantee you that they won’t be reading three full A4 pages of a CV. Make it snappy, make it engaging.&lt;/p&gt;

&lt;p&gt;Highlight the qualifications that you have that contain relevant skills to the job. Computer Science degree – include this front and centre. Recognised certificate in some form of web development – include this. Certificate in 100m backstroke – probably leave this off.&lt;/p&gt;

&lt;p&gt;There are two approaches to choosing where to send your CV:&lt;/p&gt;

&lt;p&gt;1) Shotgun the CV – send it to as many people as you can. Regardless of if the job is perfect. As long as they use the phrase “junior software engineer“ or “Software development”, send send send. The sheer volume should get you some responses.&lt;/p&gt;

&lt;p&gt;2) Tailor your job search to the job descriptions that specifically meet your needs. The programming languages that you know. The software development methodologies that you have already used. The technical skills that you already have. This will allow you to truly tailor the CV and have a better chance of rising to the top of the pile of applicants.&lt;/p&gt;

&lt;h2&gt;
  
  
  Junior Software Engineer Resume Examples and Templates
&lt;/h2&gt;

&lt;p&gt;If you would like me to send you some pre-written templates, sign up to my Newsletter and reply to the welcome email with the word “Template”&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Feedback and Improving Your Resume
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgq8je7rvosqu5dqbube8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgq8je7rvosqu5dqbube8.jpeg" alt="board, chalk, feedback" width="640" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Getting feedback on your CV/Resume is crucial. Sometimes you can just be a little to close to it to see the wood for the trees.&lt;/p&gt;

&lt;p&gt;Ideally you would ask someone in the software engineering field to look over it and give tips and feedback, but if you don’t have that option then at least get someone to read through it and give you feedback on the grammar, phrasing and detail.&lt;/p&gt;

&lt;p&gt;When people write about projects on which they have worked, they can sometimes miss details that they think are obvious. Having an extra set of eyes who could critique the write up of your professional experience section and tell you where you may have missed some well needed information is crucial.&lt;/p&gt;

&lt;p&gt;Keep your CV up to date and fresh.&lt;/p&gt;

&lt;p&gt;As you develop your skills, update your CV to reflect the new experiences and achievements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The job market is tough. More people than ever are entering the field of software engineering.&lt;/p&gt;

&lt;p&gt;A well-crafted junior software engineer resume is essential for a winning job search.&lt;/p&gt;

&lt;p&gt;By highlighting relevant skills, experience, and education, you can increase your chances of getting through to the interview stage.&lt;/p&gt;

&lt;p&gt;Remember to tailor your resume to the job description, use keywords, and focus on strategies specific to junior software engineering roles.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://justanothertechlead.com/interviewing/effective-junior-software-engineer-resumes-examples-and-expert-tips-for-a-winning-job-search/" rel="noopener noreferrer"&gt;Effective Junior Software Engineer Resumes: Examples and Expert Tips for a Winning Job Search&lt;/a&gt; appeared first on &lt;a href="https://justanothertechlead.com" rel="noopener noreferrer"&gt;Just Another Tech Lead&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>interviewing</category>
    </item>
    <item>
      <title>How to ACE a Software Engineering Interview</title>
      <dc:creator>Ben</dc:creator>
      <pubDate>Tue, 11 Jun 2024 12:04:24 +0000</pubDate>
      <link>https://dev.to/justanothertechlead/how-to-ace-a-software-engineering-interview-3of1</link>
      <guid>https://dev.to/justanothertechlead/how-to-ace-a-software-engineering-interview-3of1</guid>
      <description>&lt;h2&gt;
  
  
  How to ACE a Software Engineering Interview
&lt;/h2&gt;

&lt;p&gt;I’ve recently joined X and signed up for the Software Engineering community.&lt;/p&gt;

&lt;p&gt;There have been a lot of posts from newer engineers who are nervous or unprepared for interviews they’ve got coming up.&lt;/p&gt;

&lt;p&gt;I thought rather than answer them each independently, I’d write a post about how to prepare for a software engineering interview.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are my credentials?
&lt;/h3&gt;

&lt;p&gt;I’ve read thousands of CVs/Resumes and interviewed probably a thousand &lt;a href="https://justanothertechlead.com/leadership/coaching/" rel="noopener noreferrer"&gt;people&lt;/a&gt; in various companies for which I’ve worked.&lt;/p&gt;

&lt;p&gt;I ran the interviewing cohort of about 30 interviewers in my current company for about 4 years in which I helped set the standards of what is expected for an interview, ensured the same process was adhered to and set the expectations of what a good candidate looked like.&lt;/p&gt;

&lt;p&gt;I’ll outline here how to prep in a non technical manner for anyone with less than five years of commercial experience. So people I would still include in the Junior bucket.&lt;/p&gt;

&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5l6k4mjba2zg520qts94.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5l6k4mjba2zg520qts94.jpeg" alt="Disclaimer" width="612" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every company has a different interview process. I’ve interviewed people when I worked at start ups, software houses and large multi national companies.&lt;/p&gt;

&lt;p&gt;Each process will be different.&lt;/p&gt;

&lt;p&gt;Here I will just talk about the common traits between all interviews, whether they be for small companies or large multi nationals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before the interview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqix9bqo50njgzosnvfc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqix9bqo50njgzosnvfc.jpeg" alt="Preparation" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Know the company
&lt;/h3&gt;

&lt;p&gt;This may sound obvious, but many people overlook this crucial step.&lt;/p&gt;

&lt;p&gt;Research the company. Who are they? How long have they been in business? Who is their primary customer? What service do they offer?&lt;/p&gt;

&lt;p&gt;All of the information you need to do this will be available on their website.&lt;/p&gt;

&lt;p&gt;Bonus points to those who find out something interesting about the company through their social media profiles or some obscure method.&lt;/p&gt;

&lt;p&gt;Interviewers will be impressed if you’ve done your homework.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ask HR / the recruiter what to expect
&lt;/h3&gt;

&lt;p&gt;They won’t tell you specifics, but you need to know how long you’ll be there (is it an hour or a day long interview) and the rough overview of what to expect.&lt;/p&gt;

&lt;p&gt;In larger companies it will look something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/" rel="noopener noreferrer"&gt;tech interview with one or two engineers&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Second tech interview with one or two engineers.&lt;/li&gt;
&lt;li&gt;Interview with Tech Manager&lt;/li&gt;
&lt;li&gt;Interview with HR.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This can last up to about 6 hours.&lt;/p&gt;

&lt;p&gt;In smaller companies I’d expect you’ll only be in the interview up to two hours.&lt;/p&gt;

&lt;p&gt;Ask if there will be a test. If so, should you prepare something to take (the answer will more than likely be no, but this will get their HR talking and they’ll hopefully give you some more information than they normally would if you don’t ask).&lt;/p&gt;

&lt;p&gt;You should expect one or all of the following from a technical perspective:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple choice test with just you in the room (run away if this is how they interview)&lt;/li&gt;
&lt;li&gt;Pen and Paper / Whiteboard pseudo code to solve a problem with an engineer.&lt;/li&gt;
&lt;li&gt;Actually writing code solve a problem. They may or may not require the code to be working at the end.&lt;/li&gt;
&lt;li&gt;Review an existing piece of code.&lt;/li&gt;
&lt;li&gt;A game of “find the bug”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of these will be put in place to show how you solve problems.&lt;/p&gt;

&lt;p&gt;They may also want proof of excellence in a particular field/language if that is what you are claiming.&lt;/p&gt;

&lt;p&gt;Some companies are looking for people who have an in depth knowledge of the language(s) they use. Others are looking for smart people who can solve problem regardless of language. Find out which you are applying for.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prepare at least three questions about the company
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv98ddh2j757izqs10rc1.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv98ddh2j757izqs10rc1.jpeg" alt="Questions" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are planning on attending an interview and have not thought about what you will ask the interviewer(s), don’t.&lt;/p&gt;

&lt;p&gt;Not only is an interview a two way process, but the interviewer will not look kindly on someone who has absolutely no questions about the role and company to which they are applying.&lt;/p&gt;

&lt;p&gt;Come up with three non generic questions, memorise them and if possible have follow up questions to the answers. Something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Candidate: “I see your main clients are people in the X industry. Do you have any plans to grow in to Y industry.”&lt;/p&gt;

&lt;p&gt;Interviewer: “Great question. We’ve nearly saturated industry X, but we don’t feel industry Y is the right fit for our product”.&lt;/p&gt;

&lt;p&gt;Candidate: “Out of interest, why do you not think your product would work in industry Y”?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You see. This isn’t a fire and forget question. It shows you listened, took in what the interviewer said and had a follow up question.&lt;/p&gt;

&lt;p&gt;It’s engaging and shows you are able to properly converse.&lt;/p&gt;

&lt;p&gt;Jobs are just as much about quality information exchange through conversations as they are about technical ability.&lt;/p&gt;

&lt;p&gt;If you have multiple stages to your interview (one with an Engineer, another with a Manager, another with HR), don’t hesitate to ask your questions more than once.&lt;/p&gt;

&lt;p&gt;Each person you ask will give you a different perspective and I encourage people I interview to ask my colleagues the same questions as they asked me. It gives them so much more information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prepare your introduction speech
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvs1vy3yj1vlifoqct2x.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvs1vy3yj1vlifoqct2x.jpeg" alt="speach" width="683" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will want to have about a two to three minute introduction committed to memory word by word.&lt;/p&gt;

&lt;p&gt;Do not try and wing it. You get a limited amount of time with an interviewer and every second counts.&lt;/p&gt;

&lt;p&gt;As the cliche goes, you only get one chance at a first impression.&lt;/p&gt;

&lt;p&gt;Tell the interviewer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who you are&lt;/li&gt;
&lt;li&gt;How long you’ve worked in the industry&lt;/li&gt;
&lt;li&gt;Any relevant experience to the role you are applying to&lt;/li&gt;
&lt;li&gt;[Optional] Why you are looking to move jobs and why you chose to apply to them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep it brief but full of pertinent information. No one cares if you like to watch movies on the weekend or go hiking with your friends.&lt;/p&gt;

&lt;p&gt;Practice this speech out loud in front of the mirror until you have the cadence and speech pattern figured out.&lt;/p&gt;

&lt;p&gt;Having this level of preparation should help with any nerves you have going in to the interview.&lt;/p&gt;

&lt;p&gt;This will almost be the first thing you say in the interview, so if you can get it nailed and delivered perfectly, it should give you confidence for the rest of the interview.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ensure that you know everything on your CV/Resume in detail
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ety4n7jam7h279zw3cc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ety4n7jam7h279zw3cc.jpeg" alt="Horse riding" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don’t write something on your CV that you have not done or cannot talk about in detail.&lt;/p&gt;

&lt;p&gt;If you say you can ride a horse. Make damn sure you can ride a horse.&lt;/p&gt;

&lt;p&gt;It’s no enough to say “yes, I worked on project X”.&lt;/p&gt;

&lt;p&gt;You need to be able to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Yes, project X was great. It was initially brought about to solve [&lt;em&gt;enter client problem here&lt;/em&gt;]. We initially decided to use &lt;em&gt;[language / framework]&lt;/em&gt; as it was best for the problem because [enter reason].&lt;/p&gt;

&lt;p&gt;Throughout the project we found problems [X, Y, Z] and decided to pivot to using [something else] as the [performance, scalability, extensibility] wasn’t good enough.&lt;/p&gt;

&lt;p&gt;If I had to do the project again I think I’d change [enter lessons learned here]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You need to be able to impress upon the interviewer that you learned along the way and truly understood all of the decisions that were made along the way, even if you did not make them.&lt;/p&gt;

&lt;p&gt;No one makes the correct decisions first time around, but if you don’t learn from your mistakes you’re doomed to make them again.&lt;/p&gt;

&lt;p&gt;I see questions a lot about “how many projects” do I need to have done before I go to an interview.&lt;/p&gt;

&lt;p&gt;I’d say it’s less about how many projects and more about the variety of the projects you worked on, and in how much detail can you talk about them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The day of the interview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1nj1jwevoevr51pentg0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1nj1jwevoevr51pentg0.jpeg" width="683" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’ve done all of the above, you’re prepared.&lt;/p&gt;

&lt;p&gt;Take a deep breath, stay calm, go to the toilet before you get in to the interview and stay hydrated.&lt;/p&gt;

&lt;p&gt;To paraphrase a quote the navy seals:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You don’t rise to the occasion, you sink to the level of your preparation&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Be courteous, kind and interested.&lt;/p&gt;

&lt;p&gt;I’m assuming by this point you’ve also got enough knowledge of your chosen language and prepared for the technical side.&lt;/p&gt;

&lt;h2&gt;
  
  
  After the interview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff39zbrch8zmf9xh8rsu0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff39zbrch8zmf9xh8rsu0.jpeg" alt="Feedback" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ll likely hear nothing for days if not weeks.&lt;/p&gt;

&lt;p&gt;If you don’t get the job, ask for feedback.&lt;/p&gt;

&lt;p&gt;In the UK, the company is required by law to give you any notes that were taken during the interview.&lt;/p&gt;

&lt;p&gt;If they wrote it down, they have to show you.&lt;/p&gt;

&lt;p&gt;Every interview you do is preparation for the next interview.&lt;/p&gt;

&lt;p&gt;It is not wasted time or effort if you don’t get the job, it’s experience to take to the next interview.&lt;/p&gt;

&lt;p&gt;Write down the questions that the interviewer asked you so you have a bank of interviewer questions somewhere.&lt;/p&gt;

&lt;p&gt;Go through them, rehearse new answers and be ready for next time.&lt;/p&gt;

&lt;p&gt;If you did get the job, amazing, well done!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faavzeph71eixqv42yzp6.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faavzeph71eixqv42yzp6.jpeg" alt="Nay seals preparation" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The biggest thing you can do is prepare.&lt;/p&gt;

&lt;p&gt;If you prepare, the nerves will sort themselves out.&lt;/p&gt;

&lt;p&gt;Be confident. Know everything you’ve claimed on your CV. Understand the company to which you are applying.&lt;/p&gt;

&lt;p&gt;If you feel that I’ve missed anything out, please feel free to email me at &lt;a href="mailto:ben@justanothertechlead.com"&gt;ben@justanothertechlead.com&lt;/a&gt; or contact me on my &lt;a href="https://justanothertechlead.com/contact-me/" rel="noopener noreferrer"&gt;Contact&lt;/a&gt; page.&lt;/p&gt;

&lt;p&gt;Sign up to my &lt;a href="https://dev.to/news-letter"&gt;News Letter&lt;/a&gt; for regular updates about my musings and the tech / software engineering industry.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://justanothertechlead.com/interviewing/how-to-prepare-for-a-software-engineering-interview/" rel="noopener noreferrer"&gt;How to ACE a Software Engineering Interview&lt;/a&gt; appeared first on &lt;a href="https://justanothertechlead.com" rel="noopener noreferrer"&gt;Just Another Tech Lead&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>interviewing</category>
    </item>
    <item>
      <title>Tech Leadership in Software Engineering</title>
      <dc:creator>Ben</dc:creator>
      <pubDate>Fri, 10 May 2024 10:03:01 +0000</pubDate>
      <link>https://dev.to/justanothertechlead/tech-leadership-in-software-engineering-2g2m</link>
      <guid>https://dev.to/justanothertechlead/tech-leadership-in-software-engineering-2g2m</guid>
      <description>&lt;p&gt;Before starting to seriously write about my role as a leader in the Software space, I thought I should right about the frequently used terminology around being a technical lead in the tech world. Below, I’ll delve in to the different levels and types of leadership that I’ve seen and that I will write about. Most job titles are open to interpretation and can mean different things in different companies, so I’ll try and just define them in the most common way as I’ve seen them.&lt;/p&gt;

&lt;p&gt;I won’t go In to leadership styles in post as that is a very different subject and requires an entire post series of it’s own at some point in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a leader?
&lt;/h2&gt;

&lt;p&gt;I bet you didn’t think I’d go this far back to basics, did you!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;leader&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;noun&lt;/em&gt;&lt;/strong&gt;  &lt;a href="https://dictionary.cambridge.org/help/codes.html" rel="noopener noreferrer"&gt;[ C ]&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;leader &lt;em&gt;noun&lt;/em&gt; &lt;a href="https://dev.toCONTROLLING"&gt;C&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;a person in control of a group, country, or situation:&lt;br&gt;&lt;br&gt;
&lt;em&gt;a religious leader&lt;/em&gt;&lt;br&gt;&lt;br&gt;
“&lt;em&gt;He’s a natural leader”.&lt;/em&gt;&lt;br&gt;&lt;br&gt;
“&lt;em&gt;She was elected as leader  &lt;strong&gt;of&lt;/strong&gt;  the campaign group.&lt;/em&gt;“&lt;/p&gt;

&lt;p&gt;&lt;cite&gt;&lt;a href="https://dictionary.cambridge.org/dictionary/english/leader" rel="noopener noreferrer"&gt;Oxford English Dictionary&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Oxford English Dictionary defines a leader as: &lt;em&gt;“a person in control of a group, country, or situation”&lt;/em&gt;. This is a very clinical definition devoid of nuance. When a definition of a leader uses the word “control” it is often (quite rightly) derided. There are many different camps when it comes to leadership, but I’ll just choose two for comparison here:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Leading by strict direction and a singular vision. Essentially autocracy using authority.&lt;/li&gt;
&lt;li&gt;Leading by example and using consensus.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There’s essentially having people work with you or for you. I realise that there is a broad spectrum of types of leaders, so I definitely don’t want to define it down to just these two forms. I just want to highlight these two as they will become pertinent later in this post.&lt;/p&gt;

&lt;p&gt;I’m more of a fan of the &lt;a href="https://hbr.org" rel="noopener noreferrer"&gt;Harvard Business Reviews&lt;/a&gt; definition of a leader:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Leadership is the accomplishment of a goal through the direction of human assistants&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;&lt;cite&gt;&lt;a href="https://hbr.org/2004/01/understanding-leadership" rel="noopener noreferrer"&gt;Harvard Business review&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, a tech lead can either lead by authority or without or authority. Let’s take a look through some of the job titles and leadership roles in the &lt;a href="https://justanothertechlead.com/interviewing/how-to-prepare-for-a-software-engineering-interview/" rel="noopener noreferrer"&gt;Software Engineering&lt;/a&gt; space.&lt;/p&gt;

&lt;h2&gt;
  
  
  Senior Software Engineer as a Tech Lead
&lt;/h2&gt;

&lt;p&gt;Whilst you can certainly be a leader as a Junior, generally the SSE is the earliest form of tech leadership. The SSE is probably the largest category of software engineer. When I started working in the industry, the general consensus was that when you’d hit five years of commercial experience, you could feel comfortable calling yourself a senior software engineer. In my current place of work, I think the definition is anyone with three years or more experience. You are a senior software engineer much longer in general than you would be a junior. Not all engineers want to rise through the corporate ladder beyond this as they like writing code. SSE is the highest population of workers in Software Engineering.&lt;/p&gt;

&lt;p&gt;Leadership without authority is essentially what you have to do as a senior software engineer. You infrequently would get a position of direct authority in this role where you would have reports, but in no way does that mean you can’t be a leader. Many of the people I picture as leaders during my years have been SSE’s. I listened to them and took instruction because they earned it.&lt;/p&gt;

&lt;p&gt;Leading without authority requires that you gain the respect from your peers. You colleagues needs to see you being extremely competent and leading by example. With these virtues being shown, leadership without authority is not only possible but tend to organically happen. Leadership here tends to come in the form of mentoring more junior (that could still mean other SSEs) colleagues in both product and technical term. An SSE may choose the framework or language for a particular service or piece of code and be able to get this through consensus without the power to tell, but with the power to convince people it’s the right thing to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scrum Master as a Tech Lead
&lt;/h2&gt;

&lt;p&gt;In order to stick to the topic of tech leadership, I’m going to talk about a scrum master here in the terms of an Engineer who remains technical but takes on scrum master duties, not a purely non technical scrum master.&lt;/p&gt;

&lt;p&gt;In some teams, a scrum master is a non directive leadership role whereby one is in charge of running the sprint ceremonies and ensuring your work tracking tool of choice is up to date. Other companies however see the role of scrum master as all of the above plus an element of &lt;a href="https://justanothertechlead.com/leadership/coaching/" rel="noopener noreferrer"&gt;people leadership&lt;/a&gt;. I’ve not known of scrum masters who have engineers directly report to them, but I certainly do know scrum masters who decide on what work goes to which person, has the authority to tell someone to stop working on a task if priorities change and chase people when their work may be late. Scrum Master is a leadership role when it’s allowed to be.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Lead as A Tech Lead
&lt;/h2&gt;

&lt;p&gt;A Technical Lead has to fall in the tech leadership list, the clue is very much in the name. A Tech Lead has ownership and authority of all things technical within a team. They choose which language to use, which frameworks to use, which patterns to follow, what the architecture will look like etc. Tech Leads seldom do people management, they are generally the career progression next step for SSEs. The leadership aspect here is pretty obvious, it’s leading the teams technical identity and agenda.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Engineering Team Lead
&lt;/h2&gt;

&lt;p&gt;Here’s where things get fuzzy. I’m sure that there are many people who have fixed definitions of this role and the next role I’ll define (Software Engineering Manager), but to me they can mean different things in different organisations. I’m going to write here based on my experiences (which is all I will ever do).&lt;/p&gt;

&lt;p&gt;Without wishing to define the definition by restating the problem, a Software Engineering Team lead leads software engineering teams. Well done me. The reason this is quite hard to define, is that a SETL has to wear many hats and those hats can depend on the organisation in which they work. Some of the more common hats they may need to wear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mentor&lt;/li&gt;
&lt;li&gt;Technical Lead&lt;/li&gt;
&lt;li&gt;Product&lt;/li&gt;
&lt;li&gt;Business Analyst&lt;/li&gt;
&lt;li&gt;Scrum Master&lt;/li&gt;
&lt;li&gt;Communicator&lt;/li&gt;
&lt;li&gt;Team Cheerleader&lt;/li&gt;
&lt;li&gt;People management&lt;/li&gt;
&lt;li&gt;Project Manager&lt;/li&gt;
&lt;li&gt;Problem Solver&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, the list is long and varied. I’ve been a SETL in three different companies and the roles all looked totally different. The roles you have to play will depend on the size of the company and the ability for that company to have dedicated people to fulfil those roles i.e. Product, BA, PM etc.&lt;/p&gt;

&lt;p&gt;If I had to boil down the definition to one sentence it would be:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A Software Engineering Team Lead does whatever is required to get the team to deliver the project.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Engineering Manager
&lt;/h2&gt;

&lt;p&gt;Depending on the size of the organisation and the organisation itself, the roles of Team Leads Managers can overlap. For instance, in a smaller company, the Software Engineering Manager may also still write code. I’ve worked in a company where that was true. This SEM also was accountable for most of the other roles that I’ve listed above in the SETL section.&lt;/p&gt;

&lt;p&gt;In larger organisations however, there is a slightly bigger differentiator. Managers are usually more involved in the long term strategical vision for the team(s) that they run. Generally a team lead would report in to a Manager, so the manager would be a step removed from the actual code. Some companies only hire managers that were at some point In their careers engineers, others seem to worry less about the ability to write code and more about the ability to effectively integrate with the business plan and manage people. Some managers would have engineers directly reporting to them, sometime there’s a rung in the middle in the form of a team leader.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Manger
&lt;/h2&gt;

&lt;p&gt;This is where things get fuzzy for me. I’m going to define a TM as someone who could either run a team of software engineers, an infrastructure team or both. I’ve technically held this title, but it was the shortest role of my career as it involved procurement and other hardware related items which didn’t really interest me.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is my job title?
&lt;/h2&gt;

&lt;p&gt;I’ve held all of the above tech leadership titles throughout my career. My role at the moment is somewhere between a Software Engineering Team lead and a Software Engineer Manager. My companies somewhat conflates the two roles even though I myself do report to a Software Engineering Manager.&lt;/p&gt;

&lt;p&gt;The predominant reason for this post is to show that tech leadership can be displayed at all levels of an engineers career. Even if you are a life long SSE that has no interest in people management, you can be a leader. As a scrum master that may not have any direct reports, you can lead and direct the team. Leadership without authority can be attained at any level as long as you display the characteristics that draw others to trusting your instructions and decisions.&lt;/p&gt;

&lt;p&gt;As always, I’d love to get feedback on this post, so please &lt;a href="https://justanothertechlead.com/23-2/" rel="noopener noreferrer"&gt;contact me&lt;/a&gt; with any thoughts.&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary FAQ
&lt;/h2&gt;



&lt;p&gt;[&lt;br&gt;
a&lt;/p&gt;

&lt;h4&gt;
  
  
  How to demonstrate technical leadership?
&lt;/h4&gt;

&lt;p&gt;](#)&lt;/p&gt;

&lt;p&gt;Category: &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/?include_category=software-leadership-definitions" rel="noopener noreferrer"&gt;Software Leadership Definitions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How does one demonstrate technical leadership? This can be dependent on the current level and role in which the person is. Leadership without authority is usually gained by having a proven track record of being good at your job to the point where people follow and listen to your ideas. Demonstrating tech leadership from a Tech Lead role or a manger role would be different than from an IC, and usually involves many of the same traits that you would generically expect from a leader: Trustworthiness, clear communication, leading by example, resilience, empowerment of others etc.&lt;/p&gt;

&lt;p&gt;[&lt;br&gt;
a&lt;/p&gt;

&lt;h4&gt;
  
  
  What are the roles of technology leaders?
&lt;/h4&gt;

&lt;p&gt;](#)&lt;/p&gt;

&lt;p&gt;Category: &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/?include_category=software-leadership-definitions" rel="noopener noreferrer"&gt;Software Leadership Definitions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;“Technology leader” is a fairly generic term. In Software alone this can cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Software Engineering Manager&lt;/li&gt;
&lt;li&gt;Software Engineering Team Lead&lt;/li&gt;
&lt;li&gt;Principal Engineer&lt;/li&gt;
&lt;li&gt;Senior Software Engineer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of the above in various degrees are technology leaders. One or many of the below responsibilities could be assigned to any of the above roles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People Management&lt;/li&gt;
&lt;li&gt;People Development&lt;/li&gt;
&lt;li&gt;Project Delivery&lt;/li&gt;
&lt;li&gt;Human Resources queries (Time off, Sickness, working aboard etc)&lt;/li&gt;
&lt;li&gt;Ensuring technical excellence&lt;/li&gt;
&lt;li&gt;Team morale&lt;/li&gt;
&lt;li&gt;Day to day running of the team&lt;/li&gt;
&lt;li&gt;Mentoring&lt;/li&gt;
&lt;li&gt;Technology advice Design responsibility&lt;/li&gt;
&lt;li&gt;Architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;[&lt;br&gt;
a&lt;/p&gt;

&lt;h4&gt;
  
  
  What is the role of a Software Engineering Manager?
&lt;/h4&gt;

&lt;p&gt;](#)&lt;/p&gt;

&lt;p&gt;Category: &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/?include_category=software-leadership-definitions" rel="noopener noreferrer"&gt;Software Leadership Definitions&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People Management and development&lt;/li&gt;
&lt;li&gt;Human Resources related issues: Time off, Sickness etc&lt;/li&gt;
&lt;li&gt;The direction of the team&lt;/li&gt;
&lt;li&gt;Interacting with business counterparts&lt;/li&gt;
&lt;li&gt;Less low level code and architect choices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;[&lt;br&gt;
a&lt;/p&gt;

&lt;h4&gt;
  
  
  What is the role of a Software Engineering Team Lead
&lt;/h4&gt;

&lt;p&gt;](#)&lt;/p&gt;

&lt;p&gt;Category: &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/?include_category=software-leadership-definitions" rel="noopener noreferrer"&gt;Software Leadership Definitions&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensuring the team follows the coding patterns and styles defined&lt;/li&gt;
&lt;li&gt;Keeping the standards of the code to a high level across all team members&lt;/li&gt;
&lt;li&gt;Final technical decision sign off&lt;/li&gt;
&lt;li&gt;Architecture&lt;/li&gt;
&lt;li&gt;Mentoring team members&lt;/li&gt;
&lt;li&gt;Day to day running of the team&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;[&lt;br&gt;
a&lt;/p&gt;

&lt;h4&gt;
  
  
  What makes a great leader in Tech?
&lt;/h4&gt;

&lt;p&gt;](#)&lt;/p&gt;

&lt;p&gt;Category: &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/?include_category=software-leadership-definitions" rel="noopener noreferrer"&gt;Software Leadership Definitions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To be a great leader in Tech, you need to be a bit of an all rounder. You need to have good interpersonal skills that allow you to not only lead your team but also influence others in the business. A great tech leader needs to remain technical (the degree to which they need to remain technical generally relates to how high up the management chain they get). A great tech leader needs to be able to understand the business and domain they are managing within and ensure that the team is not only delivering something technically of high excellence, but solving the clients/customers needs.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/" rel="noopener noreferrer"&gt;Tech Leadership in Software Engineering&lt;/a&gt; appeared first on &lt;a href="https://justanothertechlead.com" rel="noopener noreferrer"&gt;Just Another Tech Lead&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>leadership</category>
    </item>
    <item>
      <title>How to coach for excellence</title>
      <dc:creator>Ben</dc:creator>
      <pubDate>Fri, 26 Apr 2024 13:42:55 +0000</pubDate>
      <link>https://dev.to/justanothertechlead/how-to-coach-for-excellence-4k10</link>
      <guid>https://dev.to/justanothertechlead/how-to-coach-for-excellence-4k10</guid>
      <description>&lt;p&gt;I’ve been thinking for a while about what my first Blog post should be about. The possibilities are endless really. The life of a Tech Lead is rather varied in my experience. One of the core responsibilities and in my opinion toughest challenges that I face on a daily basis is keeping people engaged, happy and moving forwards. Computers are easy. People are hard. So I decided today to write about one of the most complex tasks in a leaders life: coaching. Coaching and &lt;a href="https://justanothertechlead.com/mentoring-and-professional-development/" rel="noopener noreferrer"&gt;mentoring are different forms of people development&lt;/a&gt;, but in this post we will just discuss coaching&lt;/p&gt;

&lt;p&gt;I really enjoy working with people, I guess that’s why I moved in to a people management role rather than staying purely technical, but managing people includes having many many conversations of different types with the individual contributors we lead:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Operational Conversations&lt;/li&gt;
&lt;li&gt;Regular 1:1s&lt;/li&gt;
&lt;li&gt;Evaluations / Goals&lt;/li&gt;
&lt;li&gt;Conflict Resolution&lt;/li&gt;
&lt;li&gt;Project Updates&lt;/li&gt;
&lt;li&gt;Career Progression&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s just to name a few.&lt;/p&gt;

&lt;p&gt;Not every conversation and situation requires the same type of involvement from the leader. Some conversations require mentoring, some require directive and some require coaching. I’ll leave mentorship for a future post and for now just talk about coaching.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is coaching?
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Coaching: To partner with employees to help them come to their own conclusions&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a fairly basic definition and probably one that would be up for debate. If you asked 100 people, you’d probably get 100 different answers. But this is the definition that I’ve been taught and how I like to think of it. This in my mind differentiates coaching for mentoring as it’s about helping the person reach their own conclusions rather than taking a directive approach and telling them what to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Base Principals of coaching: Listening
&lt;/h2&gt;

&lt;p&gt;Now this seems easy. We’ve all heard the saying, “you have two ears and one mouth, use them in that ratio”, but it really doesn’t seem to come naturally to a lot of people. I’d broadly break down people in to the following categories when it comes to listening skills:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not even pretending to listen&lt;/li&gt;
&lt;li&gt;Pretending to listen but thinking about what they will look like when they’re 70 years old&lt;/li&gt;
&lt;li&gt;Listening but only really waiting to talk&lt;/li&gt;
&lt;li&gt;Actively listening&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you go further down that list, the closer you are to becoming an effective coach.&lt;/p&gt;

&lt;p&gt;I’d like to break down that last item a little. Active listening as defined by the never fallible source that is Wikipedia:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Active listening is  &lt;strong&gt;being fully engaged while another person is talking to you&lt;/strong&gt;. It is listening with the intent to understand the other person fully, rather than listening to respond. Active listening includes asking wide-eyed questions such as, “How did you feel?” or “What did you think?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I really want to highlight this point:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;It is listening with the intent to understand the other person fully, rather than listening to respond&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Too many people hear the opening part of a conversation and their mind immediately links that information with something they have done in the past, something they’ve heard or something they know. Now I’m not criticising here. We all do it. The key I think is recognising that you are doing it and making a conscious effort to refocus on listening to understand, not listening to respond. It’s a very similar concept to mindfullness and breathing. You concentrates on the breaths, your mind wanders, you realise you’ve wandered and come back to the breaths. No harm, no foul.&lt;/p&gt;

&lt;p&gt;Now if you’re naturally skeptical as I am, and think that you are a great listener, I’d suggest that you try an exercise with a trusting and willing participant. Ask them to speak about a topic of their choice for 2 minutes. Try and really listen. Really listen. Actively listen. Every time your mind wanders or thinks about something you want to say or ask, raise your hand (but let them keep speaking continuously for the whole two minutes). If you’re anything like me when I first tried this, from a distance it probably looked like I was continuously waving at a friend to their face for two minutes.&lt;/p&gt;

&lt;p&gt;Go ahead. Do the exercise. I’ll wait.&lt;/p&gt;

&lt;p&gt;Great, you’re back. How’d it go? Does your arm hurt from keeping it raised too long?&lt;/p&gt;

&lt;p&gt;It’s human nature to want to fit in with people and make connections, so it makes perfect sense why we would want to let the other person know we’ve had similar thoughts and experiences – “You have have a nose! I have a nose too!”, but in the context of people development (and in general life to be honest), listening so that the person feels heard is the goal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Asking Powerful questions
&lt;/h3&gt;

&lt;p&gt;When coaching, there are two types of questions we ask and they largely fall in to the following categories:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Data Gathering&lt;/th&gt;
&lt;th&gt;Exploratory&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;When&lt;/td&gt;
&lt;td&gt;What&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where&lt;/td&gt;
&lt;td&gt;How&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Who&lt;/td&gt;
&lt;td&gt;Why&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Question Categories&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I’m sure that those of you out there that have watched enough television shows with badly acted therapy sessions will go heavy on the “Why” questions, but beware! “Why” can be the most infuriating type of question to be asked. Just ask anyone who has parented a toddler and got so far through the “but why” chain of questions that they gone from “Why are we going home now” through to “but why is the universe ultimately going to end with &lt;a href="https://en.wikipedia.org/wiki/Heat_death_of_the_universe" rel="noopener noreferrer"&gt;heat death&lt;/a&gt;” in the space of 2 minutes. “Why’s” can be good questions, but treat them with respect.&lt;/p&gt;

&lt;p&gt;As a coach, you want to aim for an 80/20 split with listening to speaking ratio. Remember, the idea here is that you are supposed to be getting the coachee to reach their own conclusions. With this in mind, it makes sense that you would ask more of the exploratory questions than the data gathering questions.&lt;/p&gt;

&lt;p&gt;If you do find yourself wanting to talk, or talking too much, try to “WAIT” and think of the following:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;W&lt;/strong&gt; hy &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A&lt;/strong&gt; m &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;T&lt;/strong&gt; alking&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A great follow on question from your initial “exploratory” questions is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;…. and what else?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It keeps the coachee engaged and thinking.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Power of the Pause
&lt;/h3&gt;

&lt;p&gt;When I think of “awkward pauses”, I think of a Louis Theroux &lt;a href="https://justanothertechlead.com/interviewing/how-to-prepare-for-a-software-engineering-interview/" rel="noopener noreferrer"&gt;interview&lt;/a&gt;. Any of them really. I’m sure Louis didn’t invent the awkward pause, but I’ve never seen someone implement it so effectively.&lt;/p&gt;

&lt;p&gt;For someone of the British persuasion, pauses are long drawn out and to be avoided at all costs. Fill the space and say anything. That’s how we are raised. For coaching though, we need to embrace the silence. Learn to bathe in the glory that is the deficiency of noise.&lt;/p&gt;

&lt;p&gt;Pauses allow the coachee to really continue their thought pattern. To not be distracted. The silence allows them to progress with their thoughts in a natural manner.&lt;/p&gt;

&lt;p&gt;Pausing also helps to stop “Question bombing”. We should ask one question at a time and let it be fully answered before moving on. If you find yourself mixing multiple questions at once, stop, take a breath and focus on which specific question you want to ask first. The other questions can wait until later.&lt;/p&gt;

&lt;h3&gt;
  
  
  The GROW model
&lt;/h3&gt;

&lt;p&gt;This is a pretty common model in coaching and there’s loads of good information out there if you want to read in more detail, but here’s the TLDR;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;G&lt;/strong&gt; oal – Where do we want to be.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;R&lt;/strong&gt; eality – Where are we now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O&lt;/strong&gt; ptions – What are the paths to get to where we want to be&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;W&lt;/strong&gt; rap up – Actionable steps to move forwards&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ulwetk8gk3ddgq0r6qh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ulwetk8gk3ddgq0r6qh.png" alt="The GROW model" width="610" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All through this “circle of GROW” keep letting the coachee speak more and direct them where necessary using exploratory questions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;If your job were a pure coach, then what I’ve written above should be taken quite literally. For most people though, myself included, I am not a pure coach. I have deliverables, managers, customers, other team members and a myriad other reasons why I can’t let someone always come to the conclusion on their own in their own time. I was told that you should start off in a conversation coaching and move more towards directional advice if and when needed:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppgedica2ltvz8ao6oh5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppgedica2ltvz8ao6oh5.png" alt="Coaching vs Directive" width="800" height="821"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At some point in the future I’ll write a post on “Situational Leadership” which has some other interesting ideas on how to have conversations mentioned above, but more in a mentoring role. I think a balance between coaching and situational &lt;a href="https://justanothertechlead.com/leadership/tech-leadership-in-software-engineering/" rel="noopener noreferrer"&gt;leadership&lt;/a&gt; dependent on the person, environment and situation is probably correct.&lt;/p&gt;

&lt;p&gt;If there’s enough interest I will write up some “real life” scenarios where I put the above in to action. Sign up to my &lt;a href="https://justanothertechlead.com/news-letter/" rel="noopener noreferrer"&gt;News Letter&lt;/a&gt; below to be notified if I post a follow up to this with these real life examples.&lt;/p&gt;

&lt;p&gt;As always, please &lt;a href="https://dev.to/23-2"&gt;contact me&lt;/a&gt; with feedback, ideas or anything you’d like me to write about.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://justanothertechlead.com/leadership/coaching/" rel="noopener noreferrer"&gt;How to coach for excellence&lt;/a&gt; appeared first on &lt;a href="https://justanothertechlead.com" rel="noopener noreferrer"&gt;Just Another Tech Lead&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>leadership</category>
      <category>peoplemanagement</category>
      <category>people</category>
    </item>
  </channel>
</rss>
