Wearing a suit doesn’t make you immune to peer pressure

It seems to me that there is a point in a person’s life, career, and/or seniority, where following the crowd stops being called ‘peer pressure’ and starts being called things like, ‘reacting to market sentiment’.

Admittedly, I am a bit too young1 to remember the dot-com bubble popping. At the time, I was running around my primary school playing field, blissfully unaware of anything outside my little corner of the world. I have a vague memory of a school friend’s Dad losing their job2, but as my Dad worked for the Ministry of Defence, it didn’t really affect me. Actually, I was much more interested in the occasional rolling roadblock flanked by MoD Plod3 than anything even remotely compooterz related.

I say this to admit that I don’t know what it felt like in the run-up to that crash. Neither, really, what it was like in 2008. By that point I’d started at Uni, now more interested in computers than roadblocks, I was still too busy running around.

What I do know is what the industry has felt like since 2010, when I got my first tech job.

Smartphones, and Web2.0 fully usurping “the old internet”. The rise and domination of Facebook, and their purchase of Instagram. Twitter and The Arab Spring. Uber4, Silkroad and the first Bitcoin spike ($21 high!), and how Smart Contracts would change the world. The Gamification of everything. Silicon Valley’s brief flirtation with an abundance mindset. The release of Google Cardboard, Oculus, and the HTC Vive5, and how VR was going to change the world revolutionise global entertainment. The second, third, forth crypto spikes. Various rug pulls and straight up theft. Bitcoin ETFs, the Winklevii. Later, NFTs being a thing, and then very much not. Chatbots going from natural language search of dense knowledge bases, to the solution for every website.

The elevation of Will MacAskill6 from interesting philosophical curiosity, to the billionaires’ favourite guru. The release of GPT-3, the pandemic7 and remote work hiring boom. GPT-4, Claude, DeepSeek, and the positioning of LLMs as proto-AGI, and the ensuing arms race.

This period was full of useful progress.

For all their many, many, faults – Facebook was better social media than what came before. Uber did genuinely improve the experience of ordering taxis.8 Bitcoin, and crypto more broadly, was excellent for bypassing incredibly expensive money transfer systems like TransferWise. This is incredibly useful for migrant workers wanting to safely and reliably send money back home to their families. And, obviously, really useful as a pseudo-anonymous means of payment for a variety of things.

But something changed, and while I can’t really put my finger on when exactly that was, I feel it was around the time that ‘web3’ starting to be thrown around.

To me, Web3 has always felt like a random assortment of technologies, unified as technology-first tools, all looking for problems to solve. For me this is namely Blockchain, cryptocurrencies, VR, and AI. There may be others you include, or don’t.

VR is objectively cool, but severally limited in practical application. Even Apple, with all their billions, haven’t been able to make it useful9. Blockchain is terribly energy inefficient for transactions when done via Proof of Work, while Proof of Stake has serious trust problems for a supposed zero-trust decentralised network. Transaction costs are insanely high for everyday small purchases, leading to the minimal uptake we see in legit merchant contexts. The continued necessity to cash out into a local currency10, often in large increments to minimise the fee ratio, further compounds the problem.

And then we have LLMs.

LLMs are incredible. While I’ve always enjoyed writing, it’s never been something I’ve found particularly easy. Having what is in effect my own personal sub-Editor running in-browser11 helps me better structure my thoughts, and keep my phrasing clear and simple12. It’s not perfect, far from it, but it is very helpful.

The current generation of LLMs are incredibly sophisticated predictive text, and that is great. Friends of mine with dyslexia, or various other neuro-diversities, or normies who just appreciate a hint every now and again, have found it to be a complete game changer.

I’ve also had particularly positive experiences using Claude to help me think around some problems we’ve faced at the foodbank, such as safe loading procedures. It being able to provide direct links to legislation and best practice documentation is awesome. Natural language search is a hard problem, and these tools make significant improvements on what has come before.

A single technology being sufficiently adept at addressing both of these problems is really cool.

But, it’s also very clear that there is a genuine panic in the industry right now.

