BitBucket Stack Overflow

Automated testing and verification for Siemens Airlink

Airlink
Read more about Airlink
When: 2012–2015
Contribution: Spearheaded development of an automated testing solution
Technologies: Python, C++, Linux, Paramiko, Click, PXE

Siemens Airlink provides secure and reliable wireless connectivity between railway rolling stock and wayside equipment. Used worldwide by light rail and metropolitan railways, Airlink carries millions of passengers daily.

When I joined the Airlink software department, the job was characterized by month long test sprints, interrupted only by brief periods of development. In an effort to change this unsustainable test/development balance, I spearheaded the development of a fully automated test solution.

Utilizing a proprietary software-defined networking solution based on Click, the system allows on-the-fly reconfiguration of test setups and dynamic allocation of physical and virtual hardware to a given test run. The Python-based test framework enables automatic test cases to query and manipulate units under test through a compact, high-level notation. Through introspection, program structure and code comments are automatically extracted to create textual descriptions of test cases for review by the product owner.

Continuous integration system for Siemens Airlink

Continuous integration workflow
When: 2014–2015
Contribution: Design and implementation of a continuous integration system
Technologies: Git, GitLab, Buildbot, Python, Linux

The Airlink continuous integration project aimed to achieve improved developer output through better tooling and a reduction in build errors and down time.

The project included a much-overdue transition from a legacy nightly build system (based on Subversion plus endless amounts of ad-hoc shell scripts) towards a comprehensive continuous integration system (based on Git, GitLab and Buildbot).

With a coworker, I oversaw the transition to Git including rollout of the new infrastructure, the authoring of team guidelines and documentation, and the design and implementation of the new CI workflow.

DSE sales site

DSE sales site
When: 2009–2014
Contribution: Development, deployment and maintenance (sole developer)
Technologies: Python, SQLAlchemy, MySQL, jQuery, SVG, XSLT, Ubuntu Linux

In 2009 I was tasked with completing the customer-facing sales site for DSE, when an external contractor failed to meet a critical deadline. The initial prototype was written (in PHP), tested and deployed over the course of a weekend, just in time for the DSE 2009 opening sale in which 26 companies placed orders amounting to DKK 1,059,500 during the first three hours. It worked flawlessly throughout the financial year.

In 2011 I rebuilt the system from scratch, this time in Python, improving the software design and adding a multitude of features, including a much requested "cinema seat-selector" style system for booking stands for the DSE Fair.

usedbooks.dk

usedbooks.dk
When: Mid-2008
Contribution: Development, deployment and maintenance (sole developer)
Technologies: PHP, HTML, CSS, MySQL

Usedbooks.dk is an online marketplace for textbooks and accessories, aimed at DTU students and run by DTU students.

When the previous owners were seeking someone to take over the site, I applied on behalf of the Software and Mathematics Council at DTU, and single-handedly rewrote the website codebase to enhance usability, functionality and stability.

Usedbooks.dk interfaces with Polyteknisk Boghandel and Amazon.com (through the Amazon Product Advertising API) to retrieve book details, covers and prices (for comparison with the usedbooks.dk prices).

Infrastructure supervisor at DSE Fair Lyngby 2009–2013

DSE wiki
When: April 2009, March 2010, April 2011, March 2012, March 2013
Contribution: GUI and server development, network and power planning/deployment
Technologies: VMware ESXi, Ubuntu Linux, PHP, Python, MySQL, SVG, XSLT, MediaWiki, Mercurial

For five years, I was responsible for all electricity, network and radio infrastructure at DSE Fair Lyngby, the largest job fair in Denmark with more than 150 participating companies and organizations and more than 10.000 visitors.

As supervisor, I worked closely with customers, fellow DSE volunteers and external partners to achieve a smooth experience for both exhibitors and visitors. In addition, I developed everything from custom tools to keep fairground maps and fire safety, network and power plans coherent and up-to-date, to software for self-service kiosks and information displays.

MiniUML extensible diagram editor

MiniUML
When: Fall 2008
Contribution: GUI development
Technologies: C#, .NET, WPF, XAML, XML

In 2008, I developed the MiniUML diagram editor together with two fellow students; essentially a showcase of what can be achieved using WPF, XAML and data bindings.

All diagram shapes were provided by separate plugin assemblies, as were the visual look-and-feel of the application. Adding new shapes or providing another color theme is just a matter of dropping a new DLL-file in the program folder.

The program, which is open source, has been downloaded from CodePlex more than 7,000 times.

Open Source contributions

While closed-source software makes up the vast majority of my development work over the years, I have made contributions to MediaWiki and Click among other projects.

My open-source claim to fame, UrlLinker, was written to answer a Stackoverflow.com question, and since made its way into Joomla!. Ironically, I actually wrote this after having stopped using PHP for new projects; hence I've never used the code myself. It appears to be quite popular in its own little niche, though.

While my Python packages WsgiUnproxy and py2-ipaddress do not represent many lines of new code, they also consistently see some 3,000 downloads a month.