Profilbild von Anonymes Profil, C/C++ Spezialist (auch Java/C#); Bereiche Embedded, Linux, Netzwerke
verfügbar

Letztes Update: 10.08.2009

C/C++ Spezialist (auch Java/C#); Bereiche Embedded, Linux, Netzwerke

Abschluss: Dipl.-Informatiker
Stunden-/Tagessatz: anzeigen
Sprachkenntnisse: deutsch (Muttersprache) | englisch (verhandlungssicher) | russisch (Grundkenntnisse)

Skills

Programmier-, Skript- und Beschreibungssprachen    * C/C++ Spezialist auf jeder Abstraktionsebene (Highlevel mit STL/Boost bis lowlevel C auf Mikrocontroller und in Treibern)    * Java, C#    * Assembler (insbesondere x86, aber auch ARM, 8032, 8051, MIPS, PIC, NEC v850, 68k, ...)    * Verschiedene Skriptsprachen wie Perl, Bash/Awk/Sed/..., Ruby, Python, PHP, Javascript (JQuery), ...    * XML, XPath, XQuery, XSLT, HTML, CSS, Latex, ... Entwicklungsumgebungen, Tools    * Eclipse    * Microsoft Visual Studio    * KDevelop    * GNU Toolchain    * Metrowerks Codewarrior    * Numega DevPartner    * Subversion, CVS, trac    * Microchip IDE    * Yacc, lex    * Make, ant, scons Fachkentnisse    * Informatik        o Algorithmik        o Kryptographie        o Compilerbau        o Theoretische Informatik        o Software Engineering        o Grafik        o Datenbanken        o Betriebssysteme        o ...    * Elektronik und Nachrichtentechnik        o (Digitaler) Schaltungsentwurf        o Basiskenntnisse VHDL        o Prototypenbau        o Messtechnik        o ...    * Mathematik, Numerik Softwareengineering    * Requirement-Analyse    * Softwarearchitektur und -Spezifikation    * Agile Softwareentwicklung    * Client/Server, Verteilte Systeme    * OOAD, UML    * Design Patterns APIs    * POSIX, Socket, Linux    * Windows: allgemein, GUI, MFC    * DirectShow, DirectDraw, DirectSound, DirectX    * eCos    * OpenGL    * QuickTime    * Nintendo Nitro SDK    * Qt, KDE    * OS/2    * RPC: D-Bus, CORBA, Sun RPC    * Test: JUnit, CppUnit Hardwarenahe Entwicklung/Embedded, Plattformen    * x86-Architekturen    * NXP STB225    * Embedded Linux: Busybox, Buildroot, etc.    * ARM7, ARM9, NEC V850, MIPS, Intel 8032, Intel 8051, Motorola 68000    * Mikrocontroller von Microchip und ATMEL (auch USB)    * Nintendo Gameboy Advance, Nintendo DS    * eCos Treiber-/Kernelentwicklung    * Linux und Windows Treiberentwicklung    * Diverse Spielekonsolen wie Sega Megadrive, Atari, C64    * SPI, I2C, RS232, USB    * MMC/SD, Flash, EEPROM    * GSM, GPRS    * GPS Netzwerke, Protokolle    * ISO/OSI    * Ethernet    * IP-Netzwerke    * IP, TCP, UDP, RIP, OSPF, ARP, PPP, Multicast-Protokolle, ...    * DNS, SNMP, SMTP, HTTP, FTP, WINS, SIP, ICAP, OCSP, IRC, SOCKS, ...    * UPnP Datenbanken    * SQL    * SQLite, IBM DB2, PostgreSQL, MySQL, SQL Server Netz- und Webapplikationen    * Bind, Squid, Postfix, div. Wikis, OpenVPN, Samba, Mailinglisten, ...    * HTML, PHP, jQuery, etc.    * Apache, Apache Tomcat    * VoIP, Asterisk, ... Audio, Video, Grafik    * Video on Demand, Streaming, UPnP    * Signalverarbeitungs- und Signalanalysealgorithmen (FIR/IIR-Filter, FFT, Korrelation, Audioeffekte)    * DSPs    * Audio-/Video-processing    * 3D-Echtzeit-Grafikprogrammierung: OpenGL

Projekthistorie

Anbieter von STB (Set-Top-Box) Turnkeys (2008-2009) In dieser Zeit arbeitete ich Vollzeit an einem Projekt für eine Firma, die Set-Top-Box Turnkeys (DVB, DMA und VOD) herstellte (sowohl Hardware wie auch Software). Dabei arbeitete ich an der Konzeption und Implementierung der neuesten Plattform der Firma, auf deren Basis Turnkeys wie DVB-Zapper, PVRs, Video-On-Demand-Boxen usw. angeboten werden. Diese Plattform setzte auf NXPs STB225 auf, welche wiederum Linux als OS verwendet. Diese STB225 kann HD-Inhalte (u.a. H.264) decodieren/ausgeben und kann optional vielfältige Peripherie, wie Ethernet, WLAN, USB, SATA, DVB-Frontend, CI usw. betreiben. Tätigkeiten:    * Entwurf der gesamten Software-Architektur    * Requirements-Spezifikation    * Erweiterungen am Buildsystem von NXP, um den Turnkey-Anforderungen gerecht zu werden    * Definition und Implementierung des Entwicklungs-Prozesses, insb. Versionierung mit Subversion und der Integration mit trac    * Koordination des Outsourcing-Teams in Minsk (Entwicklung und Test)    * Evaluierung von kommerzieller 3rd-Party-Software wie DVB/PVR, UPnP-Stack    * Implementierung diverser Proof-Of-Concepts, wie etwa DVB-IP Multicast-Streaming    * Anpassung und Erweiterung des Boot-Prozesses auf Boot-Loader-Ebene, um ein robustes Fallback-System zu haben und den DRM-Anforderungen bzgl. der Sicherheit des Systemes gerecht zu werden    * Patchen und Anpassung vieler Open-Source-Komponenten, vor allem für den Crossbuild mit Buildroot, wie z.B. boost, busybox, wpa_supplicant, gstreamer, Samba/libsmb, D-Bus, Ruby (für Tests) usw.    * Von mir implementierte Komponenten sind u.a.:        o Netzwerk-Verwaltung, die u.a. für die Netzwerk- und WLAN-Konfiguration und Steuerung zuständig ist        o Die Update-Komponente des Systemes, welche Updates runterlädt, die nach Entschlüsselung und Validierung im Betrieb geflasht werden        o Diverse Infrastrukturelle Komponenten, wie etwa Logging Eingesetzte Software und Technologien:    * C++ mit STL/Boost auf Linux/POSIX    * NXP STB225 und NXPs API    * D-Bus (auf den ich in der Architektur konsequent gesetzt habe)    * gstreamer, Buildroot, Busybox, U-Boot, wpa_supplicant, ...    * DVB, UPnP, Streaming, H.264, diverse Containerformate    * Tara Systems Embedded Wizzard    * SVN, Trac    * DRM (insb. MS) Anbieter von Netzwerkverwaltungs- und Netzwerksicherheitslösungen (2006-2008) Bei dieser Firma arbeitete ich für ca. ein Jahr als angestellter Entwickler, danach war ich freiberuflich tätig. Diese Firma stellt Komplettlösungen für Netzwerkverwaltung und Netzwerksicherheit her, wobei diese Lösungen -- außer den GUI-Teilen -- technologisch fast ausschließlich auf Linux aufsetzen. Die Beschreibung meiner Tätigkeiten muss etwas vage ausfallen, da die Arbeit unter ein NDA fällt. Tätigkeiten:    * Erweiterung und Pflege der Bestandssoftware, die ein weites Spektrum an Netzwerktechnologien und -software abdeckt    * Überwiegend arbeitete ich an server-seitigen Diensten, teilweise auch an UI-Tasks    * Patching und Bugfixing von verschiedener Open-Source Software    * Entwurf und Implementierung neuer Komponenten, u.a.:        o ICAP-Server, der einen Virenscanner und einen URL-Filter integriert und vom HTTP-Proxy verwendet wird        o Integration eines SSL-Proxy        o Download/Virencheck-Progress-Implementierung für die HTTP-Proxy-Infrastruktur Eingesetzte Software und Technologien:    * C/C++ mit STL/Boost auf Linux/POSIX    * UI-Code unter Win32/MFC    * Div. Skripting mit Bash, Python    * Div. Datenbanken    * Open-Source-Software aus dem Linux-Netzwerkbereich wie Squid, Bind, DHCP-Server/Client, ...    * Open-Source-Bibliotheken aus dem Unix/Linux-Bereich Fahrzeug-Telematiksystem; Auftragsarbeit (2005-2006) Im Auftrag eines Anbieters für Telematiklösungen wurde ein Flottenmanagement-/Fahrzeugtelematiksystem konzeptioniert und realisiert. Das System wird nach wie vor in zahlreichen Fuhrparks von Straßendiensten, Entsorgern und Logistikunternehmen aus Mittel- und Osteuropa eingesetzt. Aufgabe des Systems ist    * die laufende Übertragung von Fahrzeugdaten (Position, Geschwindigkeit, Daten anderer Systeme, etc.) und deren Integration in ein ERP-System    * die Übermittlung von Aufträgen, Nachrichten, Dokumenten, etc. ins Fahrzeug. Tätigkeiten:    * Entwurf der Systemarchitektur mit vorheriger Aufnahme und Prüfung der Rahmenbedingungen:        o bereits entwickelte Bordrechnerhardware mit GPRS, GPS, MMC und seriellen Schnittstellen (für Display, Barcodescanner, PDA, etc. und andere Systeme im Fahrzeug)        o Schnittstellen zum Backend/ERP-System    * Systemarchitektur:        o Bordrechner mit GPRS-Kommunikation        o Serverimplementierung in Java mit Benutzerschnittstellen Eclipse Rich Client Platform, Web Services, FTP-Proxy zum Bordrechner        o Objekt-/Nachrichten-basierte Kommunikation per eigener Datenbeschreibungssprache mit entsprechenden Codegeneratoren für C++ und Java (ähnlich ASN.1)    * Aufbau einer Entwicklungsumgebung für Bordrechnersoftwareerstellung        o Insbesondere Remote-Debugging des Bordrechners via GDB (GNU Debugger) und Eclipse    * Konzeption und Entwicklung der Bordrechnersoftware, u.a.        o Embedded-Betriebssystem eCos mit eigenen Erweiterungen und Korrekturen        o Treiberentwicklung (Serielle Schnittstellen, I2C, Modem, MMC-Speicherkarte)        o Korrekturen im eCos-integrierten TCP/IP-Stack lwIP und PPP-Stack        o Displayansteuerung        o Implementierung verschiedener Bordrechnerdienste (C/C++)        o Algorithmen zur Datenreduktion der GPS-Informationen        o Zügige Entwicklung von Prototypen/Tests unter Windows mit Microsoft Visual Studio und geeigneter Bordrechnerabstraktionsschicht    * Implementierung der Serversoftware        o Kommunikation mit Bordrechner; eigenes Protokoll        o Schnittstellen vom/zum Backend-ERP        o FTP-Proxy zur Kommunikation mit FTP-Server am Bordrechner        o Remote Servermonitoring/-control via Web Services und Eclipse Rich Client Platform + Java RMI    * Eingesetzte Software und Technologien:        o Entwicklungsumgebungen: Eclipse, Microsoft Visual Studio, GNU Toolchain        o Programmiersprachen: Java, C/C++        o Betriebssysteme: eCos, Windows, Linux        o Datenbanken: MS SQL Server        o Hardware: Custom, mit Falcom XXL-Modul: NEC V850SA1 CPU, GSM/GPRS, GPS receiver, etc.        o weitere: Subversion, Ant, Flex, Bison, Eclipse RCP, Java RMI, JDBC, Apache Axis Web Services, Jetty HTTP Server, lwIP TCP/IP, JDBC, SQL, XML, OOA/OOD, Design Patterns Eigenprodukt \"Krawall GBA\", Soundsystem für Nintendo GBA (2002-2005) Aus einem Hobbyprojekt ist das inzwischen kommerziell eingesetzte Soundsystem \"Krawall\" für den Gameboy Advance entstanden. Dabei handelt es sich um eine Software-Bibliothek, die ressourcenschonende und damit für sparsame Portable-Hardware besonders geeignete Musikformate abspielt. Bei diesem System lag das Hauptaugenmerk auf einer ressourcenschonender Implementierung. Ein großer Teil der Arbeit entfiel auf die Implementierung hochoptimierter so genannter \"Mixingroutinen\" in ARM Assembler, wobei natürlich auch die Audioqualität ein wesentliches Kriterium war. Diese Softwarebibliothek wurde von zahlreichen Spieleherstellern lizensiert und kam unter anderem in Titeln wie \"Die SIMS\", \"Lord of the rings\" zum Einsatz. Tätigkeiten:    * Analyse (und tw. Reverse-Engineering) der Hardware    * Konzeption und Implementierung des Systems        o PC-Seitige Konvertierapplikation (C/C++)        o Effiziente Abspiel- und Mixingroutinen auf dem GBA (C/Assembler)        o Geringer CPU- und Speicherverbrauch    * Dokumentation        o Technische Ausarbeitung mit Latex        o Musikerleitfaden zur Erstellung der Musikstücke Eingesetzte Software und Technologien:    * Entwicklungsumgebung: Microsoft Visual Studio, GNU Toolchain    * Programmiersprachen: C/C++, ARM-Assembler    * Hardware: Nintendo GBA (ARM7TDMI, Custom Audio, Custom Grafik, etc.)    * weitere: CVS, Subversion, diverse Audiosoftware und Emulatoren Eigenprodukt \"Krawall DS\", Soundsystem für Nintendo DS (2005-2006) Mit dem Erhalt des Status \"Authorized Nintendo Developer\" und entsprechendem Zugang zu vertraulichen Informationen konnte auch die Entwicklung eines entsprechenden Soundsystems für den Nintendo DS Handheld begonnen werden. Trotz Kundenbedarf stellten wir die Arbeit an dem System aus Rentabilitätsbedenken und Zeitmangel nach der Prototyperstellung ein. Das System besteht aus:    * einer portablen Player-Bibliothek (dzt. Nintendo DS und Windows, evtl. Backport zu Gameboy Advance)    * Tools zur Konvertierung und Optimierung der Musikstücke in ein internes Format/Dateisystem Tätigkeiten:    * Analyse der Nintendo DS Hardware    * Konzeption und Implementierung des Systems        o starkes Augenmerk auf Ressourcenschonung        o effiziente Implementierung unter Berücksichtigung der Hardware (Pipelining, Caches, etc.)        o geringer Speicherverbrauch    * portabler Bibliothekskern/Player und Tools    * Windows-Implementierung der Bibliothek        o Softwaremixer und DirectSound-Ausgabe    * Nintendo DS-Implementierung der Bibliothek        o Hardwaremixer-Implementierung        o Hybridmixer (Software+Hardware) Eingesetzte Software und Technologien:    * Entwicklungsumgebungen: Microsoft Visual Studio, Metrowerks Codewarrior, GNU Toolchain    * Programmiersprachen: C/C++, Assembler    * Betriebssysteme: Windows, Nintendo Nitro SDK    * Hardware: Nintendo DS (Multi-Prozessor-Hardware ARM946E-S und ARM7TDMI, Custom Audio, Custom Grafik, etc.)    * weitere: DirectSound, SQLite Datenbank, Subversion, diverse Audiosoftware Diplomarbeit \"Automatische Erkennung und Verarbeitung polyphoner Gitarrenklänge\" (2004-2005) Die selbstgewählte Aufgabenstellung der Diplomarbeit war, von dem Signal einer E-Gitarre in Echtzeit die gespielten Töne zu errechnen. Es wurde ein funktionsfähiges System entwickelt, das in der Performance ähnlich zu kommerziell erhältlichen Systemen ist. Die Diplomarbeit war in ihrer Art äußerst interdisziplinär, unter anderem wurden folgende Teile bearbeitet:    * Entwurf und Aufbau der elektronischen Schaltung zur Signalwandlung in der E-Gitarre und zur Signalübertragung zum PC    * Programmierung des verwendeten Mikrocontrollers (PIC der Firma Microchip) in Assembler/C    * Erstellung eines PC-seitigen Frameworks zum Experimentieren mit verschiedensten Signalverarbeitungsalgorithmen (C/C++, Maple und Matlab)    * Erstellung von optimierten Implementierungen (MMX, SSE) verschiedener Algorithmen aus der Signalverarbeitung mit eigenen Modifikationen (extrapolierende FFT mit ARBURG, Modifizierte Periodenerkennung mit YIN, etc)    * Generierung der MIDI-Befehle der erkannten Töne Eingesetzte Software und Technologien:    * C, Assembler (Mikrocontroller)    * Matlab, Maple    * PC-seitig: C/C++, x86-Assembler mit MMX/SSE    * Visual Studio    * Eagle (elektronischer Schaltungsentwurf)    * Diverse Audiosoftware Die Diplomarbeit wurde mit 1,0 benotet. Diverse Projekte für die Firma \"Earth Television Network\" (2003) Für die Firma Earth Television Network in München hab ich verschiedene kleinere Projekte bzw. Machbarkeitsstudien durchgeführt, unter anderem: Schnittapplikation für MPEG2-Videos EarthTV hat an vielen Plätzen der Erde Kameras installiert, die hochauflösende MPEG2-Panorama-Videos erzeugen. Aus Kostengründen sollen aber nur \"interessante\" Sequenzen übertragen werden. Deswegen wurde ein System mit mehreren Applikationen entworfen und implementiert. Zum einen wurde mit Directshow (auf den Kameras läuft Windows) eine Transcoder-Applikation implementiert, die den MPEG2-Stream in ein kleinaufgelöstes und höher komprimiertes Format (H.261) transcodiert. Diese transcodierte Variante des Videos wird heruntergeladen und in einer dafür erstellten Schnittapplikation bearbeitet, in welcher interessante Abschnitte markiert werden. Diese Schnittinformationen werden dann wiederum auf der Kamera auf den kompletten MPEG2-Stream angewandt. Dafür wurde eine MPEG2-Schnittapplikation geschrieben, die ohne Qualitätsverluste Teile aus dem Stream kopiert. Da keine Applikationen bzw. APIs existierten, die diese Operation ermöglichten, wird der MPEG2-Stream \"von Hand\" analysiert und bearbeitet. Eingesetzte Software und Technologien:    * Visual C/C++    * Windows GUI-Code    * Directshow mit Custom-Filtern    * H.261, MPEG2 Software-Modem Zur akustischen Datenübertragung via Handy für das \"Be On Air\"-Projekt wurde ein Software-Modem entwickelt, das bei niedriger Datenrate auch unter widrigen Umständen (Umgebungslärm etc.) zuverlässig Daten überträgt. Dabei wurde eine FSK-Modulation und verschiedene Prüfalgorithmen implementiert. Wurde leider nicht eingesetzt, da das Projektkonzept grundlegend geändert wurde. Eingesetzte Software und Technologien:    * Visual C/C++    * Maple    * Diverse Signalverarbeitungsalgorithmen Studentenwohnheim Geschwister Scholl: Netzwerkbetrieb (2000-2004) Während der Studienzeit hab ich im Studentenwohnheim \"Geschwister Scholl\" das Heim-interne Netzwerk mit aufgebaut und betrieben.    * Ethernet-LAN mit über 200 Nutzern    * Internet-Anbindung über LRZ (Leibnitz Rechenzentrum) und Sicherstellung der Auflagen zur Nutzung (Auditing, Verhinderung von Filesharing, etc.)    * IPTables-Firewall    * Dienste wie Web-Proxy, SIP-Proxy (VOIP), Mail-Gateway, WINS-Server, Nameserver, DHCP-Server, etc.    * \"Honeypot\" Netzwerkvirenfallen    * datenbankbasierte Administration und Automatisierung    * Forum- und Wiki-betrieb Eingesetzte Software und Technologien:    * Debian Linux    * 3COM-Switches, S-DSL, X.25    * IPTables, IPAudit, Traffic Shaping, Squid, Siproxd (VOIP), Postfix, Bind, dhcpd, Samba, Apache Web Server, PostgreSQL    * TCP/IP, PPP, SNMP, RIP, DHCP, ARP, SMTP, HTTP, etc.    * Shell-Scripting \"muh\", Opensource IRC-Proxy (1998-2002) Dabei handelt es sich um ein von mir gestartetes Opensource-Projekt. \"muh\" ist ein IRC (Internet Relay Chat)-Proxy, der (damals) einmalige Features hatte. Es gibt ein paar Forks (\"miau\") und ist in einigen Linux/BSD-Distributionen wie Debian, Redhat, FreeBSD paketiert, lässt sich allerdings auf so ziemlich allen Unix-Plattformen bauen. Seit 2002 in der Hand von diversen anderen Maintainern. Eingesetzte Software und Technologien:    * C (GNU Toolchain auf Linux, mit GDB etc)    * Yacc, lex    * Make/Autoconf/Automake    * CVS Diverse Webprojekte für Koch/Universal (1998-2001) Für die Firma Koch bzw. Kochmusic (heute Universal) hab ich mit anderen Freiberuflern diverse Webprojekte erledigt: Angefangen von einem kompletten Shopsystem (inkl. Kreditkartengatewayimplementierung) für deren Versandunternehmen \"Abella\", wurden auch andere diverse Seiten mit CM-System entworfen und implementiert. Technisch haben wir fast immer PHP, IBM\'s DB2 und Linux verwendet. Interessant ist, dass heute (Stand Oktober 2007) noch immer mindestens zwei Webseiten (http://www.abella.at und http://www.kochmusic.com) mit unserem Code laufen.

Reisebereitschaft

Verfügbar in den Ländern Deutschland
Vor-Ort in München und Pendelnähe zu München.

Sonstige Angaben

Freut mich, dass Sie mein Profil besuchen!

Ich bin Informatiker und suche ab sofort ein neues Projekt! Obwohl meine Spezialität definitiv C++ (mit STL und Boost) ist, programmiere ich auch in artverwandten objektorientierten Sprachen wie Java oder C#.

Abgesehen von der Programmierung als solches habe ich mit der Planung und Architektur von Software umfangreiche Erfahrungen, die ich in vielen Projekten gesammelt habe. Bei z.B. meinem letzten Projekt war ich für die gesamte Architektur zuständig, habe dessen Requirements definiert, Teile davon selbst implementiert und das Outsourcing-Team in Minsk betreut. Deswegen kann ich auch mit etwas Führungserfahrung von Kleinteams aufwarten.

Beim Software-Entwurf bzw. beim ganzen Entwicklungsprozess ist für mich ein konsequenter Einsatz von CASE-Tools unerlässlich: Versionskontrolle, Bugtracker und Wiki sind Selbstverständlichkeiten; Tools, die den gesamten Entwicklungsprozess unterstützen und sich in diesen integrieren schätze ich sehr. Dabei interessiere ich mich auch für neuere Ansätze wie z.B. MDA.

Themenmäßig liegt mein Schwerpunkt im Embedded-Bereich, ich kenne mich unter anderem ausgezeichnet mit UNIX/POSIX-artigen Betriebssystemen wie Linux und mit Internetprotokollen aus -- weiter unten sind alle meine Kenntnisse detailreich angeführt.

Falls Sie Interesse an einer Zusammenarbeit oder Fragen zu mir oder meinen Kenntnissen haben, rufen Sie mich an!

Bitte kontaktieren Sie mich über http://tinyurl.com/dndlq5, da ich die Freelancermap-Mails derzeit nicht lesen kann.

Letzte Änderung: $Date: 2009-04-13 22:06:39 +0200 (Mon, 13 Apr 2009) $
Profilbild von Anonymes Profil, C/C++ Spezialist (auch Java/C#); Bereiche Embedded, Linux, Netzwerke C/C++ Spezialist (auch Java/C#); Bereiche Embedded, Linux, Netzwerke
Registrieren