Web Engineering Un-conference: Round up

I was writing up some notes from my time visiting the WEUC recently and thought, why not share them too! So this is a round up of the talks I went to and some very brief content. Most of them have been simplified down to the bits I wasn’t aware of and found interesting.


  • Talk 1: AI, Categorisation: Supervised (e.g. Labelling) vs. Unsupervised (e.g. clustering). All very interesting, the most interesting part (but very … hard) was the mention of what lead to the ‘break-through’ in LLVM’s like chatgpt (as well as better GPUs and bigger data) - the ‘Attention’ mechanism.


  • Talk 2: Server side rendering. Rendering with languages like PHP on the backend is bad as it requires knowing JS and PHP and mixes them all together (such is his opinion). Full on JS frameworks bad as they lead to nothing rendered on screen for a long time (while 6mb of JS is downloaded). The solution (could be?) Server side rendered JS frameworks. He said don’t use React (they themselves also say not to use it). Instead use a framework built on it, e.g. Gatsby, NextJS or Remix.

One interesting part that was mentioned was climate change. Why don’t we get appropriate servers to render pages, not people’s mobiles, surely they’re more efficient for the climate? Well actually SSR renders it on the back-end AND the front-end through hydration.


  • Talk 3: Doctrine & ORMs (by a maintainer of Doctrine, so probs biased). He acknowledged the good and the bad parts of ORMs. They can easily lead to more n+1 queries and performace issues. But he argued that using them is the answer, but when things get too complex instead using SQL through the DBAL and their adapter as the best option (cited 80/20 problem) - even if the problem’s in the 20% of time, no reason to ignore the benefits 80% of time.

There was also talk on hexagonal architecture (which was new to me): https://en.wikipedia.org/wiki/Hexagonal_architecture_(software)

  • Talk 4: A very German discussion on automated testing, when and where.


  • Talk 5: Debugging PHP (itself). I learnt about the difference between physical memory addresses and logical addrs (one being reality and the other being a map produced by the OS). Mainly on how to debug a ‘Segmentation Fault’ produced by PHP. You can use the gnu debugger, gdb to find the line of C that it broke on. This won’t be very useful unless you build the php binary yourself with debug info included. You can then use gdb funcs from inside: https://github.com/php/php-src/blob/master/.gdbinit to get the exact php line. If this is on a server, you can use ‘core’ files to capture the memory at the time of the crash and read it through gdb on local.

  • Talk 6: Leadership (from the Military). Some advice on leading a team from someone who’s been through miliary training.

    • Hand on the shoulder (go through it together)
    • You cannot succeed without others
    • We go home together (results matter, but so do people)
    • Just do it (push your limits, they might not be what you think they are)
    • Forget yesterday, need to reprove yourself
    • Procedure over Improvisation (have proccesses that people can follow)
    • Context over Control (Provide the why we’re doing something, but the team can often control how)
    • Greater Purpose (Awarness + question decisions)