<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Tech with Maddy | Tech and Writing]]></title><description><![CDATA[Tech with Maddy | Tech and Writing]]></description><link>https://techwithmaddy.com</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1692307065495/ibL1EQnWo.jpg</url><title>Tech with Maddy | Tech and Writing</title><link>https://techwithmaddy.com</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 06 Jun 2026 05:07:14 GMT</lastBuildDate><atom:link href="https://techwithmaddy.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to Write Better Technical Content: A Beginner’s Guide]]></title><description><![CDATA[I’ve been writing online for almost five years, with a professional focus on technical writing for over two years.
If you struggle to create technical content that is easy to digest, this article is for you.
Where do I start?
If you don’t know where ...]]></description><link>https://techwithmaddy.com/how-to-write-better-technical-content-a-beginners-guide</link><guid isPermaLink="true">https://techwithmaddy.com/how-to-write-better-technical-content-a-beginners-guide</guid><category><![CDATA[Technical writing ]]></category><category><![CDATA[writing]]></category><category><![CDATA[writing tips]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Tue, 27 May 2025 19:49:03 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/FHnnjk1Yj7Y/upload/b3877a8db21c3529df4a26a73199e9f1.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I’ve been writing online for almost five years, with a professional focus on technical writing for over two years.</p>
<p>If you struggle to create technical content that is easy to digest, this article is for you.</p>
<h1 id="heading-where-do-i-start">Where do I start?</h1>
<p>If you don’t know where to start to create technical content, decide on the purpose of what you’re going to write.</p>
<p>Ask yourself the following questions:</p>
<ul>
<li><p>Why do you want to write that piece of content? Do you want to teach something to the user? Do you want to show the user how to solve a particular issue?</p>
</li>
<li><p>What problem(s) are you trying to solve by writing a piece of content?</p>
</li>
<li><p>Once the reader finishes reading the page, what do you want them to know?</p>
</li>
<li><p>What’s the key takeaway (or takeaways) of the page?</p>
</li>
</ul>
<p>Once you have reflected on the above questions, you should have a clear idea on what type of content you want the user to read. The type of content you want to write may follow under one of the following:</p>
<ul>
<li><p>User manual</p>
</li>
<li><p>Tutorial</p>
</li>
<li><p>Blog</p>
</li>
<li><p>API documentation</p>
</li>
</ul>
<p>And more.</p>
<h1 id="heading-how-to-structure-technical-content">How to structure technical content</h1>
<p>Structuring technical content is essential to help users navigate and understand it effectively.</p>
<p>When you write technical content, you want to pay attention to the following:</p>
<ul>
<li><p>Formatting:</p>
<ul>
<li><p>Headings and subheadings</p>
</li>
<li><p>Bulleted and numbered lists</p>
</li>
<li><p>Code blocks (if you want to add code)</p>
</li>
<li><p>Tables (beware that tables may not be mobile-friendly)</p>
</li>
<li><p>Images</p>
</li>
</ul>
</li>
<li><p>Consistency</p>
</li>
</ul>
<h2 id="heading-how-to-format-technical-content">How to format technical content</h2>
<h3 id="heading-when-to-use-headings-and-subheadings">When to use headings and subheadings</h3>
<p>A headings, also known as headline, appears once at the beginning of a page.</p>
<blockquote>
<p>In the digital world, the headline of your content is what displays in bold when it shows up on the results page of a search engine.[<a target="_blank" href="https://titaniummarketing.com/headings-and-subheadings/#:~:text=In%20the%20digital%20world%2C%20the,is%20relative%20to%20their%20lives.">Titanium Marketing</a>]</p>
</blockquote>
<p>Subheadings are always followed by by headings. You use subheadings to break down a page into multiple sections.</p>
<h3 id="heading-how-to-use-bulleted-and-numbered-lists">How to use bulleted and numbered lists</h3>
<p>You use a bulleted lists when the order in which you present information isn’t important. On the other hand, you use a numbered list when you want the user to digest information in a certain order. It’s important to know this distinction, especially if you want to create tutorials.</p>
<p>Here’s an example of presenting information using a bulleted list:</p>
<ul>
<li><p>You can use Java to create a web application.</p>
</li>
<li><p>You can use Java to create an Android app.</p>
</li>
<li><p>You can use Java to to create enterprise applications.</p>
</li>
</ul>
<p>In the example above, you can swap the order, and it wouldn’t make a difference to the user’s learning experience. In some cases, you may want to add the information you really want the user to know the most at the top of the list.</p>
<p>Here’s an example of presenting information using a numbered list:</p>
<ol>
<li><p>Go to the website, and download the report.</p>
</li>
<li><p>Add the report to folder <strong>abc</strong>.</p>
</li>
<li><p>Open the report, and write your name, surname, and date of birth.</p>
</li>
</ol>
<p>In the example above, if you swap the order of each item in the list, you’re going to disrupt the user’s experience. For example, if you tell the user to add the report to folder <strong>abc</strong>, the reader may wonder where they’re going to find the report in the first place.</p>
<blockquote>
<p>Your purpose as a technical writer is to offer a seamless user experience by eliminating barriers that may lead the user to drop out of your content.</p>
</blockquote>
<p>As someone who reads a lot of online content, I see this mistake too often: taking steps for granted, using bulleted lists instead of numbered lists, and vice versa.</p>
<h3 id="heading-add-code-blocks">Add code blocks</h3>
<p>This is relevant if you want to add code blocks to your content.</p>
<p>Ensure code blocks and terminal commands are wrapped in triple backticks, so readers can easily copy and paste the code in to their editors/IDE.</p>
<h3 id="heading-add-tables">Add tables</h3>
<p>Tables are good at presenting information in a simple and concise manner. They don’t help with you want to present detailed information (in this case, you may want to use a bulleted list instead).</p>
<p>Beware of tables with too many columns and rows, as they’re often mobile-unfriendly.</p>
<h3 id="heading-add-images">Add images</h3>
<p>Images are an excellent to ehance the content experience. Images can include:</p>
<ul>
<li><p>Diagrams</p>
</li>
<li><p>Screenshots</p>
</li>
<li><p>Videos</p>
</li>
<li><p>Charts</p>
</li>
</ul>
<p>And more.</p>
<p>Beware of adding visual content that can quickly go out of date.</p>
<h2 id="heading-how-to-write-consistent-content">How to write consistent content</h2>
<p>Consistency in technical writing means that information is presented in a unified fashion. Consistency especially applies to formatting and grammar.</p>
<p>To give you an example: some specific terminologies are written in all capitals (an example of this is VAT).</p>
<p>Writing the same word in different ways throughout the content may imply that the word carries different meanings.</p>
<p>It’s your responsiblity as a technical writer to ensure that content is coherent from start to finish.</p>
<p>As you write content, revisit it to ensure that it stays consistent.</p>
<hr />
<p>If you want to learn more about writing technical content, read the following resources:</p>
<ul>
<li><p><a target="_blank" href="https://techwithmaddy.com/elements-of-technical-writing">Elements of Technical Writing</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/essential-technical-writing-skills">Top 6 Essential Technical Writing Skills</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[How To Maximize LinkedIn for Job Search]]></title><description><![CDATA[LinkedIn is the only social networking site purposely built to help job seekers.
Over the years, LinkedIn has evolved by offering two types of experiences:

Job searching

Content creation


