<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Michael Kent</title><link>https://michaelkent.me/posts/</link><description>Recent content in Posts on Michael Kent</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>© 2026 Michael Kent</copyright><lastBuildDate>Sun, 19 Mar 2023 16:26:19 +0000</lastBuildDate><atom:link href="https://michaelkent.me/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Steps To Figuring Out Performance Issues</title><link>https://michaelkent.me/steps-to-figuring-out-performance-issues/</link><pubDate>Sun, 19 Mar 2023 16:26:19 +0000</pubDate><guid>https://michaelkent.me/steps-to-figuring-out-performance-issues/</guid><description>&lt;p&gt;Programming performance issues can be a frustrating and time-consuming problem for developers. However, tracking down these issues is a crucial step in creating software. Here are some steps that developers can take to track down programming performance issues:&lt;/p&gt;
&lt;p&gt;The first thing to do is &lt;strong&gt;ALWAYS&lt;/strong&gt; hook up a profiler to your code, reproducing your issue, and measuring what is causing it. Performance issues are often not obvious and if you don’t profile you’ll waste a bunch of time speeding up things that don’t matter(or just hide the base issue).&lt;/p&gt;</description></item><item><title>Form Validation is No Fun</title><link>https://michaelkent.me/form-validation-is-no-fun/</link><pubDate>Thu, 27 Sep 2018 17:13:00 +0000</pubDate><guid>https://michaelkent.me/form-validation-is-no-fun/</guid><description>&lt;p&gt;Over the years Software Engineering has gone through many iterations of best practices. Form field validation is no exception to this.&lt;/p&gt;
&lt;p&gt;The morale of the story here is stop rolling your own validation. This is one of those things that seem super easy to do, so you just quick roll your own and then move on. Except you never move on because you’ll get tickets to fix stuff until the end of time.&lt;/p&gt;</description></item><item><title>Incident Response</title><link>https://michaelkent.me/incident-response/</link><pubDate>Tue, 01 May 2018 16:58:13 +0000</pubDate><guid>https://michaelkent.me/incident-response/</guid><description>&lt;p&gt;Incident response is a critical aspect of software engineering – the process of identifying, responding to, and resolving incidents that occur within a software system. In order to effectively respond to incidents, software engineers can use the Incident Command System (ICS), a structured approach to incident management that is commonly used in emergency response situations.&lt;/p&gt;
&lt;p&gt;The ICS is a standardized approach to managing incidents that involves a hierarchical system of management and coordination. The system is designed to promote effective communication, coordination, and decision-making during incidents. The ICS is made up of five functional areas:&lt;/p&gt;</description></item><item><title>YAGNI – You Ain’t Gonna Need It</title><link>https://michaelkent.me/yagni-you-aint-gonna-need-it/</link><pubDate>Fri, 07 Apr 2017 02:18:53 +0000</pubDate><guid>https://michaelkent.me/yagni-you-aint-gonna-need-it/</guid><description>&lt;p&gt;YAGNI and Agile&lt;/p&gt;
&lt;p&gt;One of the hardest things to do in software development is to respect “you ain’t gonna need it” and “keep it simple stupid”. Every time I go to implement a feature, I can think of 50 extra things I should do to make it ‘complete’ and exactly what I want. It is so helpful to hit things with an Agile and iterative frame of reference. Build an MVP(minimum viable product) and publish! Extra features can come later as they are actually needed.&lt;/p&gt;</description></item><item><title>NLog Setup</title><link>https://michaelkent.me/nlog-setup/</link><pubDate>Sat, 14 Jan 2017 22:21:29 +0000</pubDate><guid>https://michaelkent.me/nlog-setup/</guid><description>&lt;p&gt;Every time I make a file new project I need to add logging – how many times have I spent time figuring out what needs to go where, how to format the error email, and how to log uncaught errors(oh noes!). Too many times. So here is me condensing adding NLog to a web project quickly and easily:&lt;/p&gt;
&lt;p&gt;Install NLog.config(and with it NLog) on your web project.&lt;/p&gt;
&lt;p&gt;Add these to NLog.config:&lt;/p&gt;</description></item><item><title>Confidentiality, Integrity, Availability</title><link>https://michaelkent.me/confidentiality-integrity-availability/</link><pubDate>Sat, 10 Dec 2016 16:52:30 +0000</pubDate><guid>https://michaelkent.me/confidentiality-integrity-availability/</guid><description>&lt;p&gt;The CIA triad of &lt;strong&gt;Confidentiality&lt;/strong&gt;, &lt;strong&gt;Integrity&lt;/strong&gt;, &lt;strong&gt;Availability&lt;/strong&gt; refers to three necessary security components of software, at a bare baseline.&lt;/p&gt;
&lt;p&gt;**Confidentiality&lt;/p&gt;
&lt;p&gt;**Software(and its’ developers) are often exposed to sensitive details. These details should only reach the people the client expects. Users must be able to understand what data can be seen by who.&lt;/p&gt;
&lt;p&gt;**Integrity&lt;/p&gt;
&lt;p&gt;**Data should only be changed purposefully by users. Data, along with corresponding metadata, should be stored safely, securely, and with solid backups.&lt;/p&gt;</description></item><item><title>Exceptions Deserve to be Handled</title><link>https://michaelkent.me/exceptions-deserve-to-be-handled/</link><pubDate>Thu, 28 Jan 2016 16:34:11 +0000</pubDate><guid>https://michaelkent.me/exceptions-deserve-to-be-handled/</guid><description>&lt;p&gt;Some code smell I came upon today! Exceptions should always be handled in some way, even if just logging it and continuing on(the next person troubleshooting a problem will thank you). Also, exceptions should be exceptional – they are slow and break up code flow; avoid using them for normal circumstances, like bad user input.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;try&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//do something&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Exception&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Development, Testing, and Quality Assurance</title><link>https://michaelkent.me/development-testing-and-quality-assurance/</link><pubDate>Thu, 30 Apr 2015 16:46:03 +0000</pubDate><guid>https://michaelkent.me/development-testing-and-quality-assurance/</guid><description>&lt;p&gt;How important is it that your software runs correctly and to spec? For most software it is of the utmost importance. One of the &lt;a href="https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/" target="_blank" rel="noreferrer"&gt;Joel Test&lt;/a&gt; 12 is “Do you fix bugs before writing new code?”. Smart development, testing, and QA help prevent bugs in software.&lt;/p&gt;
&lt;p&gt;Fixing Code Before Production and After&lt;/p&gt;
&lt;p&gt;Fixing code before it goes to production will save you time. I have had bugs that would have taken 30 seconds to fix before going to production that I spent more than a week on fixing after it went to production because it messed up data in another system.&lt;/p&gt;</description></item><item><title>Featuritis(Scope Creep)</title><link>https://michaelkent.me/featuritisscope-creep/</link><pubDate>Sun, 19 Apr 2015 16:43:18 +0000</pubDate><guid>https://michaelkent.me/featuritisscope-creep/</guid><description>&lt;p&gt;Scheduling software is hard. Estimating software is hard. Deadlines in software are hard.&lt;/p&gt;
&lt;p&gt;When someone says “we need this thing you estimated for 4 weeks in 2” the question is “what can we cut or push back into another release?”&lt;/p&gt;
&lt;p&gt;Not managing the scope creep situation well ends up with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Increased Costs: Scope creep can lead to increased costs, as additional resources and time are required to meet the new requirements. This can impact the project’s budget and profitability.&lt;/p&gt;</description></item><item><title>When Building An Interface, Think About the Customer</title><link>https://michaelkent.me/when-building-an-interface-think-about-the-customer/</link><pubDate>Mon, 23 Mar 2015 16:36:17 +0000</pubDate><guid>https://michaelkent.me/when-building-an-interface-think-about-the-customer/</guid><description>&lt;p&gt;When building an interface/class, a software engineer should think about how other software engineers are his target customer. This means that the interface should be designed with the needs and preferences of other software engineers in mind.&lt;/p&gt;
&lt;p&gt;Here are some reasons why software engineers should consider other software engineers as their target customer when building an interface:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Efficiency in Workflow: Other software engineers will have similar workflows to the developer who is building the interface. The interface should be designed to facilitate efficient workflows, using well-established patterns and conventions to streamline the process.&lt;/p&gt;</description></item><item><title>When Building Software, Think About the Customer</title><link>https://michaelkent.me/when-building-software-think-about-the-customer/</link><pubDate>Thu, 19 Feb 2015 16:30:40 +0000</pubDate><guid>https://michaelkent.me/when-building-software-think-about-the-customer/</guid><description>&lt;p&gt;When building software, thinking about the customer is essential. The customer is the end-user of the software, and their satisfaction is critical for the success of the product. By considering the customer’s needs and preferences, developers can create software that is user-friendly, efficient, and effective.&lt;/p&gt;
&lt;p&gt;Here are some reasons why thinking about the customer is important when building software:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;User-Friendly Interface: Customers want software that is easy to use and navigate. Developers should consider the user experience, ensuring that the interface is intuitive, with clear labeling and navigation. This can lead to increased customer satisfaction and reduce the need for support.&lt;/p&gt;</description></item><item><title>Hello!</title><link>https://michaelkent.me/hello-world/</link><pubDate>Mon, 19 Jan 2015 17:49:06 +0000</pubDate><guid>https://michaelkent.me/hello-world/</guid><description>&lt;p&gt;First post!&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HelloWorld&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="n"&gt;Main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Hello, World!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item></channel></rss>