Projekte für Freiberufler – Liste der Agenturen und Portale für IT Projekte

Dies sind meine “Fundstellen” für freiberufliche IT-Projekte. Die Links sind zur Zeit weder sortiert noch katalogisiert. Also gibt die Reihenfolge keine Aussage über die Qualität der Agentur.

Wo auch immer es möglich war, habe ich die Projektliste direkt verlinkt. Ansonsten sind es die Links der Firmen, bei denen es sich anzufragen lohnt. Für alle Hinweise auf ungültige Links bin ich sehr dankbar. Ich würde mich auch auf Eure Linkssammlung sehr freuen.

Viel Erfolg bei Eurer Projektsuche!
Valentin Heinitz

centomo GmbH & Co. KG – Embedded, Automotive, SAP, Finanzen
AURELLY TECHNOLOGIES GmbH – Automotive, Embedded
CIRIC Software GmbH – HMI, Design, Mobile
ASSpro e.K. – Embedded, Konstruktion
Careerjet – Jobsuchmaschine, die auch freiberufliche Projekte bietet.
LV Consulting GmbH
atensis Consulting Expert-Recruiter aus Dietzenbach – Steinberg. SAP, WEB, QA, CM
VOLT Personaldienstleister mit Vertretung (u.A.) in München. Telekommunikation, Medizintechnik, Spielindustrie. Keine Projektausschreibungen auf der Webseite.
mymotion.de – Embedded, Konstruktion, QM, PM. Gut gestaltete Webseite mit Projektauflistung und Profileingabemöglichkeit.
Portal free-lancer.eu – Kostenlose Projektvermittlung für Freelancer und Unternehmen. Möglichkeit, sich kostenlos als Freiberufler einzutragen. Name, Stunden-/Tagessatz sind für alle sichtbar.
Euro London Appointments – Vermittlung vom mehrsprachigen Personal, auch von freiberuflichen IT-Spezialisten. Jobsuchmaschiene auf der Startseite. Niederlassungen in Deutschland in Frankfurt, Düsseldorf und München.
bonabendis GmbH Viele Projektausschreibungen auf der Webseite. SAP, Java, Finanzen
Pronovit AG SAP, QA, viele Projekte auf der Webseite.
be1ne Unternehmensberatung – .NET, Java, SAP, Finanzen
IDM Support & Consulting GbR EDV-GbR aus Berlin, die auch mit Freiberuflern zusammen arbeitet. Keine Projektausschreibung auf der Webseite.
Sterling Consulting – IT-Beratungsagentur aus München. Keine Projektausschreibung auf der Webseite.
msg systems AG – IT-Beratungsunternehmen aus München. Keine Angaben, ob sie mit Freiberuflern zusammen arbeiten, eher Arbeitnehmerüberlassungsmodell. SAP, Automotive, Finanzen, Versicherungswesen.
MGW – EDV- und Informatik-Büro aus Gernsheim, die auch mit Freiberuflern zusammen arbeiten. Automatisierung, Medizintechnik
Kumgeo GmbH – Kleinere IT-Beratungsgesellschaft aus Hamburg, die auch mit Freiberuflern zusammen arbeiten. Automotive, Raumfahrt.
it-projekte.de – Portal für IT-Projekte, Anmeldung erforderlich.
LV Consulting – Agentur aus Rüsselsheim. Finanzen.
DV-RATIO – Java, C#, SAP, Business und Finanzen. Ausschreibungen sind für Festanstellungen, angeblich arbeiten sie jedoch auch mit Freelancern.
BGI E-Commerce, Finanzen, Energie. Keine Projektausschreibungen auf der Webseite.
BEST JOB IT Services Niederlassungen in Hamburg, München, Berlin. IT-Support/Administration, SAP, MS-Technilogien
Xiopia GmbH Ein Unternehmen der ALLGEIER Holding aus D8-Raum.
7G-Consult – Start-Up Agentur aus Darmstadt. Viele Projekte auf der Webseite, kein klares Profil.
Flex-Base Eine kleinere Agentur aus Düsseldorf. Keine Projektausschreibungen auf der Webseite.
Oxford Europe Automotive, Medizintechnik, Avionik
Arateam Personalberatung, Executive Search aus Nürnberg.
SERMA GmbH IT-Dienstleister mit mehreren Niederlassungen (Berlin, Nürnbern). Festanstellung und freiberufliche Mitarbeit möglich.
consultingpool Unternehmensberatung Automotive, Finanzen
Systeme24 IT-Dienstleistungen GmbH Spezialist Recruitment aus Mainz. Überwiegend SAP, DB, E-Commerce.
unitepeople GmbH Beratungs- und Personaldienstleister mit Niederlassungen in Heidelberg und Berlin.
Accelsis Technologies GmbH Finanzbranche, Java EE, SOA
viadee Unternehmensberatung GmbH Java EE, Projekt-, Prozessmanagement, QA
IDM Germany – Java EE, IT-Infrastruktur, Datenbanken
VISPIRON AG Technologieunternehmen, das auch mit Freuberuflern zusammen arbeitet – Automotive, Embedded, Luftfahrt,
Huxley AssociatesFrankfurter Niederlassung des internationalen Recruitment-Unternehmens. Finanzen, IT, Energieversorgung.
Fox Department Finanzen. IT-Berater aus Frankfurt/M.
Bertrandt Services Engineering-Dienstleister, die auch mit Freiberuflern zusammen arbeiten.
Axxessio GmbH IT-Berater mit Niederlassungen in Köln und Darmstadt, die auch mit Freiberuflern zusammen arbeiten. Web-Projekte und Projekte für Mobile Plattformen (Android, iP.*, etc.)
Richard Gruber Gonsulting Java, E-Commerce
DIS AG IT-Dienstleister mit überwiegender Mitarbeitform – Arbeitnehmenüberlassung. Angeblich bieten sie auch freiberufliche Projekte an.
NTC-Systems/
ABSOLUT PersonalManagement Festanstellung (überwiegend) und Projekte in den Bereichen Automotive, Energie, Medizin, Halbleiter.
SyroCon GmbH IT-Berater Firma aus Eschborn (bei Frankfurt)
adesta GmbH & Co. KG Agentur aus Darmstadt.
MC IT Solutions – IT-Unternehmen aus Wiesbaden, das Laut der Selbstbeschreibung mit Freiberuflern arbeitet.
IPSWAYS – Unternehmen aus Mainz für Softwareentwicklung und IT-Experten.
http://www.linux-lancers.com – Projekte für Freiberufler mit Linuxkentnissen. Es werden auch Diplomarbeiten, Studienprojekte, Festanstellungen ausgeschrieben. Viele Projekte veraltet.
CONNEXIS Projekte und Stellen im süddeutschen Raum.
people4project.com Überwiegend SAP Projekte.
Consultime Registrierung erforderlich.
http://www.profi4project.com – Projektportal für Freiberufler der PASS Consulting.
XING In Forum “Freiberufler Projektmarkt” Verfügbarkeit posten.
Megapart GmbH
Consileon IT-Beratung, Karlsruhe. Finanzen, Automotive. Keine Projektausschriebungen auf der Seite.
ProTechnology IT-Dienstleister, überwiegend MS-Produkte, Dresden
AraCom – Agentur aus Augsburg. uC, C++, Mainframes, Hardwarenahe Projekte überwiegend im Raum München. Es besteht eine Möglichkeit, Projektnewsletters zu abonnieren.

