<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>CTO building human, trustworthy products</title><description>CTO who builds products, helps teams decide what to automate, and cares about effective, trustworthy, human-centered technology.</description><link>https://carmenh.dev/</link><item><title>Becoming Chief Technology Officer Wasn&apos;t a Promotion, It Was a Response</title><link>https://carmenh.dev/2026/04/08/becoming-a-chief-technology-officer/</link><guid isPermaLink="true">https://carmenh.dev/2026/04/08/becoming-a-chief-technology-officer/</guid><description>Content Warning: Burnout and other mental health struggles.</description><pubDate>Wed, 08 Apr 2026 05:57:00 GMT</pubDate></item><item><title>How Objective-C Made Me a Versatile Software Engineer</title><link>https://carmenh.dev/2023/04/20/objective-c-versatility/</link><guid isPermaLink="true">https://carmenh.dev/2023/04/20/objective-c-versatility/</guid><description>Special thanks to the incomparable Sylwia Vargas for helping me structure and focus this post better, as well as to Uli for making kind corrections.</description><pubDate>Thu, 20 Apr 2023 06:24:00 GMT</pubDate></item><item><title>Asking for Help Effectively as a Software Developer</title><link>https://carmenh.dev/2022/11/13/asking-for-help/</link><guid isPermaLink="true">https://carmenh.dev/2022/11/13/asking-for-help/</guid><description>Let&apos;s face it, getting stuck on a programming problem stinks , doesn&apos;t it?</description><pubDate>Sun, 13 Nov 2022 07:24:00 GMT</pubDate></item><item><title>My experience speaking at DevRelCon 2021</title><link>https://carmenh.dev/2021/11/15/devrelcon-2021/</link><guid isPermaLink="true">https://carmenh.dev/2021/11/15/devrelcon-2021/</guid><description>What a year! In 2021, when I started my first role in DevRel I also spoke at this year&apos;s edition of DevRelCon .</description><pubDate>Mon, 15 Nov 2021 07:24:00 GMT</pubDate></item><item><title>Pre-recording conference talks</title><link>https://carmenh.dev/2021/05/11/pre-recording-talks/</link><guid isPermaLink="true">https://carmenh.dev/2021/05/11/pre-recording-talks/</guid><description>Most of the conference talks I&apos;ve given this year have not only been online, but also pre-recorded.</description><pubDate>Tue, 11 May 2021 08:24:00 GMT</pubDate></item><item><title>My first few months as a developer advocate</title><link>https://carmenh.dev/2021/04/24/devrel-first-months/</link><guid isPermaLink="true">https://carmenh.dev/2021/04/24/devrel-first-months/</guid><description>I have spent the last 10+ years freelancing and contracting as a software developer. This January, that changed when I became a developer advocate at CodeSee .</description><pubDate>Sat, 24 Apr 2021 08:24:00 GMT</pubDate></item><item><title>Hosting a Podcast from Scratch</title><link>https://carmenh.dev/2021/01/23/recording-podcast/</link><guid isPermaLink="true">https://carmenh.dev/2021/01/23/recording-podcast/</guid><description>A few months ago, Timea and I started hosting the Gender Equality over Coffee podcast, as part of the Women Techmakers Vienna organisation. It&apos;s been a blast!</description><pubDate>Sat, 23 Jan 2021 09:24:00 GMT</pubDate></item><item><title>How we did audio/video for our online conference</title><link>https://carmenh.dev/2020/10/25/running-a-conference-online/</link><guid isPermaLink="true">https://carmenh.dev/2020/10/25/running-a-conference-online/</guid><description>This year&apos;s Women Techmakers Vienna conference was meant to take place in March 2020, but had to be postponed. After three months of monitoring the possibility of holding it later, we as a team decided to hold it online.</description><pubDate>Sun, 25 Oct 2020 09:24:00 GMT</pubDate></item><item><title>Running GUI Linux applications in WSL 2</title><link>https://carmenh.dev/2020/09/30/wsl2-gui-apps/</link><guid isPermaLink="true">https://carmenh.dev/2020/09/30/wsl2-gui-apps/</guid><description>I&apos;ve been really enjoying my time using the Windows Subsystem for Linux, or WSL for short. With it, I&apos;ve been able to develop web software on Windows with the Linux environment familiar to me.</description><pubDate>Wed, 30 Sep 2020 08:24:00 GMT</pubDate></item><item><title>Granting user read/write permissions to a USB device in Ubuntu Linux on boot</title><link>https://carmenh.dev/2020/09/22/usb-device-linux-startup/</link><guid isPermaLink="true">https://carmenh.dev/2020/09/22/usb-device-linux-startup/</guid><description>One of my recent projects involved having a cash register print receipts to a thermal printer. In order to do this, we had a Sinatra server running on boot on the device that would, upon receiving a POST request, print out the ESC/POS data.</description><pubDate>Tue, 22 Sep 2020 08:24:00 GMT</pubDate></item><item><title>Running a learn together coding group remotely</title><link>https://carmenh.dev/2020/06/13/study-group-online/</link><guid isPermaLink="true">https://carmenh.dev/2020/06/13/study-group-online/</guid><description>Our coding study group Study Jams needed a place online where folks could come together remotely, share and learn together, as we&apos;ve done in person for a number of years. Here&apos;s the story of how we managed to make it work!</description><pubDate>Sat, 13 Jun 2020 08:24:00 GMT</pubDate></item><item><title>5 things I learned from a major React Native upgrade</title><link>https://carmenh.dev/2020/04/26/upgrading-dependencies/</link><guid isPermaLink="true">https://carmenh.dev/2020/04/26/upgrading-dependencies/</guid><description>One of my recent gigs was bringing out an update to a React Native app. This involved getting it ready for newer versions of iOS and their recent requirements on the app store , as well as Android&apos;s 64-bit app requirement . It looked pretty clear like the update would involve updating the react-native dependency. Specifically, updating to version 0.59 at least would be necessary. Thing is, the codebase I was starting with was on 0.55.4 . Given the how fast these things move and APIs change, this is no small upgrade. What&apos;s the best policy for managing dependency upgrades? There are a lot of wonderful pieces out there on what the best policy for managing dependencies is. This is not one of them. My aim is to relate my experience having done an upgrade and provide some lessons learned. A common theme I see passed around is that &amp;quot;if it hurts, do it more often&amp;quot; . Why is upgrading dependencies so daunting? Going through a series of dependency upgrades can be a long, difficult experience. The most common difficulty in doing these kinds of upgrades that arises is the brittle nature of interconnected code. When we code, we learn that changing one section can cause another to break. This is why we have disciplines to avoid these problems, such as the many different flavours of testing. But what about open source dependencies? This code is neither tested nor &amp;quot;maintained&amp;quot; by us (assuming we&apos;re not maintaining that specific library), so to speak. We depend on contributors to keep these up and running. That said, my role in this project comes in managing their versions. See, third-party code will oftentimes depend on other third-party code. In our case, an update to react-native might impact how react-navigation performs, since the latter has development dependencies on the former. Some lessons learned while making the upgrades With all that in mind, let&apos;s go over some of the things I learned while performing such an upgrade:</description><pubDate>Sun, 26 Apr 2020 08:24:00 GMT</pubDate><category>js</category><category>dependency-management</category><category>react-native</category></item><item><title>How we made our Rails test suite about 75% faster</title><link>https://carmenh.dev/2020/03/08/speeding-up-rails-tests/</link><guid isPermaLink="true">https://carmenh.dev/2020/03/08/speeding-up-rails-tests/</guid><description>One of my recent tasks has been to take the current test suite for a large-ish Rails app and speed it up as much as possible. This is the story of how I managed to do so without compromising the integrity of the tests.</description><pubDate>Sun, 08 Mar 2020 09:24:00 GMT</pubDate><category>Rails</category><category>Capybara</category><category>Testing</category></item><item><title>Updating data across multiple browser tabs using Vue.js and Vuex</title><link>https://carmenh.dev/2020/01/15/vuex-data-sync/</link><guid isPermaLink="true">https://carmenh.dev/2020/01/15/vuex-data-sync/</guid><description>What a start to the year! Let me set the stage: I&apos;m in the process of building a cash register / point of sale system, which uses Vue.js and Vuex .</description><pubDate>Wed, 15 Jan 2020 09:24:00 GMT</pubDate><category>JS</category><category>Frontend</category><category>Vue</category></item><item><title>Just go for it: The story of dance-mat.js</title><link>https://carmenh.dev/2019/11/25/dance-mat-js/</link><guid isPermaLink="true">https://carmenh.dev/2019/11/25/dance-mat-js/</guid><description>This is the story of my first proper hardware project. Before Just Dance , before Beat Saber , one of my favourite music games growing up was Dance Dance Revolution . Let&apos;s look into how Birgit and I built our very own Dance Dance Revolution Controller, from scratch! All the code is available on Github .</description><pubDate>Mon, 25 Nov 2019 09:24:00 GMT</pubDate><category>JS</category><category>Hardware</category><category>USB</category></item><item><title>Breathing Life into the Panoptikum Facebook Messenger Bot with Elixir and Phoenix</title><link>https://carmenh.dev/2017/08/05/breathing-life-into-the-panoptikum-facebook-messenger-bot-with-elixir-and-phoenix/</link><guid isPermaLink="true">https://carmenh.dev/2017/08/05/breathing-life-into-the-panoptikum-facebook-messenger-bot-with-elixir-and-phoenix/</guid><description>While attending the super-fun Vienna BEAMers study group, where we learn all things Elixir and Erlang, I&apos;ve been making tiny contributions to the Panoptikum project, which creates a podcast-oriented social network. It&apos;s been a great opportunity to contribute to a project at the same time as learning a completely new language.</description><pubDate>Sat, 05 Aug 2017 08:24:00 GMT</pubDate><category>podcasts</category><category>panoptikum</category><category>phoenix</category><category>elixir</category></item><item><title>YAML subtlety with saving strings</title><link>https://carmenh.dev/2015/08/17/yaml-subtlety-with-saving-strings/</link><guid isPermaLink="true">https://carmenh.dev/2015/08/17/yaml-subtlety-with-saving-strings/</guid><description>Ok, so this one had me stuck for ages, and I thought I’d share what went wrong. I was trying to save strings into YAML , something like the following:</description><pubDate>Mon, 17 Aug 2015 14:25:27 GMT</pubDate><category>ruby</category><category>yaml</category><category>json</category></item><item><title>Let&apos;s make our first Rails app</title><link>https://carmenh.dev/2015/06/09/lets-make-our-first-rails-app/</link><guid isPermaLink="true">https://carmenh.dev/2015/06/09/lets-make-our-first-rails-app/</guid><description>Welcome! If you&apos;re here, you&apos;d like to learn to make Rails web apps. I&apos;d love to take you through making the quintessential &amp;quot;To-do&amp;quot; list. Ingredients 1 computer 1 Terminal or Command Line Prompt 1 installation of Ruby and(on) Rails 1 text editor 1 happy coder</description><pubDate>Tue, 09 Jun 2015 18:21:33 GMT</pubDate><category>ruby</category><category>rails</category></item><item><title>Integrating ActiveRecord with an SQLite3 database and RSpec Shoulda matchers into your Sinatra app</title><link>https://carmenh.dev/2015/06/05/integrating-activerecord-with-an-sqlite3-database-and-rspec-shoulda-matchers-into-your-sinatra-app/</link><guid isPermaLink="true">https://carmenh.dev/2015/06/05/integrating-activerecord-with-an-sqlite3-database-and-rspec-shoulda-matchers-into-your-sinatra-app/</guid><description>I ran into a lot of trouble getting this set up! Finally, everything fell into place. While planning out a Sinatra app for a new project, I decided to use ActiveRecord to handle my data storage.</description><pubDate>Fri, 05 Jun 2015 15:25:36 GMT</pubDate><category>ruby</category><category>sinatra</category><category>rspec</category><category>shoulda</category></item><item><title>Let&apos;s make Nyan Cat using the &apos;gosu&apos; gem</title><link>https://carmenh.dev/2015/04/30/lets-make-nyan-cat-using-the-gosu-gem/</link><guid isPermaLink="true">https://carmenh.dev/2015/04/30/lets-make-nyan-cat-using-the-gosu-gem/</guid><description>When I&apos;m not fighting crime and going about my daily coding life, I&apos;m teaching kids to code computer games. We&apos;ve recently been using the gosu gem, which is a ton of fun to use and makes creating games really simple. When making an introductory game, I want to avoid using the &apos;space shooter&apos; example. I therefore decided that it was time to make an adorable game where you have Nyan Cat pick up sweets!</description><pubDate>Thu, 30 Apr 2015 12:57:41 GMT</pubDate><category>ruby</category><category>games</category><category>tutorial</category></item><item><title>Internationalization in RubyMotion Projects — Part 2</title><link>https://carmenh.dev/2015/01/03/internationalization-in-rubymotion-projects-part-2/</link><guid isPermaLink="true">https://carmenh.dev/2015/01/03/internationalization-in-rubymotion-projects-part-2/</guid><description>Over the holidays, I pondered on how I could make these scripts for slurping up localizable strings in RubyMotion projects easier for myself or other developers.</description><pubDate>Sat, 03 Jan 2015 12:32:31 GMT</pubDate><category>localization</category><category>rubymotion</category><category>RubyGems</category><category>gem</category><category>Command Line Tools</category></item><item><title>Internationalization in RubyMotion projects</title><link>https://carmenh.dev/2014/12/03/internationalization-in-rubymotion-projects/</link><guid isPermaLink="true">https://carmenh.dev/2014/12/03/internationalization-in-rubymotion-projects/</guid><description>It&apos;s not all Bachelor Project for me! One of my contract projects at the moment is to write an OS X app using RubyMotion .</description><pubDate>Wed, 03 Dec 2014 11:46:33 GMT</pubDate><category>rake</category><category>localization</category></item><item><title>Coaching at Rails Girls Vienna 2014</title><link>https://carmenh.dev/2014/11/21/coaching-at-rails-girls-vienna/</link><guid isPermaLink="true">https://carmenh.dev/2014/11/21/coaching-at-rails-girls-vienna/</guid><description>Last weekend, I had my first experience in coaching at a Rails Girls event. I loved every minute of it. If you&apos;ve ever wanted to try out web programming in a great environment, or help out, what are you waiting for? There are events all over the world!</description><pubDate>Fri, 21 Nov 2014 11:21:35 GMT</pubDate><category>rails girls</category><category>teaching</category><category>workshop</category></item><item><title>Homesick App — Setting up a CoffeeScript-written Node.js project</title><link>https://carmenh.dev/2014/11/10/homesick-app-setting-up-a-coffeescript-written-node-dot-js-project/</link><guid isPermaLink="true">https://carmenh.dev/2014/11/10/homesick-app-setting-up-a-coffeescript-written-node-dot-js-project/</guid><description>This is part of an ongoing series of posts about Homesick, my bachelor project .</description><pubDate>Mon, 10 Nov 2014 12:38:22 GMT</pubDate><category>node.js</category><category>coffeescript</category><category>javascript</category><category>server</category><category>rake</category><category>homesick</category></item><item><title>PyLadies Vienna&apos;s Introduction workshop to Django</title><link>https://carmenh.dev/2014/11/08/pyladies-viennas-introduction-workshop-to-django/</link><guid isPermaLink="true">https://carmenh.dev/2014/11/08/pyladies-viennas-introduction-workshop-to-django/</guid><description>(Many thanks to @FloorDrees for the photos!)</description><pubDate>Sat, 08 Nov 2014 21:07:50 GMT</pubDate><category>python</category><category>django</category><category>workshop</category></item><item><title>Homesick App — Playing stored audio data on Android</title><link>https://carmenh.dev/2014/11/07/homesick-app-playing-stored-audio-data-on-android/</link><guid isPermaLink="true">https://carmenh.dev/2014/11/07/homesick-app-playing-stored-audio-data-on-android/</guid><description>This is part of an ongoing series of posts about Homesick, my bachelor project .</description><pubDate>Fri, 07 Nov 2014 08:29:21 GMT</pubDate><category>android</category><category>audio</category></item><item><title>Homesick App — Recording and Storing Audio on Android</title><link>https://carmenh.dev/2014/11/05/homesick-app-recording-and-storing-audio-on-android/</link><guid isPermaLink="true">https://carmenh.dev/2014/11/05/homesick-app-recording-and-storing-audio-on-android/</guid><description>This is part of an ongoing series of posts about Homesick, my bachelor project . The Android side of the client is hosted here . I&apos;ve had a small handful of experience in Android development, so I&apos;ve drawn up a simple activity with two buttons for the time being:</description><pubDate>Wed, 05 Nov 2014 15:58:48 GMT</pubDate><category>android</category><category>audio</category></item><item><title>Homesick App — Install plugins in Android Studio</title><link>https://carmenh.dev/2014/11/04/homesick-app-starting-the-android-client/</link><guid isPermaLink="true">https://carmenh.dev/2014/11/04/homesick-app-starting-the-android-client/</guid><description>This is part of an ongoing series of posts about Homesick, my bachelor project.</description><pubDate>Tue, 04 Nov 2014 15:50:54 GMT</pubDate><category>android</category><category>android studio</category><category>plugin</category></item><item><title>Starting out with Homesick</title><link>https://carmenh.dev/2014/11/02/starting-out-with-homesick/</link><guid isPermaLink="true">https://carmenh.dev/2014/11/02/starting-out-with-homesick/</guid><description>My Bachelor project is called &amp;quot;Homesick App&amp;quot;, the description being as follows:</description><pubDate>Sun, 02 Nov 2014 10:44:48 GMT</pubDate><category>android</category><category>nodejs</category></item></channel></rss>