Hi there 👋

My name is Aviv, I'm a software engineer located in Tel Aviv. I write my worthless opinions to explore new ideas and vent out. The content is never sponsored or paid.

I'm the Head of Platform at HUMAN, where we handle huge scales, massive amounts of data, and endless engineering challenges. We're looking for the best HUMANs to join our team, we have several open positions, including on my team! Contact me and let's talk.

The Tragic Death of Inheritance Talk on GopherCon IL

In this talk, I'll walk you through my journey as a principal architect, from teaching and advocating for inheritance due to its clean and elegant nature to realizing that composition is a superior design choice...

The Tragic Death of Inheritance Talk on GopherCon IL
26 mins

  1. ENVITE - Modern Dev Environments for Testing and Continuous Integration

    TL;DR - This is a quick walkthrough of our experience writing and maintaining integration and end-to-end testing at HUMAN, what we’ve learned, how to apply it, and what are the main alternatives.

    post.description
    10 mins

  2. The Tragic Death of Inheritance

    TL;DR - this is a story about how I felt forced to give up inheritance and object-oriented programming, and still missed it for a very long time. And why now, half a decade later, I...

    post.description
    16 mins

  3. The Tragic Death of Inheritance (Clean Version)

    The Tragic Death of Inheritance (Clean Version)

    post.description
    16 mins

  4. Research on Best Practices in Microservices

    At HUMAN Engineering, we’re conducting research on best practices in microservices.

    post.description
    1 min

  5. Finding The Best Go Project Structure - Part 2

    TL;DR: This is a story about the internal journey we had in HUMAN Security to find the best project structure for Go, the decisions we’ve made, and the conclusions we’ve drawn. We’ve created an open-source...

    post.description
    7 mins

  6. Finding The Best Go Project Structure - Part 1

    TL;DR: This is a story about the journey we’ve been on at HUMAN Security to find the best project structure for Go, what decisions we’ve made based on our exploration, and the conclusions we’ve drawn....

    post.description
    12 mins

  7. A Proposition For a Better Future For Go

    This is a piece concluding a 3-article series with a proposition for a better future for Go. In the previous articles, we discussed the stronger sides of the language and presented the problematic ones. If...

    post.description
    5 mins

  8. We Need To Talk About The Bad Sides of Go

    This is the second part of a 3-article series. This is a story about the downsides of the Go programming language, the part about it that makes us less productive and our codebases less safe...

    post.description
    32 mins

  9. What Makes Go the Best Language

    This is a story about the good and the bad sides of the Go programming language, about it being a time for a change, and about how carefully such a change must be handled. This...

    post.description
    11 mins

  10. Boosting Up JSON Performance of Unstructured Structs in Go

    TL;DR: This is a story about how we trimmed 70% of our JSON parsing cloud costs by writing an open-source Go library called marshmallow. 🍬🚀

    post.description
    16 mins

  11. Testing Strategies in Microservices Architecture

    TL;DR - this article discusses automated testing in microservices architecture, how to keep it as simple as possible, and how to gain maximum reliability during the rollout of big changes. 👩‍🎓

    post.description
    3 mins

  12. Code Sharing in Microservices Architecture

    TL;DR - This is a story of leveraging various tools to empower microservices architecture, how we use it at HUMAN, and when to use and not use it. 💪

    post.description
    7 mins

  13. Version Control Layout in Microservices Architecture

    TL;DR - this is a discussion about the pros and cons of version control layout alternatives. There is a ton of reading material regarding the pros and cons of monorepo vs. multirepo. In this article,...

    post.description
    4 mins

  14. Designing Developer Experience in Microservices Architecture

    TL;DR — This is the intro to a three-piece article series discussing key decisions in designing developer experience and development cycle for teams in a microservices architecture. 💡🚀 Designing Developer Experience in Microservices Architecture (intro)...

    post.description
    3 mins

  15. Request-Response Olympics — The Search For The Perfect Request-Response Protocol

    Services tend to interact with each other. It may be microservices collaboratively processing your data, separate systems notifying each other on various events, or simply data propagating from one place to another. There are countless...

    post.description
    23 mins

  16. OK Let’s Go: Three Approaches for Structuring Go Code

    The Go language was first announced in late 2009, and officially released in 2012, but has only started gaining serious traction in the last several years. It was one of the fastest growing languages of...

    post.description
    14 mins