Martin Fischer

Software Developer

„I'd rather have a search engine or a compiler on a deserted island than a game.“ - John Carmack


From design to implementation...

...is not just an empty phrase. Good software design starts with a solid business process. From my experience, I can confirm that adequately defined processes are essential for quality results. At this point, it is important to work out the process and its solution with the client, considering requirements from both the technical as well as the design perspective. Especially with in-house development, it's a team project by the developer and the stakeholder, not just task-based implementation of assignments.

Sustainability and quality means...

...considering impact of prospective requirements. These may not be known by the client, or by the developer as well. Working as a team, rather than "solving tasks" is most important here, too. Sooner or later, software will reach a its legacy state. Sustainable software reaches it at a later date, especially if continuous improvements and refactoring are taken seriously. Just considering the quantity of "solved tasks" alone will reduce sustainability and quality on the long run.

The user is central

User experience is our term for understanding how users interact with software. Oftentimes, UX and technical demands develop over the course of the implementation process. Whether the user is a developer, an end user, or comes from another group of users does matter. My principle here is: Software should assist you with your work and should feel self-evident, without requiring heavy prerequisites or setup. Using the application (and especially the update and deployment process) should not feel like a Tamagotchi.

Novel & outside the box approaches

The standard solution which pops into mind at a glance is not necessarily the best. "Novel" isn't a contest of maximum creativity; neither is it the raw opposite of mainstream. It means observing requirements from an unprejudiced perspective and thinking about solutions without letting oneself get influenced by preexisting concepts. There are, indeed, requirements that are not meet by any standard solution.

Portfolio

Experience / know-how
Favorized
Favorized the most
Neglected / not interested
Training or intention to learn

Technical

Programming and scripting/markup languages

  • C#
  • C++
  • PHP
  • HTML, CSS, JS
  • MS SQL
  • MySQL
  • Linux Bash Scripting
  • XML, JSON
  • Python
  • Assembler
  • Lua Script

Frameworks & 3rd party libraries

  • .NET Framework
  • WPF
  • Entity Framework
  • Windows Forms
  • jQuery & jQuery UI
  • Xceed / Extended WPF Toolkit
  • ASP.NET Web Forms
  • WCF
  • Arduino
  • WinAPI
  • DotNetBar for WinForms
  • MVVM Light (30%)
  • AngularJS (0%)
  • ASP.NET MVC (0%)

Applications

  • Visual Studio
  • Mercurial & Tortoise HG
  • Linux: Debian
  • SQL Server Management Studio
  • LINQPad
  • Wireshark
  • Git & SourceTree
  • InstallShield Limited Edition

Technologies

  • Software design, patterns, OOP
  • LINQ
  • Algorithmic
  • White hacking, security, reverse engineering
  • Cryptography
  • Graphics processing
  • Network (Sockets/TCP, HTTP)
  • Parallelization

Social skills

  • Open
  • Straightforward
  • Honest
  • Truthful
  • Tolerant
  • Curious
  • Analytical / logical
  • Self-observant and reflective
  • Consistent

Methodic skills

  • Precision
  • Creative thinking
  • Transfer of learning
  • Understanding of usability
  • Presentations

Languages

    • German
    • First language
    • English
    • Very high level of written and spoken
    • Czech
    • Basic knowledge

Hobbies

  • Programming
  • Playing the piano
  • Electrical engineering

References

www.architektenkreis.de

architektenkreis is a website, where architects and students of architecture can present their projects. There are also options to purchase.

For this website, I have developed an individual content management system, which can handle multi-lingual texts, customers, bills and newsletters using the double opt-in method. The customer can present and describe their projects using text and images within the scope of the condition they paid for.

Literay

Literay is a raytracer that I developed in my apprenticeship and which I kept working on. The renderer supports lots of 3D objects and effects, such as lighting and shadows, anti-aliasing, reflections and textures. Since raytracing is a problem, that can be easily parallelized, the raytracer supports multithreading. The UI (the editor) is written in C# and WPF and the render engine itself is implemented in C++ for optimal performance.

