In diesem Projekt habe ich bei der Firmwareentwicklung eines Saugroboters für industrielle Anwendungen unterstützt. Ich bin relativ spät in das Projekt gekommen, um als Troubleshooter schwere Fehler zu finden und dabei zu unterstützen, die Verfügbarkeit des Gesamtsystems zu erhöhen. Die Entwicklung des Roboters war schon sehr weit fortgeschritten, aber die Software erfüllte bisher nicht das gewünschte Geräteverhalten, das für den Produktstart wichtig war.
Das Unternehmen, für das ich arbeitete, verfolgt in der Produktentwicklung den agilen Ansatz. Themen wurden in Dailys live abgestimmt und in Plannings erfolgte die Planung des kommenden Sprints, was einer Periode von 2 Wochen entsprach. Im späteren Projektverlauf ging es darum, Fehler und unerwünschtes Verhalten, das während der Produkttests festgestellt wurde, zu beheben. In dieser Phase wurden die Plannings ausgesetzt und es wurden akute Fehler, die während der Tests auftraten, in den Dailys besprochen und deren Behebung geplant. Einmal im Quartal fand ein Stage-Planning statt, bei dem ich ein besseres Gefühl für die Produktstrategie und die unternehmerischen Ziele erlangen konnte.
Die Verfügbarkeit des Gesamtsystems konnte ich durch eine Verbesserung im Geräteverhalten bei Erkennung einer Sturzkante erhöhen. Bisher war immer eine direkte Nutzerinteraktion notwendig, um den Reinigungsvorgang fortzusetzen. Ich habe das Geräteverhalten dahingehend verändert, dass der Roboter nach Erkennen einer Kante zunächst zeitweise misst, ob die Bedingungen für einen möglichen Sturz noch gegeben sind. Wenn das nicht mehr der Fall war, so gab es seitens der safety Steuerung im Gerät wieder eine Freigabe und die Reinigung konnte selbstständig fortgesetzt werden.
Das Arbeiten und Nachverfolgen an den konkreten Themen erfolgte über ein Ticketsystem, wodurch Aufgaben klar abgegrenzt und dokumentiert werden konnten.
Zu meinen Tätigkeiten gehörte es:
zu überarbeiten.
Die Webpräsenz von Nanaart-Design sollte einen frischen Anstrich erhalten. Meiner Frau war es wichtig, dass die Webseite modern und individuell sein sollte. Beim Erstellen der Webseite habe ich bewusst auf die Verwendung fertiger CMS Systeme verzichtet, um dem Anspruch des individuellen Designs gerecht zu werden.
Auf diese Weise bleiben mir alle Freiheitsgrade in der Gestaltung und der Funktionalität der Webseite erhalten. Für die Umsetzung des Projektes habe ich mich auf die Verwendung der 4 Basistechnologien der Webentwicklung beschränkt.
Das grundlegende Design der Webseite besteht aus drei Teilen, einem Kopfbereich, einem Fußbereich und einem Hauptbereich. Der Kopf- und Fußbereich sollen auf jeder Seite gleich sein. Zur Vermeidung doppelten Codes habe ich mich dafür entschieden eine Basisseite zu erstellen, die alle drei Berreiche repräsentiert. In Abhängigkeit der Seite auf der sich der Benutzer befindet wird der Hauptberreich dynamisch nachgeladen.
Durch diese Maßnahme sind Anpassungen im Kopf- und Fußbereich der Seite immer für alle Seiten wirksam.
Thema der Abschlussarbeit: ?Thermische Materialcharakterisierung mittels Wärmeflussthermographie?
Thema der Abschlussarbeit: ?Entwicklung eines Display zur Visualisierung von Statussignalen des XFEL RF Interlocks?
Thema der Abschlussarbeit: ?Entwicklung eines Display zur Visualisierung von Statussignalen des XFEL RF Interlocks?
Mit umfangreicher Erfahrung im Embedded Software-Engineering sowie fundierten Kenntnissen in verschiedenen Programmiersprachen und Technologien bin ich in der Lage, maßgeschneiderte Lösungen zu entwickeln. Im Folgenden möchte ich einen kurzen Überblick über meine Fähigkeiten geben:
Mein Ziel ist es, qualitativ hochwertigen Code zu liefern. Ich stehe Ihnen gerne zur Verfügung, um weitere Details zu besprechen und Ihre Projekte zum Erfolg zu führen. Zögern Sie nicht, mich zu kontaktieren, um weitere Informationen über meine bisherigen Arbeiten und Referenzen zu erhalten. Ich freue mich darauf, mit Ihnen zusammenzuarbeiten und Ihnen bei Ihren technischen Herausforderungen zu helfen.
Als Softwareentwickler stehe ich am Kreuzungspunkt von Logik und Kreativität. Meine wahre Leidenschaft liegt in der hardwarenahen Softwareentwicklung, einem Bereich, der eine präzise Kontrolle und ein tiefes Verständnis der zugrundeliegenden Hardware erfordert. Ich finde Freude daran, das Verhalten von Mikroprozessoren zu verstehen und Software so zu gestalten, dass sie sich nahtlos in die Hardware integriert.
Das Debugging und die Code-Optimierung sind für mich mehr als nur eine Aufgabe, sie sind ein Rätsel, das darauf wartet, gelöst zu werden. Es fasziniert mich, wie eine wohlüberlegte Code-Änderung die Leistungsfähigkeit und Effizienz eines Systems dramatisch verbessern kann. Jedes Byte zählt in der embedded-Entwicklung und diese Herausforderung treibt mich an, stets mein Bestes zu geben. Obwohl ich mich in die Komplexität der Technologie vertiefe, verliere ich nie den Blick für das größere Ganze.
Datenkommunikation ist für mich das Rückgrat der digitalen Welt. Sie ist das verbindende Element, das Einzelteile zu einem zusammenhängenden, leistungsfähigen System verknüpft. Ohne die effiziente und zuverlässige Übertragung von Informationen von einem Punkt zum anderen könnten viele moderne Technologien, vom einfachen Heimnetzwerk bis zum globalen Internet, nicht existieren.
Im speziellen Kontext der Feldbusse gewinnt diese Faszination an Tiefe. Als das Nervensystem industrieller Automatisierungsanlagen ermöglichen sie eine sichere und zeitnahe Kommunikation zwischen den verschiedenen Komponenten. Die Implementierung von Systemen wie CAN, EtherCAT und Profinet erfordert ein gründliches Verständnis und eine sorgfältige Programmierung. Dies ist ein Bereich, der oft unterschätzt wird, jedoch für die Robustheit und Effizienz von Automatisierungssystemen von entscheidender Bedeutung ist.
Bei internen Kommunikationssystemen wie UART, I2C und SPI kommt eine weitere Dimension hinzu. Diese seriellen Kommunikationsprotokolle ermöglichen eine schnelle und effiziente Datenübertragung zwischen Mikrocontrollern und Peripheriegeräten. Von UART, das häufig für die Kommunikation mit PCs genutzt wird, über I2C und SPI, die perfekt für den Datenaustausch zwischen Sensoren und Mikrocontrollern in Echtzeitanwendungen geeignet sind.
Durch jahrelange Arbeit und umfangreiche Projekte konnte ich tiefgehende Kenntnisse im Bereich der Embedded Software Entwicklung für Mikrocontroller erwerben. Ich beherrsche die Programmierung und das Debugging von Mikrocontrollern verschiedener Hersteller und Modelle, und kann so effektive, effiziente und innovative Lösungen für verschiedene technische Herausforderungen liefern.
Ein besonderer Schwerpunkt meiner Expertise liegt im Umgang mit TI-DSPs (Digital Signal Processors) von Texas Instruments. Ich habe eine Vielzahl von Projekten unter Verwendung dieser leistungsstarken und vielseitigen Prozessoren erfolgreich abgeschlossen. Mit umfassendem Wissen über die Architektur und Schnittstellen dieser Chips kann ich robuste und optimierte Systeme entwerfen und implementieren.
In meinem letzten Projekt konnte ich mir zudem Expertise auf dem Gebiet der Multi-Core-Prozessoren im Embedded Bereich aufbauen. Meine praktische Erfahrung mit diesem Prozessor hat mir tiefgreifende Einblicke in seine Leistungsfähigkeit und Anwendungsmöglichkeiten gegeben. Ich habe die Fähigkeit, seine Architektur bestehend aus 2 C28x Cores und einem ARM Core effizient zu nutzen und Leistung zu optimieren, während ich gleichzeitig sicherstelle, dass alle Cores harmonisch zusammenarbeiten, um hohe Leistung und Zuverlässigkeit zu erzielen.
Seit ich git kennengelernt habe, hat es die Art und Weise, wie ich Code verwalte, völlig verändert. Im Vergleich zu herkömmlichen Versionsverwaltungssystemen wie CVS und SVN bietet git eine bemerkenswerte Flexibilität und Kontrolle. Die Fähigkeit, parallel an verschiedenen Themen dank der Verwendung von Branches zu arbeiten, hat die Zusammenarbeit und die Geschwindigkeit unserer Entwicklung erheblich verbessert. Insbesondere die Anwendung von git-Flow hat eine klare Struktur und einen reibungslosen Prozess für die Integration neuer Features geschaffen.
CMake ermöglicht es
mir, plattformunabhängige Build-Prozesse zu erstellen, was die Portierbarkeit
und den Einsatz von Software auf verschiedenen Systemen erheblich verbessert.
Mit CMake kann ich die Komplexität des Build-Prozesses abstrahieren und mich darauf
konzentrieren, was wirklich wichtig ist.
Meine Arbeit in der funktionalen Sicherheit hat mir die Bedeutung von strengen Standards und Prozessen in der Softwareentwicklung vermittelt. Als vom TÜV Nord zertifizierter "Functional Safety Certified Engineer Development" habe ich gelernt, wie man den Entwicklungsprozess plant, dokumentiert und sicher durchführt. Ich habe Dokumentenvorlagen für den Entwicklungsprozess in diesem Bereich erstellt und eine Kommunikationsschnittstelle zu einer im Antrieb integrierten Safety Optionskarte implementiert. Diese Erfahrungen haben meine Fähigkeiten in der sicheren und effizienten Softwareentwicklung erheblich erweitert.
Scrum ist für mich mehr als nur eine Methode zur Projektverwaltung - es ist ein Leitbild, das Zusammenarbeit, Flexibilität und kontinuierliches Lernen fördert. Es ist das Gewebe, das einzelne Talente zu einem starken, produktiven Team verwebt, und es ist das Fahrzeug, das Projekte sicher durch die Herausforderungen der Softwareentwicklung steuert.
In diesem komplexen Geflecht übernimmt der Developer eine entscheidende Rolle. Er ist das Herz des Scrum-Teams und treibt die Umsetzung des Projekts voran. Er navigiert durch Code, transformiert Anforderungen in funktionale Software und löst Probleme mit Kreativität und technischer Expertise. Aber er ist auch ein Teamplayer, der aktiv an Scrum-Zeremonien teilnimmt, sein Wissen mit anderen teilt und Feedback annimmt, um kontinuierlich zu wachsen und zu lernen.
Auf der anderen Seite steht der Product Owner, der als Bindeglied zwischen dem Entwicklungsteam und den Stakeholdern agiert. Er trägt die Vision des Produkts und übersetzt die Bedürfnisse der Stakeholder in greifbare, priorisierte Anforderungen für das Team. Aber seine Rolle geht über die reine Produktverwaltung hinaus ? er ist auch ein Vermittler und Unterstützer, der das Team in seiner Arbeit unterstützt und sicherstellt, dass es über die Ressourcen und Informationen verfügt, die es braucht, um erfolgreich zu sein.
In diesem dynamischen Zusammenspiel zwischen Entwicklern, Product Ownern und anderen Rollen entsteht die wahre Magie von Scrum. Jedes Teammitglied bringt seine einzigartigen Fähigkeiten und Perspektiven ein und zusammen navigieren sie durch die Komplexität der Produktentwicklung, um ein Produkt mit einem echten Kundennutzen zu schaffen.
Grundsätzlich arbeite ich von zu Hause aus und bin remote immer werktags zwischen 8.00 bis 19.00 Uhr erreichbar. Für Absprachen, in denen meine persönliche Präsenz erforderlich ist, bin ich bereit deutschlandweit zu reisen.
In diesem Projekt habe ich bei der Firmwareentwicklung eines Saugroboters für industrielle Anwendungen unterstützt. Ich bin relativ spät in das Projekt gekommen, um als Troubleshooter schwere Fehler zu finden und dabei zu unterstützen, die Verfügbarkeit des Gesamtsystems zu erhöhen. Die Entwicklung des Roboters war schon sehr weit fortgeschritten, aber die Software erfüllte bisher nicht das gewünschte Geräteverhalten, das für den Produktstart wichtig war.
Das Unternehmen, für das ich arbeitete, verfolgt in der Produktentwicklung den agilen Ansatz. Themen wurden in Dailys live abgestimmt und in Plannings erfolgte die Planung des kommenden Sprints, was einer Periode von 2 Wochen entsprach. Im späteren Projektverlauf ging es darum, Fehler und unerwünschtes Verhalten, das während der Produkttests festgestellt wurde, zu beheben. In dieser Phase wurden die Plannings ausgesetzt und es wurden akute Fehler, die während der Tests auftraten, in den Dailys besprochen und deren Behebung geplant. Einmal im Quartal fand ein Stage-Planning statt, bei dem ich ein besseres Gefühl für die Produktstrategie und die unternehmerischen Ziele erlangen konnte.
Die Verfügbarkeit des Gesamtsystems konnte ich durch eine Verbesserung im Geräteverhalten bei Erkennung einer Sturzkante erhöhen. Bisher war immer eine direkte Nutzerinteraktion notwendig, um den Reinigungsvorgang fortzusetzen. Ich habe das Geräteverhalten dahingehend verändert, dass der Roboter nach Erkennen einer Kante zunächst zeitweise misst, ob die Bedingungen für einen möglichen Sturz noch gegeben sind. Wenn das nicht mehr der Fall war, so gab es seitens der safety Steuerung im Gerät wieder eine Freigabe und die Reinigung konnte selbstständig fortgesetzt werden.
Das Arbeiten und Nachverfolgen an den konkreten Themen erfolgte über ein Ticketsystem, wodurch Aufgaben klar abgegrenzt und dokumentiert werden konnten.
Zu meinen Tätigkeiten gehörte es:
zu überarbeiten.
Die Webpräsenz von Nanaart-Design sollte einen frischen Anstrich erhalten. Meiner Frau war es wichtig, dass die Webseite modern und individuell sein sollte. Beim Erstellen der Webseite habe ich bewusst auf die Verwendung fertiger CMS Systeme verzichtet, um dem Anspruch des individuellen Designs gerecht zu werden.
Auf diese Weise bleiben mir alle Freiheitsgrade in der Gestaltung und der Funktionalität der Webseite erhalten. Für die Umsetzung des Projektes habe ich mich auf die Verwendung der 4 Basistechnologien der Webentwicklung beschränkt.
Das grundlegende Design der Webseite besteht aus drei Teilen, einem Kopfbereich, einem Fußbereich und einem Hauptbereich. Der Kopf- und Fußbereich sollen auf jeder Seite gleich sein. Zur Vermeidung doppelten Codes habe ich mich dafür entschieden eine Basisseite zu erstellen, die alle drei Berreiche repräsentiert. In Abhängigkeit der Seite auf der sich der Benutzer befindet wird der Hauptberreich dynamisch nachgeladen.
Durch diese Maßnahme sind Anpassungen im Kopf- und Fußbereich der Seite immer für alle Seiten wirksam.
Thema der Abschlussarbeit: ?Thermische Materialcharakterisierung mittels Wärmeflussthermographie?
Thema der Abschlussarbeit: ?Entwicklung eines Display zur Visualisierung von Statussignalen des XFEL RF Interlocks?
Thema der Abschlussarbeit: ?Entwicklung eines Display zur Visualisierung von Statussignalen des XFEL RF Interlocks?
Mit umfangreicher Erfahrung im Embedded Software-Engineering sowie fundierten Kenntnissen in verschiedenen Programmiersprachen und Technologien bin ich in der Lage, maßgeschneiderte Lösungen zu entwickeln. Im Folgenden möchte ich einen kurzen Überblick über meine Fähigkeiten geben:
Mein Ziel ist es, qualitativ hochwertigen Code zu liefern. Ich stehe Ihnen gerne zur Verfügung, um weitere Details zu besprechen und Ihre Projekte zum Erfolg zu führen. Zögern Sie nicht, mich zu kontaktieren, um weitere Informationen über meine bisherigen Arbeiten und Referenzen zu erhalten. Ich freue mich darauf, mit Ihnen zusammenzuarbeiten und Ihnen bei Ihren technischen Herausforderungen zu helfen.
Als Softwareentwickler stehe ich am Kreuzungspunkt von Logik und Kreativität. Meine wahre Leidenschaft liegt in der hardwarenahen Softwareentwicklung, einem Bereich, der eine präzise Kontrolle und ein tiefes Verständnis der zugrundeliegenden Hardware erfordert. Ich finde Freude daran, das Verhalten von Mikroprozessoren zu verstehen und Software so zu gestalten, dass sie sich nahtlos in die Hardware integriert.
Das Debugging und die Code-Optimierung sind für mich mehr als nur eine Aufgabe, sie sind ein Rätsel, das darauf wartet, gelöst zu werden. Es fasziniert mich, wie eine wohlüberlegte Code-Änderung die Leistungsfähigkeit und Effizienz eines Systems dramatisch verbessern kann. Jedes Byte zählt in der embedded-Entwicklung und diese Herausforderung treibt mich an, stets mein Bestes zu geben. Obwohl ich mich in die Komplexität der Technologie vertiefe, verliere ich nie den Blick für das größere Ganze.
Datenkommunikation ist für mich das Rückgrat der digitalen Welt. Sie ist das verbindende Element, das Einzelteile zu einem zusammenhängenden, leistungsfähigen System verknüpft. Ohne die effiziente und zuverlässige Übertragung von Informationen von einem Punkt zum anderen könnten viele moderne Technologien, vom einfachen Heimnetzwerk bis zum globalen Internet, nicht existieren.
Im speziellen Kontext der Feldbusse gewinnt diese Faszination an Tiefe. Als das Nervensystem industrieller Automatisierungsanlagen ermöglichen sie eine sichere und zeitnahe Kommunikation zwischen den verschiedenen Komponenten. Die Implementierung von Systemen wie CAN, EtherCAT und Profinet erfordert ein gründliches Verständnis und eine sorgfältige Programmierung. Dies ist ein Bereich, der oft unterschätzt wird, jedoch für die Robustheit und Effizienz von Automatisierungssystemen von entscheidender Bedeutung ist.
Bei internen Kommunikationssystemen wie UART, I2C und SPI kommt eine weitere Dimension hinzu. Diese seriellen Kommunikationsprotokolle ermöglichen eine schnelle und effiziente Datenübertragung zwischen Mikrocontrollern und Peripheriegeräten. Von UART, das häufig für die Kommunikation mit PCs genutzt wird, über I2C und SPI, die perfekt für den Datenaustausch zwischen Sensoren und Mikrocontrollern in Echtzeitanwendungen geeignet sind.
Durch jahrelange Arbeit und umfangreiche Projekte konnte ich tiefgehende Kenntnisse im Bereich der Embedded Software Entwicklung für Mikrocontroller erwerben. Ich beherrsche die Programmierung und das Debugging von Mikrocontrollern verschiedener Hersteller und Modelle, und kann so effektive, effiziente und innovative Lösungen für verschiedene technische Herausforderungen liefern.
Ein besonderer Schwerpunkt meiner Expertise liegt im Umgang mit TI-DSPs (Digital Signal Processors) von Texas Instruments. Ich habe eine Vielzahl von Projekten unter Verwendung dieser leistungsstarken und vielseitigen Prozessoren erfolgreich abgeschlossen. Mit umfassendem Wissen über die Architektur und Schnittstellen dieser Chips kann ich robuste und optimierte Systeme entwerfen und implementieren.
In meinem letzten Projekt konnte ich mir zudem Expertise auf dem Gebiet der Multi-Core-Prozessoren im Embedded Bereich aufbauen. Meine praktische Erfahrung mit diesem Prozessor hat mir tiefgreifende Einblicke in seine Leistungsfähigkeit und Anwendungsmöglichkeiten gegeben. Ich habe die Fähigkeit, seine Architektur bestehend aus 2 C28x Cores und einem ARM Core effizient zu nutzen und Leistung zu optimieren, während ich gleichzeitig sicherstelle, dass alle Cores harmonisch zusammenarbeiten, um hohe Leistung und Zuverlässigkeit zu erzielen.
Seit ich git kennengelernt habe, hat es die Art und Weise, wie ich Code verwalte, völlig verändert. Im Vergleich zu herkömmlichen Versionsverwaltungssystemen wie CVS und SVN bietet git eine bemerkenswerte Flexibilität und Kontrolle. Die Fähigkeit, parallel an verschiedenen Themen dank der Verwendung von Branches zu arbeiten, hat die Zusammenarbeit und die Geschwindigkeit unserer Entwicklung erheblich verbessert. Insbesondere die Anwendung von git-Flow hat eine klare Struktur und einen reibungslosen Prozess für die Integration neuer Features geschaffen.
CMake ermöglicht es
mir, plattformunabhängige Build-Prozesse zu erstellen, was die Portierbarkeit
und den Einsatz von Software auf verschiedenen Systemen erheblich verbessert.
Mit CMake kann ich die Komplexität des Build-Prozesses abstrahieren und mich darauf
konzentrieren, was wirklich wichtig ist.
Meine Arbeit in der funktionalen Sicherheit hat mir die Bedeutung von strengen Standards und Prozessen in der Softwareentwicklung vermittelt. Als vom TÜV Nord zertifizierter "Functional Safety Certified Engineer Development" habe ich gelernt, wie man den Entwicklungsprozess plant, dokumentiert und sicher durchführt. Ich habe Dokumentenvorlagen für den Entwicklungsprozess in diesem Bereich erstellt und eine Kommunikationsschnittstelle zu einer im Antrieb integrierten Safety Optionskarte implementiert. Diese Erfahrungen haben meine Fähigkeiten in der sicheren und effizienten Softwareentwicklung erheblich erweitert.
Scrum ist für mich mehr als nur eine Methode zur Projektverwaltung - es ist ein Leitbild, das Zusammenarbeit, Flexibilität und kontinuierliches Lernen fördert. Es ist das Gewebe, das einzelne Talente zu einem starken, produktiven Team verwebt, und es ist das Fahrzeug, das Projekte sicher durch die Herausforderungen der Softwareentwicklung steuert.
In diesem komplexen Geflecht übernimmt der Developer eine entscheidende Rolle. Er ist das Herz des Scrum-Teams und treibt die Umsetzung des Projekts voran. Er navigiert durch Code, transformiert Anforderungen in funktionale Software und löst Probleme mit Kreativität und technischer Expertise. Aber er ist auch ein Teamplayer, der aktiv an Scrum-Zeremonien teilnimmt, sein Wissen mit anderen teilt und Feedback annimmt, um kontinuierlich zu wachsen und zu lernen.
Auf der anderen Seite steht der Product Owner, der als Bindeglied zwischen dem Entwicklungsteam und den Stakeholdern agiert. Er trägt die Vision des Produkts und übersetzt die Bedürfnisse der Stakeholder in greifbare, priorisierte Anforderungen für das Team. Aber seine Rolle geht über die reine Produktverwaltung hinaus ? er ist auch ein Vermittler und Unterstützer, der das Team in seiner Arbeit unterstützt und sicherstellt, dass es über die Ressourcen und Informationen verfügt, die es braucht, um erfolgreich zu sein.
In diesem dynamischen Zusammenspiel zwischen Entwicklern, Product Ownern und anderen Rollen entsteht die wahre Magie von Scrum. Jedes Teammitglied bringt seine einzigartigen Fähigkeiten und Perspektiven ein und zusammen navigieren sie durch die Komplexität der Produktentwicklung, um ein Produkt mit einem echten Kundennutzen zu schaffen.
Grundsätzlich arbeite ich von zu Hause aus und bin remote immer werktags zwischen 8.00 bis 19.00 Uhr erreichbar. Für Absprachen, in denen meine persönliche Präsenz erforderlich ist, bin ich bereit deutschlandweit zu reisen.