Constaff
Etengo
http://varius-it.com – Überwiegend SAP, Finanzen
1st solution consulting GmbH
resoom.de Scannt andere Projektportale nach Projekten. Scheint noch nicht ausgereift zu sein, aber man kann schnell rausfinden, welche Portale es gibt.
Infutura Freelance-Portal
www.zeitgeist-at-work.com – Suchmaschine für Projekte/Freiberufler
Reutax
www.cs2-informatik.de Projekte überwiegend in D8 Raum. SAP, C++, Java
www.solcom.de
www.bsf-consulting.de Überwiegend Festanstellung
request2 – Keine Projekte aufgelistet, jedoch gute Vermittlungschancen.
Computerfutures
xpsnet.de
www.rosa-ag.de
Freelance.de
www.future-consulting.de Überwiegend SAP Projekte in Rhein-Main Region
Hays AG – höflich, fair, kompetent (meine Erfahrung)
http://www.valentum.de Projekte für Freiberufler und Festanstellung
www.valyue.de
www.gft.com
www.personality-it.de Gute C++ Projekte.
www.magic-dream-personal.de u.A. Automotive Projekte in Rhein-Main und im Norddeutschen Raum
de.progressiverecruitment.com
www.harveynash.com
exco.de Überwiegend Festanstellung
www.talisman-software.com Überwiegend Executives
www.freelancermap.de Portal für Projekte
GULP Portal für IT-Freiberufler. Projekte aus allen Branchen.
www.projektwerk.de Portal für Projekte
www.goetzfried-ag.com Überwiegend SAP, Finanzen
www.it-jobs.stepstone.de Überwiegend Festanstellung
www.elan-it-resource.de Überwiegend SAP, Finanzen
www.expertnet.de
www.projekt-pool.de
Actinium Consulting GmbH Keine Projektliste auf der Webseite, lohnt sich dennoch Profil einzureichen
ProTechnology – Gesellschaft für lösungsorientierte Informationstechnologien mbH
www.abcona.de
www.lenroxx.com
BBV Software Services AG, hauptsächlich Projekte in Schweiz
www.sw-xperts.com
www.tekom-gmbh.de
http://www.dozentenscout.de – Portal zum Anbieten von Vorträgen oder Schulungen
BlueCarat – Überwiegend Finance/SAP in Frankfurt
http://www.joinvision.com/ Portal für Freelancer. DE-CH-AT
Freelance-Market – Don’t call us, we’ll call you. Möglichkeit, sich als Freelancer einzutragen. Nicht auf IT beschränkt.
karriere.at – Portalbereich für IT-Jobs und Projekte in Österreich
Syspoint ConsultingKeine Projektausschreibung auf der Webseite.
Apriori AG Keine Projektausschreibungen auf der Webseite.
Computerwoche Eine Suchmaschine der Zeitschrift Computerwoche. Keine eigene Projekte.
IQ-Net SAP, Finanzen, E-Commerce.
euro engineering IT-Dienstleister mit Vertretungen in mehreren Standorten. Keine Angabe, ob sie auch mit Freelancern arbeiten.
comebis GmbH IT-Dienstleistungsunternehmen im D4-Raum (Ratingen). Keine Projektausschreibungen auf der Webseite.
Matchtech GmbH IT-Dienstleistungsunternehmen aus Stuttgart. Stellen- und Projektanzeigen auf der Webseite. Avionik, Automotive, Energie, Automatisierung

