Goodbye Plato


TL;DR I no longer have a job.

For the past year and a bit I was working as one of three full-stack developers at Plato. However, we unfortunately didn’t make it and the company had to shut down.


Plato icon

Plato was a very powerful concept in the no-code space. Hearkening back to early fully-introspectable systems where everything on the screen was made up of primitive components that you could interact with and manipulate (like in demos of the Self programming language). We paired this introspection with a powerful macro recorder to allow flexible no-code automation.

I think Plato stood out from other no code tools. However, it was an incredibly ambitious product in a crowded market. We didn’t manage to deliver value soon enough. This isn’t particularly surprising. I knew that this market was incredibly tough to crack before I even applied, and even in less competitive markets failure is the most likely option for any startup. You can’t succeed with just a small improvement in this space, you are stuck between incredibly powerful spreadsheets and trivial to use basic automation tools. You need to be significantly more powerful than these simple flowchart automation tools while remaining easy to use. If you don’t provide enough power you will lose to spreadsheets, if you aren’t easy enough to use your addressable market will quickly shrink. Unfortunately we didn’t manage to pass this pareto front before running out of funding.

I still think there is huge value to unlock by allowing less technical users to automate their workflows in an easy and reliable way. However, as evidenced by spreadsheets still being the top-dog more than 50 years after their debut, it is not easy. Spreadsheets are very popular for a good reason. They provide an easy on-ramp with simple calculations, providing quick value with an understandable UI. However they have major flaws as well.

But spreadsheets are easy to get started with and powerful. That is a winning combination and it may well be another 50 years before we see a significant successor.

On the technical side I think Plato had strong roots. We had a general reactive update system that allowed accurate invalidations with little programming overhead. It could also be very precise when required to provide high performance.

Plato also had a powerful client side object store which integrated seamlessly with the reactive update system. It provided easy support for optimistic updates with automatic error handling as well as integrating updates from concurrent collaborative edits.

Overall these two systems worked together to have fast and optimistic local execution, collaborative editing and a reactive-by-default UI. These components formed a common foundation layer that allows us to quickly iterate on new concepts and implement new designs without needing to implement these complex concepts over and over again.

There were also parts that were less effective, as can be expected at any startup that is constantly trying out different ideas to find a product-market fit. But overall I think we had a good balance of quality versus quick hacks. We executed some major architecture improvements that did pay for themselves, but we also made the tough call to leave some mess. It is interesting to look this retrospectively. We can see which features took a lot of time to implement robustly when a hack may have sufficed and which shortcuts ended up quickly biting us.

My Future

For now I’m taking a break. I have the luxury of not needing to rush to find something new. My partner and I have a vacation planned in June and I likely won’t start a new job until I get back from that. This is at least two months to relax which I think will be good for me.

I’ve already had time to make some improvements to various projects of mine such as my Ricochet Robots Solver (it now works well for playing as well as being a solver) and FeedMail (mostly internal cleanups). I’ll probably keep making small improvements here and maybe picking up some other personal projects.

I also have a backlog of blog ideas that I hope to make some progress on in the coming weeks. Including a tool improving git bisect that I was going to try to get more use of before announcing. But it may be a while before I’m bisecting much more code 😆

I’ll start looking for new opportunities soon. If you have something interesting now is the right time to reach out. Take a look at my resume and mention this post when you reach out.

I would really like to find an option where I can work a bit less. 40 hours doesn’t seem like the most efficent number for me. By Friday I am always a bit mentally exhausted and probably not as productive as the other days of the week. I think a 4 day work week (around 32 hours) would be very suitable. I think working 80% the hours would result in at least 90% of the productivity, especially since a lot of the best programming is thinking about problems in the background, not just when you are staring at the screen. I also hope that this would lead to me spending more time on personal projects which will raise my creativity, skill and enthusiasm for programming in general. I think this would help improve my productivity while working and reduce burnout. I’m not sure if many 4DWW options are available, but I will definitely take some time to look for them.

I’m looking for backend or low-level work. Plato was a small shop with just 3 developers. This means that while I got to work in areas interesting to me like programming languages, distributed state synchronization and some interesting optimization work I also ended up doing a lot of frontend work which is not my favourite. I did appreciate having some professional full-stack experience but have now had my fill of React and am ready to go back to the backend. I would love to find a role focused on performance or distributed algorithms (or maybe both). This is also stepping away from my SRE experience but I think I can convince potential employers that I have the programming chops required. I would also love to work in open source software if possible.

But either way I am in no rush. I’ll slowly wade through the options until I find the right next step for me.