Dipl.-Inf. Désirée Graf

Bild
{

Ich arbeite seit über 10 Jahren als Full-Stack-Developer in verschiedenen Rollen, in unterschiedlichen Projektkonstellationen mit einer Vielzahl von Technologien. Dabei ist mir die Vereinbarkeit von Deadlines, Funktionsumfang und Codequalität sehr wichtig. Ein besonderes Augenmerk habe ich dabei immer auch auf die Sicherheit des entstehenden Gesamtsystems.

}

Expertise

Softwareentwicklung:
  • Vorstellung, Planung und Umsetzung der Anforderungen in einem agilen Team
  • Entwurf individueller technischer Konzepte
  • Projektleitung, Controlling und Koordination des Teams
  • Architektur
  • Fullstack
  • Requirements Engineering
  • Qualitätssicherung
Security & Software-Audits:
  • DevSec
  • Architektur- und Code-Reviews
  • Statische Code-Analyse
  • Penetration Testing

Zusätzliche Qualifikationen

Zertifikate:
  • iSAQB Certified Professional for Software Architecture (iSAQB-CPSA-F)
  • Web Fundamentals
  • Junior Penetration Tester
Seminare:
  • Sicherheit für Webanwendungen
  • iSAQB-Advanced-Level Modul - Domain Driven Design
  • iSAQB-Advanced-Level Modul - IMPROVE: Verbesserung von Softwarearchitekturen
  • TypeScript

