{"id":15748,"date":"2011-10-20T09:21:58","date_gmt":"2011-10-20T07:21:58","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=15748"},"modified":"2011-10-20T09:21:58","modified_gmt":"2011-10-20T07:21:58","slug":"software-developers-worst-enemy","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/","title":{"rendered":"Software developer&#8217;s worst enemy"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"http:\/\/www.codinghorror.com\/blog\/2007\/05\/the-best-code-is-no-code-at-all.html\">Coding Horror<\/a> has an insightful article on the software developer&#8217;s worst enemy.<\/p>\n<blockquote><p>[&#8230;] the real problem isn&#8217;t the code. The code, like a newborn babe, is blameless and innocent the minute it is written into the world. Code isn&#8217;t our enemy. You want to see the real enemy? Go look in the mirror. There&#8217;s your problem, right there.<\/p>\n<p><strong>As a software developer, you are your own worst enemy. The sooner you realize that, the better off you&#8217;ll be.<\/strong><\/p>\n<p>I know you have the best of intentions. We all do. We&#8217;re software developers; we love writing code. It&#8217;s what we do. We never met a problem we couldn&#8217;t solve with some duct tape, a jury-rigged coat hanger, and a pinch of code. But Wil Shipley argues that we should rein in our natural tendencies to write lots of code<br \/>\n[&#8230;]<\/p><\/blockquote>\n<p>There are quite a few things which seem obvious, that you can&#8217;t really disagree with, but which I also didn&#8217;t define or form on my own for some reason.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Coding Horror has an insightful article on the software developer&#8217;s worst enemy. [&#8230;] the real problem isn&#8217;t the code. The code, like a newborn babe, is blameless and innocent the minute it is written into the world. Code isn&#8217;t our enemy. You want to see the real enemy? Go look in the mirror. There&#8217;s your &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Software developer&#8217;s worst enemy<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,62],"tags":[1673],"keyring_services":[],"class_list":["post-15748","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","tag-software-engineering"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Coding Horror has an insightful article on the software developer&#039;s worst enemy. [...] the real problem isn&#039;t the code. The code, like a newborn babe, is blameless and innocent the minute it is written into the world. Code isn&#039;t our enemy. You want to see the real enemy? Go look in the mirror. There&#039;s your\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Software developer\u2019s worst enemy - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"Coding Horror has an insightful article on the software developer&#039;s worst enemy. [...] the real problem isn&#039;t the code. The code, like a newborn babe, is blameless and innocent the minute it is written into the world. Code isn&#039;t our enemy. You want to see the real enemy? Go look in the mirror. There&#039;s your\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2011-10-20T07:21:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2011-10-20T07:21:58+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Software developer\u2019s worst enemy - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Coding Horror has an insightful article on the software developer&#039;s worst enemy. [...] the real problem isn&#039;t the code. The code, like a newborn babe, is blameless and innocent the minute it is written into the world. Code isn&#039;t our enemy. You want to see the real enemy? Go look in the mirror. There&#039;s your\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#blogposting\",\"name\":\"Software developer\\u2019s worst enemy - Leonid Mamchenkov\",\"headline\":\"Software developer&#8217;s worst enemy\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"},\"datePublished\":\"2011-10-20T09:21:58+02:00\",\"dateModified\":\"2011-10-20T09:21:58+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, software engineering\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#listItem\",\"name\":\"Software developer&#8217;s worst enemy\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#listItem\",\"position\":4,\"name\":\"Software developer&#8217;s worst enemy\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/\",\"name\":\"Software developer\\u2019s worst enemy - Leonid Mamchenkov\",\"description\":\"Coding Horror has an insightful article on the software developer's worst enemy. [...] the real problem isn't the code. The code, like a newborn babe, is blameless and innocent the minute it is written into the world. Code isn't our enemy. You want to see the real enemy? Go look in the mirror. There's your\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2011\\\/10\\\/20\\\/software-developers-worst-enemy\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2011-10-20T09:21:58+02:00\",\"dateModified\":\"2011-10-20T09:21:58+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Software developer\u2019s worst enemy - Leonid Mamchenkov","description":"Coding Horror has an insightful article on the software developer's worst enemy. [...] the real problem isn't the code. The code, like a newborn babe, is blameless and innocent the minute it is written into the world. Code isn't our enemy. You want to see the real enemy? Go look in the mirror. There's your","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#blogposting","name":"Software developer\u2019s worst enemy - Leonid Mamchenkov","headline":"Software developer&#8217;s worst enemy","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"},"datePublished":"2011-10-20T09:21:58+02:00","dateModified":"2011-10-20T09:21:58+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#webpage"},"articleSection":"All, Programming, Technology, software engineering"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#listItem","name":"Software developer&#8217;s worst enemy"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#listItem","position":4,"name":"Software developer&#8217;s worst enemy","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/","name":"Software developer\u2019s worst enemy - Leonid Mamchenkov","description":"Coding Horror has an insightful article on the software developer's worst enemy. [...] the real problem isn't the code. The code, like a newborn babe, is blameless and innocent the minute it is written into the world. Code isn't our enemy. You want to see the real enemy? Go look in the mirror. There's your","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2011-10-20T09:21:58+02:00","dateModified":"2011-10-20T09:21:58+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"Software developer\u2019s worst enemy - Leonid Mamchenkov","og:description":"Coding Horror has an insightful article on the software developer's worst enemy. [...] the real problem isn't the code. The code, like a newborn babe, is blameless and innocent the minute it is written into the world. Code isn't our enemy. You want to see the real enemy? Go look in the mirror. There's your","og:url":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2011-10-20T07:21:58+00:00","article:modified_time":"2011-10-20T07:21:58+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"Software developer\u2019s worst enemy - Leonid Mamchenkov","twitter:description":"Coding Horror has an insightful article on the software developer's worst enemy. [...] the real problem isn't the code. The code, like a newborn babe, is blameless and innocent the minute it is written into the world. Code isn't our enemy. You want to see the real enemy? Go look in the mirror. There's your","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"15748","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-19 09:15:37","updated":"2026-01-15 07:21:45","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tSoftware developer\u2019s worst enemy\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"Software developer&#8217;s worst enemy","link":"https:\/\/mamchenkov.net\/wordpress\/2011\/10\/20\/software-developers-worst-enemy\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":29302,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/25\/our-software-dependency-problem\/","url_meta":{"origin":15748,"position":0},"title":"Our Software Dependency Problem","author":"Leonid Mamchenkov","date":"January 25, 2019","format":false,"excerpt":"\"Our Software Dependency Problem\" is a great article going in-depth into the subject of the dependency management during software engineering. Dependency managers have scaled this open-source code reuse model down: now, developers can share code at the granularity of individual functions of tens of lines. This is a major technical\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":16576,"url":"https:\/\/mamchenkov.net\/wordpress\/2012\/07\/27\/every-good-work-of-software-starts-by-scratching-a\/","url_meta":{"origin":15748,"position":1},"title":"Every good work of software starts by scratching a&#8230;","author":"Leonid Mamchenkov","date":"July 27, 2012","format":"quote","excerpt":"Every good work of software starts by scratching a developer's personal itch. The Cathedral and the Bazaar","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":16742,"url":"https:\/\/mamchenkov.net\/wordpress\/2012\/09\/24\/worst-excuse-ever\/","url_meta":{"origin":15748,"position":2},"title":"Worst excuse ever","author":"Leonid Mamchenkov","date":"September 24, 2012","format":false,"excerpt":"For the last few days, if you go to almost any Cyprus website, you get a warning like the one on the screenshot below. This one in particular is from the Google Chrome browser, and here is how Google explains it: This message appears if Google Chrome detects that the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2012\/09\/Cyprus-malware-500x316.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27879,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/28\/clean-code-solid-principles-applied-to-php\/","url_meta":{"origin":15748,"position":3},"title":"Clean Code SOLID principles applied to PHP","author":"Leonid Mamchenkov","date":"August 28, 2017","format":false,"excerpt":"clean-code-php is an excellent set of examples for the SOLID principles as applied to PHP programming: Software engineering principles, from Robert C. Martin's book\u00a0Clean Code, adapted for PHP. This is not a style guide. It's a guide to producing readable, reusable, and refactorable software in PHP. Not every principle herein\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9372,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/08\/25\/quake-iii-arena-source-code-gpled\/","url_meta":{"origin":15748,"position":4},"title":"Quake III Arena source code GPLed","author":"Leonid Mamchenkov","date":"August 25, 2005","format":false,"excerpt":"id Software has released the source code for its Quake III Arena for the public under the GPL. That is even before Quake 4 has been released! If you're interested, you can download the source code here. Now game writers all over the world can unite and produce some really\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":24103,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/05\/13\/on-software-liability-laws\/","url_meta":{"origin":15748,"position":5},"title":"On software liability laws","author":"Leonid Mamchenkov","date":"May 13, 2015","format":false,"excerpt":"I came across this interesting opinion on\u00a0software liability. \u00a0Just to keep them here for the context, the suggested software liability rules include the following: Consult criminal code to see if any intentionally caused damage is already covered. If you deliver software with complete and buildable source code and a license\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/15748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=15748"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/15748\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=15748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=15748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=15748"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=15748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}