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 hiring peers for an onsite developer position for the coolest stealth startup in Tel Aviv, contact me and let's talk if you might be a match.

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. Go Fundamentals: Error Handling

    This post covers Go error handling, including error values, error wrapping for context, and working with multiple errors.

    post.description
    12 mins

  2. Go Fundamentals: Concurrency Model

    This post covers Go’s concurrency model, including why it’s unique among major programming languages, how goroutines work, race conditions and the memory model, and synchronization mechanisms.

    post.description
    20 mins

  3. Go Fundamentals: Memory Architecture

    This post covers Go memory architecture, including the call stack, heap allocation, escape analysis, garbage collection, and performance considerations for pointers.

    post.description
    7 mins

  4. Go Fundamentals: Variable Behavior

    This post covers Go variable behavior, including mutability, function pass types, zero values, and common pitfalls to avoid.

    post.description
    12 mins

  5. Taking Charge in Agentic Coding Sessions

    Have you ever done an agentic coding session? I mean, not just using AI for auto-completion or writing specific functions. I mean giving it an entire task and saying “good luck, buddy”.If you have, you...

    post.description
    6 mins

  6. 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

  7. 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

  8. The Tragic Death of Inheritance (Clean Version)

    The Tragic Death of Inheritance (Clean Version)

    post.description
    16 mins

  9. 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

  10. 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

  11. 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

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

    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 and less maintainable. And about propositions for improvement.

    post.description
    32 mins

  13. 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. In...

    post.description
    11 mins

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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.

    post.description
    3 mins

  19. 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

  20. 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