I'm Clemens, a fullstack web developer living in Tyrol, Austria, with 20 years of experience in software development.

I work between frontend and backend. Most teams split those two. I like being the person who can follow a bug from the click to the database row and back.

Where I come from

I started in 2005 on the backend, with Java and the Struts framework. In 2012 I moved to the frontend and spent many years with Ember.js, building web applications and contributing to Ember.js. I was a member of the EmberData core team.

In 2017 I came back to the server through Elixir and started to feel comfortable across the fullstack. Today I build with Elixir, Phoenix and LiveView. On the frontend I no longer reach for a specific framework. I use the native Web APIs and powerful libraries where they fit.

How I work

I automate everything I'd otherwise do twice.

  • One command to start. Every project has its own small CLI built with Task. task dev installs what's missing, starts the database, the server, a local proxy and the test watcher. A new machine is set up in one step.
  • LiveView, with hooks. Phoenix LiveView renders on the server. Where the browser needs more, I use hooks extensively to bring in great JavaScript libraries, like Atlassian's Pragmatic drag and drop or GitHub's text-expander-element.
  • Tests that run the real thing. Unit tests with ExUnit, and end-to-end tests with Playwright against the real server, each in its own database transaction, in parallel.
  • CI and CD. Every push runs the tests on GitHub Actions. If they pass on the main branch, it deploys.
  • One template. New projects start from the same template. When the template improves, the projects pull the change in.

Work with me

I currently work as a freelance software consultant, and you can hire me for contract work. I'm also thinking about moving into a permanent role in a team: part-time, or full-time. Remote works, and so do on-site and hybrid.

Send an email to cmueller.418@gmail.com.

I'm @pangratz on GitHub.