The rendered scenes can be scripted using Lua. Since Lua is a runtime script and not static, you can also create more complex scenes programmatically.

3D mathematics is an exciting field for me, which is why I took this challenge.

The project page is here.

tick'it

In my apprenticeship in Euro-BBW Bitburg (Germany), there was a need for an issues tracker. Default solutions were never satisfying enough, because they couldn't handle all our requirements. That's when the development of "tick'it" started. I developed the issues tracker using PHP and I also provided a desktop helper tool, which I've written in C# using the DotNetBar UI framework.

Over time, all kinds of enhancements and improvement were made which became essential to our apprentice. Some of them include the team calendar, a knowledge database and other features that made our daily work easier.

tick'it is an individual issues tracker, which serves exactly our requirements. It has been further developed and became our home base without becoming bloated with improvisations and junk code.

Things that were written by hand, using Word and Excel or using different web apps are now managed by tick'it.

Image detection

Our customer hosts an online shop, which we have written a Windows 8 app for. This app displays product pictures on the Metro UI, but it should only display the relevant part instead of the entire picture.

So I developed an algorithm in C++ which detects the relevant part of the whole image. This was supposed to be done on the Windows 8 devices itself, so performance did play a role. The detection of an image should only take up to 100ms and should succeed in at least 80% of all cases.

The challenge was the vast variety of product images. Many of them had very heterogeneous backgrounds, like i.e. a wooden table. The position and the size of a displayed product varied a lot.

Musical floppy drives

This project started in my free time, when I started to experiment with the Arduino microcontroller. So I was figuring out if it was possible to utilize the motors of old floppy drives in order to make music with them. After all, everything that can vibrate with a certain frequency can make music.

The project was very interesting, because it is within the field of electrical engineering and it was a technological challenge.

So I did a lot of research and I came up with a working solution. I kept on working on it, making it better and better. Now, the Arduino can work with converted MIDI files and up to 6 channels. The device on the pictures works on its own, without the use of a computer.

The project page including technical description and videos is here.

Project page

You can find all of my projects online:

bytecode77.com - Have a look!

Activities

Stack Overflow

Stack Overflow is one of the most popular communities amongst software developers. This is due to the unique concept of Q&A, which provides answers to user's questions and also creates an enormous knowledge database for developers searching for answers.

As a user, I like answering questions in order to contribute to the community and also to gain Reputation. A good reputation on Stack Overflow is helpful when it comes to asking questions myself. I also have moderator privileges, which are automatically granted based on reputation.

YouTube

On my YouTube channel I'm presenting exclusive projects, which are interesting to viewers of the community. One of them are musical floppy drives (see also References). This project gained the biggest audience, although it was never my primary goal to generate views or subscribers. I'm also showing off other projects, including ones that come from the field of electrical engineering.

bytecode77.com

bytecode77.com is my project site where I'm showing off miscellaneous projects which I developed over the years. These are exclusively private projects which originated from my free time. Some of them include useful programs and tools, while others are research projects which I developed for purely educational purposes.

Some of these projects however, became increasingly popular, which established my online reputation.

Programming always used to be my primary hobby and still is. During years of career, I didn't lose interest in it! Individuals who made a career out of their passion are the most productive members of our society.

Microsoft Bounty Programs

During my research in security and computing, I am participating in Microsoft's Bounty Program. Microsoft pays bounties to white hackers when they find a vulnerability and manage to exploit it. The bounty goes up to $ 100.000. This way, Microsoft can fix issues before they can be misused.

27.03.2017: I have successfully managed to write an exploit that bypasses the User Account Control and escalate privileges silently. It works reliably on any Microsoft operating system up to Windows 10 Insider Preview. After this, I wrote up a whitepaper and submitted it to the bounty programs and to this date (May 2017) I got a confirmation of receipt, but the exploit is still functioning and is not patched. Due to coordinated vulnerability disclosure policies, I will not write any publications about the vulnerability.