QoolPersistence – Persistence easy in Qt4

Mein zweites kleines Projekt bei Google-Code ist online. QoolPersistence ist eine Singleton-Klasse und einige Makros, die es erlauben, persistente Daten in kleinen Qt4 Programmen sehr einfach zu implementieren. Persistente Daten können z.Z. integer, QStrings oder Eigenschaften von QObjects sein. Weiter Infos und natürlich das Quelcode dazu sind hier: Qoolpersistence

Project Idea: LogCompanion

LogCompanion is a tool for analyzing log-files while developing and debugging software.
Logging as a technique for debugging and error analysis is heavily used in software industry. In my experience, many companies use logging as the only debugging techniques and neglect others (e.g. such exotic one as using debugger). Whether sensible or not, the fact is, that plenty of time is spent on log-file analysis. That includes finding/(re-)opening/ log-files, looking for error (e.g. ERROR:), analyzing what happened before, analyzing what happen, if error doesn’t occur, trying to compare logs, removing timestamps in order to be able to diff files, filtering out noisy lines, removing code-line information in order to be able diff files, getting an idea why error may have happened, suspecting race-condition, looking again for corresponding timestamps, looking again for corresponding code-line information, trying to identify the place in code, copying/renaming usefull log-files/sessions, and so on.

Imagine, a software would save the log-files you’ve analyzed last time, and monitor them for changes or even for error-tags. It would recognize automatically the tags in log-lines such as file-names, lines, timestamps, error-levels, messages, etc. It would use the information sensible depending on context e.g ignoring timestamps while comparing sequences of commands, opening file on specified line in IDE, showing time-spans between lines, displaying error-level as an icon, etc. Imagine, it would even detect unusual behavior e.g prohibited sequences, time-outs, invalid values etc. How much faster would you be able to develop your software then? Much faster! LogCompanion will help you in that.