Projekterfahrung

  • 2019 – 2023: Lead Software Developer, E-Business, Schweizer Unternehmen

    Rolle: Lead Software Developer
    Standort: Zürich
    Branche: E-Business
    Kunde: Schweizer Unternehmen

    Projekt:

    Ziel des Projekts war die Konzeption und Umsetzung neuer, großer Features in die bestehende Web-Anwendung. Dazu gehörte zum Beispiel die Konzeption und Umsetzung einer mehrstufig mandantenfähigen Userverwaltung inkl. des Rollen- und Rechtemanagement, die Anbindung eines Drittsystems in einem sicherheitskritischen Kontext sowie ein UI/UX-Redesign der kompletten Anwendung.

    Tätigkeiten im Projekt:
    • Planung der neuen Feature mit allen Stake Holdern und erfassen der Anforderungen in User Stories
    • Entwerfen der technischen Konzepte
    • Einführen neuer Technologien und Methodiken
    • Vorstellen, Planen und Umsetzen der Anforderungen in einem agilen Team
    • Koordination des Teams
    • Qualitätssicherung
    • Software-Audit
    Technologien:
    • C# mit .NET Core, .NET Framework
    • TypeScript und Angular
    • JQuery und Kendo
    • LESS/SASS und Bootstrap
    • EntityFramework und MSSQL
    • OpenAPI
    • AzureDevOps und Octopus
    • IIS
  • 2018 – 2023: Projektleitung | Lead Software Developer, E-Government, Schweizer Behörde

    Rolle: Projektleitung | Lead Software Developer
    Standort: Bern
    Branche: E-Government
    Kunde: Schweizer Behörde

    Projekt:

    Wartung und Weiterentwicklung der bestehenden Webanwendung. Durch ein Software-Audit wurde die Anwendung auf bestehenden Sicherheitsrisiken hin analysiert. Als Ergebnis wurden die Risiken priorisiert mit einem Vorschlag, wie die Risiken innerhalb des gegebenen Budgets bestmöglich reduziert werden konnten. Dazu gehörten u.a. einige Um- und Ausbauten anfälliger Technologien und Bibliotheken sowie das Upgrade von z.B. Spring auf die neuste Version. Der Vorschlag wurde dann anschließend in Time-and-Budget umgesetzt.

    Tätigkeiten im Projekt:
    • Projektleitung, Controlling und Koordination des Teams
    • Software Audit mit Sicherheitsanalyse
    • Entwurf von technischen Konzepten
    • Vorstellung, Planung und Umsetzung der Anforderungen
    • Qualitätssicherung
    Technologien:
    • Java mit Spring und JSF
    • JS mit npm
    • Apache Torque und Oracle
    • Selenium-Tests
    • OWASP ZAP
    • OWASP Dependency Check
    • Ansible, Docker, Jenkins und Maven
    • Apache Tomcat
  • 2018 – 2019: Lead Software Developer, E-Business, Telekommunikation

    Rolle: Lead Software Developer
    Standort: Konstanz
    Branche: E-Business
    Kunde: Telekommunikation

    Projekt:

    Die Aufgabe war die Neukonzeption eines bestehenden Systems. Dabei lag das Hauptziel in der signifikanten Verbesserung von Verfügbarkeit, Skalierbarkeit und Performance. Diese Ziele wurden erfolgreich umgesetzt durch die durchdachte Anwendung des HATEOAS-Prinzips in Kombination mit der Implementierung eines sorgfältig ausgearbeiteten Caching-Konzepts.

    Tätigkeiten im Projekt:
    • Entwurf des neuen Systems
    • Planung und Entwicklung im agilen Team
    • Koordination des Teams
    • Qualitätssicherung
    Technologien:
    • C# mit .NET Core
    • EntityFramework und PostgreSQL
    • Elasticsearch
    • TeamCity
    • IIS
  • 2015 – 2018: (Senior) Software Developer, E-Business, Telekommunikation

    Rolle: (Senior) Software Developer
    Standort: Konstanz
    Branche: E-Business
    Kunde: Telekommunikation

    Projekt:

    Die Aufgabe war die Weiterentwicklung eines bestehenden Systems, welches über die Jahre inhomogen gewachsen ist. Dabei lag der Fokus auf der Refactoring des Systems mit dem Ziel, die Wartbarkeit und Erweiterbarkeit des Systems zu verbessern. Ein weiteres Ziel war die Steigerung der Performance besonders zu Spitzenzeiten. Hier konnten wir durch den Einsatz von Redis als Cache eine deutliche Verbesserung erreichen.

    Tätigkeiten im Projekt:
    • Konzeption, Planung und Umsetzung der Anforderungen in einem agilen Team
    • Qualitätssicherung
    Technologien:
    • C# mit .NET Framework
    • EntityFramework und PostgreSQL
    • Redis
    • Elasticsearch
    • TeamCity
    • OpenAPI
    • IIS
  • 2014 – 2017: (Senior) Software Developer, E-Government, Schweizer Behörde

    Rolle: (Senior) Software Developer
    Standort: Bern
    Branche: E-Government
    Kunde: Schweizer Behörde

    Projekt:

    Ziel des Projekts war die Ablösung einer Plattform durch die Neuentwicklung einer neuen Webanwendung.

    Tätigkeiten im Projekt:
    • Umsetzung der Webanwendung in einem agilen Team
    • Datenmigration der alten Anwendung auf die neue Anwendung
    • Qualitätssicherung
    Technologien:
    • Java mit Spring und JSF
    • JS mit npm
    • Apache Torque und Oracle
    • Selenium-Tests
    • Jenkins und Maven
    • Apache Tomcat
  • 2015 – 2016: Software Developer, E-Government, Deutsche Behörde

    Rolle: Software Developer
    Standort: Konstanz
    Branche: E-Government
    Kunde: Deutsche Behörde

    Projekt:

    Ziel des Projekts war die Wartung und Weiterentwicklung einer bestehenden Anwendung.

    Tätigkeiten im Projekt:
    • Umsetzung der Anforderungen
    • Update des Systems, u.a. Spring, Java, Umstellung von JSP auf JSF
    • Qualitätssicherung
    Technologien:
    • Java mit Spring und JSP/JSF
    • JS mit npm
    • Apache Torque und Oracle
    • Selenium-Tests
    • Jenkins und Maven
    • Apache Tomcat
  • 2014 – 2014: Software Developer, CMS, Deutsches Unternehmen

    Rolle: Software Developer
    Standort: Konstanz
    Branche: CMS
    Kunde: Deutsches Unternehmen

    Projekt:

    Ziel des Projekts war die Erstellung des Kundenbereichs für ein CMS. Dabei musste der Bestell- und Bezahlprozess abgebildet und ein Zahlungsanbieter eingebunden werden.

    Tätigkeiten im Projekt:
    • Umsetzung des Kundenbereichs im agilen Team
    • Anbindung des Zahlungsanbieters
    Technologien:
    • Python mit Django
    • celery
    • virtualenv und wheels
    • Redis
    • MySQL
    • LESS und Bootstrap
    • jQuery
    • Ansible und Jenkins
  • 2013 – 2014: Software Developer, E-Business, Telekommunikation

    Rolle: Software Developer
    Standort: Konstanz
    Branche: E-Business
    Kunde: Telekommunikation

    Projekt:

    Ziel des Projekts war die Erstellung eines Adminbereichs für eine Webanwendung.

    Tätigkeiten im Projekt:
    • Umsetzung des Adminbereichs im agilen Team
    • Qualitätssicherung
    Technologien:
    • Java mit Spring und JSF
    • Groovy
    • Selenium-Tests
    • Jenkins und Maven
    • Apache Tomcat
  • 2012 – 2012: Software Developer, Insurance, Frauenhofer IAO

    Rolle: Software Developer
    Standort: Stuttgart
    Branche: Insurance
    Kunde: Frauenhofer IAO

    Projekt:

    Webanwendung zur Geschäftprozessoptimierung aus Laufzeitdaten

    Tätigkeiten im Projekt:
    • Konzeption und Umsetzung
    Technologien:
    • Java
    • BPMN 2.0
    • WEKA
    • Oryx
    • jQuery
    • Ant
    • Apache Tomcat
  • 2010 – 2011: Software Developer, Insurance, Frauenhofer IAO

    Rolle: Software Developer
    Standort: Stuttgart
    Branche: Insurance
    Kunde: Frauenhofer IAO

    Projekt:

    Webanwendung zum Geschäftprozess-Monitoring

    Tätigkeiten im Projekt:
    • Umsetzung im agilen Team
    • Qualitätssicherung
    Technologien:
    • Java
    • BPMN 2.0
    • Oryx
    • jQuery
    • Ant
    • Apache Tomcat