This article will describe how to maximize your LinkedIn fo...]]></description><link>https://techwithmaddy.com/how-to-maximize-linkedin-for-job-search</link><guid isPermaLink="true">https://techwithmaddy.com/how-to-maximize-linkedin-for-job-search</guid><category><![CDATA[job search]]></category><category><![CDATA[jobs]]></category><category><![CDATA[LinkedIn]]></category><category><![CDATA[Job Hunting]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 15 Jul 2024 05:00:25 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1720978571105/7f095db1-5325-4834-8747-60edb4fb501f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>LinkedIn is the only social networking site purposely built to help job seekers.</p>
<p>Over the years, LinkedIn has evolved by offering two types of experiences:</p>
<ul>
<li><p>Job searching</p>
</li>
<li><p>Content creation</p>
</li>
</ul>
<p>This article will describe how to maximize your LinkedIn for job search.</p>
<h2 id="heading-1-update-your-personal-information">1. Update your personal information</h2>
<p>Many LinkedIn accounts have outdated personal information. By personal information, I mean:</p>
<ol>
<li><p>Your profile picture: Ideally, update your profile picture every 1-2 years. To update your profile photo:</p>
<ol>
<li><p>Select your profile picture.</p>
</li>
<li><p>Select <strong>Add photo</strong>.</p>
</li>
<li><p>Choose <strong>Use camera</strong> to take an instant picture, or Upload photo.</p>
</li>
<li><p>Select <strong>Save photo</strong>.</p>
</li>
</ol>
</li>
</ol>
<p>Your contact information: Ensure you have your email address displayed on your email to allow other LinkedIn users to contact you directly. To update your contact information, select <strong>Contact info</strong> on your LinkedIn profile:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720878109601/91a923eb-1b69-43ba-929d-9c86bd78562c.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-2-update-your-profile-intro">2. Update your profile intro</h2>
<p>Your profile intro is where you tell other users about:</p>
<ol>
<li><p>Basic info: Name and Surname</p>
</li>
<li><p>Pronouns</p>
</li>
<li><p>Headline: Here, you can add your job title.</p>
</li>
<li><p>Current position</p>
</li>
<li><p>Industry</p>
</li>
<li><p>Education</p>
</li>
<li><p>Location</p>
</li>
</ol>
<p>To update your profile intro, select the pencil icon on the right:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720878747162/9f9a4abe-aff9-4e37-82e8-19ba1ead6e15.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-3-add-or-update-the-experience-section">3. Add or update the experience section</h2>
<p>The experience section is the most compelling section of your profile. Unlike a CV, you can add all your work experience on LinkedIn, ideal if you've been in the workforce for over 10 years. To add experiences to your profile:</p>
<ol>
<li>Select the <strong>+ button</strong> under <strong>Experience</strong>:</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720879256239/403a0d0a-61bc-4561-8f8f-90d667531836.png" alt class="image--center mx-auto" /></p>
<p>2. Select <strong>Add position</strong>.</p>
<p>3. Fill in all the required information:</p>
<ul>
<li><p>Title</p>
</li>
<li><p>Company name</p>
</li>
<li><p>Start date - End date</p>
</li>
<li><p>Add skill: Adding a skill allows you to keep track of your skills in a specific job and helps recruiters search for candidates with certain skills. Add up to five skills for each position.</p>
</li>
</ul>
<h3 id="heading-add-positions-within-the-same-company">Add positions within the same company</h3>
<p>LinkedIn allows you to showcase the positions in the same company as part of a singular experience. An example is this:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720879799068/7218aa75-08ff-408f-a747-145d68a03a7c.png" alt class="image--center mx-auto" /></p>
<p>Use this LinkedIn feature to:</p>
<ul>
<li><p>Reflect on the work done within the company: The example above displays the transition from one product group to another.</p>
</li>
<li><p>Reflect promotions.</p>
</li>
</ul>
<p>To add multiple experiences within the same company:</p>
<ol>
<li><p>Add one experience, but ensure you add the following:</p>
<ol>
<li><p>End date.</p>
</li>
<li><p>Company name.</p>
</li>
</ol>
</li>
<li><p>Add a second experience with the same company name (the URL must be the same) as the above-mentioned step. LinkedIn will automatically rearrange the experience, as in the screenshot above.</p>
</li>
</ol>
<h2 id="heading-4-add-education-section">4. Add education section</h2>
<p>On LinkedIn, you can choose to add an education section. Add this section to:</p>
<ul>
<li><p>Display any bachelor's degree, master's degree, or PhD.</p>
</li>
<li><p>Any academy attended.</p>
</li>
<li><p>Any professional school attended.</p>
</li>
</ul>
<p>To add an education section:</p>
<ol>
<li><p>Select <strong>Add profile section</strong>.</p>
</li>
<li><p>Select <strong>Add education</strong>.</p>
</li>
</ol>
<h2 id="heading-5-add-certifications">5. Add certifications</h2>
<p>LinkedIn allows you to list any certification on your profile. Certifications can be:</p>
<ul>
<li><p>Information Technology and Computer Science certifications, such as AWS certifications, CompTIA certifications, etc.</p>
</li>
<li><p>Project management certifications.</p>
</li>
<li><p>Language proficiency certifications.</p>
</li>
</ul>
<p>To add certifications:</p>
<ol>
<li><p>Select <strong>Add profile section</strong>.</p>
</li>
<li><p>Select <strong>Recommended</strong>.</p>
</li>
<li><p>Select <strong>Add licenses &amp; certifications</strong>.</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720880852745/1d5e1cc0-3808-4456-b6e0-1cd628302af9.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-6-use-linkedin-search">6. Use LinkedIn search</h2>
<p>LinkedIn search is a powerful feature that helps people find jobs, companies, and more.</p>
<h3 id="heading-how-to-use-linkedin-search-for-jobs">How to use LinkedIn search for jobs</h3>
<p>To search for jobs on LinkedIn, on the search bar:</p>
<ol>
<li><p>Enter "software engineer" (or any other jobs you're looking for). Try adding double quotes if the search returns unrelated results.</p>
</li>
<li><p>Select the <strong>Jobs</strong> filter.</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720947460614/24e3c09b-90f9-4b87-a489-c31c35d2d2db.png" alt class="image--center mx-auto" /></p>
<ol start="3">
<li><p>LinkedIn search allows you to narrow down your search. For example, you can search for a remote, entry-level job with a salary of no less than £30,000 a year. To do this:</p>
<ol>
<li><p>Select <strong>Experience level</strong> &gt; <strong>Entry level</strong> (and/or <strong>Associate</strong>) &gt; <strong>Show results.</strong></p>
</li>
<li><p>Select <strong>Salary</strong> &gt; <strong>£30,000+</strong> &gt; <strong>Show results.</strong></p>
</li>
<li><p>Select <strong>Remote</strong> &gt; <strong>Remote</strong> &gt; <strong>Show results.</strong></p>
</li>
</ol>
</li>
</ol>
<h3 id="heading-how-to-use-boolean-search">How to use Boolean search</h3>
<p>You may notice that LinkedIn returns unrelated results despite entering "software engineer" in the search bar. To ensure LinkedIn search returns more related results, you can use <code>AND</code>, <code>NOT</code>, or <code>OR</code> in the search bar. The keywords must be in a capital case. An example is this:</p>
<ol>
<li>You entered software engineer in the search bar, but you also get DevOps roles:</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720948726612/32e4d698-0f8a-4c17-b0b7-be2f82710f71.png" alt class="image--center mx-auto" /></p>
<p>To exclude DevOps roles, enter "software engineer NOT devops", and you should receive more related results:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720948996321/a19c0d3d-10c0-45a1-b1fe-da81b5ff9336.png" alt class="image--center mx-auto" /></p>
<p>You can perform a similar search with <code>AND</code>, and <code>OR</code>.</p>
<h3 id="heading-how-to-use-linkedin-to-search-for-recruiters">How to use LinkedIn to search for recruiters</h3>
<p>LinkedIn allows you to search for people in general. However, I want to teach you how to search for recruiters who work at a specific company in this article. To do this:</p>
<ol>
<li><p>On the search bar, enter "Technical recruiter".</p>
</li>
<li><p>Select <strong>People</strong> at the top.</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720978124975/5853a4c4-6a6b-432a-807b-3cdb820a9249.png" alt class="image--center mx-auto" /></p>
<ol start="3">
<li><p>Select <strong>Current company</strong>, and choose Meta (or any other company).</p>
</li>
<li><p>Select <strong>Show results</strong>.</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720978249749/de8d9350-c175-459a-8d31-b3f947188e93.png" alt class="image--center mx-auto" /></p>
<p>The screenshot above displays all the technical recruiters employed at Meta.</p>
<h2 id="heading-7-add-a-skills-section">7. Add a Skills section</h2>
<p>The Skills section allows you to list all your skills.</p>
<p>To add skills to your profile:</p>
<ol>
<li><p>Select <strong>Add profile section</strong> at the top of your profile.</p>
</li>
<li><p>Select <strong>Core</strong> &gt; <strong>Add skills</strong>:</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720977082977/408a3534-4c26-4e17-a659-a48df68e7ca8.png" alt class="image--center mx-auto" /></p>
<ol start="3">
<li><p>Select all the skills that apply to you.</p>
</li>
<li><p>Select <strong>Save</strong>.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Elements of Technical Writing]]></title><description><![CDATA[In the last 12+ months as a technical writer, I've worked on several projects highlighting three technical writing elements. This article will introduce you to:

Information Architecture

Docs-as-code

Content strategy


Information Architecture (IA)...]]></description><link>https://techwithmaddy.com/elements-of-technical-writing</link><guid isPermaLink="true">https://techwithmaddy.com/elements-of-technical-writing</guid><category><![CDATA[Technical writing ]]></category><category><![CDATA[writing]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Tue, 07 May 2024 05:00:19 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/jLwVAUtLOAQ/upload/c2745808cbfd143313bd8b0d3b8cbfdf.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the last 12+ months as a technical writer, I've worked on several projects highlighting three technical writing elements. This article will introduce you to:</p>
<ul>
<li><p>Information Architecture</p>
</li>
<li><p>Docs-as-code</p>
</li>
<li><p>Content strategy</p>
</li>
</ul>
<h2 id="heading-information-architecture-ia">Information Architecture (IA)</h2>
<h3 id="heading-what-is-information-architecture">What is information architecture?</h3>
<p>Information architecture means organizing and presenting information in a logical and easy-to-find way for users. It is essential because it allows users to find what they need quickly.</p>
<blockquote>
<p>It might sound simple, but IA is more than simply presenting content in a clear and concise way—it’s about creating a logical navigation structure that helps users find what they’re looking for without getting confused or frustrated.[<a target="_blank" href="https://www.uxdesigninstitute.com/blog/what-is-information-architecture/?campaignid=20774026720&amp;adgroupid=158577911987&amp;adid=680575919419&amp;utm_source=google&amp;utm_medium=cpc&amp;utm_term=&amp;utm_campaign=Search_T1B_UK_PDUX_Diploma_UX_Design_Dynamic_Ads&amp;hsa_cam=20774026720&amp;hsa_mt=&amp;hsa_ver=3&amp;hsa_src=g&amp;hsa_ad=680575919419&amp;hsa_net=adwords&amp;hsa_tgt=dsa-1683963560153&amp;hsa_acc=6247795550&amp;hsa_grp=158577911987&amp;hsa_kw=&amp;gad_source=1&amp;gclid=Cj0KCQjw8pKxBhD_ARIsAPrG45kinU4XsCLawFxfWkzS2cLJyXoELSCrAobEsKis-xfRpWbL3rLt8eEaAvYOEALw_wcB">UX Design Institute</a>]</p>
</blockquote>
<p>When you review documentation looking for information, you may notice that it has two components: <strong><em>organization</em></strong> and <strong><em>naming</em></strong>. Organization means that content is structured into categories. Naming means using words to represent each category.</p>
<h3 id="heading-why-is-ia-important">Why is IA important?</h3>
<p>Information architecture is important for the user and the business.</p>
<p>Nowadays, people want to find what they need as soon as possible. Users don't want to spend too much time finding information. They'll click off your site and potentially go to a competitor who may give them what they want sooner. Good IA has a significant impact on user experience.</p>
<blockquote>
<p>The faster the users get to their final destination, even if that destination includes multiple options, the greater their satisfaction.[<a target="_blank" href="https://careerfoundry.com/en/blog/ux-design/a-beginners-guide-to-information-architecture/#whats-the-value-of-information-architecture">CareerFoundry</a>]</p>
</blockquote>
<p>For a company, unstructured IA may result in:</p>
<ul>
<li><p>Lost customers.</p>
</li>
<li><p>Bad reputation.</p>
</li>
<li><p>Lost sales.</p>
</li>
<li><p>Reduced SEO ranking.</p>
</li>
<li><p>Increased cost of customer support.</p>
</li>
</ul>
<h2 id="heading-docs-as-code">Docs-as-code</h2>
<p>Documentation-as-code (Docs-as-code) is the process of writing and maintaining documentation the same you write and maintain code.</p>
<p>This means:</p>
<ul>
<li><p>Using version control.</p>
</li>
<li><p>Performing code reviews.</p>
</li>
<li><p>Using issue trackers (such as JIRA).</p>
</li>
<li><p>Using markdown (or other text mark up).</p>
</li>
</ul>
<p>Docs-as-code allows technical writers and software engineers to collaborate and contribute to the documentation. Docs-as-code empowers technical writers to ensure that documentation meets its highest standards.</p>
<p>As part of my job, I sometimes block pull requests from being merged until they are rewritten to comply with the style guide.</p>
<h2 id="heading-content-strategy">Content strategy</h2>
<blockquote>
<p>A content strategy is the planning, creation, publication, management, and governance of content.[<a target="_blank" href="https://blog.hubspot.com/marketing/content-marketing-plan">HubSpot Blog</a>]</p>
</blockquote>
<p>In technical writing, content strategy means ensuring the documentation caters to the target audience.</p>
<h3 id="heading-why-do-you-need-a-content-strategy">Why do you need a content strategy?</h3>
<blockquote>
<p><strong>The purpose of content strategy is to create meaningful, cohesive, engaging, and sustainable content that attracts the company’s target customers.[</strong><a target="_blank" href="https://www.krusecontrolinc.com/powerful-reasons-why-everything-begins-with-content-strategy/"><strong>7 Powerful Reasons Why Everything Begins with Content Strategy</strong></a><strong>]</strong></p>
</blockquote>
<h4 id="heading-consistency">Consistency</h4>
<p>A content strategy gives the documentation consistency. Consistency means that users know where to find information easily, which helps improve the overall user experience of the documentation.</p>
<h4 id="heading-search-engine-optimization">Search Engine Optimization</h4>
<p>The company ranks higher on search engines when documentation follows a structured content strategy.</p>
<h2 id="heading-conclusion-and-next-steps">Conclusion and Next Steps</h2>
<p>By mastering these key elements, you can create documentation that engages readers and allows them to comprehend even the most intricate concepts.</p>
<p>Mastering the art of technical writing is a continuous learning process.</p>
]]></content:encoded></item><item><title><![CDATA[My First Year As a Technical Writer]]></title><description><![CDATA[In April 2023, I quit software engineering and accepted an offer to join Cloudflare as a technical writer on its Developer Platform. Before that offer, I had been a software engineer (Java developer) since about 2019.
My first year as a technical wri...]]></description><link>https://techwithmaddy.com/my-first-year-as-a-technical-writer</link><guid isPermaLink="true">https://techwithmaddy.com/my-first-year-as-a-technical-writer</guid><category><![CDATA[Technical writing ]]></category><category><![CDATA[writing]]></category><category><![CDATA[documentation]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Wed, 10 Apr 2024 04:00:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1712698505882/365c472b-24bc-4e18-9c40-5c613414a87c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In April 2023, I quit software engineering and accepted an offer to join <a target="_blank" href="https://www.cloudflare.com/en-gb/">Cloudflare</a> as a technical writer on its Developer Platform. Before that offer, I had been a software engineer (Java developer) since about 2019.</p>
<p>My first year as a technical writer taught me a lot about technical writing, and I feel that my interpersonal skills have grown significantly in the past 12 months.</p>
<h2 id="heading-work-life-balance">Work-life balance</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712697701769/3e84f0ad-5a12-4d36-ba10-661871012848.jpeg" alt class="image--center mx-auto" /></p>
<p>Work-life balance is subjective because it depends on the company and, more specifically, the team. My work-life balance as a technical writer is the best I've ever had.</p>
<p>When I was a software engineer, I found it difficult to completely switch off from work.</p>
<p>I was concerned about things breaking, finding a solution to a bug, not being able to complete tasks within tight deadlines, impressing my manager, and so on.</p>
<p>As a technical writer, I still have deadlines and tasks to complete by a specific date, but overall, deadlines have been more relaxed.</p>
<p>I can switch off from work, I'm not concerned about things breaking, and there's no "urgency" because content is not mission-critical.</p>
<h2 id="heading-blogging-is-different-from-technical-writing">Blogging is different from technical writing</h2>
<p><a target="_blank" href="https://techwithmaddy.com/technical-blogging-vs-technical-writing-main-differences"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712697727755/5141a91a-2121-4288-b421-c516f781e677.png" alt class="image--center mx-auto" /></a></p>
<p>In my first 3-6 months, I learned how to write as a technical writer. Before becoming a professional technical writer, I've been writing on this blog since 2021.</p>
<p>Blogging helped me a lot with my current role, but I still had to learn about:</p>
<ul>
<li><p>Technical communication</p>
</li>
<li><p>Information Architecture</p>
</li>
<li><p>Markdown</p>
</li>
<li><p>User journey</p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/essential-technical-writing-skills#heading-documentation-as-code">Docs-as-code</a></p>
</li>
</ul>
<p>In addition to the topics above, I've also learned about the company's and the team's processes. This has been an enormous learning curve, but having the right manager and supportive colleagues has made the learning enjoyable and not overwhelming.</p>
<p>Technical writing is more sterile and straight-to-the-point than <a target="_blank" href="https://techwithmaddy.com/technical-blogging-vs-technical-writing-main-differences">blogging</a>. I had to learn to cut out the fluff and tell the user what they needed to do to use the product without adding words that add no value.</p>
<h2 id="heading-you-have-to-advocate-for-yourself">You have to advocate for yourself</h2>
<p>As a technical writer, you'll often have to advocate for yourself. Technical writing is an underrated and taken-for-granted role.</p>
<p>Sometimes, software documentation is not considered part of a <a target="_blank" href="https://techwithmaddy.com/why-user-documentation-is-essential-in-software-development#heading-1-product-success">successful product</a> but is more like a side-project ("after-thought").</p>
<p>As a technical writer, you must speak up often, advocate for your work, proactively engage with the SMEs (subject matter experts), and participate in all the meetings necessary to perform your role successfully.</p>
<h2 id="heading-technical-writing-is-about-asking-the-right-questions">Technical writing is about asking the right questions</h2>
<p>Technical writers are responsible for identifying the information the users need to use a product successfully, and create content from there.</p>
<p>Since software engineers are responsible for building the product, technical writers must ask questions to access the knowledge they need to write the documentation.</p>
<p>Software engineers build the product, but they don't know (or take for granted) what the users need to use the product from scratch.</p>
<h2 id="heading-project-management">Project management</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1712698227226/f95af63f-46ae-4fbc-a2c6-52f4d3553b62.png" alt class="image--center mx-auto" /></p>
<p>When I started my role, I was surprised by how project management plays an integral part in ensuring that I track my work. I <a target="_blank" href="https://techwithmaddy.com/day-in-the-life-of-a-technical-writer#heading-organize-your-jira">use JIRA</a> on a day-to-day basis to:</p>
<ul>
<li><p>Create tickets.</p>
</li>
<li><p>Track how many tickets I close per Sprint.</p>
</li>
<li><p>Track the progress of each product's documentation.</p>
</li>
</ul>
<h2 id="heading-commonalities-between-software-engineering-and-technical-writing">Commonalities between software engineering and technical writing</h2>
<p>Both software engineers and technical writers:</p>
<ul>
<li><p>Use Git (or other version control) and GitHub.</p>
</li>
<li><p>Use an IDE.</p>
</li>
<li><p>Follow an Agile process.</p>
</li>
<li><p>Both are built for the users (but from different perspectives).</p>
</li>
<li><p>Perform <a target="_blank" href="https://techwithmaddy.com/day-in-the-life-of-a-technical-writer#heading-review-your-peers-pull-requests">peer reviews</a>.</p>
</li>
</ul>
<p>Technical writers write little to no coding and are more concerned with creating user-focused documentation.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>After reading this article, you have an idea of what a technical writer does.</p>
<p>If this article is interesting to you, subscribe to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Is Job Hopping In Tech Bad?]]></title><description><![CDATA[Job hopping is the pattern of switching jobs quickly, usually under three years. In the tech industry, this pattern has become the norm (at least before all these layoffs started), and it's used as the primary method of boosting your salary and caree...]]></description><link>https://techwithmaddy.com/is-job-hopping-in-tech-bad</link><guid isPermaLink="true">https://techwithmaddy.com/is-job-hopping-in-tech-bad</guid><category><![CDATA[Career]]></category><category><![CDATA[career advice]]></category><category><![CDATA[job]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 11 Mar 2024 06:00:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1710015878858/9498898e-7ad8-473f-861d-ad9f409fd03b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Job hopping is the pattern of switching jobs quickly, usually under three years. In the tech industry, this pattern has become the norm (at least before all these layoffs started), and it's used as the primary method of boosting your salary and career prospects.</p>
<p>Job hopping used to be taboo, but changing jobs every two to three years has become widely accepted.</p>
<p>There has been a generational shift in the last few years: years ago, employees worked for the same company for decades and wanted to be loyal.</p>
<blockquote>
<p>“Rather than letting their progress be dictated by a single employer, many workers felt empowered to actively manage their own careers: moving between companies as needed to advance, gain new skills or look for new opportunities.”<a target="_blank" href="https://www.bbc.com/worklife/article/20220720-the-case-for-job-hopping">[The case for job hopping]</a></p>
</blockquote>
<p>Over the last few years, though, employees have been rejecting the notion of company loyalty and starting to do what suits them best.</p>
<blockquote>
<p>[...]They should be intentional and strategic with each career move, and they need to be prepared to explain those transitions when discussing their job history with future employers.<a target="_blank" href="https://builtin.com/career-development/job-hopping">[What Is Job Hopping? (Pros, Cons and Considerations)]</a></p>
</blockquote>
<h2 id="heading-what-are-the-positive-aspects-of-job-hopping">What are the positive aspects of job hopping?</h2>
<h3 id="heading-higher-salary">Higher salary</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710015186149/d4ec0bc9-3b8c-41be-9618-d93eae365d57.png" alt class="image--center mx-auto" /></p>
<p>When you stay in the same company for several years, the usual salary increase you can get is 4%. However, when you change jobs, you can receive a significant pay rise of 8%+.</p>
<h3 id="heading-variety-of-experience">Variety of experience</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710015326081/5367957d-794c-4751-b583-8d3db74e9bde.png" alt class="image--center mx-auto" /></p>
<p>Changing jobs frequently exposes you to various skills and domains you wouldn't be able to gain if you stayed at the same company for a long time.</p>
<h3 id="heading-adaptability">Adaptability</h3>
<p>Changing jobs frequently may also signal that you can quickly adapt to a new environment and, therefore, impact the company soon.</p>
<h3 id="heading-career-growth">Career growth</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710014863639/cfbc554d-4f6f-4088-8f1d-a67a907628b0.jpeg" alt class="image--center mx-auto" /></p>
<p>Managers cannot always give you a promotion for reasons outside their control (position not being available, budget not being enough, hierarchy, etc.). Job hopping allows you to get your desired promotion at a different company.</p>
<h3 id="heading-new-environment">New environment</h3>
<p>Job hopping allows you to experience a new environment with new colleagues and managers and perhaps better internal processes.</p>
<h2 id="heading-how-can-job-hopping-hurt-your-career">How can job hopping hurt your career?</h2>
<h3 id="heading-limited-professional-growth">Limited professional growth</h3>
<p>When you frequently switch jobs, you cannot absorb enough information and experience to be successful in the long run. When you stay in the same company for a reasonable amount of time (3+ years), you learn the company's domain and the business challenges the domain may carry. This knowledge can significantly benefit you in the future.</p>
<blockquote>
<p>“An employee moving jobs too often can mean they aren’t in a position long enough to truly learn the role or gain new skills,” says Thomas. “It can ultimately damage a person’s career: it may be challenging to demonstrate to a new employer previous proficiency and achievements.”<a target="_blank" href="https://www.bbc.com/worklife/article/20220720-the-case-for-job-hopping">[The case for job hopping]</a></p>
</blockquote>
<h3 id="heading-weak-social-connections">Weak social connections</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710015349417/d7948652-02ed-47e5-b684-6c6a35cab3ed.jpeg" alt class="image--center mx-auto" /></p>
<p>Switching jobs too frequently doesn't allow you to build solid connections with your colleagues. This may hurt you if you ever need a referral or endorsement from a colleague in the future. Having a solid <a target="_blank" href="https://techwithmaddy.com/top-5-networking-tips-for-software-engineers">network</a> is crucial, especially during these difficult times.</p>
<h3 id="heading-it-may-look-bad-on-your-resume">It may look bad on your resume</h3>
<p>Even though switching jobs frequently has mainly become accepted, some recruiters and hiring managers may be reluctant to consider someone who displays a pattern of consistently changing jobs on their <a target="_blank" href="https://techwithmaddy.com/how-to-create-a-job-winning-resume-for-the-tech-industry-in-2023">resume</a>.</p>
<h3 id="heading-is-job-hopping-in-tech-bad-in-the-end">Is job hopping in tech bad in the end?</h3>
<p>This depends on how you go about job-hopping.</p>
<p>If you intend to job-hop solely to get a salary bump, you'll eventually reach a point where it becomes unsustainable.</p>
<p>However, job hopping strategically can benefit your career when you stay in a job long enough to gain skills and experience you can leverage in your next role.</p>
<p>A balanced approach would be ideal. Staying at a job for less than a year isn't smart, but working for the same company for 10+ years would mean leaving too much money on the table.</p>
<p>The ideal approach would be to have a balance between short and long job experiences.</p>
<p><strong><em>Subscribe to my</em></strong> <a target="_blank" href="https://techwithmaddy.com/newsletter"><strong><em>FREE weekly newsletter</em></strong></a> <strong><em>if you enjoyed this article.</em></strong></p>
]]></content:encoded></item><item><title><![CDATA[14 Most Recommended Programming Habits for Software Developers]]></title><description><![CDATA[Many developers, no matter how hardworking, find themselves facing roadblocks in their careers. Whether you're just starting out or a seasoned software developer, navigating through these common hurdles is important. This article explores some habits...]]></description><link>https://techwithmaddy.com/14-most-recommended-programming-habits-for-software-developers</link><guid isPermaLink="true">https://techwithmaddy.com/14-most-recommended-programming-habits-for-software-developers</guid><category><![CDATA[General Programming]]></category><category><![CDATA[software development]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 29 Jan 2024 06:00:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1706460418644/70d99f54-5948-4c91-8224-09a316544278.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Many developers, no matter how hardworking, find themselves facing roadblocks in their careers. Whether you're just starting out or a seasoned software developer, navigating through these common hurdles is important. This article explores some habits and issues that might be holding you back.</p>
<h2 id="heading-1-understand-the-problem">1. Understand the Problem</h2>
<p>At the heart of programming lies problem-solving. Focus on the issues you're aiming to solve. Clearly define the boundaries of your solution, making it manageable and expressive.</p>
<p>Once these boundaries are set, explore both inside and outside the box. A crucial tip: Learn programming, not just programming languages. Knowing the <a target="_blank" href="https://mentorsol.com/tech-stacks-for-software-development/">best stack for software development</a> helps understand the underlying problem to adapt seamlessly between projects.</p>
<h2 id="heading-2-use-the-correct-tool">2. Use the correct tool</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706460461112/6bb61362-5bc0-4b5e-8f94-a55685499831.jpeg" alt class="image--center mx-auto" /></p>
<p>Every programmer possesses knowledge of data structures, algorithms, design patterns, and deployment application tools.</p>
<p>Regularly refresh your skills by staying updated on industry news. Regarding deployment tools, explore all <a target="_blank" href="https://techwithmaddy.com/api-testing-using-postman-for-beginners">API</a> options and understand why they use them.</p>
<p>Let your tasks dictate the tools, not the other way around. If you're breaking new ground, be open to developing new tools.</p>
<h2 id="heading-3-keep-your-solution-simple">3. Keep your solution simple</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706460763004/3a2e14b4-6dd8-47b2-87db-9d5a36647710.png" alt class="image--center mx-auto" /></p>
<p>Strive for simplicity in your solutions. Aim for easy comprehension, explainability, and maintainability for bug fixes or new features.</p>
<p>Seek the sweet spot where your product is user-friendly for novices and enables advanced users to perform clever tasks.</p>
<p>Remember: <strong><em>simple doesn't mean simplistic</em></strong>. You can have simple rules that enable complex behaviour.</p>
<h2 id="heading-4-practice-continuously">4. Practice continuously</h2>
<p>Becoming a proficient software developer is a gradual process. Embrace continuous learning to expand your skill set.</p>
<p>Contribute to open source projects, help friends' startups, provide feedback, fix bugs, and explore new programming languages, stacks, and tools. Consider sharing your knowledge through YouTube tutorials or <a target="_blank" href="https://techwithmaddy.com/how-to-write-a-technical-blog-post-template">blogging</a>. </p>
<h2 id="heading-5-learn-to-debug">5. Learn to debug</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706460850245/bc9d0a64-7662-49ac-b654-0a719d6d2115.png" alt class="image--center mx-auto" /></p>
<p>Debugging skills accumulate over time. Embrace opportunities to debug, as the process is more valuable than fixing the bug itself.</p>
<p>Debugging enhances your understanding of code, intuition, and insights into software. Don't give up, even if it takes hours. If you need help, use StackOverflow and/or ChatGPT. </p>
<h2 id="heading-6-exercise-and-rest">6. Exercise and rest</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706460869474/1ea5507d-3b78-4712-a39a-5bdf19e7b22a.jpeg" alt class="image--center mx-auto" /></p>
<p>Programming demands both mental and physical endurance. Stay fit for better concentration. When stuck on a bug, exercise physically, like jogging or swimming, to refresh your mind.</p>
<p>Take regular breaks, and disconnect from tech devices periodically. A comfortable keyboard is also recommended for extended comfort.</p>
<h2 id="heading-7-learn-from-your-projects">7. Learn from Your Projects</h2>
<p>Reflect on past projects to understand what worked and what didn't. Anticipate the skills needed for future projects.</p>
<p>Keep a record of interesting articles, read engineering blogs, and stay updated on industry knowledge. This awareness will guide you in choosing the right tools for your next project.</p>
<h2 id="heading-8-take-breaks">8. Take Breaks</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706461021006/4ceafb85-7f95-4651-bc07-2d1bdb679075.png" alt class="image--center mx-auto" /></p>
<p>Taking breaks is crucial. Staying back for a breather can do wonders when you're stuck on a problem. An example is to use the Pomodoro Technique. The Pomodoro Technique consists of short bursts of work followed by breaks.</p>
<p>These breaks not only refresh your brain but also supercharge your productivity. </p>
<h2 id="heading-9-seeking-assistance">9. Seeking Assistance</h2>
<p>There's absolutely nothing wrong with not knowing something. Whether you're a college student or a seasoned developer, don't hesitate to seek help when you're unsure.</p>
<p>Dive into books, watch tutorials, and reach out to your seniors or fellow developers. If you have the expertise, extend a helping hand to others. It's about gaining knowledge and fostering career growth.</p>
<p>Many programmers shy away from asking for help, but it's not a sign of ignorance. It's a step towards understanding concepts more deeply.</p>
<h2 id="heading-10-continuous-learning">10. Continuous Learning</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706461040662/257a1246-99ac-4256-b4df-fa335082ce01.jpeg" alt class="image--center mx-auto" /></p>
<p>The tech world is vast, with technologies evolving or becoming obsolete. Keep your radar tuned to emerging trends. Engage in side projects and stay informed about new frameworks, libraries, or languages.</p>
<p>Dive into blogs, write your own, and contribute fresh ideas to your company.</p>
<p>Remember, your learning journey doesn't stop when you enter the programming realm. Stay curious, stay updated, share your knowledge, and consistently explore to fuel your growth as a programmer.</p>
<h2 id="heading-11-sharing-ideas-and-knowledge">11. Sharing Ideas and Knowledge</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706461209696/723f88aa-6fab-4fd8-a141-47c304422323.png" alt class="image--center mx-auto" /></p>
<p>In the wise words of Albert Einstein, "If you can’t explain it simply, you don’t understand it well enough." As you become a proficient developer or programmer, don't hoard knowledge—share it.</p>
<p>Whether it's through writing blogs, teaching someone, or offering help, sharing your insights benefits others and enhances your skills. Embrace <a target="_blank" href="https://techwithmaddy.com/how-to-receive-feedback-as-a-software-engineer">constructive feedback</a> and criticism. It's a pathway to improvement. Be open to different opinions and learn from them.</p>
<h2 id="heading-12-crafting-clean-reusable-and-efficient-code">12. Crafting Clean, Reusable, and Efficient Code</h2>
<p>A key habit for any good developer is to write code that is clean, efficient, and easy to understand.</p>
<p>Follow the DRY (Do Not Repeat Yourself) principle: when you spot repetitive code, create a function to handle it. <a target="_blank" href="https://techwithmaddy.com/how-to-write-the-perfect-documentation-for-your-github-project">Documentation</a>, comments, and a clean code structure are your allies.</p>
<p>Make your code understandable for other developers:</p>
<ul>
<li><p>Use meaningful naming conventions, use Camel case, and ensure your CSS or JS is minified.</p>
</li>
<li><p>Compress images to keep your projects nimble. Thorough testing is crucial. While simplicity is often preferred, sometimes it's okay to write spaghetti code if it makes things clearer and more manageable. </p>
</li>
<li><p>Strive for a balance between simplicity and complexity.</p>
</li>
</ul>
<h2 id="heading-13-patience">13. Patience</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1706461342593/f7c3f874-3bea-4f23-b807-84ea283e724b.png" alt class="image--center mx-auto" /></p>
<p>Learning the ropes, getting comfortable, and truly grasping concepts takes time in programming. Whether you're a beginner or a seasoned developer, patience is your ally when tackling challenges.</p>
<p>Don't let frustration overwhelm you when faced with complex problems. Many beginners throw in the towel too early, feeling overwhelmed or scared. It's essential to understand that becoming an expert programmer is a gradual process.</p>
<p>Take small steps every day, and allocate time not just for coding but also for yourself, your family, and your hobbies. Success in programming is a marathon, not a sprint.</p>
<h2 id="heading-14-navigating-co-worker-dynamics">14. Navigating Co-Worker Dynamics</h2>
<p>Becoming a skilled programmer isn't just about churning out code. It's also about collaboration and handling differing opinions. Respect and consider others' ideas, even if they clash with yours.</p>
<p>Effectively managing conflicting solutions and handling pressure is vital in a team setting. Many companies emphasize cultural fit for a reason. Be open-minded, avoid arrogance, and communicate effectively to address issues.</p>
<p>Seasoned developers, despite their expertise, sometimes falter in handling co-worker dynamics. Learn from your mistakes, stay open to constructive discussions, and foster a positive collaborative environment.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Cultivating effective programming habits is crucial for software developers seeking to enhance their efficiency and produce high-quality code.</p>
<p>The most recommended programming habits, including regular code reviews, version control utilization, and consistent documentation, contribute to a more collaborative and streamlined development process.</p>
<p>Embracing a proactive approach to problem-solving, continuous learning, and adopting coding standards further elevates a developer's skill set. </p>
<p>Prioritizing clear communication within the team and through well-commented code fosters a positive and productive working environment.</p>
<p>Ultimately, integrating these habits enhances individual performance and significantly contributes to the overall success of software development projects.</p>
<p>If you enjoyed this article, consider subscribing to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>.</p>
]]></content:encoded></item><item><title><![CDATA[How To Generate Tests Using CodiumAI]]></title><description><![CDATA[CodiumAI is an IDE extension that allows you to generate test suites.
CodiumAI analyzes the entirety of your code and then suggests tests as you code.
CodiumAI's main vision is to help developers create better code faster.
To use CodiumAI, you will n...]]></description><link>https://techwithmaddy.com/how-to-generate-tests-using-codiumai</link><guid isPermaLink="true">https://techwithmaddy.com/how-to-generate-tests-using-codiumai</guid><category><![CDATA[AI]]></category><category><![CDATA[#ai-tools]]></category><category><![CDATA[aitools]]></category><category><![CDATA[generative ai]]></category><category><![CDATA[Testing]]></category><category><![CDATA[Java]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 22 Jan 2024 06:00:22 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1705841111405/aed2ab9d-bf3e-468c-a611-5352c2ee45fa.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>CodiumAI is an IDE extension that allows you to generate test suites.</p>
<p>CodiumAI analyzes the entirety of your code and then suggests tests as you code.</p>
<p>CodiumAI's main vision is to help developers create better code faster.</p>
<p>To use CodiumAI, you will need:</p>
<ol>
<li><p>VS Code or JetBrains IDE installed on your laptop.</p>
</li>
<li><p>Go to <a target="_blank" href="https://www.codium.ai/">CodiumAI</a> and download CodiumAI on your laptop.</p>
</li>
</ol>
<p>This tutorial uses Visual Studio Code with Java.</p>
<p>Once you have Visual Studio Code installed on your laptop, on CodiumAI, select the option to download the free version of your Visual Studio Code.</p>
<h2 id="heading-how-to-use-codiumai-on-visual-studio-code">How to use CodiumAI on Visual Studio Code</h2>
<p>Create a Java project on your Visual Studio Code called <code>CodiumAI_Project</code>.</p>
<p>Once you have created your project, open it on your Visual Studio Code.</p>
<p>This is what you should see:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705345917843/31668357-1284-44ae-bb32-4e93c7d5a2b1.png" alt class="image--center mx-auto" /></p>
<p>Select the CodiumAI icon at the bottom of the left sidebar to use CodiumAI on Visual Studio Code:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705346157836/6db8143c-96a1-4792-9c44-4fc8061e5b84.jpeg" alt class="image--center mx-auto" /></p>
<p>At the bottom, select <strong>No Context</strong>. Selecting <strong>No Context</strong> allows you to ask a question without context. For example, you can ask CodiumAI to generate a class called <code>Vehicle</code> with <code>brand</code>, <code>colour</code> and <code>purpose_of_use</code> as private fields.</p>
<p>The code generated will initially be written in Python like this:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705347311902/de9ba073-6c42-4a39-893f-218c4370eff3.png" alt class="image--center mx-auto" /></p>
<pre><code class="lang-python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Vehicle</span>:</span>
    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span>(<span class="hljs-params">self, brand, colour, purpose_of_use</span>):</span>
        self.__brand = brand
        self.__colour = colour
        self.__purpose_of_use = purpose_of_use

    <span class="hljs-comment"># getter methods</span>
    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">get_brand</span>(<span class="hljs-params">self</span>):</span>
        <span class="hljs-keyword">return</span> self.__brand

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">get_colour</span>(<span class="hljs-params">self</span>):</span>
        <span class="hljs-keyword">return</span> self.__colour

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">get_purpose_of_use</span>(<span class="hljs-params">self</span>):</span>
        <span class="hljs-keyword">return</span> self.__purpose_of_use

    <span class="hljs-comment"># setter methods</span>
    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">set_brand</span>(<span class="hljs-params">self, brand</span>):</span>
        self.__brand = brand

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">set_colour</span>(<span class="hljs-params">self, colour</span>):</span>
        self.__colour = colour

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">set_purpose_of_use</span>(<span class="hljs-params">self, purpose_of_use</span>):</span>
        self.__purpose_of_use = purpose_of_use