Across the board, every sector within the industry is trying to shoehorn “AI” in to their products. I’ve been told stories where devs have been directed to replace existing traceable algorithmic decisions for things like financial eligibility, with a GPT call. That 30% of code must be “AI written” by the end of the year. That all customer service enquiries will be answered by an LLM driven chat bot, with no human approval13. And even that user-provided content should be modified, without their knowledge or approval, before being displayed to other users.

The message I take from this is simple – it’s FOMO.

Companies are looking, top down, at what everyone else is claiming, but knowing that they themselves are struggling to make this work. So surely they must be missing something.

What they’ve done so far isn’t something they particularly confident is right for their business, but because their peers are doing it, they must have found the secret sauce.

Every CEO of every FTSE and Fortune business is singling AI out as the gaming changing tech, so it has to be…

Right?

Back in 2000, if I’d’ve done something I didn’t agree with, just because my friends in the playground did, my teacher would have called that peer pressure. She would have reminded me that just because others are doing something, it doesn’t mean I have to.

That desire to fit in, to not miss out, that if others are doing it surely it makes sense to do it too, doesn’t automatically go away when you leave school.

While part of maturing and ageing is learning how to better handle your emotions, fears, and impulses, periods of high stress can resort to us taking shortcuts.

And having shareholders, pension funds, VC, and big equity firms on your neck is rather stressful indeed.

Building sustainable, deep value businesses requires addressing human-level problems. FOMO doesn’t lead to reasoned responses, it instead prioritises reactive, knee-jerk, responses.

So, remember to take a breath, and remind yourself; “What is the problem I want to solve?”.

I promise you the answer isn’t, “I haven’t spent enough GPT credits”.

  1. Although, the increasing grey in my hair and speed I’m approaching 40 may suggest otherwise ↩︎
  2. Also the first person I knew who had a PC at home – and introduced me to Tomb Raider ↩︎
  3. From AWE Aldermaston, carrying surprising little, all under a black tarp ↩︎
  4. I was once asked to provide a cost quote for “the uber of social care”; they didn’t appreciate being sent a link to Uber’s crunchbase page which, iirc, said they’d had over 50bn in funding already. ↩︎
  5. And punching my friend’s ceiling after getting very disorientated trying to stroke a whale ↩︎
  6. No relation ↩︎
  7. No relation… ↩︎
  8. Now if only they treated their employees correctly ↩︎
  9. I do feel there is a genuinely viable usage for Augmented Reality – as a HUD for directions, etc – but all concepts seem to be based around forcing yet more advertising in to your eyes, which, well, who actually wants that? – beyond the people funding the development and paying for the ads of course ↩︎
  10. Or other coins, putting it well above the typical tech literacy of ‘normal’ people ↩︎
  11. I use LanguageTool, and highly recommend it ↩︎
  12. Or, at least as best it can dealing with the chaos that is my brain ↩︎
  13. And this is years after this has already blown up in company’s faces see Air Canada ↩︎

Mistakes

We all try, in our own ways, to be perfect. But everyone makes mistakes.

The past couple of months have been an interesting time at Palringo. A few times a year the offices converge on Newcastle for a “reset meeting” where we discuss our plans for the next 3-6 months, re-evaluate our current commitments, and scrap anything we no longer believe in.

The “Invite Centre” was originally conceived by Martin Rosinski approx. 6 months ago and presented at one of these meetings. I was tasked with making the largest user-facing project of 2013 (so far) a reality. The “Invite Centre” is how we plan to grow the Palringo community – and is heavily related to the Reputation and Achievements system I have detailed before. The “Invite Centre” would be the “big ticket item” for Palringo iOS v6.4 and Palringo Android v5.10.

Palringo iOS v6.4 was released on Monday 2nd Sept, 2013, our previous major release, Palringo iOS v6.2, was released on Monday 22nd July, 2013 – with a follow up bug-fix release, v6.2.1, on Monday 29th July.

Some background; all major releases will have up to 2 big ticket items – these are tasks that require a lot of development and testing time, and may not be apparent to the user. For v6.2 this was a transition to CoreData. A change of this scale will always result in bugs; the simple mantra of “the bigger the change, the more bugs there will be” always holds true. You can never test every combination, or find every bug – this is part and parcel of software development, and shouldn’t be a surprise to anyone reading this – our game is to minimise issues, and begrudgingly accept that you’ll never eradicate every idiosyncrasy, and celebrate when you do finally manage to terminate that one little bastard that has been haunting you for months.

