Patrick Bédat

Taming complexity since 2006.

Reading List Side Projects CV

Software sucks: It is slow, it is expensive, it is unreliable -- and it eats the world. Many companies try to show you they can manage that by using not only the latest technology but also the fanciest methods. But do you know what? Hard problems are hard. Neither software nor agile processes solve them -- humans do. I do.

I listen carefully, learn, clarify, then structure, try to simplify and if nothing helps: Write software. Although I love to code, I never rush to solutions -- my only interest is software, that delivers a spot on solution. I try to achieve this with a very simple, yet powerful technique: By writing things down. You can waste a lot of words and precious time in meetings, but you can't solve problems with opinions or lofty user stories, you solve them with diligence and well structured arguments.

Let me be honest with you: Nobody can forecast and estimate the result, cost or timeline of a software project. If I could just draw a plan and put numbers to it, as in other engineering disciplines, software projects wouldn't be so bad. Unfortunately, we have to plan as we go. The only thing I can promise is to ruthlessly simplify every problem to its core, to reduce the risk of solving problems, that never existed. I don't want to be agile to make software development "easier". I'm agile to empower you to make the right decisions at the right time.


Side Projects

Experiments, crazy ideas and technology proof of concepts

Don't expect to see highly documented, well tested and perfectly structured code here. This is not about how I code -- it's about how I think!

Project 🔗 Description Repository
timesheet (Under active development) A very simple time tracking application, that aims to lower the burden of tracking time to an enjoyable minimum. It's optimized for mobile, because time tracking should be as easy as responding to a text message.
talky See the "Hello" button on the bottom of the page? That's talky! Built with streambin and mailfu. Coming soon...
mail-fu I love the simplicity and robustness of email; and I like to (mis)use it as a simple interface into applications, like my reading list. mail-fu let's you receive emails through a server sent event stream, which is basically just a http stream -- something that's also very simple and robust! Coming soon...
streambin I love working with http server sent event streams. They are simple, work everywhere and handle connection problems gracefully. Because it requires some configuration to set them up properly, I decided to create service for that. It also provides some basic and helpful security and management functionality. GitLab
super-eighty To quote myself here:
Imagine you could launch a http server from anywhere and access it instantly online without deployment.
I built super-eighty, because I wanted to be able to demo http services from my local environment without deploying it (setting up server configuration, domain, etc.)
GitLab
Tetris There is one christmas tradition I have: write a game for christmas every year. This year its Tetris! I know the UI looks not very appealing, but the crux is that you can also play it in your terminal: npx pbedat-tetris. Both games share the same functional core and that's why I think it's awesome. GitLab
sign-warp When I'm writing software for myself the number one thing I'm looking for is simplicity -- it makes maintenance and my life so much easier. When I though about how I could add authentication to any of my services without deploying something sophisticated the result was sign-warp. Instead of the typical complex register, confirm email, enter password worflow, we turn the scheme around: "Here is a secret: Send it to us through your email". You can try it here GitLab

About me

Patrick Bédat - the man
Age
Born in Erding (Germany)
Nationality German
Living in Oberding (Munich)
Hobbies Programming, gaming, hiking and cooking

(Top) Skills

Ordered descending by mastery

Languages

  • TypeScript
  • JavaScript
  • C#
  • DB: SQL (MySql, Postgre), RethinkDB, MongoDB
  • PHP
  • Java
  • Scheme dialects

Frameworks

  • JS: React, Angular 1/2, Vue, Rx.js
  • Node.js: express, graphql
  • CSS: Bootstrap, Material, Milligram
  • C#: Nancy, NServiceKit, ORMLite, ASP MVC, RX
  • PHP: Slim, Underscore

Techniques/Methods

  • (Pragmatic) Agile
  • Unit and E2E Testing
  • REST, GraphQL
  • Flux, Redux
  • MVC, MV*
  • Microservices
  • Reactive Programming
  • Building Compilers
  • Functional Programming
  • CI, CD

Platforms and Tools

  • Linux (Debian derivates), Windows
  • Docker
  • Gulp
  • Node.js / NPM
  • System.js / JSPM
  • Apache, Nginx
  • AWS, Terraform
  • Bamboo

