<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>coding &#8211; Airtame</title>
	<atom:link href="https://airtame.com/blog/tag/coding/feed/" rel="self" type="application/rss+xml" />
	<link>https://airtame.com/</link>
	<description>Wireless screen mirroring and digital signage &#124; Airtame</description>
	<lastBuildDate>Mon, 13 Jul 2026 20:28:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://airtame.com/wp-content/uploads/2018/06/cropped-airtame-logo-1-32x32.png</url>
	<title>coding &#8211; Airtame</title>
	<link>https://airtame.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Why join the Airtame engineering team?</title>
		<link>https://airtame.com/blog/why-join-the-airtame-engineering-tribe/</link>
		
		<dc:creator><![CDATA[Airtame]]></dc:creator>
		<pubDate>Fri, 01 Jun 2018 12:46:55 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[recruitment]]></category>
		<guid isPermaLink="false">https://32e994dd1033e2d92dbce-admin.hardypress.com/?p=798</guid>

					<description><![CDATA[<p>We’re a fast-growing business with a talented engineering team, and we’re looking for more engineers to join. Learn what they do and why you should join</p>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/why-join-the-airtame-engineering-tribe/">Why join the Airtame engineering team?</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>There are 27 nationalities represented in our organization, and we’re looking to diversify even more. Here’s why you should join Copenhagen’s most exciting engineering team.</p>
<h2>Product</h2>
<p>Airtame is a wireless streaming device which helps people work better. It&#8217;s powered by embedded Linux on custom-built hardware, with a diverse software stack ranging from our carefully-tuned firmware and high-performance C++ streaming engine, to our cross-platform Electron/React desktop application and Golang Cloud platform.</p>

      <div
         class="air-video  air-video--large"
      >
      
        <div class="air-video__inner">
          <iframe
            class="air-video__player"
            data-loader="youtube"
            data-src="https://youtube-nocookie.com/embed/4jUqPWEvMlg?rel=0&amp;controls=0&amp;showinfo=0"
            width="560"
            height="315"
            frameborder="0"
            allow="encrypted-media"
            data-consent="analytics"
            allowfullscreen
          ></iframe>
        </div>
        
        
      </div>
    
<h2>Technology</h2>
<p>How do you make video streaming with high quality and low latency work in poor network environments? How do you integrate four different operating systems? How do you scale cloud backend to support tens of thousands of concurrently connected devices? These are just some of the many difficult challenges we face every day, and we work hard together to solve them. It’s an exciting opportunity to work alongside software, hardware and firmware deliverables with tasks that aren’t repetitive.</p>
<p>We have experts across the entire spectrum of technology. It gives everyone the chance to learn what they don’t know and challenge their own way of thinking. More than that, it’s a unique spread of technical knowledge, something we put it to good use every day working with the complexity of the product. Team structures are fairly flexible, and we’ve had several people start working in a specific range of activity, then gradually move to other areas of problem-solving.</p>
<p>Our talented engineers work with different tools, languages and types of infrastructure, and they are driven towards producing high-quality, maintainable code and software. Frequent code reviews, linting, and pairing are all integral components of our engineering culture. Significant ownership and responsibility over projects is key to our organization. Every developer is able to have a an impact on the direction of the product, and the company as a whole.</p>

      <div
         class="air-image  air-image--large"
        
      >
        <img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-805" src="/wp-content/uploads/2018/05/engineering-team-pierre-1.jpg" alt="" width="2000" height="1195" />
      </div>
    
<h2>Our engineering teams</h2>
<h3>Streaming team:</h3>
<p>In charge of the high-performance streaming pipeline, written in C and C++. And our cross-platform Application, made in Electron and JS.</p>
<h3>Cloud team:</h3>
<p>Working on the cloud-based administration portal for the Airtames and our upcoming internal digital signage platform called Homescreen. The tech stack here is Golang, React, AWS.</p>
<h3>Firmware team:</h3>
<p>Leading the efforts on the OS running on the Airtame. They cover everything from the bootloader, Linux kernel, to networking and graphics.</p>
<h3>Infrastructure team:</h3>
<p>Making sure our internal and external services are up and running. They do Docker, AWS, Ansible, Puppet and Jenkins.</p>
<h3>QA team:</h3>
<p>Ensuring the quality of our releases. They focus on both automated and manual testing. The tech stack is Python, JS and Jenkins primarily.</p>

<h2>Community</h2>
<p>In the past, people have relocated to work with Airtame’s Engineering team, and we pride ourselves for our sense of community.</p>
<p>Work is a nice mix of laidback and laser-focused. We know when to work hard, but we make sure to have fun along the way as well. Once per quarter, we host internal hackathons to get the creative juices flowing. No idea is too big, wild or crazy, and some of them might even be implemented afterwards. We value a relaxed environment where socializing is encouraged, but never mandatory. Sometimes, we even pack our toothbrush and go off-location. Here’s the Airtame team at the last offsite event, <a href="https://airtame.com/blog/airtame-workathon-2017/">Workathon 2017 in Corfu, Greece.</a></p>

      <div
         class="air-image  air-image--large"
        
      >
        <img decoding="async" class="alignnone size-full wp-image-809" src="/wp-content/uploads/2018/05/engineering-team-culture-1-1.jpg" alt="" width="2000" height="1120" />
      </div>
    
<p>Flexible work hours make all the difference to balancing work/life. That’s why 20% of an engineer’s working hours can be used to work on anything they want. It fosters creativity and independence, and we know for a fact that hobbies can lead to solid ideas of implementation.</p>
<p>We’re remote-friendly, something that has been put to good use by several engineers in the past. Airtame is made up of many different nationalities and clever minds, and no one should feel weighed down by the fact that they’re far from home.</p>
<p>Check out <a href="https://favro.com/organization/2114a98cde73c1145a93bd8e/8af59989af89d634f37784e6" target="_blank" rel="noopener">this Favro board</a> we made about the Airtame culture.</p>
<h2>What does the team say?</h2>

      <blockquote   class="air-blockquote  air-blockquote--with-cite air-blockquote--large">
        
        <p>&#8220;Airtame is a great place for engineers who thrive on learning. I really enjoy our team breakfasts and roundtable discussions, where I can level up my knowledge in areas ranging from hardware design and kernel development to browser APIs and frontend frameworks, plus lots more in between. With 20% time, quarterly hackathons and flexibility to move between projects, I&#8217;m constantly developing my skill set, which helps keep my work fresh and engaging.”</p>
        <div class="air-blockquote__cite">Andrew Keating, Lead Software Engineer</div>
      </blockquote>
    
<h2>Join the team!</h2>
<p>See the <a href="https://airtame.com/jobs">full list of job openings</a> here. To learn more about what others think of us, take a look at our <a href="https://www.glassdoor.com/Overview/Working-at-Airtame-EI_IE1340156.11,18.htm" target="_blank" rel="noopener">company overview</a>.</p>
<h5>Ready to join our ambitious team? Send your CV and application to <a href="mailto:tech-jobs@airtame.com">tech-jobs@airtame.com</a> letting us know why you would be a great fit. We can’t wait to meet you!</h5>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/why-join-the-airtame-engineering-tribe/">Why join the Airtame engineering team?</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Code quality at Airtame</title>
		<link>https://airtame.com/blog/code-quality-at-airtame/</link>
		
		<dc:creator><![CDATA[Airtame]]></dc:creator>
		<pubDate>Thu, 07 Jan 2016 08:56:25 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Code Quality]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[jenkins]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Software Development]]></category>
		<guid isPermaLink="false">https://32e994dd1033e2d92dbce-admin.hardypress.com/?p=1057</guid>

					<description><![CDATA[<p>The core of Airtame’s cross-platform streaming software is responsible for capturing a computer’s audio and video output, then encoding and transferring them wirelessly to the Airtame dongle, where the stream is decoded and rendered. The codebase consists of ~20K lines of C, plus a bit of Objective-C and C++, and it is currently being developed [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/code-quality-at-airtame/">Code quality at Airtame</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The core of Airtame’s cross-platform streaming software is responsible for capturing a computer’s audio and video output, then encoding and transferring them wirelessly to the Airtame dongle, where the stream is decoded and rendered.</p>
<p>The codebase consists of ~20K lines of C, plus a bit of Objective-C and C++, and it is currently being developed by a team of four <a href="https://airtame.com/blog/why-join-the-airtame-engineering-tribe/">engineers</a>. Over the past few months, we have focused on stabilizing our software and improving our engineering processes.</p>
<p>This post discusses some of the tools and processes we’ve utilized in an effort to maintain a high standard of code quality and evade the proverbial software tar pit.</p>
<p>Our first line of defense against Bad Code™ is compiling with the -Werror and -Wallflags, which cause compilation to fail in the presence of any warnings. This helps our engineers catch and fix simple mistakes very early in the development process. There’s also something very satisfying about watching dozens of source files being compiled without a single complaint from the compiler.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img decoding="async" class="alignnone size-full wp-image-1063" src="/wp-content/uploads/2016/01/code-quality-at-airtame-1-2.png" alt="" width="600" height="164" /><div class="air-image__caption">Airtame's core compiles warning-free</div>
      </div>
    
<p>Airtame&#8217;s core compiles warning-freeWe use <a href="https://www.gerritcodereview.com/" target="_blank" rel="noopener">Gerrit</a> for code reviews and <a href="https://jenkins-ci.org/" target="_blank" rel="noopener">Jenkins</a> for continuous integration. When a developer pushes a change to Gerrit, several Jenkins jobs are automatically triggered to analyze our code and provide feedback on the changes.</p>
<p>The first of these jobs executes Qt’s <a href="https://wiki.qt.io/Early_Warning_System" target="_blank" rel="noopener">Simple Sanitizer</a>, which ensures that Git commit messages are well-formed and that committed code does not contain any trailing whitespace characters or conflict markers, among other things.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img loading="lazy" decoding="async" class="alignnone size-full wp-image-1064" src="/wp-content/uploads/2016/01/code-quality-at-airtame-2-1.png" alt="" width="600" height="127" /><div class="air-image__caption">Simple Sanitizer keeps our commit messages and source files clean</div>
      </div>
    
<p>While we don’t believe in one definitive “right way” to format C code, we do feel that it is beneficial to use a consistent coding standard (ours is heavily inspired by the <a href="https://www.kernel.org/doc/Documentation/CodingStyle" target="_blank" rel="noopener">Linux kernel coding style</a>). To enforce our coding standard, we run LLVM’s <a href="http://clang.llvm.org/docs/ClangFormat.html" target="_blank" rel="noopener">clang-format</a>, passing its output to a custom Python script which produces an HTML report.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img loading="lazy" decoding="async" class="alignnone size-full wp-image-1065" src="/wp-content/uploads/2016/01/code-quality-at-airtame-3-2.png" alt="" width="600" height="76" /><div class="air-image__caption">Improperly-formatted code and clang-format's suggested fix</div>
      </div>
    
<p>The next code quality check is performed by LLVM’s <a href="http://clang-analyzer.llvm.org/scan-build.html" target="_blank" rel="noopener">scan-build</a>, a deep static analyzer with a very nice <a href="https://wiki.jenkins-ci.org/display/JENKINS/Clang+Scan-Build+Plugin" target="_blank" rel="noopener">Jenkins plugin</a>. The beauty of scan-build is that it analyzes all possible paths through the code, enabling us to discover bugs before they materialize as runtime errors. We’ve found that scan-build is particularly good at detecting memory/resource management issues, especially those which are hidden in rarely-triggered edge cases.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img loading="lazy" decoding="async" class="alignnone size-full wp-image-1066" src="/wp-content/uploads/2016/01/code-quality-at-airtame-4-2.png" alt="" width="600" height="156" /><div class="air-image__caption">A null pointer dereference identified by scan-build</div>
      </div>
    
<p>At Airtame, automated testing is deeply ingrained in our engineering culture. Every change pushed to Gerrit causes our automated test suite to be executed on Windows, Mac, and Linux. This includes <a href="https://cmocka.org/" target="_blank" rel="noopener">cmocka</a> unit tests of individual modules, as well as <a href="http://pytest.org/latest/" target="_blank" rel="noopener">pytest</a>-driven end-to-end system tests.</p>
<p>We use <a href="https://gcc.gnu.org/onlinedocs/gcc/Gcov.html" target="_blank" rel="noopener">gcov</a> to measure test coverage, passing its output to <a href="http://gcovr.com/" target="_blank" rel="noopener">gcovr</a> to produce a Jenkins-friendly XML file, which allows us to visualize test coverage over time. Our automated tests are absolutely essential to maintaining software quality during rapid development &#8211; they have saved us countless hours of manual testing and are especially useful for exposing platform-specific issues.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img loading="lazy" decoding="async" class="alignnone size-full wp-image-1067" src="/wp-content/uploads/2016/01/code-quality-at-airtame-5-2.png" alt="" width="550" height="303" /><div class="air-image__caption">Our test coverage history - still room for improvement!</div>
      </div>
    
<p>We additionally run end-to-end tests through <a href="http://valgrind.org/" target="_blank" rel="noopener">Valgrind</a> and its <a href="https://wiki.jenkins-ci.org/display/JENKINS/Valgrind+Plugin" target="_blank" rel="noopener">Jenkins plugin</a> in order to detect memory and threading errors. This is the last of our automated quality checks, and if it succeeds, a +1 Verified vote is applied to the Gerrit change, indicating that it is ready for peer review.</p>

      <div
         class="air-image air-padding-bottom--small air-image--small"
        
      >
        <img loading="lazy" decoding="async" class="alignnone size-full wp-image-1068" src="/wp-content/uploads/2016/01/code-quality-at-airtame-6-2.png" alt="" width="550" height="323" /><div class="air-image__caption">Successful code quality checks make a change eligible for review</div>
      </div>
    
<p>Code reviews are another integral component of Airtame’s engineering culture. While we won’t dive too deeply into this topic (it could easily warrant its own blog post), suffice to say that we take reviews very seriously and do our best to detect “<a href="http://martinfowler.com/bliki/CodeSmell.html" target="_blank" rel="noopener">code smells</a>” as early as possible. After a change has been peer reviewed, it can be merged via Gerrit. If it passes our manual quality assurance checks, the change is pushed to our alpha testing group, before being promoted to beta, and finally, general availability.</p>
<p>This is just the beginning of Airtame’s code quality journey. As our codebase grows in size and number of contributors, we’ll need to continue adapting our tools and processes.</p>
<h5>We’re always on the lookout for talented engineers who are passionate about writing clean, maintainable code! If this sounds like you, get in touch with us at tech-jobs@airtame.com</h5>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/code-quality-at-airtame/">Code quality at Airtame</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cross-platform computer applications in practice</title>
		<link>https://airtame.com/blog/how-electron-helps-airtame-to-provide-a-crossplatform-software/</link>
		
		<dc:creator><![CDATA[Airtame]]></dc:creator>
		<pubDate>Wed, 06 Jan 2016 14:29:50 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[electron]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[platform]]></category>
		<guid isPermaLink="false">https://32e994dd1033e2d92dbce-admin.hardypress.com/?p=1029</guid>

					<description><![CDATA[<p>From the very beginning, cross-platform capability has been one of our standard requirements at Airtame. It is our ultimate goal for users to be able to stream from any platform at any time. But how can we actually accomplish cross-platform capability? Currently, we have 3 full-time engineers from the Airtame team dedicated to making a truly cross-platform [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/how-electron-helps-airtame-to-provide-a-crossplatform-software/">Cross-platform computer applications in practice</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>From the very beginning, cross-platform capability has been one of our standard requirements at Airtame. It is our ultimate goal for users to be able to stream from any platform at any time.</p>
<p>But how can we actually accomplish cross-platform capability? Currently, we have 3 full-time engineers from <a href="https://airtame.com/blog/why-join-the-airtame-engineering-tribe/">the Airtame team</a> dedicated to making a truly cross-platform streaming solution. Let’s go over how we make it happen.</p>
<h2 id="starter-kit">Starter Kit</h2>
<p>When we started this project 2 years ago, we had just one engineer working on this task. However, limited resources allocated to this project in an early phase have helped us to determine a solution that will be most efficient and proven out of all the tools available for this purpose.</p>
<p>During the selection process, we were driven by the following criteria in order to find the perfect framework for Airtame cross-platform capability:</p>
<ul>
<li>The framework has to be able to run another executable (the streaming binary)</li>
<li>It has to be able to communicate with the discovery module (the piece of software that allows us to see all the Airtames on the network)</li>
<li>It has to run on Windows 7+, MacOS X 10.8+ and as many UNIX systems as we can</li>
<li>It has to have access to the filesystem of the OS</li>
<li>Ability to design our own User Interface</li>
<li>Proven track record (number of companies using it already)</li>
<li>Active community and support for the framework</li>
</ul>
<p>When we were making the initial choice 2 years ago &#8211; <a href="http://qt.io/" target="_blank" rel="noopener">QT</a> made most sense to us. It has a fairly good UI library and we could develop it using C++. However, the main drawback of this solution was that implementing the UI was quite cumbersome, especially if you are new to this framework.</p>
<p>In parallel, we noticed <a href="http://nwjs.io/" target="_blank" rel="noopener">nw.js</a> (formerly node-webkit) rising as a technology of choice when developing cross-platform UI application. Main advantage? You write your UI as you would write a website &#8211; in a controlled environment! No need for multi-browser compatibility.</p>
<p>We decided to try nw.js. It worked well for us. We managed to write everything for all platforms in only one (-ish) codebase, the whole thing being written in HTML/CSS/JS with <a href="https://nodejs.org/en/" target="_blank" rel="noopener">NodeJS</a>. The nw.js’s community was quite active and many other companies were using it, so it had a proven track record and it was fairly easy to troubleshoot.</p>
<p>However, we started to spot some limitations of nw.js over time. The project was not updated that often, we could see some bugs (many Linux issues, frameless window issues, etc.), and we were missing features that were important to us (e.g., auto-updater and balloon notification on Windows).</p>
<p>Around the end of June 2015, we had an important backlog of features and bugs that were hanging because of this.</p>
<p>That’s when we decided to take a look at <a href="http://electron.atom.io/" target="_blank" rel="noopener">Electron</a> (formerly atom-shell).</p>
<h2 id="electron">Electron</h2>
<p>Electron is in fact very similar to nw.js. It uses the latest version of NodeJS and allows you to write cross-platform applications using web technologies (if you want to know more about the differences between Electron and nw.js, just follow <a href="http://electron.atom.io/docs/v0.35.0/development/atom-shell-vs-node-webkit/" target="_blank" rel="noopener">this link</a>.)</p>
<p>Nevertheless, Electron is updated more frequently, it is heavily adopted, and apparent bugs can be fixed quickly by either support from the community or the official maintainers. Moreover, Electron has more functionalities than nw.js (platform specific or not). All of that brings us closer to implementing the best user experience.</p>
<p>One of the main advantages of the Electron framework is that it provides core functionalities useful to almost every software: Auto update, Crash reporter, installer creation, system-specific features, etc.</p>
<h3 id="architecture">Architecture</h3>
<p>Today, the architecture of the Airtame software is designed as follows:</p>

      <div
         class="air-image  air-image--large"
        
      >
        <img loading="lazy" decoding="async" class="alignnone size-full wp-image-1032" src="/wp-content/uploads/2016/01/cross-platform-engineering-1-2.png" alt="" width="1650" height="1275" /><div class="air-image__caption">High-level architecture of the Airtame software on a computer. It highlights the separation in modules, which is at the heart of our software.</div>
      </div>
    
<p>Main advantages of the above architecture are as follows:</p>
<ul>
<li>Have different release process for each “module”</li>
<li>Have a clear division of responsibility in the code</li>
<li>Be able to replace any module easily without impacting the rest of the application</li>
<li>Provide an HTTP API that other applications can talk to</li>
<li>Make the testing easier. During the development phase, we can test the front-end directly in Google Chrome if the server is running. On the other hand, it is easier to mock the API of the core functionalities of Electron (like window management and other system-related SDK)</li>
</ul>
<h3 id="testing">Testing</h3>
<p>We have divided the automatic testing into 4 stages:</p>
<ul>
<li>Stage 1: All of the node modules tested separately (node-airtame and node-discovery)</li>
<li>Stage 2: Front-end of the application</li>
<li>Stage 3: Back-end of the application</li>
<li>Stage 4: The application as a whole &#8211; we have integration and functional tests to verify the functionality of a full feature or scenario (still at an early stage)</li>
</ul>
<p>We chose <a href="https://mochajs.org/" target="_blank" rel="noopener">Mocha</a> for the testing job and we are happy with it. Every time we submit a change, the tests are triggered in order to validate that there was no regression and that the application is still working as expected. If the test fails, you will be unable to merge the change.</p>
<p>When it comes to the manual testing, we have a “QA” corner in the office along with a set of physical machines and VMs allowing us to test the user case in a real environment. The QA corner is composed of a large variety of systems:</p>
<ul>
<li>Windows (7, 8.1, 10)</li>
<li>MacOS (10.8, 10.9, 10.10.5, 10.11)</li>
<li>Ubuntu (14.04, 15.04, 15.10)</li>
</ul>
<p>We are currently working on having even more systems set up through Virtual Machine and other physical devices in order to make Airtame the most cross-platform friendly application.</p>

      <div
         class="air-image  air-image--large"
        
      >
        <img loading="lazy" decoding="async" class="alignnone size-full wp-image-1033" src="/wp-content/uploads/2016/01/cross-platform-engineering-2-2.jpg" alt="" width="2048" height="1152" /><div class="air-image__caption">Our QA corner where we manually test the software and dongle. We have different hardware and virtual machines in order to cover as many cases as we can.</div>
      </div>
    
<h2 id="whats-next">What’s next</h2>
<p>We will continue to follow the Electron evolution process. We are planning to take a proactive role by contributing to the development of the framework ourselves.</p>
<p>We will continue focusing on stability and usability of the application. The new architecture of the software will help us to write more tests and to divide even more clearly the responsibility of each component. We are also internally improving our QA process (which will be a part of a future post on our QA process).</p>
<p>We are also listening to our users and we are trying to adapt and fix the issues to always provide the best experience.</p>
<p>Finally, we plan to Open Source the application. We are thrilled about this idea and we will keep you posted about its development.</p>
<p>If you want to download the software, follow <a href="https://airtame.com/download">this link</a>.</p>
<h5>We’re always on the lookout for talented engineers who are passionate about writing clean, maintainable code! If this sounds like you, get in touch with us at <a href="mailto:tech-jobs@airtame.com">tech-jobs@airtame.com</a>.</h5>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/how-electron-helps-airtame-to-provide-a-crossplatform-software/">Cross-platform computer applications in practice</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