The need for v6.2.1 was apparent early on, both from the reports we were getting back from TestFlight – an iOS crash reporting system – and our in-app Support team. The scope for the bug-fix was defined, fixes found and made, and the update released 7 days later – an impressive feat, especially when taking in to account the Apple Review Process, and the time it takes to get an app reviewed.

For all parties, v6.2.1 was an improvement – but still had more issues than pre-6.2 releases. This is another issue with updating any core functionality for a piece of software. Once you get the big bugs out of the way, you spend years continually polishing the code, ensuring it is running as best as it can. This level of polish is not possible to replicate in a month, or two, when you have to change something significant.

The “Invite Centre” is getting closer, so we barrel on through, deciding not to make another bug-fix release.

Feedback from our Support Dept is that the users are living with the current issues that still arise in v6.2.1, which I incorrectly assume means they are happy. They are not.

This was my first mistake.

We continue, and as the week becomes two, and then three, the complaints from our Support Dept increase. It is already the 20th August, with v6.4 meant to be our “August Release”, there are minimal signs of submission soon.

A meeting is called and we – myself, the devs, and QA – detail the situation, explaining that we aren’t happy with the current state of v6.4 and the fixes we have included. We don’t believe the experience will be any better (“We’ve not so much fixed the bugs, as just moved them to other places.”) and that there are a number of known bugs. One of our external testers continually experiences this bug, but cannot find a way to reproduce, and neither can we when plugged in to the debugger. We diagnose this bug as being “severe but infrequent”, and decide that we can live with it. We agree, in part due to the ever increasingly vocal complaints from our users, that we would fix the high priority bugs, and submit the app in close to its current state, acknowledging it isn’t perfect, but will be better when make these fixes.

This was my second mistake.

Once we have made all the agreed fixes, we submit to Apple.

We spend the week between submission and release attempting to reproduce the “blank messages” bug (as it is now known), to no avail. The App is approved over the weekend – Apple didn’t find it either – and I wait for Support to confirm that nothing has happened over the weekend for them to insist on a delay.

While I’m waiting, we finally reproduce the bug. It only occurs under very specific conditions. Firstly, you had to have minimal memory available – which in Palringo happens if you are in many, many groups, receiving hundreds of messages a minute – and secondly you receive a message (group or PM) when not viewing the messages tab.

My choice is simple;

  • Pull the approved app, which we know is an improvement for most, and hope we can find a fix in a short enough window of time to please the community that are increasingly vocal in their complaints about v6.2.1, or,
  • We release, and bug fix if required.

It is my decision – and the fact we can now reproduce the bug does not matter. The submission passed our locks with us knowing the bug existed, without a caveat of “if we can reproduce, we’ll pull”. This is different to a bug you suddenly find before a release – that would cause a delay for at least as long as it took to triage. Fixing bugs is an on going aspect of software development, when you find out how to fix them is irrelevant, if you’ve decided that you are happy with said bug being present.

I release the app.

This was my third mistake.

It would ultimately transpire that 99% of our user base would not be affected by this bug, and that v6.4 is a noticeable improvement – but the 1% it does, it is a continually reoccurring nightmare.

We get reports of users experiencing the bug every 4 minutes, that the app is unusable, that they need to downgrade. We cannot roll back the app – Apple don’t let you – and we can’t re-submit v6.2.1 due to the approval delay. We add text to the “What’s New” section of the App Store Description, telling high-usage users to not upgrade to this version of the app, as well as passing out the message in-app.

We start frantically fixing the bug. Either there is a problem in the locks, or, we made a mistake.

Release early, release often” is how we manage QA, nightly builds are increasingly common as we progress through the release cycle. Our bug-fix process barely differs from a standard cycle, and within a few hours we have a proposed fix and have pushed a beta release to our testers, with steps to re-create the situation. “Negative Testing” is some of the most time consuming software testing you can do – and is strongly related to the concept of proving a negative – and so all you can do is state that “these steps no longer seem to cause the problem(s)”. You can never really explicitly state the bug has be fixed.