</code></pre>
<p>CodiumAI allows you to translate code from one programming language to another. Since this tutorial uses Java, you can translate the Python-generated code into Java.</p>
<p>Select <strong>Continue this chat</strong>, and ask CodiumAI to change the code to Java.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705347617327/6945b809-daa0-492f-9d69-c19011c55881.png" alt class="image--center mx-auto" /></p>
<pre><code class="lang-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Vehicle</span> </span>{
    <span class="hljs-keyword">private</span> String brand;
    <span class="hljs-keyword">private</span> String colour;
    <span class="hljs-keyword">private</span> String purposeOfUse;

    <span class="hljs-comment">// constructor</span>
    <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-title">Vehicle</span><span class="hljs-params">(String brand, String colour, String purposeOfUse)</span> </span>{
        <span class="hljs-keyword">this</span>.brand = brand;
        <span class="hljs-keyword">this</span>.colour = colour;
        <span class="hljs-keyword">this</span>.purposeOfUse = purposeOfUse;
    }

    <span class="hljs-comment">// getter methods</span>
    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">getBrand</span><span class="hljs-params">()</span> </span>{
        <span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.brand;
    }

    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">getColour</span><span class="hljs-params">()</span> </span>{
        <span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.colour;
    }

    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">getPurposeOfUse</span><span class="hljs-params">()</span> </span>{
        <span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.purposeOfUse;
    }

    <span class="hljs-comment">// setter methods</span>
    <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setBrand</span><span class="hljs-params">(String brand)</span> </span>{
        <span class="hljs-keyword">this</span>.brand = brand;
    }

    <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setColour</span><span class="hljs-params">(String colour)</span> </span>{
        <span class="hljs-keyword">this</span>.colour = colour;
    }

    <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setPurposeOfUse</span><span class="hljs-params">(String purposeOfUse)</span> </span>{
        <span class="hljs-keyword">this</span>.purposeOfUse = purposeOfUse;
    }
}
</code></pre>
<p>With CodiumAI, you can generate a test suite for your desired code. Select <strong>Continue this chat</strong>, and ask CodiumAI to generate tests for the above class <code>Vehicle</code>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1705347944003/1a0a5e81-1e97-4685-ae72-ac1fbcf15d18.png" alt class="image--center mx-auto" /></p>
<pre><code class="lang-java"><span class="hljs-keyword">import</span> org.junit.jupiter.api.Test;
<span class="hljs-keyword">import</span> <span class="hljs-keyword">static</span> org.junit.jupiter.api.Assertions.assertEquals;

<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">VehicleTest</span> </span>{
    <span class="hljs-meta">@Test</span>
    <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">testVehicle</span><span class="hljs-params">()</span> </span>{
        <span class="hljs-comment">// create an instance of Vehicle</span>
        Vehicle vehicle = <span class="hljs-keyword">new</span> Vehicle(<span class="hljs-string">"Toyota"</span>, <span class="hljs-string">"Red"</span>, <span class="hljs-string">"Personal"</span>);

        <span class="hljs-comment">// test getters</span>
        assertEquals(<span class="hljs-string">"Toyota"</span>, vehicle.getBrand());
        assertEquals(<span class="hljs-string">"Red"</span>, vehicle.getColour());
        assertEquals(<span class="hljs-string">"Personal"</span>, vehicle.getPurposeOfUse());

        <span class="hljs-comment">// test setters</span>
        vehicle.setBrand(<span class="hljs-string">"Honda"</span>);
        vehicle.setColour(<span class="hljs-string">"Blue"</span>);
        vehicle.setPurposeOfUse(<span class="hljs-string">"Commercial"</span>);

        assertEquals(<span class="hljs-string">"Honda"</span>, vehicle.getBrand());
        assertEquals(<span class="hljs-string">"Blue"</span>, vehicle.getColour());
        assertEquals(<span class="hljs-string">"Commercial"</span>, vehicle.getPurposeOfUse());
    }
}
</code></pre>
<h2 id="heading-codiumai-features">CodiumAI features</h2>
<p>CodiumAI:</p>
<ul>
<li><p><a target="_blank" href="https://www.codium.ai/blog/alphacodium-state-of-the-art-code-generation-for-code-contests/">AlphaCodium</a>: a test-based, multi-stage, code-oriented iterative flow that improves the performance of LLMs on code problems.</p>
</li>
<li><p>Supports any language, even though advanced features are available in Python, JavaScript, TypeScript, and Java.</p>
</li>
<li><p>Allows you to spend more time writing core features instead of tests.</p>
</li>
<li><p>Helps you create bug-free software by thoroughly analyzing your code for edge cases.</p>
</li>
</ul>
<p>To start using CodiumAI, refer to the <a target="_blank" href="https://www.codium.ai/">CodiumAI website</a>.</p>
<p>Further reading:</p>
<ul>
<li><p><a target="_blank" href="https://www.codium.ai/blog/alphacodium-state-of-the-art-code-generation-for-code-contests/">AlphaCodium</a>: State-of-the-art generation code.</p>
</li>
<li><p><a target="_blank" href="https://www.codium.ai/products/ide-plugin/">IntegrityAgent</a>: Build Fast with Confidence using CodiumAI.</p>
</li>
<li><p>CodiumAI <a target="_blank" href="https://www.codium.ai/developers-hub/">Developer's Hub</a>.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Reviewing 2023: A Year Filled With Experiences]]></title><description><![CDATA[2023 has been a year of change and growth. I spent 2023 filling the following buckets:

Career growth.

Lifestyle and wellness.

Travel and exploration.

Community.


