Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Problem Solving from the Abstraction Layer

Avatar for Muukii Muukii
August 07, 2025

Problem Solving from the Abstraction Layer

Avatar for Muukii

Muukii

August 07, 2025
Tweet

More Decks by Muukii

Other Decks in Programming

Transcript

  1. Made many libraries (OSS) made 84 libraries 
 github.com/VergeGroup -

    16 repositories github.com/FluidGroup - 68 repositories Pairs uses some
  2. What is “library”? Is a “component”. It’s like LEGO bricks.

    We can reuse it, and it solves a specific problem. When building a house, we use a 'switch' to turn lights on/off. They don't know what the use case is; they just know they can control whether signals are killed or passed. Here is where ‘abstract’ comes in.
  3. What it brings to us ( Efficiency in developmenF Q

    composing components8 ( Flexibilitc Q easy to make changes or variants, like in car manufacturing8 ( StabilityX Q qualified components work well anywhere8 ( Portability (Software as a product)X Q Can install it into somewhere else. It itself is a product may
  4. Why I make it To put it the Apple way...

    All to create something wonderfuB  Incredibly fluid scrolling (UI0  Instantly responsiv7  Effortlessly smooth experienc7  Rock-solid reliabilitI  Beautifully designed with precision
  5. Rather than that... There is more to it. It’s fun.

    Actually not clearly sure why I do this. Making this presentation made me reflect on myself. Still it’s processing, but it's strongly related to my values.
  6. ‘It itself is a product’ This is might be a

    key to me. I'm like 'I just don't want to make it for this purpose only. I would rather make it more efficient.' As one of the methods - making it as a library(component)
  7. What it is like making libraries It’s like making product.

    When you build something for a specific need, then try to turn it into a standalone product. Considering the functionality of supporting various use cases. To do this, either one could be a direction  adds a lot of customization parameterP  makes it abstract (seemingly simplified) then lets consumers take ownership to utilize it. It's like when you make a switch for a home appliance, then you're also trying to make it into a product by creating several designs of it or making it super simple but with a beloved design.
  8. Abstract It! It starts from observing what’s actually necessary. Think

    of various scenarios that could happen. Then identify similarities from a particular viewpoint!  “analogies  “thinking in concept  "Software development is like building construction"
  9. Embrace a new perspective The process of abstraction from the

    concrete requires a multitude of perspectives. These are methods I use naturally in my head& $ To draw analogies between what happens in a program and events in the real worldE $ Once it works, I create a solution for the real world and then bring it into the program. For example, I evaluated Pairs’ iOS architecture as successful by comparing it to how a ward office operates: long queues, verbosity, yet it works correctly, is scalable, and offers better resilience.
  10. Abstract thinking dissolves the walls between worlds You can think

    of them in another world, then you bring them back into your world.
  11. Learning English also worked Both sentences mostly mean the same

    but choosing the subject makes a differencB $ I was moved by this picturB $ This picture moved me This shows a really good example of changing perspective to think of things. And trying to avoid using the be-verb, that really works. This book taught me. Thank you.
  12. Everything works for it 8 Practicing guitaA 8 Playing tenniE

    8 Managemen6 8 Whatever I've ever experienced could be a perspectiv) 8 “connecting the dots”
  13. Eureka moment When I get a new perspective for it,

    my mind is overflowing with excitement and ideas.
  14. Abstraction requires use cases Thinking in abstraction is good for

    brain exercise. Gives fresh perspectives and skills. In order to do this, it requires clear goals - Abstraction? For what? Evolving Pairs gives me opportunities to do this. Places where the means becoming the end has meaning. And gives feedbacks. Otherwise, it could be over-engineering. This is why I am engineering here.