I am currently working on first prototype and I hope to publish the code soon. The prototype is developed in Qt4, of cause :-). While the prototype is evolving, I am still collecting requirements and feature ideas. Therefore this site was created. If you have a question, an idea or a suggestions, I would appreciate your message. If you are aware of such a software, free or commercial for reasonable prize, I would appreciate, If you gave me a hint – reinventing a wheel is always a pain.

Here are the key features I am aiming to implement:

  • easy definition of log format
  • auto-recognition of known log formats:
  • Automatic Error-detection in using logging APIs (extra/missing newlines etc)
  • auto-recognition of log data
    • timestamps
    • file-names and line numbers
    • URIs
  • outstanding filtering abilities
  • comparing logs using defined filter criteria
  • extensive usage of intuitive GUI-techniques
    • Drag&Drop
    • Semitransparent dialogs
    • actions on mouse over
    • gestures
  • syncing several log-files using time-stamp
  • configurable presentation of log entries
    • Icons
    • recognition of URIs
    • replacement of integer values by symbols
    • summing up same/similar consecutive log lines
  • preview of log-data items
    • Mimes
    • Code-Chunks
  • conversion to all known formats
  • auto-recognition of known formats
  • pre-defined configurations for all known formats
  • conversion to XML
  • HTML report generation
  • “tail -f” replacement
  • real time log transformation and forwarding (to file, network, etc.)
  • log data input from network connection (e.g. piping via nc)
  • log joining
  • log collection
  • input from several network connections
  • “tailing -f” several files
  • code generation for input/parsing plug-ins based on format description
  • unusual sequences detection
  • repetition detection
  • block comparison
    • N lines beginning with specified line
    • All lines between specified lines
  • Log-rotate with compression
  • alarming
    • sound
    • email
  • Status information
    • last update, a warning sign, if file older than specified time
  • Replay of cuptured events.
  • Splitting Log into several pre-defined Log-Classes. e.g. Errors, Messages of a particular developer, Strange behaviour
  • Acting as multi-client proxy server for TCP/UDP protocolls and capturing data passed through.

Generierung von Getters und Setters für C++ Klassen mit VIm

Ich selbst benutze zwar vi nicht als IDE zum Entwickeln, finde es aber sehr nützlich als mächtiges Search&Replace Tool. In diesem Beispiel geht es darum, wie man schnell aus privaten Member-Variablen einer (C++) Klasse die public Getter- und Setter-Funktionen erzeugen kann.
Die drei Variablen kopiere ich aus VisualStudio ins VIm:

QString _viewer;
QString _viewerArgs;
QString _previewRegex;

Wie man sieht, mein präferiertes Namensstil ( das ich von GoF übernommen habe ) ist für private Member: _memberName.
Die Getter heißen bei mir: const T & memberName () const;
Die Setter: void setMemberName (const T & memberName) ;

Die Getter erzeuge ich mit:

:1,$s/\(\w\+\)\s\+_\(\w\+\).*/const \1 \& \2() const {return _\2;}/

Ergebnis:

const QString & viwer const {return _viewer;};
const QString & viwerArgs const {return _viewerArgs;};
const QString & previwRegex const {return _previewRegex;};

Den Code copiere ich in public-Bereich der Klasse in VisualStudio und mache UNDO in VIm mit “ESC u”:
Und ähnlich für die Setters. Dabei wird der erste Buchstabe nach _ in Großbuchstaben konvertiert (\u):

:1,$s/\(\w\+\)\s\+_\(\w\)\(\w\+\).*/void set\u\2\3(const \1 \& \2\3){ _\2\3 = \2\3;}/

Ergebnis:


void setViwer(const QString & viewer){ _viewer = viewer;}
void setViwerArgs(const QString & viewerArgs){ _viewerArgs = viewerArgs;}
void setPreviwRegex(const QString & previewRegex){ _previewRegex = previewRegex;}

Einige alte Projekte

