What is this?
It’s a book that is intended to be posted as a blog. Or maybe it’s a blog that is structured like a book. So I guess it’s a blok. Or maybe it’s a boog. I don’t know. We’ll see eventually what would come out of it.
For real, since forever I’ve been writing articles. I’ve written a lot to the university’s paper (which for a year I was its Editor in Chief). I’ve written a lot of personal ones, a journal of sorts that may be published one day. I’ve written several blog posts and obviously, Facebook statuses. That’s what I know best how to do. I’ve never written an actual book, but who says a book can’t consist of a lot of articles? Such that each chapter is independently readable, just like an article, while all the chapters/articles combined are a story told.
I’m about to sign a contract with Disney for the movie rights. It will be directed by James Gunn, but won’t be a part of the Marvel Cinematic Universe. Hopefully he’ll be able to catch the humorous side of this boog.
What is this about?
This is mainly about software architecture and philosophy of software architecture, with a lot of practical use cases I’ve handled in my career. As it is inseparable from development culture, people management and product management, there will be things related to them as well.
Some of the content is based on lectures I gave before (such as The Evolution of Cloud Computing). Some are in-depth about application development (such as Compute technologies tradeoffs) and some are heavily into system/architecture/design oriented. There will be a few of personal nature.
What it is and what it isn’t
“You know what’s the difference between a philosopher and a statistician?”, asked Amos Tversky once in a party, as told by his and and his partner’s biography The Undoing Project. “The difference is that a philosopher’s sample size is exactly one, himself”, he replied to himself as it was a rhetorical question.
The content is based on my experience, my thoughts and my insights, who have been peer reviewed with some colleagues. That doesn’t make it 100% true. This is not a “do this” blok. It is “think about it” boog. This is not a blok that after reading it you’d go ahead and code a system. It is a boog of topics you’d run into while designing and coding a system.
It was mostly written in the beginning of 2020, summarizing work and knowledge from 2011 onwards. Don’t forget that things have changed since then. Make sure you are up to date.
Why is it online?
Mainly because it was hard for me to find such “deep dive” content online. I had a job that was hard to do because Google came up mostly with intro-level content. I enjoyed reading like 20-30 books.
I do believe this should be free. I was paid to do a job and I’m technically being paid by my government while writing this (Unemployment benefits due to COVID-19, yey!). If I didn’t spend any of my own money on cultivating and making this content, why should the reader pay me for it? It may one day be Dāna based, which in the Buddhist tradition is not payment. It is a token of appreciation out of generosity, not out of guilt to pay.
And because it is not worthy of a book. Although I have a lot of production level experience, Silo’s final system/product has yet to reach production by the time of writing this. Only the PoC did which proved a lot but this boog is missing some very valuable hindsights that alas did not happen. But that is not a good reason not to publish anything at all. Something is better than nothing. And nothing is something.
Lastly, because my english might be good, but it is not perfect. I currently can’t afford paying for an editor and I hope my editorial experience would be good enough for a start. As this is posted online, it could and should always be revised upon feedback and comments. If you see something, say something.
Please leave a comment, mostly if you think I’m wrong. I’d prefer to be corrected than someone gaining false knowledge.
Who is it for?
For my mom & dad obviously. They’d be furious otherwise.
Any one in the software business would find some of the information here useful. The entirety of it requires technical background as a software developer / engineer.
When I initially thought about this project, it was after I left/got fired from Silo due to COVID-19. I wanted to write this so someone can finish my work. But that would have been wrong of me. This boog is written with the right intention, not that some one would finish my work, but so someone else would have an easier start to his work.
Who am I?
Every lecture I give I start with “I’m a lot of things, but for this purpose I am…”, so for the purpose of this boog my name is Amir Ben Ari. I’m an Engineering Manager and a Software Architect. My teammates used to call me “The Code Philosopher”. I’m not sure it was a compliment.
My last position was a CTO/Head of Software for Silo, a connected physical B2C product. Prior to that I was a team leader at Wiser and an engineer at Dealply, both B2B/B2B2C eCommerce pricing related young startups. My first job was at eWave as an enterprise search expert, customizing search based solutions for large enterprises. I’m mostly backend oriented and I’ve specialized in distributed systems, performance, scale and cloud infrastructure.
I studied in the Techion, Israel Institute of Science between 2007-2011. I have a B.S.c in Industrial Engineering and Information Systems. Third of the courses were about software engineering, another third about statistics (I guess I’m also part Data Scientist) and lastly about product/business/social studies (Also part product manager, I guess). This might explain why I have a very different perspective on software architecture.
I’m also deep into economics, mostly behavioural economics and psychology (big fan of Dan Ariely, Amos Tversky and Daniel Kahanman). I’m also into history & philosophy, both Eastern and Western and lately also into neuroscience.
I’m also about to do volunteer work with Sahar, an organization dedicated to online help for people who suffer. I love cooking. And yes, I’m still single (and there’s nothing wrong with that!).