My journey
Hey, my name is Richard Jonas, I am a software engineer interested in designing technical solutions, coding, learning new technologies. I am working as an architect but it can be seen as a staff engineer with strong technical flavour.
I was born in 1976 and I was 10 year old when first met with Basic but I didn't have computer to try it, so I was just reading the book. Then when I was 12 my parents managed to buy a used Commodore Vic-20 computer. It had 3583 bytes memory, yes less than 4K. Amazing. So I learnt how to code in Basic and Assembly since every byte counted. I was making line and circle drawers with character rewrite, very old technique.
In high-school I didn't get too much new programming skills but more mechanical engineering skills. It didn't poisoned me, I stayed at coding. At the University of Debrecen I learnt the computer science behind programming. Since I got very good grades I managed to start my PhD studies at the same university. At that time informatics wasn't really an accredited branch of natural sciences, so the system pushed me to do more mathematics than computer science. At the same time I started to work in the industry and I found more compelling to develop real systems than more computer science.
During the years I used new technologies like Java, yeah at that time it was new, like 2001. We developed a portal engine before Hibernate and Spring framework really appeared.
In 2007 I was lucky to have an opportunity to learn Erlang during developing a distributed, remote call center solution for McDrive restaurants to the USA. I was fascinated how easy and common sense to describe parallel algorithms with the actor model. Then I couldn't see the Java thread model as a cool thing any longer.
After some Java work at Morgan Stanley and Epam in Budapest, I went to Erlang Solutions where I learned even more about Erlang and actor-based concurrency.
That special knowledge brought me to Barcelona, Spain to Wallapop where we optimized and developed the high-throughput chat solution. One day the cluster pumped out 1TB of XMPP messages at 2018.
Erlang and Elixir drove me then to Derivco/Betway, then the company started to use Golang and I happily accepted the opportunity to learn Golang.
In the meantime I saw how Rust is emerging and couldn't resist to learn that. I think Rust is the next big thing, so far no other mainstream language managed to define so well the object lifetime and the fearless concurrency.
Currently I am looking for challenges in Rust, Golang, not sure if I want to go back to the Erlang/Elixir world now.
Reading list
- Distributed systems for fun and profit is a good reading, presenting complex concepts of distributed systems in an easy-to-catch manner.
- It is okay to manage your boss is useful if you need to manage up and/or manage yourself in an environment when the leadership around is not enough for you. I have read multiple books in this topic, I found this one the most handy.
- Software engineering laws This is what it is. My favourite is Conwey's law by far. Everbody knows about that and nobody can stop it.
- Avoiding technical bankruptcy One of the best explanation of technical debts and bankruptcy which basically the lack of courage to properly model and abstract requirements.
- From monolith to event-driven is a good article what strategy we can use if we want to introduce event sourcing to a legacy application.
- Are your "value streams" keeping you stuck in the past? shows how value stream disempowers your workers can cause burn-out easier than else.