Goro's Memex

ごろうのミーメックス

Logo

Why should you hire me?

Good Enough is better than Perfect. Software Engineering is a practice of finding the right balance of tradeoffs. With every piece of code shipped, I attempt:

  • To establish the correct context for the problem by gathering data, examining user behavior, and understanding user needs and goals (which can be myself as well!)
  • To determine the value of problem being solved, my proposed solution and to communicate it effectively to all relevant stakeholders.
  • To identify the correct constraints (costs, scale, performance, correctness, ramp-up, accuracy, maintainability) of the problem as well as the associated risks to develop with my team and business interests in mind.
  • To identify the gaps in my knowledge that slowed down my development velocity and address those gaps.
  • To grasp the bigger picture and accrue familarity with the domains and data for the systems I am developing for.
  • To seek feedback from my team, when appropriate, so I can learn more quickly from people with experience and gain new perspectives on the problem.
  • To seek feedback from my users, so I can understand if we've addressed their problems in a satisfactory manner. To piece together
I always aim to have highest-quality code possible within my deadlines.
[ understand requirements → prototype → make it work → make it better → ship → iterate ]

Teamwork and Communication. I've worked in the non-profit space for many years and have interacted with all types of people and personalities to solve my constituents problems. To do this job well, you have to be an active listener and gain a deep understanding of user needs and issues, otherwise you won't be able to solve their problems! As in software engineering, this required adaptability to changing circumstances, learning from others, open and clear communication, as well as a collaborative mindset.

Never Stop Learning, Practicing and Growing. I'm a self taught developer. I wake up everyday thinking about what I can learn that will enrich my employer's business, my personal skillset and my inner life. I am adaptable, intellectually curious and always engaged in honing my craft. I find great satisfaction in both mentoring and being mentored, but if those opportunities aren't available, I can seek out the right resources and teach myself.

What Languages Do I Use?

I am currently programming in JavaScript/TS, Python, Java, Go, C, Rust and Racket. I write in Ruby too!

For more exploratory projects, I've been familiarizing myself with Clojure, OCaml, Eiffel, Verilog.

What Technologies am I using?

For frontends, I utilizing the React Ecosystem, as well as vue and astro. I am looking forward to platform agnostic webcomponents.

For backends, I usually sketch things out in Node/Express, Django or Spring Boot.

For SQL databases, I utilize PostgresSQL, but will use sqlite for smaller toy projects.

For NOSQL databases, I utilize MongoDB.

What Do I Like About Software Engineering?

Composition. Writing software to me is about logic, abstraction, sequence, decision making and ultimately creativity. Programs are built out even smaller programs, functions or procedures. Choices here can be perilous!

Abstraction. These programs are written in a language that is then interpreted or compiled into an even lower-level abstraction like Assembly. Assembly is then assembled into machine code which is interpreted by the hardware!

Logic & Sequence. Further below you have instruction decoders, arithmetic logic units and control units circuts composed of logic gates, multiplexers, flipflops, etc allowing for the sequencing of operations, transfer of data/signals between components.

Wonder. This sequencing is given measure by an electrical current being applied to a crystal, which gives us a stable signal which gives everything in the ladder above order.

Creativity. Ever consider:

  • The relationship of circuit design and functional programming?
  • The choices led the intermediary WebAssembly Text Format to use S-expressions?
  • How the phenomenal world is layered with signals without representations and encodings?

What Do I Do For Fun?

Climbing. Planning your beta on a problem scratches a lot of the same itches as programming. It requires percision, iterative problem solving, corrective measures and a healthy appetite for failure. Who knew exercise could be so fun (and painful!)

Programming. A good portion of my time goes into understanding where software engineering has been and where it is going. I like reading & reading about:

  • Programming Language Theory & Philosophy
  • Data Structures and Algorithms
  • Operating Systems, Containers, Unikernels
  • Source Code
  • "Design Patterns"
  • Embedded Systems & Electronics
  • Digital Signal Processing & Control Theory

Learning. We learn by doing and studying ourself doing.

Walking. There is nothing that will empty the mind like a directionless walk to nowhere.

Friends.