Speaker

Carlos Fernandez

Carlos Fernandez

M.C.Sc., Senior Software Developer, DATEV eG

M.C.Sc., Senior Software-Entwickler, DATEV eG

Nürnberg, Germany

Actions

Carlos Fernandez is a passionate software developer at DATEV eG. He is an expert in C# development and performance optimization. As a security engineer, he supports his team with security issues. He has also set up the .NET Performance Consulting Hour, which can be used by colleagues on a weekly basis.

Carlos has over 25 years of experience in software development. Most of that time in .NET C#. His expertise in performance optimization contributes to the topic of sustainability. This is another reason why he is active in the Green-CoP (Community of Practice).

When he is not working in development, Carlos is on the road as a speaker and consultant. You can meet him at Developer Week (DWX) or at many internal presentations. He is also active on social media as a DATEV ambassador (#DATEVBotschafter).

Carlos Fernandez ist leidenschaftlicher Softwareentwickler bei der DATEV eG. Seine Spezialgebiete sind die Entwicklung in C# und Performance-Optimierung. Als Security Engineer unterstützt er sein Team bei Fragen rund um das Thema Sicherheit. Außerdem hat er die .NET-Performance-Sprechstunde ins Leben gerufen, die wöchentlich von Kolleginnen und Kollegen genutzt werden kann.

Carlos kann auf mehr als 25 Jahre Erfahrung in der Software-Entwicklung zurückblicken. Die meiste Zeit davon in .NET C#. Sein Expertenwissen im Bereich Performance-Optimierung zahlt auf das Thema Nachhaltigkeit ein. Auch deshalb engagiert er sich in der Green-CoP (Community of Practice).

Wenn er nicht in der Entwicklung arbeitet, ist Carlos als Referent und Berater unterwegs. Man trifft ihn zum Beispiel auf der Developer Week (DWX) oder bei vielen internen Vorträgen. Und ganz nebenbei postet er als #DATEVBotschafter in den sozialen Medien.

Area of Expertise

  • Business & Management
  • Information & Communications Technology
  • Media & Information

Topics

  • Front-End Development
  • Backend Development
  • Performance Tuning
  • API Design
  • WPF
  • Xamarin
  • XPath
  • XSLT
  • MSBuild
  • XAML
  • WCF
  • SQL
  • Security
  • Mobile Apps
  • Cloud
  • C++
  • MFC

Sessions

Writing High Performance .NET Code en de

Are you of the opinion that performant code is poorly readable code? Do you believe that performant code can only be written retrospectively? Or do you think that only a cache can save performance? Then attend this session and be amazed.
Here you will find tips for your daily work with .NET. Easy to follow and guaranteed to write faster and still readable code. We will also look at how to make (supposedly) performant code even faster. This type of optimization requires performance measurements and makes the work more time-consuming? In most cases, yes. Because often only a series of measurements can show which variant is better. Fortunately, there are also tips for non-everyday work. Also with a guarantee for better performing code.
Overall, we are operating at a very high level here. Comparable to Formula 1 when it comes to car racing. We are talking about optimizations in the millisecond or microsecond range when measured individually. In total, however, the savings can be much higher. It all depends on how often the code is run. Two small calculation examples: If you save 1 ms on one call, this amounts to almost 17 seconds on 1 million calls. Or: If you save 10 microseconds per call, this also amounts to almost 17 seconds for 100 million calls. And 100 million calls can quickly add up, for example when cross-producing two collections with 10,000 entries each.
In times of cloud computing, big data and AI, performance is playing an increasingly important role. The faster and more resource-efficient an application achieves the same result, the greater the gain in terms of time and money.

Internationalisierung - Nachträglich? de

Software zu internationalisieren ist eine Anforderung, die oft erst im Nachhinein entsteht. Ist es besser von Anfang an die Software mit Hinblick auf Internationalisierung zu entwickeln? Oder reicht es aus, wenn man nachträglich die Software adaptiert?
Diese Session richtet sich an Manager, Product Owner, Entwickler und DevOps von .NET Anwendungen. Sie zeigt uns welche Aspekte mit dem Thema Internationalisierung zusammenhängen und an welche Sie vielleicht nicht gedacht haben. Oder hätten Sie an Update-Strategien und externe Schnittstellen gedacht?
Am Ende dieser Session haben Sie einen Eindruck davon, welcher Aufwand damit verbunden sein kann und ob es sich lohnt, von Anfang an das Thema zu berücksichtigen.

Mobile App - Ein Weg voller Entscheidungen de

Was sollte man wissen bevor man sich entscheidet, eine Mobile App zu schreiben? Jede Menge!
Sowohl für Produktmanager als auch Entwickler dürften die hier vorgestellten Erfahrungen wertvoll sein. Sie fangen bei der Marktanalyse an, gefolgt von der Wahl der Entwicklungstools, gefolgt von der benötigten Hardware, den Mindestvoraussetzungen und den Kosten. Um das Ganze abzurunden, schließen wir diesen Erfahrungsvortrag mit den Möglichkeiten der Monetarisierung ab.

Preferred duration: 60 min.
Target audience: product manager, developer.

.NET Performance Tipps - Für den Alltag de

„Don‘t pre-optimize code“, „Die Anwendung muss schnell sein“, „Um Performance kümmern wir uns später“, „Für Performance-Optimierungen haben wir jetzt keine Zeit“ sind alles Zitate, die man irgendwo schon mal gehört hat. Aber ganz nach dem Prinzip „Kleinvieh macht auch Mist“ können wir im Alltag mit der richtigen Wahl dazu beitragen, dass der Code in Summe nicht ganz so schlecht da steht.
Kleine „Sünden“ kumulieren sich sehr schnell und werden leider erst bei Großkunden sichtbar und spürbar. Denn oft werden Programme und Programmteile nur mit kleinen Datenmengen / Datengerüsten getestet. In so einer Umgebung werden Performance-Sünden nicht aufgedeckt. Allzu oft werden die NFA (nicht funktionale Anforderungen) weder spezifiziert noch in Tests gegossen. Und da fängt das Problem schon an.
Ohne konkrete Anforderungen an die Performance wird der Code im Schnellprinzip entwickelt. Hauptsache die Funktion ist erfüllt.
Aber der Entwickler hat auf kleinster Ebene oft die Wahl wie er etwas implementiert. Der meiste Code sollte privat sein, also das sogenannte Implementierungs-Detail. Die Schnittstellen sind public. Aber wie sie implementiert sind, geht den Verwender nichts an. Und hier hat der Entwickler seine Freiheitsgrade.
Und genau da setzen die Performance Tipps von Carlos Fernandez an. Tipps für den Alltag. Eine Art Entscheidungshilfe, wenn man sich nicht sicher ist, welche Variante schneller ist. Und das Schöne daran ist, dass der Code lesbar bleibt und keinen Mehraufwand kostet.
Die Tipps drehen sich u.a. um String, Collections, Exceptions, DataTable, LINQ.

.NET GC Tipps - Für den Alltag de

Der .NET Garbage Collector (GC) ist für viele ein Mysterium und Helfer zugleich. Er arbeitet meist ohne explizite Aufforderung und räumt den Speicher auf. Aber wußten Sie, dass er auch fürs Allokieren zuständig ist?
In vielen Anwendungen läuft der GC nicht wie gewünscht. Mal wird er zu häufig aufgerufen. Mal dauert er zu lange. Mal räumt er zu spät auf. Warum? Und wie kann man das beeinflussen?
Auf diese Fragen gibt es eine Antwort. Und zwar in dieser Session!
Carlos Fernandez beleuchtet in dieser Session die unterschiedlichen GC Modi und gibt Tipps im Design und Umgang von Datenstrukturen.
Mit Hilfe dieser alltagstauglichen Tipps können Sie die Laufzeiten des GC verbessern und dafür sorgen, dass die Anwendung Hand in Hand mit dem GC anstatt gegen den GC arbeitet.

Carlos Fernandez hat sich intensiv mit dem GC auseinandergesetzt und mehrfach die Vortragsreihe „Inside .NET GC“ gehalten. Die Tipps sind sozusagen eine Quintessenz aus dem Wissen wie der GC intern arbeitet.
Carlos Fernandez arbeitet seit 2020 für DATEV und blickt auf mehr als 24 Jahre Erfahrung in der Softwareentwicklung. Den größten Teil davon in .NET C#.

OutOfMemoryException - Und was nun? de

Wer kennt das nicht? OutOfMemoryException, und das beim Kunden und vielleicht gar nicht so selten. Die Zeit drängt und eine Lösung muss schnell her. GC.Collect()? Ist das die Lösung?
In dieser Session beschäftigt sich Carlos Fernandez mit den Fragen, was sind die Gründe für eine OutOfMemoryException und was kann man tun, um sie zu analysieren und so gut es geht zu verhindern. Erst wenn man verstanden hat, wie es zu der OOM Exception kommt, kann man den passenden Lösungsansatz wählen.

Carlos Fernandez hat sich intensiv mit dem GC auseinandergesetzt und mehrfach die Vortragsreihe „Inside .NET GC“ gehalten. Die Tipps sind sozusagen eine Quintessenz aus dem Wissen wie der GC intern funktioniert und der täglichen Arbeit mit .NET.
Carlos Fernandez arbeitet seit 2020 für DATEV und blickt auf mehr als 24 Jahre Erfahrung in der Softwareentwicklung. Den größten Teil davon in .NET C#.

Nachhaltigkeit in der IT? Ja, bitte! de

Nachhaltigkeit geht uns alle an. Auch bei der Softwareentwicklung und -Nutzung. Weißt du, wie viel CO2 du beim Streaming verursachst? Oder dass deine Software nicht nur beim Betrieb, sondern auch bei der Entwicklung und Nutzung CO2 verursacht?

Nach diesem Impulsvortrag weißt du zum Beispiel:
- was Nachhaltigkeit in der IT bedeutet (ökonomisch, ökologisch und sozial),
- wie du Online- und OnPremise-Anwendungen optimierst,
- wie du mit kleinen Schritten bei dir und großen Schritten im Unternehmen Nachhaltigkeit erreichst

Maria Hentzschel und Carlos Fernandez engagieren sich bei DATEV für grüne Software und sind Teil der GreenCoP (Community of Practice). Maria ist im Online-Bereich zu Hause, während Carlos auf OnPremise spezialisiert ist.
Maria Hentzschel betreut die Technik hinter datev.de. Sie hat das Thema Nachhaltigkeit für sich entdeckt und überzeugt im Bereich nachhaltiger Webentwicklung die Leute davon, dass jede:r etwas tun muss und auch kann, ohne das eigene Leben komplett umzukrempeln.
Carlos Fernandez arbeitet seit 2020 für DATEV und blickt auf mehr als 24 Jahre Erfahrung in der Softwareentwicklung. Den größten Teil davon in .NET C#. Sein Expertenwissen rund um Performanceoptimierungen zahlt auf das Thema Nachhaltigkeit ein.

Performancevergleich .NET Framework 4.8, .NET 6, 7, 8 de

Anhand ausgelesener Beispiele werden Performancevergleiche von Microsofts .NET Framework 4.8, .NET 6, 7 und 8 gezeigt. Mit jeder neuen Version gibt es zahlreiche Verbesserungen, die Microsoft eingebracht hat. Zum Teil sind sie enorm. In dieser Session werfen wir einen Blick auf Code, der einfach nur durch Wechsel auf eine neuere .NET Version deutlich schneller läuft.
Aber vor allem der Vergleich zum .NET Framework 4.8 soll denjenigen, die noch nicht migriert haben, den Performance-Gewinn aufzeigen.
Zum Schluss der Session gibt es noch ein paar Hinweise, was man trotz der Verlockung einer Migration berücksichtigen sollte.

Codebeispiele sind in C#. Sessiondauer 45-60 Minuten.

Tipps zum Green-Coding de

Nach einer kurzen Einleitung zum Thema Green-Coding geht es Schlag auf Schlag mit Tipps, was man bei Frontends (Web, Desktop) und Source-Code (C#) nachhaltig(er) machen kann.
Der Referent ist Mitglied in der DATEV-Green-CoP und wirbt für mehr Nachhaltigkeit in der Software. Er ist Experte in C# (.NET) und Performance-Optimierungen.

Sessiondauer 45-60 Minuten.

7 Fallen beim Parallelisieren von .NET Code de

In diesem heiteren Vortrag werden 7 Fallen aufgezeigt, die zu unerwünschten oder unerwartetem Verhalten führen können. Unter anderem zu async / await. Andere Vorträge zeigen, wie einfach es ist, Code zu parallelisieren. Aber kaum ein Vortrag hebt die Fallen hervor. Nicht so in diesem Vortrag! Hier geht es ausschliesslich um die Fallen.
Der Referent ist Experte in C# (.NET) und Performance-Optimierungen.

Grundkenntnisse in C# sind von Vorteil, um dem Vortrag folgen zu können.
Sessiondauer 45-60 Minuten.

Writing High Performance .NET Code en de

Sie sind der Meinung performanter Code sei schlecht lesbarer Code? Sie glauben, dass performanter Code nur im Nachhinein geschrieben werden kann? Oder denken Sie, nur ein Cache kann noch die Performance retten? Dann besuchen Sie diese Session und staunen Sie.
Hier gibt es Tipps für die tägliche Arbeit mit .NET. Einfach zu beherzigen und garantiert schnelleren und trotzdem lesbaren Code schreiben. Zudem beschäftigen wir uns damit, wie man (vermeintlich) performanten Code noch schneller macht. Diese Art der Optimierung erfordert Performance Messungen und macht die Arbeit aufwendiger? In den meisten Fällen ja. Denn oft kann nur eine Messreihe aufzeigen, welche Variante die bessere ist. Zum Glück gibt es auch Tipps für die nicht-alltägliche Arbeit. Ebenfalls mit Garantie für performanteren Code.
Insgesamt bewegen wir uns hier auf einem sehr hohen Niveau. Vergleichbar mit der Formel 1, wenn es um Autorennen geht. Wir reden hier von Optimierungen im Millisekunden bzw. Mikrosekunden Bereich, wenn sie einzeln gemessen werden. In Summe betrachtet kann die Ersparnis jedoch viel höher ausfallen. Das hängt ganz davon ab, wie oft der Code durchlaufen wird. Zwei kleine Rechenbeispiele: Spart man bei einem Aufruf 1 ms, dann macht das bei 1 Mio. Aufrufen fast 17 Sekunden aus. Oder: Spart man 10 Mikrosekunden pro Aufruf, dann macht das bei 100 Mio. Aufrufen ebenfalls fast 17 Sekunden aus. Und 100 Mio. Aufrufe kommen mal schnell zusammen, beispielsweise beim Kreuzprodukt zweier Collections mit jeweils 10000 Einträgen.
In Zeiten von Cloud Computing, Big Data und AI spielt die Performance eine immer wichtigere Rolle. Je schneller und ressourcenschonender eine Anwendung zum gleichen Ergebnis kommt, desto größer der Gewinn in Zeit und Geld.

Risks of IDisposable en de

The aim of this session is to sensitize the audience to the risks posed by IDisposable. Various "infection chains" are shown and problems are described that can occur with an incorrectly implemented Dispose pattern or incorrect handling of IDisposable.
Many of the exceptions that occur are not immediately attributable to a faulty dispose / dispose pattern. The exception types are very complex. This makes it difficult to find the cause.
After the session, you will have developed a feeling for the far-reaching consequences of IDisposable.

Risiken von IDisposable en de

In dieser Session geht es darum, den Zuhörer für die Risiken zu sensibilisieren, die von IDisposable ausgehen. Verschiedene “Infektionsketten” werden aufgezeigt und Probleme geschildert, die mit einem fehlerhaft implementierten Dispose Pattern oder falschem Umgang mit IDisposable auftreten können.
Viele der auftretenden Exceptions sind nicht gleich einem fehlerhaften Dispose / Dispose Pattern zuzuordnen. Die Exception-Typen sind sehr vielschichtig. Das erschwert die Ursachenforschung.
Nach der Session hat man ein Gefühl dafür entwickelt, welche weitreichenden Konsequenzen IDisposable mit sich bringt.

Clean Performance: Striking the Balance between Clean Code and High Performance en de

In this session, we explore the challenging realm of Clean Performance within the context of .NET C#. We delve into the world of software development, where clean code and optimized performance are often perceived as opposing forces. We illuminate practical strategies for finding the equilibrium between the principles of Clean Code and the demands for high performance. We discuss proven methods and design principles that enable the crafting of performant code without compromising readability, maintainability, and extensibility. This session is tailored for developers seeking a deep understanding of optimizing .NET C# applications to efficiently and sustainably shape software projects.

Target audience: software developers. Preferred duration: 60 min.

Clean Performance: Die Balance zwischen Clean Code und Höchstleistung en de

In dieser Session erkunden wir die anspruchsvolle Herausforderung der Clean Performance im Kontext von .NET C#. Wir tauchen ein in die Welt der Softwareentwicklung, wo sauberer Code und optimierte Performance oft als Gegensätze wahrgenommen werden. Wir beleuchten praxisnahe Strategien, wie man die Balance zwischen den Grundsätzen des Clean Code und den Anforderungen an Höchstleistung findet. Diskutiert werden bewährte Methoden und Designprinzipien, die es ermöglichen, performanten Code zu schreiben, ohne dabei die Lesbarkeit, Wartbarkeit und Erweiterbarkeit zu vernachlässigen. Diese Session richtet sich an Entwicklerinnen und Entwickler, die einen tiefen Einblick in die Optimierung von .NET C#-Anwendungen suchen, um Softwareprojekte effizient und nachhaltig zu gestalten.

Zielpublikum: Softwareentwicklung. Bevorzugte Sessiondauer: 60 min.

Carlos Fernandez

M.C.Sc., Senior Software Developer, DATEV eG

Nürnberg, Germany

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top