Software developer.
After four years in New Zealand, I am back in Düsseldorf, Germany.
I am currently looking for Ruby on Rails projects and/or jobs - either around Düsseldorf or remote.
I maintain the Ruby Quicktips blog and constantly improve NZ Walks Information - a website about walks in NZ.
Besides software development, I enjoy photography, heavy metal, travelling.
I used to play guitar in Thrash-Metal band Ravage.
I have been really bad at bookmarking stuff I’ve seen online. And although I was already using a great bookmarking service, it has turned out to be too hard to manage and keep up to date.
It happened quite regularly that I wanted to find an article, photo or other resource again, but couldn’t remember where I’ve seen and “liked”, “faved” or “starred” it previously. And so, I often needed to turn to Google Search to find what I’m looking for. This search was sometimes successful, and often not. And of course, it was tedious having to go through a whole lot of search results.
I needed to fix this.
I needed a master-archive for all the things I looked at on the internet.
So, may I introduce:
I frequently “like”, “favorite” or “star” items on Instapaper, Tumblr, Flickr, Google Reader, Twitter, Vimeo, Github and StackOverflow. I would like for every one of these items’ URL to be automatically imported into Pinboard.
Pinboard has build-in support to do this with my Twitter Favorites and Instapaper can send Likes to Pinboard directly. For the rest, I started using IFTTT and have become a big fan. I am using recipes to import my Tumblr Likes, Google Reader Stars, Instagram Likes, Flickr Favorites and Vimeo Likes. (Unfortunately, Github and StackOverflow Stars are not supported.)
Using IFTTT to automatically create Pinboard bookmarks for all my Likes, Stars and Favs has made it a lot easier for me to find things again that I’ve seen in the past.
I love these street maps in London. They are everywhere. And aligned the way you’re looking, they’re super easy to read, and hence getting around town is a breeze.
There’s lots of unhealthy pub food in the UK. Usually even comes with unlimited mayonnaise. Yum!
At Honest Burgers in London. It was delicious.
So many good burger restaurants in London - so little time.
I am a German software developer who is passionate about Ruby, Rails and the web and its technologies in general.
I enjoy to solve complex problems, yet I prefer to hide complexity from users behind a simple, elegant and easy-to-use interface. To me, interfaces (both UIs and APIs) are the most important parts of an application. Writing automated tests is my foundation for producing smart code that is easy to maintain. I am a usability nut and I have a feel for good design, too.
In order to deliver great work, clear communication and collaboration is essential - and therefor very important to me. Writing clean code, learning from and teaching colleagues and helping customers accomplish their goals are all part of this.
I embrace new challenges and love learning about different technologies and techniques. I am constantly looking for ways to improve my existing knowledge and to get better at what I do.
Current running side-projects are the websites http://rubyquicktips.com and http://nzwalksinfo.co.nz.
Apart from software development I am interested in a variety of things, including travelling, photography, reading, music and playing guitar.
Specialties: Ruby, Ruby on Rails, CSS, HTML, Javascript, Coffeescript, jQuery, Google Maps API, Backbone.js, Twitter Bootstrap, Sinatra, UI design, API design, agile software development, project management, PostgreSQL, GIS, Usability, attention to detail
After I had analysed the company's code base, the first main tasks were to throw out redundant code and to refactor a few hard-to-work-with bits of it.
During that process I started doing code reviews via GitHub pull requests. Not much later, these were incorporated into the team's daily workflow. This improved code quality and communication among programmers and encouraged to learn from each other.
While the code was constantly refactored and extended, I initiated writing automated tests, since there were close to zero tests when I started. I later got more and more developers on board, so that towards the end of my time at Visfleet, we had a thoroughly tested application.
The tests greatly reduced the amount of time put into desk-checking by developers and Q&A, reduced the number of bugs and vastly improved the team's iteration speed. During the time I was with the company, we went from one release per month to one release per week on average.
I constantly helped with streamlining the continuous integration and deployment processes and we were able to cut down build-time by more than 75%.
I began porting the app from Ruby 1.8 and Rails 2.3 to the latest versions of Ruby 1.9 and Rails 3.2. Towards the end of this process, I got lots of help from the team to finish this transition. We were able to keep the app on the newest versions ever since.
On my initiative, we started replacing an all Adobe Flex frontend with a HTML, CSS and JavaScript/Coffeescript stack. By the end of my term, the majority of UIs had been replaced.
Additionally, I was responsible for redesigning and refactoring the front- and backends of the administration part of the app used within the company.
My work also involved maintaining both the public API and the private APIs for our Android and iOS apps.
Furthermore, a major part of my job was to discuss with the team what features to build, when and how to build them, and help designing, modelling and implementing those.
My main task is to develop and design/plan a web application for customer and software license management as well as credit card payment processing. The tools I use for this application include Ruby On Rails, HTML and CSS (including HTML5 and CSS3) and JavaScript (Prototype and script.aculo.us). I also integrate this app with our other applications via web services.
I am also involved in writing backend services (using Rails) for our other applications which have a Adobe Flex frontend. Handling huge sets of (geospatial) data is also part of this task.
Additionally, I am responsible for our company-wide Single-Sign-On solution (SSO) using the CAS protocol its implementation in Ruby (RubyCAS-Client and -Server).
Further tasks include Actionscript/Flex programming, reporting (JasperServer) and server administration.
After getting into Ruby On Rails, my first task was to port the company‘s website back-end from a Movable Type CMS to Ruby On Rails, by keeping its original design. This involved an analysis of how the website used to work and how it was designed. After this, the database structure had to be completely redesigned and it should contain some improvements over the CMS‘s database design. The third part was executing all the planned steps by programming the new back-end in Ruby On Rails.
The practical part of my diploma thesis was to plan, develop and introduce a new web application. The software enables to administer the company‘s customer contracts and -contacts as well as invoices for those customers. The project involved a close collaboration with the co-workers in order to understand the in-house workflow concerning customer relations, invoice management and time tracking. I was responsible for every aspect of this web application, which included the planning, designing and coding. The application was programmed using the Ruby On Rails framework with an MySQL database. Technologies used for the UI design and functionality included CSS and JavaScript. During the work on the thesis, I gained in-depth knowledge of how the Ruby On Rails framework works and what it is able to do.
As a part-time assistant to the administrator of the Information Technology department I dealt with a diversity of technical problems of the IT-infrastructure and was partly responsible for extending and maintaining the internal network- and telephone-system. I was a contact person for the international staff to help them with their different types of software- and hardware-problems, too. Further tasks included the installation and configuration of servers using different Linux distributions, for example Debian, Ubuntu or Redhat. Giving telephone support for field staff was also part of the job.
I first passed the Trainee program of the company, which included training in the relevant software developing tools CA 2E and CA Plex. I worked in many of the company‘s different departments such as Accounting, Human Resources, Marketing and Customer Support. I spent the biggest amount of time in the Customer Support department. Tasks often included a collaboration with customers on software development related problems (mostly problems with using the CA Plex product) via phone calls or e-mail. The apprenticeship was accompanied by 2 days each week at a professional school. The subjects were for example Software Development, Project- and Time-management, Business English and Business Studies. My thesis was about developing a web application using the PHP language.