Career growth
In April 2023, I quit software engineering and started a new position...]]></description><link>https://techwithmaddy.com/reviewing-2023-a-year-filled-with-experiences</link><guid isPermaLink="true">https://techwithmaddy.com/reviewing-2023-a-year-filled-with-experiences</guid><category><![CDATA[yearinreview]]></category><category><![CDATA[2023]]></category><category><![CDATA[Career]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Tue, 02 Jan 2024 05:00:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1704138660215/39ed37fe-ebad-4f1d-86e6-c1b22ca3346b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>2023 has been a year of change and growth. I spent 2023 filling the following buckets:</p>
<ul>
<li><p>Career growth.</p>
</li>
<li><p>Lifestyle and wellness.</p>
</li>
<li><p>Travel and exploration.</p>
</li>
<li><p>Community.</p>
</li>
</ul>
<h2 id="heading-career-growth">Career growth</h2>
<p>In April 2023, I quit software engineering and started a new position as a technical writer for Cloudflare's developer platform.</p>
<p>2023 has made me realize that software engineering is not a role that suits <strong><em>me</em></strong>.</p>
<p>For a long time, I believed I could be a software engineer with "enough practice".</p>
<p>The more I worked as a software engineer, the more I realized I wasn't meant to be one. There's a difference between being "a developer" and being a "competent developer".</p>
<p>I often felt disengaged with the type of work, disagreeing with the Agile practices, and not feeling psychologically safe in the environments I was part of.</p>
<p>The companies I joined as a software engineer were not for me, and I wasn't for them either.</p>
<p>I tried being a software engineer three times but said to myself that I wasn't going to try a 4th time if I felt that the situation was not improving.</p>
<p>Earlier this year, I started sending CVs for positions that involved more communication (either written or verbal).</p>
<p>I initially sent a CV for a Solutions Engineer role at Cloudflare but got rejected because I had no experience. I sent another CV for a technical writer role at the same company and got offered a role, which I immediately accepted.</p>
<p>When I told some people that I would switch to technical writing, they answered that I would feel bored because it's repetitive work.</p>
<p>My experience so far has been far from this:</p>
<ul>
<li><p>As a technical writer, I get paid to learn.</p>
</li>
<li><p>It's an educating job where I teach users about a product.</p>
</li>
<li><p>It's a role that drives innovation, competitiveness and customer satisfaction.</p>
</li>
</ul>
<p>As a technical writer, I have more relaxed deadlines, I don't have to deal with bugs, on-call shifts are non-existent, there's no real "emergency", and you get to know your users.</p>
<p>Joining Cloudflare has been a smart move because:</p>
<ul>
<li><p>I use my <a target="_blank" href="https://techwithmaddy.com/essential-technical-writing-skills">writing skills</a> to educate users on using products to build their applications.</p>
</li>
<li><p>I learn about cyber security.</p>
</li>
<li><p>I learn about Artificial Intelligence and other cutting-edge technologies.</p>
</li>
</ul>
<p>My peace of mind has improved since shifting to technical writing, and I enjoy a better work-life balance.</p>
<h2 id="heading-lifestyle-and-wellness">Lifestyle and wellness</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704135928201/7c2f145d-315a-4cbd-be78-818f470389d1.png" alt class="image--center mx-auto" /></p>
<p>In 2023, I wanted to dedicate more time to improving my physical and mental wellness, with a slight focus on mental health, because it's easier to neglect.</p>
<p>How did I take care of my mental health?</p>
<h3 id="heading-therapy">Therapy</h3>
<p>Seeing a therapist has helped me improve my self-esteem, gain new insights about my personality, and learn how to create boundaries with others.</p>
<h3 id="heading-reduce-social-media-consumption">Reduce social media consumption</h3>
<p>Reducing social media consumption has helped me minimize exposure to harmful or triggering content, recognize and prioritize the value of real-life, genuine interactions.</p>
<h3 id="heading-spending-time-in-nature">Spending time in nature</h3>
<p>When I'm not hitting the gym, I walk at one of London's many parks, and it's a great way to start my day.</p>
<h2 id="heading-travel-and-exploration">Travel and exploration</h2>
<p>I've been blessed enough to travel to two countries this year: Istanbul (Turkey) and Bali (Indonesia).</p>
<p>Of the two, I enjoyed my trip to Bali: I spent loads of time in nature (rice fields, forests, waterfalls, beaches), eating smoothie bowls, doing yoga, and massages.</p>
<p>I tried snorkelling in Indonesia, and it was an experience that allowed me to feel connected to nature.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704135750046/5f8c80ed-d8cf-446f-bbb5-96ea4dd82453.jpeg" alt class="image--center mx-auto" /></p>
<h2 id="heading-community-and-relationships">Community and relationships</h2>
<h3 id="heading-gt-scholars">GT Scholars</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704124710449/a28147aa-2de7-49b1-8b9f-b066e94e4cad.png" alt class="image--center mx-auto" /></p>
<p><a target="_blank" href="https://www.gtscholars.org/">GT Scholars</a> is a social enterprise that runs programmes that help young people achieve their academic and career aspirations. I've been partnering with them since 2021, contributing to their blogging section on their website.</p>
<p>In 2023, I was the Lead Event Coordinator for a social mobility project dedicated to young boys, helping them gain the skills needed to succeed in their lives and careers.</p>
<p>This project ran for about three months, and it involved weekend workshops where the teenagers would group to learn about entrepreneurship, growth mindset, emotional intelligence, etc.</p>
<h3 id="heading-black-woman-in-tech-event">Black Woman in Tech Event</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1704124134968/1884a3b8-eb4d-4f9c-83df-951f620777d4.png" alt class="image--center mx-auto" /></p>
<p>I was one of the panellists for Cloudflare's Black Woman in Tech event in October 2023. The event went better than expected, it felt like a conversation among friends, and there was a strong community feeling.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>The overall theme for 2023 was about <strong><em>experiences</em></strong>. I experienced new hobbies, countries, people, and projects. I'm grateful for everything I experienced, and I hope 2024 will bring even more authentic experiences.</p>
<p>Happy New Year! 🎉</p>
]]></content:encoded></item><item><title><![CDATA[What Is Agile Software Development - How Does It Work?]]></title><description><![CDATA[Agile software development has emerged as a transformative approach in software engineering, revolutionizing how teams conceive, plan, and execute projects. In a landscape characterized by rapid technological advancements and ever-evolving user needs...]]></description><link>https://techwithmaddy.com/what-is-agile-software-development-how-does-it-work</link><guid isPermaLink="true">https://techwithmaddy.com/what-is-agile-software-development-how-does-it-work</guid><category><![CDATA[agile]]></category><category><![CDATA[agile development]]></category><category><![CDATA[agile methodology]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 04 Dec 2023 06:00:13 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1701617710725/770503ff-72a6-459c-b60c-00ac01b33c33.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Agile software development has emerged as a transformative approach in software engineering, revolutionizing how teams conceive, plan, and execute projects. In a landscape characterized by rapid technological advancements and ever-evolving user needs, the traditional waterfall model often falls short of delivering the flexibility and responsiveness demanded by modern software development.</p>
<p>Agile methodology, born out of a need for adaptability and collaboration, provides a dynamic framework that prioritizes iterative progress, customer feedback, and constant communication among team members. This introduction aims to delve into the fundamental principles and key elements that define Agile software development, shedding light on its origins, core values, and the profound impact it has had on the efficiency and success of software projects.</p>
<h2 id="heading-what-is-agile-software-development">What is Agile software development?</h2>
<p>Agile is a way of creating software that focuses on flexibility and practicality in delivering the final product. It differs from traditional methods because it concentrates on building smaller parts of the software rather than the entire thing. This approach requires companies to change how they work.</p>
<p>There are several <a target="_blank" href="https://mentorsol.com/benefits-of-agile-software-development/">benefits to using Agile software development</a>:</p>
<ul>
<li><p>It helps teams adapt to changes while efficiently delivering what the business needs.</p>
</li>
<li><p>Agile encourages teamwork and a better understanding of everyone's roles.</p>
</li>
<li><p>Because testing happens throughout the development process, companies can be more confident in the product quality they release. This allows them to fix problems early on.</p>
</li>
</ul>
<p>Agile has become more popular than the older "waterfall" method in many companies. However, there's a chance it might be overshadowed by the rise of DevOps, which focuses on collaboration between development and operations teams.</p>
<h2 id="heading-why-is-agile-so-popular">Why is agile so popular?</h2>
<p>Agile is popular because it offers a flexible and effective way of working. Agile started in software development, where teams used it to speed up their projects and shorten the time between creating new products. Many other types of companies are also adopting Agile to make their work faster and more adaptable to the quickly evolving future.</p>
<p>A study conducted by <a target="_blank" href="https://www.consultancy.eu/news/4153/half-of-companies-applying-agile-methodologies-practices">Organize Agile</a> found that nearly half of all organizations in 19 countries have been using Agile for three years or more. This shows how widely it's being adopted across different industries.</p>
<p><a target="_blank" href="https://www.consultancy.eu/news/4153/half-of-companies-applying-agile-methodologies-practices"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1701618437950/6e3920cb-1488-4f6c-805a-c02dc9f6f0e1.png" alt class="image--center mx-auto" /></a></p>
<h2 id="heading-how-does-agile-software-development-work">How does Agile software development work?</h2>
<h3 id="heading-1-define-the-project">1. Define the project</h3>
<p>The team and the customer set the project's goals, objectives, and requirements.</p>
<h3 id="heading-2-create-a-backlog">2. Create a backlog</h3>
<p>This is a prioritized list of tasks that need to be done. The customer, product owner, and team collaborate to create this list.</p>
<h3 id="heading-3-plan-the-sprint">3. Plan the sprint</h3>
<p>The team chooses the most important tasks from the backlog and decides how much work can be done in a set period (called a sprint).</p>
<h3 id="heading-4-execute-the-sprint">4. Execute the sprint</h3>
<p>The team works on completing the chosen tasks during the sprint, holding daily meetings to track progress and solve any problems.</p>
<h3 id="heading-5-review-and-demo">5. Review and demo</h3>
<p>At the end of the sprint, the team shows the completed work to the customer and gathers feedback.</p>
<h3 id="heading-6-retrospect">6. Retrospect</h3>
<p>The team discusses what went well, what didn't, and what can be improved for the next sprint.</p>
<h3 id="heading-7-repeat">7. Repeat</h3>
<p>This process continues for each sprint until the project is finished. The product is developed and delivered in smaller portions.</p>
<h3 id="heading-8-continuously-improve">8. Continuously improve</h3>
<p>Agile encourages ongoing improvement. The team reflects on its progress and makes changes to enhance processes, tools, and communication for future sprints.</p>
<h2 id="heading-core-principles-of-agile-software-development-methodology">Core Principles of Agile Software Development Methodology</h2>
<p>The Agile software development methodology is guided by several core principles that make a process Agile:</p>
<h3 id="heading-iterative-development">Iterative Development</h3>
<p>Projects are broken into short cycles (iterations) where small parts are developed and delivered. This allows for continuous improvements and feedback.</p>
<h3 id="heading-customer-collaboration">Customer Collaboration</h3>
<p>Regular interaction with customers and stakeholders ensures the project meets their needs. Working closely with them helps refine requirements and prioritize tasks.</p>
<h3 id="heading-adaptive-planning">Adaptive Planning</h3>
<p>Agile doesn't rely on strict upfront planning. Instead, it welcomes changing requirements and adjusts plans accordingly, enabling teams to respond to changing situations effectively.</p>
<h3 id="heading-continuous-feedback">Continuous Feedback</h3>
<p>Agile thrives on frequent feedback loops. Regular reviews and retrospectives help teams identify areas for improvement, fostering a culture of continuous learning.</p>
<h3 id="heading-empowered-teams">Empowered Teams</h3>
<p>Agile gives cross-functional teams the freedom to make decisions. This autonomy boosts accountability, innovation, and a sense of ownership over the project's success.</p>
<p>These principles guide Agile, making it a top choice for many organizations globally.</p>
<h2 id="heading-key-agile-development-concepts">Key Agile Development Concepts</h2>
<p><img src="https://lh7-us.googleusercontent.com/8kJGOsP_nZ1_ZEMy-fEkMZpqbWegjLG2mrFV5iaH0BBqV2SsLoeKvyqN_rGzkxe8ANdZzDVTkT0UNQ10Qlk1tgiOd37UjEJQkCkBbmKDw8Yf2krame0_1sm8eoKcSYrUwBpI6c1OHbyRZWdQDrT2KrY" alt class="image--center mx-auto" /></p>
<p>Some important concepts in Agile development:</p>
<h3 id="heading-user-stories">User Stories</h3>
<p>These are functional units of work divided by the team with input from the client or product owner. Each user story contributes value to the final product.</p>
<h3 id="heading-daily-meeting">Daily Meeting</h3>
<p>The team gathers daily at a set time to share updates necessary for coordination.</p>
<h3 id="heading-personas">Personas</h3>
<p>In some projects, the team creates detailed profiles of hypothetical users of the product to understand their needs better.</p>
<h3 id="heading-team">Team</h3>
<p>A small group of people working full-time on the same project or task is called a "team" in Agile.</p>
<h3 id="heading-incremental-development">Incremental Development</h3>
<p>Agile teams prefer an approach where each product iteration improves upon the previous one by adding visible functionality.</p>
<h3 id="heading-iterative-development-1">Iterative Development</h3>
<p>Agile allows for repeating and revisiting development activities, intentionally incorporating iterative cycles.</p>
<h3 id="heading-milestone-retrospective">Milestone Retrospective</h3>
<p>After working on a project for a while, the team sets aside time, typically one to three days, to reflect on key moments and lessons learned.</p>
<p>These concepts are fundamental to Agile and are used to ensure efficient and effective development processes.</p>
<h2 id="heading-popular-tools-in-agile-software-development">Popular Tools in Agile Software Development</h2>
<p><img src="https://lh7-us.googleusercontent.com/cJ0uJWhJB0_MbLLfXQ9pt34nG2PoBRUY8xdnFYcKkH3yTU_RHZmQb0Hag0sQW2tEpEFRPc0tBIuOBDuhIt5TnRxCPQ-X4Xu6g9FHXnF_FBesrjM1r9siAHOgpN4ULP59FD5BSV3UwZg9f-smPSlmx0w" alt class="image--center mx-auto" /></p>
<h3 id="heading-extreme-programming-xp">Extreme Programming (XP)</h3>
<p>XP is a framework that helps teams create high-quality software by emphasizing proper engineering practices. It's useful for handling changing <a target="_blank" href="https://techwithmaddy.com/what-is-a-requirement-in-software-engineering">software requirements</a>, working in small, closely-knit teams, and utilizing automated unit and functional tests.</p>
<h3 id="heading-kanban">Kanban</h3>
<p>This method is used to visualize, manage, and improve workflow. Kanban helps organizations see their work progress and limits work in progress. It's beneficial when work arrives unpredictably and needs immediate deployment without waiting for other tasks.</p>
<h3 id="heading-lean">Lean</h3>
<p>Lean consists of tools and principles to identify and eliminate waste to speed up process development. It focuses on maximizing value while minimizing waste and is applicable across various industries that generate waste.</p>
<h3 id="heading-scrum">Scrum</h3>
<p><a target="_blank" href="https://techwithmaddy.com/brief-introduction-to-scrum">Scrum is a framework</a> teams use to set hypotheses, test them, reflect on the outcomes, and make adjustments. It allows teams to adopt practices from other frameworks as needed. It's popular among cross-functional teams working on product development, dividing work into iterations lasting 2-4 weeks.</p>
<h3 id="heading-crystal">Crystal</h3>
<p>Crystal emphasizes people and interactions over tools and processes. It aims to streamline processes and optimize work by recognizing that each project is unique and dynamic. It's utilized when improving team communication, integrating continuously, involving active users, and adapting processes are essential.</p>
<p>These tools and frameworks are widely used in Agile software development to improve processes, collaboration, and product quality.</p>
<h2 id="heading-the-waterfall-model-in-agile-software-development">The Waterfall Model in Agile Software Development</h2>
<p>The waterfall model is an older approach to making software. It involves following steps one by one and only moving on to the next step once the previous one is done.</p>
<p><img src="https://lh7-us.googleusercontent.com/GsIkPHVduZJHuNXPLJThf1jcW1glTsirCXA5U8NeT10fGTKoTdeRKznYqNwuB6VI8QIZ_ExaLAIlbcvkJMCc2Hh4VYFOJNU3t6S0h5wh9fBCN0n4TZ6_gQEQBWf_LZ2lqpOHm8YbNAjYPtZG3ygc1Po" alt class="image--center mx-auto" /></p>
<p>Let's look at the steps of the waterfall model:</p>
<ul>
<li><p><strong>Requirement Gathering and Analysis:</strong> Everything the system needs to do is collected and written down.</p>
</li>
<li><p><strong>System Design:</strong> A plan is made for how the system will work based on the requirements collected earlier.</p>
</li>
<li><p><strong>Implementation:</strong> Small parts of the system are built and tested separately. These parts are then put together.</p>
</li>
<li><p><strong>Integration and Testing:</strong> All the parts are assembled and tested to ensure they work well together.</p>
</li>
<li><p><strong>Deployment of System:</strong> Once everything works correctly, it's made available for the customer or released in the market.</p>
</li>
<li><p><strong>Maintenance:</strong> Fixes and improvements are made as needed, handling any issues that come up after the system is in use.</p>
</li>
</ul>
<p>Not every project fits perfectly into the waterfall model or Agile methods. Sometimes, a mix of both, called Agile-Waterfall, works best. For instance, <a target="_blank" href="https://techwithmaddy.com/why-we-need-architectural-design-in-software-engineering">planning and design</a> might follow a waterfall method while development uses Agile's shorter cycles.</p>
<h2 id="heading-disadvantages-of-the-waterfall-model">Disadvantages of the waterfall model</h2>
<p>Certainly! Here are the drawbacks or disadvantages of the waterfall model in simpler terms:</p>
<ul>
<li><p><strong>Late Software Development:</strong> In the waterfall model, working software isn't created until later in the project timeline.</p>
</li>
<li><p><strong>High Risk and Uncertainty:</strong> There's a significant amount of risk and uncertainty due to the linear nature of the model, which doesn't adapt well to changes.</p>
</li>
<li><p><strong>Not Suitable for Complex or Object-Oriented Projects:</strong> It's not the best fit for complex projects involving object-oriented software development.</p>
</li>
<li><p><strong>Unsuitable for long or ongoing projects:</strong> The waterfall model isn't well-suited for lengthy or continuous projects due to its rigid structure.</p>
</li>
<li><p><strong>Difficult progress measurement:</strong> Measuring progress accurately within different stages of the project is challenging.</p>
</li>
<li><p><strong>Inflexibility in handling changing requirements:</strong> It's hard to accommodate changes in requirements once a stage is completed.</p>
</li>
<li><p><strong>Lack of focus on end-user/client needs:</strong> The model might not prioritize or focus enough on meeting the needs of the end-users or clients.</p>
</li>
<li><p><strong>Delayed testing until project completion:</strong> <a target="_blank" href="https://techwithmaddy.com/why-do-software-projects-fail#heading-poor-testing">Testing is often delayed</a> until the entire project is finished, which can lead to potential issues being discovered late in the process.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion:</h2>
<p>In conclusion, Agile software development stands as a beacon of innovation in the dynamic world of software engineering. From its inception to widespread adoption, Agile has proven to be more than just a methodology; it's a mindset that embraces change, values collaboration, and puts the customer at the forefront of the development process. Agile's iterative nature accelerates project delivery and enhances the ability to respond swiftly to shifting requirements and emerging challenges. Agile remains a cornerstone for fostering adaptability, resilience, and customer satisfaction as technology evolves. In essence, the principles of Agile software development serve as a guiding philosophy, steering development teams toward a future where flexibility, collaboration, and continuous improvement are not just aspirations but integral components of successful software delivery.</p>
<p>If you enjoyed this article, subscribe to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>.</p>
<h3 id="heading-faqs">Faq’s</h3>
<h3 id="heading-what-is-agile">What is Agile?</h3>
<p>Agile is a flexible and adaptive methodology used to manage projects. Its core focus is on prioritizing adaptability and continuous improvement rather than rigidly following a fixed plan.</p>
<h3 id="heading-what-are-the-four-principles-of-agile">What are the Four Principles of Agile?</h3>
<p>The four guiding principles of Agile are valuing individuals and their interactions, emphasizing working software, fostering customer collaboration, and being responsive to change. A typical example of Agile methodology is Scrum.</p>
<h3 id="heading-can-you-give-an-example-of-agile">Can you give an example of Agile?</h3>
<p>Scrum is an instance of Agile methodology, a framework utilized to manage and accomplish intricate projects. It's commonly applied in software development but can extend to other fields. Scrum aligns with Agile principles, emphasizing flexibility and continuous enhancement. It utilizes short iterations, known as sprints, to monitor and handle progress.</p>
<h3 id="heading-what-is-the-core-concept-of-agile">What is the Core Concept of Agile?</h3>
<p>The fundamental idea behind Agile is to prioritize adaptability and continuous improvement above rigid planning. Agile methods aim to swiftly and effectively deliver functional software by being adaptable and responsive to evolving requirements and priorities. Additionally, Agile stresses collaboration among teams, customers, and stakeholders, promoting open communication and transparency throughout a project's lifespan.</p>
]]></content:encoded></item><item><title><![CDATA[Top 6 Essential Technical Writing Skills]]></title><description><![CDATA[Technical writing goes beyond relaying information. It's about crafting a seamless experience for the reader.
This article delves into the essential skills that every technical writer should possess, from mastering the fundamentals of grammar and sty...]]></description><link>https://techwithmaddy.com/essential-technical-writing-skills</link><guid isPermaLink="true">https://techwithmaddy.com/essential-technical-writing-skills</guid><category><![CDATA[Technical writing ]]></category><category><![CDATA[writing]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 20 Nov 2023 07:42:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1700415474336/805354d8-3279-477f-a8a4-6cb512c9d6e5.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Technical writing goes beyond relaying information. It's about crafting a seamless experience for the reader.</p>
<p>This article delves into the essential skills that every technical writer should possess, from mastering the fundamentals of grammar and style to adapting content for diverse audiences.</p>
<h2 id="heading-communication">Communication</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1700414941857/04554bd9-ae3f-4d41-8ea3-5760c2bdd78b.png" alt class="image--center mx-auto" /></p>
<p>Communication is the core skill of a technical writer. Communication is made of <a target="_blank" href="https://techwithmaddy.com/my-first-three-months-as-a-technical-writer#heading-communication-is-key">written and verbal communication</a>. Technical writers need written communication skills to convert complex information into easy-to-understand documentation.</p>
<p>Technical writers need verbal communication to communicate with immediate team members and stakeholders.</p>
<h2 id="heading-teamwork">Teamwork</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1700414955824/365c298e-7f93-432e-bc62-b7f1c97bf2b1.jpeg" alt class="image--center mx-auto" /></p>
<p>Technical writing is a job that needs <a target="_blank" href="https://techwithmaddy.com/my-first-three-months-as-a-technical-writer#heading-cross-functional-collaboration-is-part-of-the-job">cross-functional effort</a>.</p>
<p>Documentation is written and maintained by a team of technical writers and members of other teams (such as content designers, software engineers, product managers, and more).</p>
<blockquote>
<p>[...]A user guide can only be clear and make sense when its author knows how everything works. So, there’s always a lot of communication and inquiries about all sorts of things.[<a target="_blank" href="https://clickhelp.com/clickhelp-technical-writing-blog/11-skills-of-a-good-technical-writer/">ClickHelp</a>]</p>
</blockquote>
<h2 id="heading-documentation-as-code">Documentation as Code</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1700414974317/93acba53-68fc-4cfd-a39d-d69728b85035.jpeg" alt class="image--center mx-auto" /></p>
<p>Documentation as code (also known as Docs as Code) is a process to create and publish documentation.</p>
<p>Documentation as code uses the same tools and processes in the software development lifecycle, with the main difference being documentation instead of code. These tools and processes are:</p>
<ul>
<li><p>Git (Version Control).</p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/the-traits-of-a-good-code-review#heading-what-is-a-code-review">Code Reviews</a> (where another technical writer reviews your documentation before merging).</p>
</li>
<li><p>Automated Tests.</p>
</li>
<li><p>Issue Trackers (such as JIRA).</p>
</li>
</ul>
<p>Documentation as code fosters a culture of ownership and collaboration.</p>
<h2 id="heading-user-experience">User experience</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1700414989399/dbc0d8b1-36c5-4e8d-bae9-88b62cb39716.png" alt class="image--center mx-auto" /></p>
<p>Technical writers are user advocates and play a massive role in the <a target="_blank" href="https://techwithmaddy.com/why-user-documentation-is-essential-in-software-development#heading-1-product-success">success of a product</a>. They understand what the audience needs and write directly for them. Technical writers know what information users need to make the most out of the product and use that information to create the documentation.</p>
<h2 id="heading-research-skills">Research skills</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1700415002104/e08bda3c-fc47-480d-bf58-c5fd0a58bb6d.png" alt class="image--center mx-auto" /></p>
<p>Technical writers spend a lot of their time <a target="_blank" href="https://techwithmaddy.com/day-in-the-life-of-a-technical-writer#heading-research">researching</a>. Researching includes:</p>
<ul>
<li><p>Audience Analysis: this type of research helps the technical writer understand the target audience.</p>
</li>
<li><p>User Experience: this type of research helps the technical writer understand the readability of technical documentation.</p>
</li>
</ul>
<h2 id="heading-editing-skills">Editing skills</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1700415080485/ad8df811-fadd-49f6-951a-2351307064c1.png" alt class="image--center mx-auto" /></p>
<p>Besides writing, technical writing involves a lot of editing. Editing includes:</p>
<ul>
<li><p>Content review.</p>
</li>
<li><p>Spelling and punctuation (although this step can be partially automated).</p>
</li>
<li><p>Proofreading.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>After reading this article, you've learned about essential technical writing skills.</p>
<p>If this article was helpful to you, consider subscribing to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>, where I share more insights like this.</p>
]]></content:encoded></item><item><title><![CDATA[How Software Developers Can Become Better Writers]]></title><description><![CDATA[Software developers are known for being great programmers but bad writers. This is fair since coding is the software developers' core skill.
However, software developers contribute to internal or external documentation in many companies. And this is ...]]></description><link>https://techwithmaddy.com/how-software-developers-can-become-better-writers</link><guid isPermaLink="true">https://techwithmaddy.com/how-software-developers-can-become-better-writers</guid><category><![CDATA[writing]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 23 Oct 2023 05:00:09 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1697997418313/12588bd6-cd8d-4651-a412-c4d47bd6ff52.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Software developers are known for being great programmers but bad writers. This is fair since coding is the software developers' core skill.</p>
<p>However, software developers contribute to internal or external documentation in many companies. And this is where software developers struggle.</p>
<p>This article shares tips to help you become a better writer and <a target="_blank" href="https://techwithmaddy.com/why-user-documentation-is-essential-in-software-development">create better documentation</a>.</p>
<h2 id="heading-1-know-your-audience">1. Know your audience</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1697996591785/d388c159-3c8d-4bad-aba6-fb1a34dea640.png" alt class="image--center mx-auto" /></p>
<p>Knowing your audience means understanding who you're writing for. Are you writing for experienced people or beginners?</p>
<p>Knowing your audience helps you evaluate whether you need to include or omit certain information.</p>
<p>For example, if you're writing content on "How to send an HTTP PUT request", you may want to specify what HTTP means if you're writing for beginners. If you're not, you can omit the information and your readers will still understand your content.</p>
<h2 id="heading-2-be-user-oriented">2. Be user-oriented</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1697996675167/ccc67b53-f3c4-44cd-b8ab-1a3af49c2453.png" alt class="image--center mx-auto" /></p>
<p><a target="_blank" href="https://techwithmaddy.com/my-first-three-months-as-a-technical-writer#heading-user-experience-is-a-skill">Technical writers are user advocates</a>. They care about the user experience. If you want to improve your writing, keep your reader in mind throughout your writing process.</p>
<p>Writing user-oriented content means responding to users' intent.</p>
<blockquote>
<p>If you want to write user-oriented content, respond to users' intentions - meet their needs before they realize they have them, and always be one step ahead.[<a target="_blank" href="https://delante.co/how-to-write-user-oriented-content/">Delante</a>]</p>
</blockquote>
<h2 id="heading-3-logically-structure-your-content">3. Logically structure your content</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1697996795218/92714658-8e5f-4036-80d1-4ed0849ef012.png" alt class="image--center mx-auto" /></p>
<p><a target="_blank" href="https://techwithmaddy.com/technical-blogging-vs-technical-writing-main-differences#heading-structure">Structuring your content</a> logically means laying out information so your reader can smoothly jump from paragraph to paragraph. <a target="_blank" href="https://techwithmaddy.com/how-to-write-a-technical-blog-post-template#heading-follow-a-logical-order">Logical content</a> feels clear and confusion-free.</p>
<blockquote>
<p>Readers don’t want bumps, unintended surprises or to feel threatened in any way. They don’t want to follow a train of thought, only for it to lead to a dead-end, or for a new idea to be dumped on them without warning.[<a target="_blank" href="https://www.writerscollegeblog.com/create-perfect-logical-flow-in-your-writing/">The Writers College</a>]</p>
</blockquote>
<h3 id="heading-how-can-you-achieve-a-logical-flow-in-your-content">How can you achieve a logical flow in your content?</h3>
<ol>
<li><p>Outline your ideas: Write the information you want your user to know on a piece of paper or editor. This step helps you clearly understand <em>what</em> you want to write.</p>
</li>
<li><p>Plan the flow of your writing. This step helps you visualize what works and what doesn't before you start writing, potentially saving you time.</p>
</li>
<li><p>Address each point at a time, and ensure there's a clear connection between paragraphs.</p>
</li>
<li><p>Use subheadings. Some readers read thoroughly, and other readers are skimmers. Write for both types of readers.</p>
</li>
<li><p>Use lists: use bulleted and numbered lists. Use bulleted lists when you want to list facts. Bulleted lists are ideal when the order doesn't matter. Use numbered lists when the order is essential.</p>
</li>
</ol>
<h2 id="heading-4-format-your-content">4. Format your content</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1697996901665/722d3ee3-2d26-4174-b87d-9265a9c6d52e.png" alt class="image--center mx-auto" /></p>
<p>Formatting means how you want your content to appear. Formatting includes headings, subheadings, paragraph length, links, etc.</p>
<p>To format your content:</p>
<ul>
<li><p>Use code blocks where necessary.</p>
</li>
<li><p>Break down lengthy paragraphs into shorter paragraphs.</p>
</li>
<li><p>Use H1, H2, and H3 subheadings accordingly.</p>
</li>
<li><p>Use tables to simplify content and data.</p>
</li>
<li><p>Edit and proofread. Editing and proofreading can be partially automated. Look for grammar and spelling errors. Ensure consistency in style and tone.</p>
</li>
</ul>
<h2 id="heading-5-write-concisely">5. Write concisely</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1697996987694/72433ae6-f918-4165-b646-5bde273c02b4.png" alt class="image--center mx-auto" /></p>
<blockquote>
<p>Concise writing means using the fewest words possible to convey an idea clearly.[<a target="_blank" href="https://www.grammarly.com/blog/what-is-concise-writing/#:~:text=Concise%20writing%20means%20using%20the,from%20grammar%20and%20punctuation%20mistakes.">Grammarly</a>]</p>
</blockquote>
<p>Some examples to help you write more concisely:</p>
<ul>
<li><p>Eliminate unnecessary words such as <strong><em>in order to</em></strong>, and <strong><em>that</em></strong>. <strong><em>In order to</em></strong> is unnecessary 99% of the time. Replace it with <strong><em>To</em></strong>. For example, <strong><em>In order to install</em></strong>, would be <strong><em>To install</em></strong>.</p>
</li>
<li><p>Replace vague words with specific ones. For example, <strong><em>This helps you delete the branch without removing the entire history</em></strong> should be <strong><em>X command helps you delete the branch without removing the entire history</em></strong>. Being specific helps you avoid confusion and misunderstandings from the reader.</p>
</li>
<li><p>Use active voice as much as possible.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>After reading this article, you have everything you need to become a better writer. Consider reading the following articles to learn more about writing:</p>
<ul>
<li><p><a target="_blank" href="https://techwithmaddy.com/technical-blogging-vs-technical-writing-main-differences#heading-structure">Technical Blogging VS Technical Writing: Main Differences</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/how-to-write-a-technical-blog-post-template#heading-follow-a-logical-order">How To Write A Technical Blog Post (Template)</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/why-user-documentation-is-essential-in-software-development">Why User Documentation is Essential in Software Development</a></p>
</li>
</ul>
<p>Consider subscribing to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newslette</a>r, I share useful content there!</p>
]]></content:encoded></item><item><title><![CDATA[Technical Blogging VS Technical Writing: Main Differences]]></title><description><![CDATA[Technical blogging and technical writing are often used interchangeably but are two different writing styles.
Even though they share a common goal of effectively communicating with the reader and wanting to provide value, blog writing and technical w...]]></description><link>https://techwithmaddy.com/technical-blogging-vs-technical-writing-main-differences</link><guid isPermaLink="true">https://techwithmaddy.com/technical-blogging-vs-technical-writing-main-differences</guid><category><![CDATA[writing]]></category><category><![CDATA[Blogging]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 02 Oct 2023 04:00:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1696178762326/2212773a-9ffc-4831-8942-809d158c8237.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Technical blogging and technical writing are often used interchangeably but are two different writing styles.</p>
<p>Even though they share a common goal of effectively communicating with the reader and wanting to provide value, blog writing and technical writing serve two different purposes.</p>
<p>This blog will explain the differences between technical blogging and technical writing.</p>
<h2 id="heading-purpose">Purpose</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1696178894803/a088469e-8e4c-45b3-b7bb-1068450915d7.png" alt class="image--center mx-auto" /></p>
<p>Technical blogging aims at engaging the reader and providing valuable information in an entertaining and conversational manner.</p>
<p>Technical bloggers want to connect with the audience and create a sense of community. Technical bloggers adopt techniques such as descriptive language, catchy headlines, and engaging introductions. Technical bloggers tend to write <a target="_blank" href="https://techwithmaddy.com/top-skills-to-become-a-tech-blogger#heading-3-seo-understanding">content that's SEO-optimized</a>.</p>
<p>Technical writing's main purpose is to convey complex information clearly and concisely.</p>
<p>Technical writers ensure the reader understands and can effectively use the presented information. Technical writing requires high precision and attention to detail to ensure the content is accurate, logical and easy to follow.</p>
<p>Technical writers also focus on <a target="_blank" href="https://techwithmaddy.com/my-first-three-months-as-a-technical-writer#heading-user-experience-is-a-skill">usability and accessibility</a>. They organize content to allow users to find the information they need and navigate the content effortlessly.</p>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/3-things-you-can-do-to-improve-your-technical-writing-skills">3 Things You Can Do To Improve Your Technical Writing Skills</a> to learn more.</p>
</blockquote>
<h2 id="heading-voice">Voice</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1696178997754/4fbae027-32e6-43a5-a9a3-ebc9caf2fdb0.png" alt class="image--center mx-auto" /></p>
<p>Technical blogging is a style of writing that allows you to share your voice. Your writing style represents your voice and your thoughts.</p>
<p>In technical blogging, you use pronouns such as "you", "I", and "we". Some blog writers also use slang and swearing in their writing style to better relate and engage the user. Technical blogging tends to be more wordy compared to technical writing.</p>
<p>Technical writing is different. Technical writing is a sterile form of writing whose main focus is to guide the user into learning how to use a product. You use the company's voice to address the user in technical writing.</p>
<p>An example to show you the difference between blog writing and technical writing is this:</p>
<p><strong>Technical blogging</strong>: "I recommend you use X to achieve Y".</p>
<p><strong>Technical writing</strong>: "X company recommends using X to achieve Y".</p>
<p><strong>Technical blogging</strong>: "Make sure you install X to view Y".</p>
<p><strong>Technical writing</strong>: "Install X to view Y".</p>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/top-skills-to-become-a-tech-blogger">Top Skills To Become A Tech Blogger</a> to learn more.</p>
</blockquote>
<h2 id="heading-structure">Structure</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1696179380773/0be0ecc4-4963-4081-b637-9adefc0d4e82.png" alt class="image--center mx-auto" /></p>
<p>Technical blogging doesn't follow a strict structure. Often, bloggers use their voice as a style guide. Technical bloggers have a flexible and creative approach to structure and organization.</p>
<p>Technical bloggers can experiment with different formats like listicles, how-to guides, etc. The structure is driven by what they want to achieve with their content.</p>
<p>In technical writing, writers follow a well-defined style guide. The company's Head of Content (or someone senior) usually creates this style guide. Each page needs to follow a specific structure.</p>
<p>Technical writers follow industry-specific terminology, ensure content is organized logically and follow a step-by-step approach.</p>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/why-user-documentation-is-essential-in-software-development">Why User Documentation is Essential in Software Development</a> to learn more.</p>
</blockquote>
<h2 id="heading-tone">Tone</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1696179475715/ada51621-3372-45f2-9ac4-2d11d0c0b5f4.png" alt class="image--center mx-auto" /></p>
<p>In technical blogging, the tone is informal and conversational. Technical bloggers adopt a friendly and relatable tone as if conversing with the reader.</p>
<p>Technical bloggers know how to convey empathy through their words, establish a connection and build trust with the audience.</p>
<p>In technical writing, the tone is formal and precise. The tone is objective and focused on delivering information accurately and concisely.</p>
<p>Technical writers prioritize clarity and avoid adding information (or words) that provide no value to the reader.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>After reading this article, you know the difference between a tech blogger and a tech writer. Which one are you?</p>
<p>P.S.: if this article was helpful to you, subscribe to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>.</p>
<p>Until next time!</p>
]]></content:encoded></item><item><title><![CDATA[Most Common Misconceptions About Software Engineers]]></title><description><![CDATA[Software engineers are often misunderstood. These highly skilled professionals are the wizards behind the digital curtain, developing the applications and programs that drive our modern world. Unfortunately, several common misconceptions about softwa...]]></description><link>https://techwithmaddy.com/most-common-misconceptions-about-software-engineers</link><guid isPermaLink="true">https://techwithmaddy.com/most-common-misconceptions-about-software-engineers</guid><category><![CDATA[software development]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[software]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 25 Sep 2023 03:00:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1695569908241/edacb2e6-37b6-49ec-b9b4-b07c5e0b7f24.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Software engineers are often misunderstood. These highly skilled professionals are the wizards behind the digital curtain, developing the applications and programs that drive our modern world. Unfortunately, several common misconceptions about software engineers persist in popular culture.</p>
<p>This article will debunk the top five common misconceptions about software engineers and shed light on their abilities and responsibilities.</p>
<p>Let's start.</p>
<h2 id="heading-misconception-1-software-engineers-only-work-on-coding">Misconception #1: Software engineers only work on coding</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1695570022682/349eb92c-0fd8-4255-8ad7-9985c771222f.png" alt class="image--center mx-auto" /></p>
<p>Coding is the core skill you need to possess to become a software engineer. Coding is how you tell the computer how to solve a problem. However, software engineering is not all about coding. Your day will also involve:</p>
<ul>
<li><p>Meeting with your colleagues, manager, and stakeholders.</p>
</li>
<li><p>Presentations.</p>
</li>
<li><p>Writing documentation.</p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/3-types-of-software-testing-for-developers">Writing tests</a>.</p>
</li>
<li><p>Oncall shifts.</p>
</li>
</ul>
<h2 id="heading-misconception-2-software-engineers-always-work-on-shiny-new-code">Misconception #2: Software engineers always work on shiny new code</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1695570191252/5e0a2fa1-b22c-4c42-a91b-a2b4ace0a342.png" alt class="image--center mx-auto" /></p>
<p>A lot of software engineering work is <em>maintenance work</em>.</p>
<p>Maintenance work means that you will work on adding, removing, or updating lines of code on an existing codebase.</p>
<p>This existing codebase is also known as legacy code. Legacy code is code someone else has written (usually employees no longer in the company), which you must take responsibility for.</p>
<p>Legacy code can be rewritten using better programming paradigms, and this is where software engineers provide fantastic value.</p>
<p>It is not an easy task.</p>
<h2 id="heading-misconception-3-software-engineering-is-easy-money">Misconception #3: Software engineering is easy money</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1695570498078/e7aca163-48ef-4ad9-a3a6-7e07c270a1fa.png" alt class="image--center mx-auto" /></p>
<p>Unfortunately, social media has spread the idea that software engineering is easy, allowing you to make a six-figure salary relatively quickly.</p>
<p>This is far from the truth because:</p>
<ol>
<li><p>It isn't easy to find entry-level jobs. Most jobs available out there are for experienced engineers.</p>
</li>
<li><p>Compensation depends on location, seniority level, size of the company, etc. Big Tech companies are known for paying top-of-the-market salaries. However, they do not represent the entirety of the industry in terms of compensation.</p>
</li>
<li><p>It takes experience, a bit of sacrifice and knowing how to negotiate to reach a specific salary.</p>
</li>
</ol>
<h2 id="heading-misconception-4-software-engineering-is-a-solo-job">Misconception #4: Software engineering is a solo job</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1695570844496/50d29a70-a21e-429f-8345-d05a1df00981.png" alt class="image--center mx-auto" /></p>
<p>Software engineering is a team sport. Teamwork is a skill that all software engineers should possess and master.</p>
<blockquote>
<p>Teamwork is about asking what you can do for your team, as much as it is about asking what your team can do for you, and it’s this harmony that forms the very foundation of teamwork as we know it today. It’s about recognising how our skills and actions affect our team, as well as our own individual performance, and it’s also about adopting an attitude that leans on courage, self-love, appreciation, surrender and sacrifice.[<a target="_blank" href="https://medium.com/@WeAreMobile1st/the-benefits-of-teamwork-and-collaboration-in-software-development-a843cb7e8f73">The Benefits of Teamwork and Collaboration in Software Development</a>]</p>
</blockquote>
<p>Teamwork includes:</p>
<ul>
<li><p>Open communication.</p>
</li>
<li><p>Having the right tools.</p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/how-to-write-the-perfect-documentation-for-your-github-project">Writing high-quality documentation</a>.</p>
</li>
</ul>
<h2 id="heading-misconception-5-software-engineers-can-work-from-anywhere">Misconception #5: Software engineers can work from anywhere</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1695571066159/b52b3e78-ee48-4d1c-9ec7-a36705fddf12.png" alt class="image--center mx-auto" /></p>
<p>In theory, yes. Software engineers only need a <a target="_blank" href="https://techwithmaddy.com/top-6-laptop-features-for-coding">laptop</a>, comfortable office equipment and reliable and fast WiFi.</p>
<p>However, whether a software engineer can work depends on the company and the manager. It is not a decision that a software engineer can make on his own.</p>
<p>Unfortunately, many companies force employees back to the office 2-3 times a week. Another consideration to make is that <a target="_blank" href="https://techwithmaddy.com/how-to-find-remote-tech-jobs-on-linkedin">remote working</a> does not necessarily mean you can work from anywhere in the world because:</p>
<ul>
<li><p>Time zones can pose a challenge to communication.</p>
</li>
<li><p>Taxes can limit your chances of working in any country.</p>
</li>
</ul>
<h2 id="heading-misconception-6-its-a-stable-job">Misconception #6: It's a stable job</h2>
<p>2022 and 2023 have been filled by <a target="_blank" href="https://techwithmaddy.com/what-ive-learned-from-4-years-in-the-tech-industry#heading-its-unstable">massive layoffs</a>, even from companies with solid performance. This has shown that software engineering (and other positions) are unsafe. You can lose your job at any time.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Do you agree with the misconceptions above? Let me know in the comments.</p>
<p>P.S.: if this article interests you, subscribe to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>!</p>
<h3 id="heading-related-resources">Related resources:</h3>
<ul>
<li><p><a target="_blank" href="https://techwithmaddy.com/untold-truths-about-being-a-software-engineer">Untold Truths About Being A Software Engineer</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/how-to-choose-a-software-engineering-job">How to choose a software engineering job</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/how-to-find-remote-tech-jobs-on-linkedin">How To Find Remote Tech Jobs On LinkedIn</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[How To Use SPL To Optimize Data Performance]]></title><description><![CDATA[SQL (Structured Query Language) is the primary language used to communicate with a database. However, SQL has its limitations, and this is where SPL can help you overcome those shortcomings.
Traversing a table in SQL
Let's examine the following SQL s...]]></description><link>https://techwithmaddy.com/how-to-use-spl-to-optimize-data-performance</link><guid isPermaLink="true">https://techwithmaddy.com/how-to-use-spl-to-optimize-data-performance</guid><category><![CDATA[spl]]></category><category><![CDATA[Databases]]></category><category><![CDATA[data]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 18 Sep 2023 06:00:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1694963788722/da16313b-7f28-4eb2-9aa7-25636cc27550.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>SQL (Structured Query Language) is the primary language used to communicate with a <a target="_blank" href="https://techwithmaddy.com/what-does-a-backend-engineer-actually-do#heading-database-management">database</a>. However, SQL has its limitations, and this is where <a target="_blank" href="http://www.scudata.com/">SPL</a> can help you overcome those shortcomings.</p>
<h2 id="heading-traversing-a-table-in-sql">Traversing a table in SQL</h2>
<p>Let's examine the following SQL statements:</p>
<pre><code class="lang-sql"><span class="hljs-keyword">SELECT</span> a, b, <span class="hljs-keyword">sum</span>(x) <span class="hljs-keyword">from</span> T <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> a, b <span class="hljs-keyword">WHERE</span> …;
<span class="hljs-keyword">SELECT</span> c, d, <span class="hljs-keyword">max</span>(y) <span class="hljs-keyword">from</span> T <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> c, d <span class="hljs-keyword">WHERE</span> …;
<span class="hljs-keyword">SELECT</span> a, c, <span class="hljs-keyword">avg</span>(y), <span class="hljs-keyword">min</span>(z) <span class="hljs-keyword">from</span> T <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> a, c <span class="hljs-keyword">WHERE</span> …;
</code></pre>
<p>T represents a large table that needs to be grouped by three methods.</p>
<p>GROUP BY will have to traverse the T table three times. Traversing the table three times is a lengthy operation.</p>
<p>To reduce the amount of traversing, you could write SQL statements like this:</p>
<pre><code class="lang-sql"><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> T_temp <span class="hljs-keyword">as</span> <span class="hljs-keyword">SELECT</span> a, b, c, d,
<span class="hljs-keyword">SUM</span>(<span class="hljs-keyword">case</span> <span class="hljs-keyword">when</span> … <span class="hljs-keyword">then</span> x <span class="hljs-keyword">else</span> <span class="hljs-number">0</span> <span class="hljs-keyword">end</span>) sumx,
<span class="hljs-keyword">MAX</span>(<span class="hljs-keyword">case</span> <span class="hljs-keyword">when</span> … <span class="hljs-keyword">then</span> y <span class="hljs-keyword">else</span> <span class="hljs-literal">null</span> <span class="hljs-keyword">end</span>) maxy,
<span class="hljs-keyword">SUM</span>(<span class="hljs-keyword">case</span> <span class="hljs-keyword">when</span> … <span class="hljs-keyword">then</span> y <span class="hljs-keyword">else</span> <span class="hljs-number">0</span> <span class="hljs-keyword">end</span>) sumy,
<span class="hljs-keyword">COUNT</span>(<span class="hljs-keyword">case</span> <span class="hljs-keyword">when</span> … <span class="hljs-keyword">then</span> <span class="hljs-number">1</span> <span class="hljs-keyword">else</span> <span class="hljs-literal">null</span> <span class="hljs-keyword">end</span>) county,
<span class="hljs-keyword">MIN</span>(<span class="hljs-keyword">case</span> <span class="hljs-keyword">when</span> … <span class="hljs-keyword">then</span> z <span class="hljs-keyword">else</span> <span class="hljs-literal">null</span> <span class="hljs-keyword">end</span>) minz
<span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> a, b, c, d;
<span class="hljs-keyword">SELECT</span> a, b, <span class="hljs-keyword">sum</span>(sumx) <span class="hljs-keyword">from</span> T_temp <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> a,b <span class="hljs-keyword">WHERE</span>…;
<span class="hljs-keyword">SELECT</span> c, d, <span class="hljs-keyword">max</span>(maxy) <span class="hljs-keyword">from</span> T_temp <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> c,d <span class="hljs-keyword">WHERE</span>…;
<span class="hljs-keyword">SELECT</span> a, c, <span class="hljs-keyword">sum</span>(sumy)/<span class="hljs-keyword">sum</span>(county), <span class="hljs-keyword">min</span>(minz) <span class="hljs-keyword">from</span> T_temp <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> a,c <span class="hljs-keyword">WHERE</span> …;
</code></pre>
<p>The SQL statements above will allow you to traverse the T table once. However, the grouping may become large, creating an even larger result.</p>
<p>When you have large tables (in the millions or billions of data), sorting in SQL becomes challenging.</p>
<p>In the following SQL statement, you will have to sort through all the data, retrieve the first five, and discard the remaining sorting results:</p>
<pre><code class="lang-sql"><span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> (<span class="hljs-keyword">SELECT</span> x <span class="hljs-keyword">FROM</span> T <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> x <span class="hljs-keyword">DESC</span>) <span class="hljs-keyword">WHERE</span> <span class="hljs-keyword">rownum</span>&amp;lt;=5
</code></pre>
<p>SQL does not support explicit set data types. In SQL, <a target="_blank" href="https://learn.microsoft.com/en-us/sql/t-sql/functions/aggregate-functions-transact-sql?view=sql-server-ver16">aggregate functions</a> only return a single value, and you cannot use aggregate functions in a WHERE clause.</p>
<p>Sorting the top N elements in a database is a relatively straightforward operation. However, SQL operations get more challenging if you need to perform more complex operations. For example, writing a SQL statement to calculate the top N of each group after grouping is challenging:</p>
<pre><code class="lang-sql"><span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span>
(SELECTy, x, row_number() <span class="hljs-keyword">over</span> (<span class="hljs-keyword">PARTITION</span> <span class="hljs-keyword">BY</span> y <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> x <span class="hljs-keyword">DESC</span>) rn <span class="hljs-keyword">FROM</span> T)
<span class="hljs-keyword">WHERE</span> rn&amp;lt;=5
</code></pre>
<h2 id="heading-how-open-source-spl-can-help">How open-source SPL can help</h2>
<p><a target="_blank" href="http://www.scudata.com/">SPL</a> stands for Structured Process Language. SPL is a programming language for structured data computing.</p>
<p><a target="_blank" href="https://techwithmaddy.com/data-business-logic-in-java-jooq-vs-spl">Open-source SPL</a> supports more data types and operations and can solve many previously described problems. SPL enhances computing performance in a short time.</p>
<h3 id="heading-calculate-multiple-groupings-in-one-traversal">Calculate multiple groupings in one traversal</h3>
<div class="hn-table">
<table>
<thead>
<tr>
<td></td><td>A</td><td></td></tr>
</thead>
<tbody>
<tr>
<td>1</td><td>A1=</td><td>file("T.ctx").open().cursor(a,b,c,d,x,y,z)</td></tr>
<tr>
<td>2</td><td>cursor A1=</td><td>A2.select(…).groups(a,b;sum(x))</td></tr>
<tr>
<td>3</td><td>// Define the first filtering</td><td>and grouping in the traversal</td></tr>
<tr>
<td>4</td><td>cursor=</td><td>A4.select(…).groups(c,d;max(y))</td></tr>
<tr>
<td>5</td><td>// Define the first filtering</td><td>and grouping in the traversal</td></tr>
<tr>
<td>6</td><td>cursor=</td><td>A6.select(…).groupx(a,c;avg(y),min(z))</td></tr>
<tr>
<td>7</td><td>// Define the first filtering</td><td>and grouping in the traversal</td></tr>
<tr>
<td>8</td><td>//End of definition</td><td>Start calculating all three types of filtering and grouping</td></tr>
</tbody>
</table>
</div><h3 id="heading-calculate-the-top-five-by-aggregate-method">Calculate the top five by aggregate method</h3>
<div class="hn-table">
<table>
<thead>
<tr>
<td></td><td>A</td></tr>
</thead>
<tbody>
<tr>
<td>1</td><td>\=file("T.ctx").open()</td></tr>
<tr>
<td>2</td><td>\=A1.cursor@m(x).total(top(-5,x), top(5, x))</td></tr>
<tr>
<td>3</td><td>top(-5, x) calculates top 5 with the largest x，top(5, x) calculates top 5 with the smallest x</td></tr>
</tbody>
</table>
</div><h3 id="heading-retrieve-the-top-5-of-each-group">Retrieve the top 5 of each group</h3>
<div class="hn-table">
<table>
<thead>
<tr>
<td></td><td>A</td></tr>
</thead>
<tbody>
<tr>
<td>1</td><td>\=file("T.ctx").open()</td></tr>
<tr>
<td>2</td><td>\=A1.cursor@m(x, y).groups(y;top(-5, x), top(5, x))</td></tr>
</tbody>
</table>
</div><h2 id="heading-conclusion">Conclusion</h2>
<p>Open-source SPL is a powerful language that can overcome SQL's shortcomings. Read more about open-source SPL language on the <a target="_blank" href="http://www.scudata.com/">official website</a>.</p>
<h3 id="heading-further-reading">Further reading</h3>
<ul>
<li><a target="_blank" href="https://github.com/SPLWare/esProc">SPL GitHub</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Day In The Life Of A Technical Writer]]></title><description><![CDATA[Technical writing is not just about writing. It's a job that involves a series of different tasks. Each day is different. However, there are some tasks that technical writers perform almost every day.
This article describes a day in the life of a tec...]]></description><link>https://techwithmaddy.com/day-in-the-life-of-a-technical-writer</link><guid isPermaLink="true">https://techwithmaddy.com/day-in-the-life-of-a-technical-writer</guid><category><![CDATA[Technical writing ]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 11 Sep 2023 05:00:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1694364862473/f5341569-f463-4abd-b0d9-fac0a10b64bd.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Technical writing is not just about writing. It's a job that involves a series of different tasks. Each day is different. However, there are some tasks that technical writers perform almost every day.</p>
<p>This article describes a day in the life of a technical writer (order may vary from person to person and from day to day).</p>
<h2 id="heading-email-checking">Email checking</h2>
<p>Like many other jobs, checking emails is part of the day for a technical writer. Most of my emails come from GitHub notifications and the company's internal emails.</p>
<h2 id="heading-pick-a-task">Pick a task</h2>
<p>Many companies use <a target="_blank" href="https://www.atlassian.com/software/jira">JIRA</a> as a project-tracking software. JIRA is where I manage all the tasks for the current or future Sprints. I look at my JIRA to plan my day and pick a high-priority task for the upcoming Sprint.</p>
<h2 id="heading-research">Research</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1694363027812/4d6e6371-5395-4c27-8373-ca0dd7b3f675.png" alt class="image--center mx-auto" /></p>
<p>My job involves writing documentation for a developer audience. I research and learn new concepts every day. I research the product, watch YouTube videos to clarify concepts, and read blogs to fulfil my curiosity.</p>
<h2 id="heading-cross-functional-collaboration">Cross-functional collaboration</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1694363243324/13149366-98da-4c9b-93a4-fb63b16daa3f.png" alt class="image--center mx-auto" /></p>
<p>Cross-functional collaboration is a crucial part of the job of a technical writer.</p>
<p>Cross-functional collaboration means running a project with the help of teams from other parts of the organization.</p>
<blockquote>
<p>[...]Technical writing requires a different skill set than programming—ask anyone who has read documentation written by developers. Similarly, there are few tech writers who could seamlessly take on coding tasks. Writing tasks therefore tend to be isolated from the rest of development work and remain the responsibility of writers.[<a target="_blank" href="https://www.orckestra.com/en/blog/2016/08/03/Technical-Writing-in-Cross-Functional-Teams">Orckestra</a>]</p>
</blockquote>
<p>In my case, <a target="_blank" href="https://techwithmaddy.com/my-first-three-months-as-a-technical-writer#heading-cross-functional-collaboration-is-part-of-the-job">cross-functional collaboration</a> happens with content designers, UX designers, software engineers, and product managers.</p>
<h2 id="heading-write-the-documentation">Write the documentation</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1694363298234/635d4951-599d-48d7-a4cc-b86941d7ba3b.png" alt class="image--center mx-auto" /></p>
<p>Once you have enough information to <a target="_blank" href="https://techwithmaddy.com/why-user-documentation-is-essential-in-software-development">create documentation</a>, you start by following the company's style guide to create guides, tutorials, etc.</p>
<h2 id="heading-submit-documentation-for-review">Submit documentation for review</h2>
<p>Like in software engineering, before your changes reach production, they'll have to go through a review process from your peers to ensure <a target="_blank" href="https://techwithmaddy.com/why-user-documentation-is-essential-in-software-development#heading-what-is-user-documentation">documentation</a> is up to standard.</p>
<h2 id="heading-review-your-peers-pull-requests">Review your peers' pull requests</h2>
<p>In software engineering, there is a <a target="_blank" href="https://techwithmaddy.com/the-traits-of-a-good-code-review">code review process</a> before your changes can be merged into production.</p>
<p>The exact process happens in <a target="_blank" href="https://techwithmaddy.com/how-to-transition-from-software-engineer-to-technical-writer">technical writing</a>: you support your colleagues by reviewing their <a target="_blank" href="https://techwithmaddy.com/how-to-create-a-pull-request-from-intellij-in-6-easy-steps">pull requests</a> so they can also carry on with their work.</p>
<h2 id="heading-organize-your-jira">Organize your JIRA</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1694363708040/68a0f9bf-2ed3-4f6b-bb1d-dbc456163ea8.png" alt class="image--center mx-auto" /></p>
<p>JIRA is a valuable tool. However, if not kept organized, it loses the benefits that it offers.</p>
<p>Organize your JIRA by:</p>
<ul>
<li><p>Giving descriptive names to your tickets. For example, include the name of the product(s).</p>
</li>
<li><p>Adding descriptions to each ticket.</p>
</li>
<li><p>Adding any labels.</p>
</li>
<li><p>Adding points to each ticket.</p>
</li>
</ul>
<h2 id="heading-attend-meetings">Attend meetings</h2>
<p>Meetings can be with SMEs (Subject Matter Experts), colleagues, and stakeholders. They can also be company-wide meetings.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>After reading this article, you know what the day of a technical writer looks like.</p>
<p>Are you a technical writer? Do you agree with the article?</p>
<p>If this article is interesting to you, subscribe to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>.</p>
<h3 id="heading-related-resources">Related resources:</h3>
<ul>
<li><p><a target="_blank" href="https://techwithmaddy.com/how-to-transition-from-software-engineer-to-technical-writer">How To Transition From Software Engineer to Technical Writer</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/my-first-three-months-as-a-technical-writer">My First Three Months As A Technical Writer</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/why-user-documentation-is-essential-in-software-development">Why User Documentation is Essential in Software Development</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[How To Write A Technical Blog Post (Template)]]></title><description><![CDATA[In this article, I'll cover everything you need to know about writing a technical blog to make it easier for you to create your following articles. This article suits those who write a lot of tutorial-style technical blog posts.
What is a technical b...]]></description><link>https://techwithmaddy.com/how-to-write-a-technical-blog-post-template</link><guid isPermaLink="true">https://techwithmaddy.com/how-to-write-a-technical-blog-post-template</guid><category><![CDATA[writing]]></category><category><![CDATA[Technical writing ]]></category><category><![CDATA[Blogging]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 04 Sep 2023 05:00:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1693765402069/9015d93f-d588-49f0-9b6c-ddadc9600870.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this article, I'll cover everything you need to know about writing a technical blog to make it easier for you to create your following articles. This article suits those who write a lot of tutorial-style technical blog posts.</p>
<h2 id="heading-what-is-a-technical-blog-post">What is a technical blog post?</h2>
<p>A technical blog is written content focused on sharing knowledge and teaching the user a technical subject. Most technical focus on teaching a user how to use a technology.</p>
<h2 id="heading-how-to-write-a-technical-blog-post">How to write a technical blog post</h2>
<p>A technical blog should have at least three main sections: an introduction, a body, and a conclusion.</p>
<h3 id="heading-introduction">Introduction</h3>
<p>The introduction is a short paragraph under the blog post title.</p>
<p>The introduction is where you tell the users what you will teach them. In this section, you should tell your readers what to expect when reading the article.</p>
<p>Ideally, the introduction should be 3-5 sentences long.</p>
<p>Depending on your topic, you may want to add a "Prerequisites" section. In the prerequisites section, you tell the users what they must have installed on their laptops before they can start the tutorial.</p>
<p>You must add this section to ensure your readers can complete your tutorial.</p>
<h3 id="heading-body">Body</h3>
<p>The body of your technical blog is where you'll dive deeper into the topic you want to cover.</p>
<h3 id="heading-step-by-step-approach">Step-by-step approach</h3>
<p>If you write tutorial-style blog posts, use a step-by-step approach for better readability.</p>
<p>The user should accomplish one task for each step.</p>
<p>For example, if you're telling the reader to "Install Node.js and write a class", you should have one step named "Install Node.js", and the following step should be "Write a class".</p>
<h3 id="heading-use-visuals">Use visuals</h3>
<p>Ideally, each step should be accompanied by screenshots, code snippets, and videos. Visual content helps the reader retain more information.</p>
<h3 id="heading-follow-a-logical-order">Follow a logical order</h3>
<p>If you write step-by-step tutorials, the steps must follow a logical order. Otherwise, you risk creating a negative experience for the user trying to learn a new subject.</p>
<p>A good example is:</p>
<ul>
<li><p>Install Java.</p>
</li>
<li><p>Write a class.</p>
</li>
<li><p>Create an object.</p>
</li>
</ul>
<p>You do not:</p>
<ul>
<li><p>Write a class.</p>
</li>
<li><p>Install Java.</p>
</li>
<li><p>Create an object.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>In the conclusion, you tell users what they have learned at the end of the technical blog post. In the conclusion, you can add:</p>
<ul>
<li><p>Links to your social media (GitHub included) to follow you.</p>
</li>
<li><p>A link to your newsletter to subscribe to.</p>
</li>
<li><p>A "Related resources" section where you share links that could help your readers.</p>
</li>
</ul>
<h2 id="heading-key-takeaways">Key Takeaways</h2>
<p>After reading this article, you know how to write a technical blog post. This template should help you write technical blog posts faster.</p>
<p>If you enjoyed this article, subscribe to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>.</p>
<h3 id="heading-related-resources">Related resources:</h3>
<ul>
<li><p><a target="_blank" href="https://techwithmaddy.com/how-to-write-the-perfect-documentation-for-your-github-project">How To Write The Perfect Documentation For Your GitHub Project</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/why-user-documentation-is-essential-in-software-development">Why User Documentation is Essential in Software Development</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/3-things-you-can-do-to-improve-your-technical-writing-skills">3 Things You Can Do To Improve Your Technical Writing Skills</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Lessons Learned In 2 Years of Blogging]]></title><description><![CDATA[Exactly two years ago, I started my blogging journey.
I started with the following:

No readers.

No blog posts.

No blogging experience.

No SEO understanding.


Two years after I've accumulated:

10k+ monthly readers.

100+ blog posts.

A ton of bl...]]></description><link>https://techwithmaddy.com/lessons-learned-in-2-years-of-blogging</link><guid isPermaLink="true">https://techwithmaddy.com/lessons-learned-in-2-years-of-blogging</guid><category><![CDATA[Blogging]]></category><category><![CDATA[anniversary]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Tue, 15 Aug 2023 05:00:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1691939057839/1a7d001e-4a7b-4db6-a105-686ce6773413.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Exactly two years ago, I started my blogging journey.</p>
<p>I started with the following:</p>
<ul>
<li><p>No readers.</p>
</li>
<li><p>No blog posts.</p>
</li>
<li><p>No blogging experience.</p>
</li>
<li><p>No SEO understanding.</p>
</li>
</ul>
<p>Two years after I've accumulated:</p>
<ul>
<li><p>10k+ monthly readers.</p>
</li>
<li><p>100+ blog posts.</p>
</li>
<li><p>A ton of blogging experience.</p>
</li>
<li><p>Good knowledge of SEO best practices.</p>
</li>
</ul>
<p>In this article, I'll share what I've learned in 2 years of blogging.</p>
<p>Let's start.</p>
<h2 id="heading-stay-consistent">Stay consistent</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1691939173276/9ea528dd-2288-49b7-aa4a-5122da11fa23.png" alt class="image--center mx-auto" /></p>
<p>"Stay consistent" will sound like a cliche, but successful blogging is more about consistency than anything else.</p>
<p>Staying consistent doesn't mean publishing an article daily (which I believe is unsustainable).</p>
<p>It means you stick to a blogging schedule that suits your needs and lifestyle.</p>
<p>Whether you decide to publish an article per week, every two weeks, or monthly, stay consistent with what you choose.</p>
<h2 id="heading-blogging-takes-time">Blogging takes time</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1691939235127/01548e5e-c291-4277-942e-78199e08063d.jpeg" alt class="image--center mx-auto" /></p>
<p>It took me just over 12+ months to reach 10k readers every month.</p>
<p>There's no overnight success when it comes to blogging.</p>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/how-to-increase-your-blogs-traffic-in-3-easy-steps">How To Increase Your Blog's Traffic in 3 Easy Steps</a> to learn how to increase your monthly traffic.</p>
</blockquote>
<h2 id="heading-blogging-is-still-relevant-in-2023">Blogging is still relevant in 2023</h2>
<p>ChatGPT was released on the 30th of November.</p>
<p>When ChatGPT was launched, a lot of people believed it was going to make blogging obsolete.</p>
<p>This is far from the truth. Blogging has (and it will) evolved and changed.</p>
<p>I read a lot of online content and recognize when an article is AI-generated to manipulate the search engine.</p>
<blockquote>
<p>Using automation—including AI—to generate content with the primary purpose of manipulating ranking in search results is a <a target="_blank" href="https://developers.google.com/search/docs/essentials/spam-policies#spammy-automatically-generated-content">violation of our spam policies</a>.[<a target="_blank" href="https://developers.google.com/search/blog/2023/02/google-search-and-ai-content">Google Search Central</a>].</p>
</blockquote>
<h2 id="heading-theres-always-so-much-to-do">There's always so much to do</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1691939432813/6b74ef7c-7039-4b3e-8e4c-32c6ddf24773.png" alt class="image--center mx-auto" /></p>
<p>When I started my blog and had under 20 blog posts, it was easy to go back and update/delete/change content.</p>
<p>The more you add content to your blog, the more challenging it becomes to stay on top of the many tiny changes that make your blog better and improve SEO.</p>
<p>To combat this, I try to set aside some time during the week (ideally an hour) to update the most read blog posts.</p>
<p>Updating content means:</p>
<ul>
<li><p>Adding internal linking.</p>
</li>
<li><p>Making sure information is still relevant.</p>
</li>
<li><p>Adding/editing images (or visual content).</p>
</li>
<li><p>Updating/deleting broken links.</p>
</li>
</ul>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/pros-and-cons-of-running-a-blog">Pros And Cons Of Running A Blog</a> to learn more about the advantages and disadvantages of running a blog.</p>
</blockquote>
<h2 id="heading-you-dont-always-write-for-yourself">You don't always write for yourself</h2>
<p>To grow your blog, you must write content addressing your audience's needs.</p>
<p>A successful blog is a blog that answers people's questions and concerns.</p>
<p>This means that you won't always write for yourself.</p>
<p>You'll have to find a balance between enjoying writing content for yourself and your audience.</p>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/lessons-learned-in-12-months-of-blogging#heading-7-blogging-is-all-about-your-readers">Lessons Learned In 12 Months of Blogging</a></p>
</blockquote>
<h2 id="heading-only-accept-collaborations-that-suit-your-blog">Only accept collaborations that suit your blog</h2>
<p>Blogging brings many collaborations opportunity.</p>
<p>From time to time, you'll receive partnership opportunities in your inbox. However, not all partnerships are worth working with.</p>
<p>Your readers can sense when you want to monetize your blog, even though that means collaborating with brands that don't suit your blog.</p>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/things-i-wish-i-knew-before-starting-a-tech-blog?source=more_series_bottom_blogs#heading-monetizing-your-blog-takes-time">Things I Wish I Knew Before Starting A Tech Blog</a></p>
</blockquote>
<h2 id="heading-treat-your-blog-like-a-business">Treat your blog like a business</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1691939568455/f4c76544-69c2-4188-b750-b49068c79ce4.png" alt class="image--center mx-auto" /></p>
<p>While blogging still hasn't allowed me to quit my 9-5 job, it has become a little side hustle that I treat like a business.</p>
<p>Ensure you have a dedicated business email for your blog. Communicate professionally with brands, whether you decide to collaborate with them or not.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>I hope this article helps you! If it does, subscribe to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>.</p>
<p>Happy blogging!</p>
]]></content:encoded></item><item><title><![CDATA[Things I Would Have Done Differently As A Software Engineer]]></title><description><![CDATA[Embarking on a career as a software engineer is an exciting and challenging journey. It's a field that constantly evolves, demanding continuous learning and adaptation.
As I reflect on my path as a software engineer, I realize that with every step I ...]]></description><link>https://techwithmaddy.com/things-i-would-have-done-differently-as-a-software-engineer</link><guid isPermaLink="true">https://techwithmaddy.com/things-i-would-have-done-differently-as-a-software-engineer</guid><category><![CDATA[software development]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[Career]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 07 Aug 2023 05:00:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1691345086933/ccecbcf6-68a5-4eec-959e-50cea155a032.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Embarking on a career as a software engineer is an exciting and challenging journey. It's a field that constantly evolves, demanding continuous learning and adaptation.</p>
<p>As I reflect on my path as a software engineer, I realize that with every step I took, there were valuable lessons to be learned. In this article, I will share with you lessons I wish I had known when I started.</p>
<p>From the importance of building a strong foundation in computer science principles to the value of continuous professional development, these insights will help aspiring software engineers navigate their career paths more effectively.</p>
<p>Let's start.</p>
<h2 id="heading-picking-the-first-job-more-wisely">Picking the first job more wisely</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1691344619337/21dff9ed-f3f3-4190-9c76-5389e9f1cb25.jpeg" alt class="image--center mx-auto" /></p>
<p>In the first 1-2 years of your software engineering career, your priority is to learn and absorb as much as you can.</p>
<p>Your first software engineering is the job where you'll pick up good (and bad) habits.</p>
<p>In your first job, you'll learn how to read a codebase, create your first <a target="_blank" href="https://techwithmaddy.com/how-to-create-a-pull-request-from-intellij-in-6-easy-steps">pull request</a>, do your first <a target="_blank" href="https://techwithmaddy.com/the-traits-of-a-good-code-review">code review</a>, work as part of a team, and more.</p>
<p>It's where you'll form your view around best practices for software development.</p>
<p>Your first job may make or break your career. If you can, pick your first job wisely. But don't be discouraged by one bad job.</p>
<p><strong><em>Don't stay in jobs where you're not growing.</em></strong></p>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/how-to-choose-a-software-engineering-job">How To Choose A Software Engineering Job</a> to learn about the factors to consider when choosing a software engineering job.</p>
</blockquote>
<h2 id="heading-focusing-on-the-basics">Focusing on the basics</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1691344636664/e6c1928f-aa36-411b-ac53-d93a5a0f6700.jpeg" alt class="image--center mx-auto" /></p>
<p>Every year, the tech industry creates a new framework, programming language, and database.</p>
<p>You don't have to learn all of them.</p>
<p>Focus on the basic skills that will help you in the long run, such as:</p>
<ul>
<li><p>Data structures and algorithms: these will mostly help during the interview process.</p>
</li>
<li><p>Reading other people's code.</p>
</li>
<li><p>Writing clean code.</p>
</li>
</ul>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/10-career-advice-for-new-software-engineers">10 Career Advice for New Software Engineers</a> to learn about actionable tips to succeed in your software development career.</p>
</blockquote>
<h2 id="heading-developing-problem-solving-skills">Developing problem-solving skills</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1691344689641/2103ee74-3294-4461-b104-4a569db7c6b5.png" alt class="image--center mx-auto" /></p>
<p>Problem-solving is the process of identifying a problem and generating potential solutions to solve a problem.</p>
<p>Problem-solving is the main skill of a software engineer. Companies hire software engineers to solve complex problems. You must recognize this.</p>
<p>Depending on the problem you're trying to solve, you may decide whether you can solve that through coding or not.</p>
<p><strong><em>Not all problems need to be solved through coding.</em></strong></p>
<p>You can develop and strengthen your problem-solving skills by:</p>
<ul>
<li><p>Working on projects of larger scope.</p>
</li>
<li><p>Learn and practice different algorithms (for example, "divide-and-conquer").</p>
</li>
<li><p>Solving <a target="_blank" href="https://techwithmaddy.com/5-useful-maths-concepts-for-software-engineers">mathematical problems</a>.</p>
</li>
<li><p>Being open to learning and unlearning.</p>
</li>
</ul>
<h2 id="heading-saving-and-investing">Saving and investing</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1691344814994/97fb0f7e-5869-42dd-a089-7c4490dacbc3.png" alt class="image--center mx-auto" /></p>
<p>As a software engineer, your salary will increase relatively quickly.</p>
<p>Learn how to save, budget, invest money and avoid lifestyle inflation. You'll thank yourself in a few years.</p>
<h2 id="heading-attending-networking-events">Attending networking events</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1691344830776/b111af3a-441e-4f9a-9d2c-5b5522817142.jpeg" alt class="image--center mx-auto" /></p>
<p>As you advance your career, networking will become more and more important. Your network will help you when you least expect it.</p>
<p>Attend networking events in your local area and do your best to keep those connections. They will pay off in the long run.</p>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/top-5-networking-tips-for-software-engineers">Top 5 Networking Tips For Software Engineers</a> to learn more about how to network as a software engineer.</p>
</blockquote>
<h2 id="heading-embracing-failure-and-learning-from-mistakes">Embracing failure and learning from mistakes</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1691344847918/2bb30632-b168-45f6-bd1a-54bd91d97851.jpeg" alt class="image--center mx-auto" /></p>
<p>Failure is an inevitable part of any software engineering journey. It's important to embrace failure as an opportunity for growth and learning. Instead of letting failure discourage you, use it as a stepping stone toward success.</p>
<p>When you encounter failure, take the time to analyze what went wrong and identify the lessons learned. Reflect on the mistakes you made and use them as valuable insights for future projects.</p>
<p>Don't be afraid to ask for help or seek feedback from your senior peers – this can provide a fresh perspective and help you avoid similar mistakes in the future.</p>
<p>Failure is not a reflection of your abilities or worth as a software engineer. It's a natural part of the learning process and an opportunity for improvement.</p>
<p>Embrace failure, learn from your mistakes, and keep pushing forward.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>By the end of this article, I hope you have learned what I would have done differently if I was going to start all over again as a software engineer.</p>
<p>If this article is helpful to you, consider subscribing to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>. I share more content like this.</p>
<p>Until next time!</p>
<h3 id="heading-related-resources"><strong>Related resources:</strong></h3>
<ul>
<li><p><a target="_blank" href="https://techwithmaddy.com/tips-for-your-next-pair-programming-interview">Tips For Your Next Pair Programming Interview</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/5-actionable-steps-to-land-your-first-software-engineering-role">5 Actionable Steps to Land Your First Software Engineering Role</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/elegantly-receive-feedback-as-a-software-engineer">Elegantly Receive Feedback As a Software Engineer</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[My First Three Months As A Technical Writer]]></title><description><![CDATA[This year I quit software engineering to go into technical writing full-time.
This article will describe my first three months as a technical writer.
Let's start.
Communication is key

Communication is one of a technical writer's strengths.
Communica...]]></description><link>https://techwithmaddy.com/my-first-three-months-as-a-technical-writer</link><guid isPermaLink="true">https://techwithmaddy.com/my-first-three-months-as-a-technical-writer</guid><category><![CDATA[Technical writing ]]></category><category><![CDATA[writing]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 31 Jul 2023 05:00:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1690733490099/64ff4eec-3340-4f2d-82b7-a32962aa9620.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This year I quit software engineering to go into technical writing full-time.</p>
<p>This article will describe my first three months as a technical writer.</p>
<p>Let's start.</p>
<h2 id="heading-communication-is-key">Communication is key</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690732766719/795a968b-7fae-4e77-8174-116a026ce03f.png" alt class="image--center mx-auto" /></p>
<p>Communication is one of a technical writer's strengths.</p>
<p>Communication is not just how you communicate technical information to your user.</p>
<p>Communication is also:</p>
<ul>
<li><p>How you communicate with members of your team.</p>
</li>
<li><p>How you communicate with colleagues outside of your immediate team.</p>
</li>
<li><p>How to make a request to get the desired outcome.</p>
</li>
<li><p>How to communicate in a way that is direct and kind simultaneously.</p>
</li>
</ul>
<h2 id="heading-stakeholder-management-is-a-skill">Stakeholder management is a skill</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690732887374/4f5f1930-a2e9-443d-9bb8-a6eac6e13cda.png" alt class="image--center mx-auto" /></p>
<blockquote>
<p>Stakeholder management is the process of maintaining good relationships with the people who have most impact on your work.[<a target="_blank" href="https://www.mindtools.com/at2o1co/what-is-stakeholder-management">MindTools</a>]</p>
</blockquote>
<p>A stakeholder is anyone who can be affected by the outcome of a project.</p>
<p>In a software project, stakeholders are usually product managers, project managers, and directors.</p>
<p>Stakeholder management involves:</p>
<ul>
<li><p>Identifying the strategy to communicate with stakeholders.</p>
</li>
<li><p>Recognizing the influence a stakeholder has on a project.</p>
</li>
<li><p>Following the stakeholder's strategy.</p>
</li>
</ul>
<h2 id="heading-user-experience-is-a-skill">User experience is a skill</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690733039023/55c082ee-d7f7-40c8-8477-041cd5098afc.png" alt class="image--center mx-auto" /></p>
<blockquote>
<p>Everything that involves people interacting with something is a part of the user experience.[<a target="_blank" href="https://medium.com/level-up-web/technical-writing-as-a-part-of-user-experience-2cfd97554d09"><em>Technical Writing as a Part of User Experience</em></a>]</p>
</blockquote>
<p>Technical writers are critical to a product's success. As a technical writer, you must acknowledge what the users need to understand and use, document, and write about a product.</p>
<h2 id="heading-you-constantly-learn">You constantly learn</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690733081760/6467e6d5-f9f0-46f2-946d-2f6189962c9a.jpeg" alt class="image--center mx-auto" /></p>
<p>Software engineers constantly learn, and so do technical writers.</p>
<p>Technical writers learn something new every day.</p>
<p>You learn the company's style guide, the company's products, the technology behind the products, etc.</p>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/how-to-transition-from-software-engineer-to-technical-writer">How To Transition From Software Engineer to Technical Writer</a></p>
</blockquote>
<h2 id="heading-writing-is-20-of-the-job">Writing is 20% of the job</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690733212507/040788a5-1ac9-4e03-af19-8eca140a2cb4.png" alt class="image--center mx-auto" /></p>
<p>Although "writing" is part of the job title, technical writing also involves:</p>
<ul>
<li><p>Editing and proofreading.</p>
</li>
<li><p>Project management.</p>
</li>
<li><p>Reading and researching.</p>
</li>
<li><p>Managing and planning meetings.</p>
</li>
</ul>
<blockquote>
<p>Read <a target="_blank" href="https://techwithmaddy.com/3-things-you-can-do-to-improve-your-technical-writing-skills#heading-1-write-consistently">3 Things You Can Do To Improve Your Technical Writing Skills</a></p>
</blockquote>
<h2 id="heading-cross-functional-collaboration-is-part-of-the-job">Cross-functional collaboration is part of the job</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690733327915/5dcdb5cd-a60c-460f-9aa9-8600eb314338.png" alt class="image--center mx-auto" /></p>
<p>Technical writing can be perceived as a lonely job, but I find this to be far from the truth.</p>
<p>Technical writing involves extensive cross-functional collaboration with colleagues, engineers, product managers, and UX designers.</p>
<p>Technical writers seek help from various teams to produce <a target="_blank" href="https://techwithmaddy.com/why-user-documentation-is-essential-in-software-development">compelling documentation</a>.</p>
<p>Technical writers need multiple and different perspectives to create documentation that users will find easy to read.</p>
<h2 id="heading-key-takeaways">Key Takeaways</h2>
<p>My first three months as a technical writer have been full of learning. I do not regret making the transition.</p>
<p>Technical writing is a job that develops communication skills and teaches you how to build relationships with others.</p>
<p>If you enjoyed this article, subscribe to my <a target="_blank" href="https://techwithmaddy.com/newsletter">FREE weekly newsletter</a>. I share more content like this.</p>
<p>Until next time!</p>
]]></content:encoded></item><item><title><![CDATA[Tips for Working from Home Effectively]]></title><description><![CDATA[I've worked remotely for about two years and developed ways to work from home effectively and achieve an outstanding work-life balance.
As the boundaries between professional and personal life blur, it's essential to prioritize your well-being and en...]]></description><link>https://techwithmaddy.com/tips-for-working-from-home-effectively</link><guid isPermaLink="true">https://techwithmaddy.com/tips-for-working-from-home-effectively</guid><category><![CDATA[Productivity]]></category><category><![CDATA[remote work]]></category><dc:creator><![CDATA[Maddy]]></dc:creator><pubDate>Mon, 24 Jul 2023 05:00:13 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1690107227202/1b9b3ada-2c15-4657-8b0b-23750c122515.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I've worked remotely for about two years and developed ways to work from home effectively and achieve an outstanding work-life balance.</p>
<p>As the boundaries between professional and personal life blur, it's essential to prioritize your well-being and ensure a healthy and successful work-from-home (WFH) experience.</p>
<p>This article provides essential tips for navigating the remote era and balancing work responsibilities and personal life.</p>
<h2 id="heading-have-a-routine">Have a routine</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690107614493/4022bcc2-c3d5-42a3-bf7a-3bdbb3d012db.jpeg" alt class="image--center mx-auto" /></p>
<p>Everyone is different, and not everyone is routine-oriented.</p>
<p>However, having a routine helps increase productivity, better time management, reduce external distractions, and manage stress.</p>
<p>To develop a routine, identify if you're a morning or evening person, and create a routine around your preference. Understand in which part of the day you're mostly productive and focused.</p>
<p>Routine is a personal subject, and the best routine is the one that works for you and gets you your desired results.</p>
<h2 id="heading-exercise">Exercise</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690107745814/bd6e05cd-b744-4595-9f39-4ece363a3fe3.jpeg" alt class="image--center mx-auto" /></p>
<p>Working from home often enables people to become more physically inactive.</p>
<p>Exercising gives you more energy throughout the day and helps you stay in shape.</p>
<h2 id="heading-get-enough-sleep">Get enough sleep</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690107517581/65ffa495-3437-4b50-8d81-a0396a7a2322.jpeg" alt class="image--center mx-auto" /></p>
<p>Getting enough sleep will ensure you operate at full capacity throughout the day.</p>
<p>Adequate sleep helps you stay focused and reduces brain fog.</p>
<p>What I've found helpful to have a good night's sleep is to wear earplugs and a night mask and reduce screen time 30 minutes to an hour before bed.</p>
<p>Some people enjoy listening to relaxing music to fall asleep.</p>
<p>Find your way to have a good night's sleep.</p>
<h2 id="heading-create-a-dedicated-workspace">Create a dedicated workspace</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690107868192/c4477531-8cfa-482a-b574-25075c02d48d.jpeg" alt class="image--center mx-auto" /></p>
<p>Creating a dedicated workspace is crucial for maintaining focus and maximizing productivity remotely.</p>
<p>Without a designated area for work, it's easy to get distracted by household chores, family members, or other personal responsibilities.</p>
<p>Consider lighting, ergonomics, and noise levels when setting up your workspace.</p>
<p>Ensure you have a comfortable chair, a suitable desk, and proper lighting to minimize physical discomfort and strain.</p>
<p>Organize your workspace to promote efficiency and allow easy access to necessary tools and resources.</p>
<p>Personalize your workspace with inspiring items and create a positive work environment.</p>
<p>Plants, artwork, or motivational quotes can help boost your mood and well-being while working.</p>
<h2 id="heading-invest-in-ergonomic-equipment">Invest in ergonomic equipment</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690108080789/20396432-8e34-4ba6-b5bd-20080a62d509.jpeg" alt class="image--center mx-auto" /></p>
<p>Investing in ergonomic equipment makes you feel more comfortable, reduces body aches, and increases productivity.</p>
<p>Ergonomic equipment involves:</p>
<ul>
<li><p>A high-quality office chair.</p>
</li>
<li><p>An ergonomic mouse.</p>
</li>
<li><p>A <a target="_blank" href="https://techwithmaddy.com/top-6-laptop-features-for-coding">laptop</a> stand.</p>
</li>
<li><p>A standing desk.</p>
</li>
</ul>
<h2 id="heading-take-breaks-every-hour">Take breaks every hour</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690108177941/0955b9a1-3d2a-43ad-b1e5-7e82d0eb72e7.jpeg" alt class="image--center mx-auto" /></p>
<p>It's easy to forget to take regular breaks when working from home.</p>
<p>Take breaks every hour. Ideally, your break would be 15/20 minutes long.</p>
<p>During your break, you can:</p>
<ul>
<li><p>Have a short walk.</p>
</li>
<li><p>Do some stretching.</p>
</li>
<li><p>Take a quick nap.</p>
</li>
<li><p>Complete a small household chore.</p>
</li>
<li><p>Do some meditation.</p>
</li>
</ul>
<p>When taking a break, do an activity that doesn't involve a screen.</p>
<h2 id="heading-have-an-end-of-day-ritual">Have an end-of-day ritual</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690108354434/4ed4ba9b-465d-4b30-95f5-b4baeda32ae2.jpeg" alt class="image--center mx-auto" /></p>
<p>Having an end-of-day ritual helps you unplug from work.</p>
<p>Working from home can blur the lines between "work" and "life" because your work is at home and perhaps even in the same room you sleep.</p>
<p>Consider adding an end-of-day ritual to mark the end of the working day and the start of your time.</p>
<p>A ritual can be:</p>
<ul>
<li><p><a target="_blank" href="https://techwithmaddy.com/how-to-write-the-perfect-documentation-for-your-github-project">Writing</a> a to-do list for the next day.</p>
</li>
<li><p>Playing your favourite music.</p>
</li>
<li><p>Doing some yoga.</p>
</li>
<li><p>Journalling.</p>
</li>
<li><p>Listening to a podcast.</p>
</li>
<li><p>Tidying up your desk.</p>
</li>
<li><p>Spending time with family or a pet.</p>
</li>
</ul>
<h2 id="heading-block-out-time-in-your-calendar">Block out time in your calendar</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690108476765/e4bf371b-46d6-4caf-b8cd-3ad0a8ecee9b.jpeg" alt class="image--center mx-auto" /></p>
<p>If you struggle with taking regular breaks and managing your time, consider using your work calendar to block time to accomplish your tasks.</p>
<p>Your work calendar sends you notifications and therefore helps you stay on top of your time.</p>
<p>In your calendar, you can block out time for:</p>
<ul>
<li><p>Regular breaks.</p>
</li>
<li><p>Deep-work time.</p>
</li>
<li><p>Lunch.</p>
</li>
</ul>
<h2 id="heading-have-hobbies-outside-of-work">Have hobbies outside of work</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690108726901/b49020a4-90e9-4465-9619-b50a8d8979e2.jpeg" alt class="image--center mx-auto" /></p>
<p>Having hobbies outside of work helps with further achieving work-life balance.</p>
<p>Ideally, your hobby should be an activity that takes you outside of the house so you're not spending too much time in the same place where you work.</p>
<p>Sports and <a target="_blank" href="https://techwithmaddy.com/top-5-networking-tips-for-software-engineers#heading-volunteer">volunteering</a> are great additions to your routine.</p>
<h2 id="heading-keep-your-desk-organized">Keep your desk organized</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690108875744/cc200878-a2df-4581-8010-64a9f4893703.jpeg" alt class="image--center mx-auto" /></p>
<p>Keeping your desk organized can give you a better sense of clarity and relaxation.</p>
<p>It also increases productivity because you know where you keep your items and don't have to spend time searching for them.</p>
<h2 id="heading-change-scenery">Change scenery</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690109005209/dd6f3caa-2cf0-4d86-a147-4c6b1fca536f.jpeg" alt class="image--center mx-auto" /></p>
<p>You may become reluctant to change when you have a comfortable work-from-home setup.</p>
<p>However, consider changing scenery from time to time.</p>
<p>You can work from a cafe or co-working space at a friend's house.</p>
<p>Anywhere you can access WiFi, and a desk/table is suitable for working.</p>
<h2 id="heading-talk-to-your-colleagues">Talk to your colleagues</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690109101668/5ae05eab-5310-492c-8530-7b8fdddef3a8.jpeg" alt class="image--center mx-auto" /></p>
<p>Maintaining social connections and staying connected with colleagues is essential for a healthy work-life balance, especially in <a target="_blank" href="https://techwithmaddy.com/when-to-leave-a-software-job#heading-not-happy-with-the-work-mode">remote work</a>.</p>
<p>Without coworkers' physical presence, finding alternative ways to foster social interactions and maintain a sense of community is essential.</p>
<p>Schedule regular virtual meetings or team-building activities to connect with your colleagues. This can include virtual coffee breaks, team lunches, or informal catch-up sessions.</p>
<p>Join online communities or <a target="_blank" href="https://techwithmaddy.com/top-5-networking-tips-for-software-engineers#heading-attend-networking-events">professional networks</a> related to your field of work.</p>
<p>Engaging with like-minded professionals can provide valuable support, advice, and networking opportunities.</p>
<p>These connections can help combat feelings of isolation and enhance your work-life balance.</p>
<p>Make an effort to reach out to colleagues for non-work-related conversations.</p>
<p>Building personal connections and engaging in casual conversations can help create a more inclusive and supportive remote work environment.</p>
<h2 id="heading-visit-your-office">Visit your office</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690109172542/cb8ce95d-7cf2-4edc-a599-1c949e79d014.jpeg" alt class="image--center mx-auto" /></p>
<p>If you can, visit your office from time to time.</p>
<p>Visiting your office makes you feel less lonely and allows you to build relationships with people outside your team.</p>
<h2 id="heading-final-thoughts">Final thoughts</h2>
<p>As the remote era becomes increasingly prevalent, it's essential to prioritize work-life balance to ensure a healthy and successful work-from-home experience.</p>
<p>Remember, achieving work-life balance is a continuous process that requires ongoing effort and adjustment.</p>
<p>Experiment with different strategies and find what works best for you.</p>
<p>By prioritizing work-life balance, you can thrive in the remote era, enjoy the benefits of remote work, and lead a fulfilling and successful professional and personal life.</p>
<p><strong>If enjoyed this article, subscribe to my</strong> <a target="_blank" href="https://techwithmaddy.com/newsletter"><strong><em>FREE weekly newsletter</em></strong></a><strong>, where I share more content like this.</strong></p>
<h3 id="heading-related-resources">Related resources:</h3>
<ul>
<li><p><a target="_blank" href="https://techwithmaddy.com/how-to-find-remote-tech-jobs-on-linkedin">How To Find Remote Tech Jobs On LinkedIn</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/5-ways-to-get-in-the-tech-industry">5 Ways To Get In The Tech Industry</a></p>
</li>
<li><p><a target="_blank" href="https://techwithmaddy.com/jobs-in-tech-that-dont-require-coding">Jobs In Tech That Don't Require Coding</a></p>
</li>
</ul>
]]></content:encoded></item></channel></rss>