Technologien

Technologien, Sprachen und Frameworks:
  • OWASP
  • C# und .Net Core / .NET Framework
  • Java und Spring
  • Python und Django / Panda / PyTorch / Celery
  • TypeScript
  • Angular
  • JavaScript und JQuery
  • CSS und LESS / SASS / Bootstrap
  • OpenID, OAuth, JSON Web Token und SAML 2.0
  • SQL und EntityFramework / Hibernate / Apache Torque
  • BPMN 2.0 und BPEL
  • HTML5
  • XSD/XML
  • HTTP/HTTPS, TCP/UDP, FTP/SFTP, SSH...
Methodiken:
  • Agile Entwicklung (Scrum, Kanban)
  • V-Modell XT
  • Clean Code, SOLID, Design Patterns...
  • Testautomatisierung (Testpyramide, Unit-Tests, Integrationstests und Systemtests)
  • Test-driven Development (TDD)
  • Penetration Testing
  • DevSec, Shift-Left
  • Architektur- und Code-Reviews
  • Strukturierte Refactorings z.B. Mikado
  • Requirements Engineering
Architektur:
  • Business Process Management (BPM)
  • Dokumentation (arc42, Architekturentscheidungen, Sequenzdiagramme, Kontextdiagramme, Systemarchitektur, UML, ERM...)
  • API Design (REST, SOAP, Messaging).
  • Verteilte Architekturen / Microservices
  • Asynchrone / Parallele Datenverarbeitung
  • Observability (Logging, Monitoring, Tracing)
  • Skalierbarkeit
  • Schichtenarchitekturen
  • Domain-driven Design (DDD)
  • Continuous Integration / Continuous Delivery (CI/CD)
Tools:
  • Entwicklung: Git, Jira, Trello, Confluence, GitLab, Bitbucket...
  • Entwicklungsumgebungen: Intellij, Visual Studio, Resharper, Visual Studie Code, Eclipse...
  • Penetration Testing: OWASP ZAP, Postman, Metasploit, Hydra, NMAP...
  • Software Audit: OWASP Dependency Check, NDepend, dotCover, Findbugs / Spotbugs, SonarQube...
  • Infrastruktur/Ops: Azure DevOps, Docker / Docker-Compose, Teamcity, Jenkins, Maven, Ansible, venv, NodeJS, npm, UCD...
  • Datenhaltung: Oracle, PostgreSQL, MSSQL, MySQL, MariaDB, Elasticsearch, Redis...
  • Server: IIS, Apache Tomcat, JBoss, Shibboleth...
  • Betriebssysteme: Linux, Windows, MacOS