I call a meeting Tuesday morning for Technical and QA, for 30 minutes we discuss just how we got here, why we are in the situation, have a full debrief, and discuss what we need to change. We have faith in our process, we admit, understand, and accept that the bug was misdiagnosed – we agree that, if we had to do it again, we would. We get back to work.

Our testers report back, things seem better…but different. We have new bugs. We apply yet more plasters, but it becomes clear that this is a fundamental issue with the framework.

The Technical Lead consults with me, and expresses his desire to rip out the back end, and completely re-implement the view. We decide that this is the best way forward.

A “functional but not pretty” beta is released with the old framework ripped out, and the stability improvements are apparent from the get go. A by product is that, because we removed the view completely, that specific bug can no longer exist.

Many more interim releases are made, and late Friday we make a final RC release to our beta team, and agree to submit to Apple in parallel. At the time of writing, we are awaiting approval.

So, what have I learnt?

  1. The balance between fixing bugs vs. new features is even more delicate that previously imagined; and it must be a balance, you cannot sacrifice one for the other.
  2. It is always better to delay something slightly, than make an action you cannot undo.
  3. Confirm your diagnosis of bugs is still true if presented with new evidence or data.
  4. If a bug is frequently encountered by one person, it will definitely be encountered by the many.
  5.  Everyone makes mistakes – but it is unforgivable to not learn from them.

Bookshelf I – Abundance: The Future Is Better Than You Think

After months of trying to finish off my Christmas Reading List – success eventually arriving in late February – I finally read “Abundance: The Future Is Better Than You Think” by Steven Kotler and Peter Diamandis. For those that haven’t yet read it, ‘Abundance’ extols – to a manifestoesque degree – a new hybrid of ‘Philanthrocapitalism’ and ‘Technophilantropy’, promoting – and in many cases, providing convincing proof – that using technology a rising tide really can lift all boats.

Health Care (23andMe), Energy (Elon Musk’s SolarCity, et al), Food (Vertical Farms and hydroponics), Freedom of Speech and Association (Twitter, Facebook, etc – Palringo being a noted absence), and Micro-finance (Kiva.org) being just a few of the wide range of topics covered; ‘Abundance’ makes the claim that with a new way of thinking, with a focus on global rather than local solutions, and providing technology that stands to save us all, we may have the ability to not just provide food, water, and shelter to 9 billion people – but to provide these at a standard that would befit the average European today. This can be accomplished, ‘Abundance’ claims, by utilising the rate of growth associated with exponential technologies.

‘Abundance’ proposes a new model, based heavily on Maslow’s ‘Hierarchy of Needs‘ named – cunningly – the ‘Abundance Pyramid’. Each part of the book relates to each of the levels in the Pyramid and how existing companies are working towards providing each of the requirements. I won’t replicate the Pyramid in full here, however ‘Part 3: Building the Base of the Pyramid’ is focused on how to provide: Communication (via smartphones, and unfiltered universally accessible internet access); clean, reliable, and accessible water; and a sustainable food supply, with a heavy focus on GMOs.

While ‘Abundance’ does pay lip service to the potential problems that may arise with smarter technology, it is written – like any manifesto – from an optimistic view point, and largely downplays any of the potential problems. This is in stark contrast to ‘The Net Delusion: How Not to Liberate the World‘, by Evgeny Morozov that extols the view that smarter technology, whilst providing many positives, also gives corrupt regimes access to very highly targeted data and that it is only a matter of time before these regimes utilise technology similar to that which runs Google’s AdSense platform for less-than-good purposes.

As the book progresses, Peter Diamandis’ influence becomes more prevalent, with many mentions of both his ‘Singularity University‘ and the ‘X-Prize‘ culminating in his belief that incentive prizes, like the X-Prize, are the only way to accelerate the progress that we are currently making. He very may well be correct, however the proof provided – there have, so far, only been 3 completed X-Prizes – seemed to be lacking for a statement of that calibre. However, given Dr Diamandis’ track record, I don’t expect him to be far off the mark.

Overall, the book is a very interesting read, highlighting some key areas, and has definitely challenged – and indeed changed – some of my previously held perceptions, and for that reason alone, I’d highly recommend it.