Nach dem Umbau der Webseite habe ich erst-mal die alten Projekte gelöscht. Überraschenderweise wurde ich hin und wieder von den Besuchern angeschrieben, die ein altes Link auf der Webseite nicht mehr gefunden haben. Die Anfragen nach den alten Projekten oder Artikeln haben mich natürlich sehr gefreut, und ich stelle die Dateien gerne wieder zur Verfügung.

Shape Widget – Ein Beispiel, wie man ein Widget in Qt3 in beliebiger Form darstellt. Für Qt4 habe ich die Portierung sehr freundlicher weise von Falko Buttler bekommen. Allerdings würde ich dieses Problem in Qt4 z.Z. mit Stylesheets und transparenten Pixmaps lösen.

Kezb – Ein Tool um beliebige Zeichen von einer Standardtastatur einzugeben. Ich habe es selbst lange benutzt um mit deutscher Tastatur kyrilisch zu schreiben. Mittlerweile benutzt ich allerdings dafür www.translit.ru.

GOTO Ireland: – Meine Erfahrung als Jobsuchender in Irland.

J2ME – Getting Started – Kurze J2ME Einführung. Ich habe sie geschrieben, als ich meine ersten Schritte mit Java-Programmierung für ein Siemens-Handy gemacht habe.

Subtitle assistant – Ein kleines C++ Projekt um aus DVD-Untertiteln Wortlisten mit Übersetzung und Anwendungsbeispielen zu erzeugen.

GMT (jeeamtee) – Mein erstes Projekt bei Google-Code

GMT ist eine C++ Klasse für Manipulation von Speicherblöcken. Ich habe sie während eines hardware-nahes Projektes implementiert, um die Hardware (FPGA) auf einem Embedded-Board mit einem komfortablen Konsolen-Tool testen zu können. Eine solche Konsolenapplikation wird mit GMT zu einem Zehnzeiler.

Die ursprüngliche Applikation hieß gmm (Generic Memory Manipulator) und war zum Teil auch beim Kunden entwickelt. GMT ( Generic Memory Tool ) wurde neu geschrieben und hat von gmm nur die Idee geerbt. Außerdem habe ich mich entschlossen, das Projekt nicht als eine Applikation zu entwickeln sondern als eine Klasse (oder auch eine winzige Klassenbibliothek).

Die Einfachheit und das Komfort, bei Google Open-Source Projekte zu hosten, hat mich sehr positiv überrascht. Man kann von dem Workflow und von der Projektmanagementumgebung viel lernen. Ich bin mir sicher, es wird nicht mein letztes Google-Code Projekt sein.

Das Projekt ist gehostet bei: https://code.google.com/p/jeeamtee/

Viel Erfolg damit und vielen Dank für alle Anregungen!
Valentin Heinitz

P.S.: Ah ja, warum so seltsamer Name? Der Projektname GMT war bei google-code bereits belegt, deshalb bin ich auf jeeamtee ausgewichen.

Enum2String

Beim Programmieren in C++ ist es oft nützlich, die enum-Werte nicht als Zahlen sondern als Symbole mit ihren Namen auszugeben. C++ bietet diese Funktionalität nicht an. Es kann aber mit kleinem Stück Code bewerkstelligt werden. Dieses Code wird nur dann aktiviert, wenn es erforderlich ist – meistens im Entwicklungsstadium und zur Fehlersuche.
Das hier vorgestellte Perl Skript erzeugt eine C++ Klasse, die viele überladene toString Methoden für alle im Projekt deklarierten Enums bietet. Außerdem wird hier kurz auf das nutzliche Tool ctags eingegangen.

Um alle enum-Deklarationen im Code zu finden, wäre das Parsen notwendig. C++ Code manuell (mit Perl) zu parsen, ist abenteuerlich. Es gibt eine viel einfachere und sicherere Mögligkeit – das Tool ctags.

Für jeden, der mit GNU Tool-Chain arbeitet, ist ctags sicherlich ein Begrif – das Tool parst Quellcode und erzeugt daraus Symboltabelle. Der Aufruf ctags -R * parst alle Verzeichnisse rekursiv und erzeugt eine Datei namens tags im Arbeitsverzeichnis. Zu jedem Symbol in der tags-Datei gibt es Information, in welcher Datei es deklariert wurde und mit welchem Regulärem Ausdruck es in der Datei zu finden ist. z.B. hier ist ein Ausschnitt aus der einer tags-Datei:

