Skip to content
View luhmann's full-sized avatar

Block or report luhmann

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
luhmann/README.md

I'm a freelance software engineer/consultant. My passion is Frontend Development, but software is about making promises to your users and keeping them, which is why I excel in Fullstack roles. I help motivated teams deliver exceptional experiences. I don't do permanent positions.

Technical Experience

19 years of experience across the stack:

  • Frontend: TypeScript, JavaScript, CSS, HTML
  • Frameworks: React, Vue.js, Angular, Svelte, Next.js, Remix, Solid
  • State & Data: RxJS, GraphQL, Apollo, Relay
  • Backend: Node, Express, Fastify, Serverless
  • Testing: Vite/Vitest, Playwright, Jest, Cypress, Selenium
  • Functional: Elm, ReScript/Reason, ClojureScript
  • Elixir Ecosystem: Elixir/Erlang, Phoenix, Ecto, Absinthe
  • JVM: Kotlin, Scala, Java, Spring
  • Python: Flask, Django
  • PHP: Symfony, Zend
  • Databases: PostgreSQL, MySQL, MongoDB
  • DevOps: Kubernetes, Docker, AWS, Google Cloud Platform, Azure
  • Methodologies: FP, OOP, DOP, Immutable Data

Beliefs

Technologies don't matter much. Your tools should solve your problems, and nowadays they all do. There are very few right and wrongs, almost everything is a tradeoff.

Pragmatism, Empathy and Ownership are non-negotiable values.

Unblocking your fellow programmers, product owners and project managers is your most important daily task.

Complexity is the cause of all frustrations in programming. Avoid it. It's usually a sign things are not fully understood yet.

Maintaining software is giving love to what makes you money right now.

Communication is unlikely, time-consuming and can be frustrating. Get it right anyway.

Things can be known and understood.

Knowledge must be pulled in, no one hands it to you.

Those weird edge cases aren't deficiencies — they're human idiosyncrasy. Embrace them.

If you want something to change, the best way is a PR.

Fast feedback loops come first: This means comprehensive tests, fast builds, frequent releases, a working solution for test data and testing environments, linting, static types, automatic formatting. Also POs, UX specialists, QA engineers and OPs guys that are always happy to talk to you.

Do TDD when you know exactly what you want upfront. Accept that you rarely do.

Document. Think READMEs instead of wikis. Keep them next to your code. Document decisions, not implementations. Make onboarding effortless. Accept that true understanding cannot be gained from text.

The omnipresence of software means that it guides and thus limits in a very real way what people can say or do. It is your responsibility to enable them to achieve what they want. They will gladly pay you money for it. They most often will not know what they want until they see it. This should not be a cause for frustration, but iteration - preferably with solid metrics.

If you are interested in hiring me, you can contact me through my website. Link is in the sidebar.

Pinned Loading

  1. hired hired Public

    A time-tracking-app written with mobx, react, typescript and firebase

    TypeScript 9 1

  2. reason-beer reason-beer Public

    What brew goes with your food? A simple beer-paring app written in ReasonML.

    JavaScript 5

  3. photography-portfolio photography-portfolio Public

    Private photography portfolio built using GatsbyJs

    JavaScript 1

  4. stuck stuck Public

    VueJs Application to remember your last played songs on Spotify

    JavaScript 1 1

  5. evernote-to-raindrop-exporter evernote-to-raindrop-exporter Public

    Export your Evernote-Notes that contain a url (usually added by the Evernote Webclipper) to raindrop.io.

    TypeScript 12 1

  6. svelte-speedtest svelte-speedtest Public archive

    Provides a setup that can measure the actual internet-speed of your connection as opposed to what you should get per contract

    TypeScript 1