May 2017: To this date, I have found 3 additional vulnerabilities and wrote exploits that impact the UAC in a comparable way. They work on different attack vectors and do not share a common vulnerability. Each of these exploits are not known to public and work on all Windows versions from 7 through 10 and x86 as well as x64. However, I did not submit to Microsoft, yet.

Future plans: There seems to be a lack of interest for UAC exploits. Therefore, I will focus my research on privilege escalation in full user-mode as well as sandbox escape.

CV

Since 16.05.2016 MISUMI

Software Developer

  • In-house development of applications which improve business processes
  • As desktop application having sub-applications using WPF and a WCF service backend
01.09.2011 - 15.05.2016 SYZYGY Deutschland GmbH

Software Developer

  • Development of web applications using ASP.NET
  • Miscellaneous projects in the field of graphics processing
  • Development of desktop applications in C#
30.07.2008 - 16.06.2011 Europäisches Berufsbildungswerk Bitburg

Apprenticeship: IT Specialist for Application Development

  • Apprenticeship within a vocational training unit
  • Development of desktop applications in C#
  • Web development using PHP
  • 5 external internships

Impressum

Legal Disclosure

Information in accordance with section 5 TMG

Martin Fischer
Ben-Gurion-Ring 176
60437 Frankfurt am Main
Germany

Contact

Telephone +49 (0)160 4413375
Internet address martinfischer.it
E-mail mail@martinfischer.it

Disclaimer

Accountability for content

The contents of our pages have been created with the utmost care. However, we cannot guarantee the contents' accuracy, completeness or topicality. According to statutory provisions, we are furthermore responsible for our own content on these web pages. In this context, please note that we are accordingly not obliged to monitor merely the transmitted or saved information of third parties, or investigate circumstances pointing to illegal activity. Our obligations to remove or block the use of information under generally applicable laws remain unaffected by this as per §§ 8 to 10 of the Telemedia Act (TMG).

Accountability for links

Responsibility for the content of external links (to web pages of third parties) lies solely with the operators of the linked pages. No violations were evident to us at the time of linking. Should any legal infringement become known to us, we will remove the respective link immediately.

Copyright

Our web pages and their contents are subject to German copyright law. Unless expressly permitted by law (§ 44a et seq. of the copyright law), every form of utilizing, reproducing or processing works subject to copyright protection on our web pages requires the prior consent of the respective owner of the rights. Individual reproductions of a work are allowed only for private use, so must not serve either directly or indirectly for earnings. Unauthorized utilization of copyrighted works is punishable (§ 106 of the copyright law).

Privacy Statement

General

Your personal data (e.g. title, name, house address, e-mail address, phone number, bank details, credit card number) are processed by us only in accordance with the provisions of German data privacy laws. The following provisions describe the type, scope and purpose of collecting, processing and utilizing personal data. This data privacy policy applies only to our web pages. If links on our pages route you to other pages, please inquire there about how your data are handled in such cases.

Inventory data

  1. Your personal data, insofar as these are necessary for this contractual relationship (inventory data) in terms of its establishment, organization of content and modifications, are used exclusively for fulfilling the contract. For goods to be delivered, for instance, your name and address must be relayed to the supplier of the goods.
  2. Without your explicit consent or a legal basis, your personal data are not passed on to third parties outside the scope of fulfilling this contract. After completion of the contract, your data are blocked against further use. After expiry of deadlines as per tax-related and commercial regulations, these data are deleted unless you have expressly consented to their further use.

According to the Federal Data Protection Act, you have a right to free-of-charge information about your stored data, and possibly entitlement to correction, blocking or deletion of such data. Inquiries can be directed to the following e-mail addresses: (mail@martinfischer.it)