EnumA inc\enums1.h /^enum EnumA { eA1, eA2, eA3, };$/;" g
eA1 inc\enums1.h /^enum EnumA { eA1, eA2, eA3, };$/;" e enum:EnumA

Die erste Zeile besagt, dass in der Datei inc/enum1.h ein neuer Enum-Typ deklariert wird. Die zweite Zeile bedeutet – “enum eA1 ist ein enum vom Typ EnumA.”

Und tatsächlich, in der Testdatei inc/enums1.h findet man das EnumA:
///@file enums1.h
#ifndef ENUMS1_HG_
#define ENUMS1_HG_
enum
EnumA {
eA1, eA2, eA3, };
enum EnumB
{
eB1, // first enum
eB2, eB3=eA3,
// eBUnused,
/* eBUnused, */eB4
};
typedef enum ECStyle{
eCStyle1=0, eCStyle2=100,
};
typedef enum EStrangeStyle{
eStrangeStyle1, eStrangeStyle2
}EStrangeStyle;
#endif

Die Datei enums1.h ist eine gültige C++ Headerdatei. Ich habe dort vier Enumtypen deklariert. Die unterschiedlichen Schreibweisen habe ich absichtlich gewählt, um zu zeigen, dass manuelles Parsen keine triviale Aufgabe wäre. Diese Möglichkeiten, enums in C++ zu deklarieren, sind nicht hypothetisch. Ich habe sie alle schon im produktiven Code gesehen.
(Die Deklaration von EnumA und EnumB ist das, was man normalerweise in C++ benutzt. Die anderen, … na ja.)
Für Testzwecke habe ich im Verzeichnis inc eine weitere Datei hinterlegt:
///@file enums2.h
#ifndef ENUMS2_HG_
#define ENUMS2_HG_
enum EnumC { eC1, eC2, eC3, };
enum EnumD { eD1, eD2, eD3, };
#endif

Das komplete Perl-Skript samt dem Beispielprojekt findest Du unten, am Ende des Artikels. Hier ist eine kurze Erläuterung.

Das folgende Rreguläre Ausdruck enthält 2 “back-references” – Unterausdrucke, die nach dem Anwenden des Hauptausdrucks referenziert werden können. In Perl würden die reservierten Perl-Variablen $1 und $2 die Inhalte von den fettmarkierten Ausdrücken enthalten.
my $pat="^[^\t]+\t([^\t]+)\t.*enum:([a-zA-Z_][a-zA-Z0-9_]*)";
Zum Beispiel, nach Anwenden des oberen RegExp bei folgender Zeile würden die Perl-Variablen $1 und $2 die fettmarkierten Anteile enthalten:
eA1 inc\enums1.h /^ eA1, eA2, eA3, };$/;" e enum:EnumA

Folgende Schleife schreibt die gefundenen includes und enums in zwei Listen:
while () {
if (my ($m) = m/$pat/){
push @etypes, $2;
push @includes, $1;
}
}

Folgendes Codeschnipsel erzeugt aus beiden Listen, die mehrere gleiche Einträge enthalten können, Unique-Listen:
my %hlp1 = ();
my @uniqenums = grep { ! $hlp1{$_} ++ } @etypes;
my %hlp2 = ();
my @uniqinc = grep { ! $hlp2{$_} ++ } @includes;

Nun habe ich alle notwendigen Informationen für die Codegenerierung – Enum-Typen und Headerdateien.
Es wird eine Utility-Klasse (keine Instanzen möglich/sinnvoll) generiert, die mehrere überladenen statischen toString-Mehtoden hat z.B.:
static const char * toString( EnumA en ) {
switch( en ) {
case eA1: return "eA1";
case eA2: return "eA2";
case eA3: return "eA3";
}
}

Außerdem wird in der Klasse eine Testmethode definiert – static void testEnum2String(), die beim Aufruf alle toString Methoden testet. Enum-Wert und Enum-Symbolname werden auf der Standardausgabe ausgegeben.

Download

Copyright 2010, Valentin Heinitz