Professional Experience

Q3/2019

Senior Software EngineerColiquio GmbH

I spent my time at Coliquio, implementing state of the art user experiences for physicians and pharma customers. On the architecture advisory board, I helped to shape the future organisation and architecture of the engineering division.

(React, Next.js, Node.js, Terraform, AWS ECS, GitLab)

2012 - 2019

Senior Software Engineer iXTS GmbH, Aschheim (IT consulting)

  • Responsible for technological key decisions and concepts
  • Technical lead in multiple projects
  • Full stack development of different web applications

Projects/Customers

  • BMW AG

    Leading the development of a high complex enterprise web application (client and api design). Responsible for the architecture, basic frameworks, concepts and training.

    The most challenging aspects of the application are

    • the high level of entanglement of enterprise processes and the corresponding data.
    • a user base, coming from a legacy desktop application, that is used to Excel-Like editing experiences
    • operating over incredible large datasets in datagrids on the client

    (C#, dotNetCore, ASP Core, React/Angular 6+, Typescript, Bootstrap)

  • Westfunk GmbH

    Responsible for the architecture and implementation of a editorial management software for radio stations of the Westfunk GmbH. The software helps editors to create and share news and media content, plan the flow of the daily news and to distribute news to the web.

    The software is also used for shift management and rewarding freelance editors, based on published contents or worked shifts. While content can also be shared across radio stations, multiple distributed instances of the software, coordinated by a master, are working interconnected.

    (C#, ASP Web API, PostgreSQL, NServiceKit OrmLite, React/Angular 1.x, Bootstrap)

  • Media Carrier GmbH

    The digitalization of traditional print publications is a very unruly terrain and a market that is yet to be developed. Media Carrier offers their B2B customers all around the globe a vast assortment of publications and flexible solutions to integrate existing business workflows with the Media Carrier platform. E.g. as a Lufthansa passenger, you receive free downloads for digital content, depending on your booking class and status.

    In the early days the legacy php application was hosted on a single machine, running out of capacity. As their customer requests became more an more complex and the product gained traction, we took over and transformed the entire software into a distributed, scalable, accessable and flexible plattform.

    Apart from leading the development, I am responsible for requirement analysis, software and operations concepts and deployments.

    (C#, Nancy, PHP, Slim, Angular 1.x, Bootstrap, Docker, AWS)

  • PCCM

    Partial rewrite and transformation of a computer monitoring software from desktop application to a distributed web application. (C#, ASP MVC, WiX)

2010 - 2012

Software Engineer Tonakademie GmbH (Startup), Erding

Schwerpunkte: Anbieter einer Online-Musikschule

Technologien: C#, Mono, Mono for Android, ASP MVC 2, MongoDB, MySQL, Backbone.js, Flow Design, HTML5, jQuery

Tätigkeiten:

  • Konzeption der Gesamtarchitektur
  • Analyse und Umsetzung der Kundenwünsche
  • Programmierung der Geschäftsprozesse
  • Datenbankdesign
  • Programmierung des Web Frontends
2009 - 2010

Junior Software Developer DPS GmbH, Erding

Schwerpunkte: Individualsoftware (C#.NET) im Bereich Aviation

Tätigkeiten:

  • Erstellung einer AJAX Bildergallerie als Plugin für DotNetNuke
  • Programmierung einer Simulationssoftware für Fahrzeugtelemetrie und –telematik
  • Proof of Concept für die Integration von Oracle Advanced Queues als Kommunikationstechnologie für bestehende Software
2006 - 2009

Junior Software Developer Siemens IT Solutions GmbH

Schwerpunkte: ERP Software im Bereich PM, Deployment und Betreuung von PC- Clients auf Hauptversammlungen

Tätigkeiten:

  • Schreiben von Skripts für die automatische Bereitstellung von Client-PCs
  • Erstellung einer Überwachungslösung für Client-PCs
  • Erstellung einer Software für Inventarverwaltung
  • Erstellung einer Software zur Unterstützung des Backoffice der Siemens Hauptversammlung
  • Verbesserung einer Vertragswesen Webapplikation mit AJAX
  • Realisierung eines Billing Agenten zur Abrechnung von PAAS Diensten