Coder Social home page Coder Social logo

Hi there 👋

I’m Stephen. I am an American expat living in Berlin with my wife and 2 dogs—Tuck 🐶 and Ruby 🐕 (weirdly both emoji are pretty accurate depictions). I am someone who sweats the details, someone that would rather design in CodePen than Figma, someone who can learn both deeply and quickly because they aren't afraid to read obscure low-level source code or keep tabs on upcoming HTML, CSS, and JS features, and someone that enjoys sharing problems, solutions, tips and tricks with others.

I'm a quick learner

At this point two years ago, I had never read or written a line of C, knew nearly nothing about SQLite, and had only contributed one small documentation fix to Rails core. Fast forward to today, I am now a top-500 Rails core contributor. I have written multiple PRs to the sqlite3-ruby gem (I'm now a top-5 contributor), including a few in C. I have also now read large swathes of the SQLite C source code, and I am in the process of writing a lexer and parser for SQLite by translating the entagled C code into Ruby. I am now recognized as one of the the experts in SQLite in the Ruby community.

Similarly, when I got my first job in tech after leaving graduate school in Classical Studies, I had never written a line of Ruby and knew nothing about Rails. Nonetheless, within 6 months of starting I was promoted from junior to mid-level Rails developer. In my second job, I was again promoted after 6 months in the role. This time, though, I was promoted to an engineering management role, and I have spent the last 4 years growing our team from 6 on-site, full-stack engineers maintaining one product to a department of 45+ remote engineers who have built and now maintain 4 products.

My key to learning new topics, tools, or technologies is to dive in head first and build something. I am a hands-on learner. Whether it is things for work or things I am simply interested in, I learn by doing. Being such a hands-on "manager-of-one" has granted me essentially all of my opportunities. I got into tech by building tools to be a more effective and efficient scholar. I got my first job from building Alfred workflows. And I now have a reputation in the Ruby community for my work on SQLite because I built various applications using SQLite and numerous tools on top of SQLite.

I'm a minimalist perfectionist

I like to focus on leverage—how you I produce the absolute best possible interface, component, DX with the absolute minimal bloat. I think of myself as a minimalist perfectionists.

I recently tried to implement the Superlist inbox page in Tailwind CSS, which I could only do by eye as the source code is not available. I then spent the next two weeks before leaving for my wedding working to build a Rails clone using cutting-egde browser features (e.g. popovers and anchor positioning) and morphing. I streamed the whole process. It isn't perfect, I am still not satisfied with it, but I also didn't let that stop me from iterating, shipping, and sharing.

I also love to explore UX patterns to try and find an optimal balance between beauty, usability, and simplicity. As one example, I experimented with two different approaches to building a multiple file input in an edit form. In one version, I split the already saved files from the newly attached files and displayed them in two separate lists. In the other, I combined them into a single list but varied their styling. I believe that the second approach is more intuitive and user-friendly, but I am not sure. I would love to hear your thoughts. For one other example, I tried a few different approaches to an avatar component. I started off with a simple screen name text input that generates a deterministic avatar from Boring avatars. I then tried using a generated avatar from avvvatars along with a file upload button. Finally, I allowed the user to choose if they wanted a shape or initial-based avatar or upload a custom image. Polish isn't simply how it looks statically, but how it works and feels to use.

I want to delight

Where I am from in Louisiana, we have the concept of lagniappe, or a little something extra. I want the things I build to have lagniappe. When I was exploring inline text editing, I wanted to keep things simple by simply stying regular form inputs to either look like static content or editable fields depending on focus, but I also wanted that transition between states to be delightful. I've experimented with both single line and multi-line inputs, which each utilizing slight Tailwind animations. In fact, my very first larger project was a CSS library to provide a collection of icons that you could visually toggle between, like an up-chevron morphing into a down-chevron.

I will spend hours tweaking slides, even just for our company's bi-weekly Townhalls, where I have ended up incidentally defining much of the aesthetic of our slide deck. In the slide deck for my most recent conference talk, I spent days scouring the internet, working with GPTs, and experimenting in Sketch just to create this one image of a red ruby and a blue feather that I only use for a few seconds.

I also care deeply about the polish and delight in the code interfaces I build. I had been experimenting with Tachyons for a bit and liked atomic CSS, but I found their terse class names to be a bit too terse. I strive to strike a similar balance in the code that I write, especially that code that is meant to be consumed by other developers. I want my code to be a joy to use, delightful to read, and a pleasure to maintain.

Finally, I look to delight people through speaking and sharing. I will give talks at no less than 4 conferences this year. I have also been a guest on various podcasts, and I am writing regularly on various topics in web development. This year I also started a Youtube channel where I have done a two week sprint building the Superlist clone. When I look into the future of my career, I see myself continuing to share and teach, whether that be through speaking, writing, or mentoring.

Stephen Margheim's Projects

acidic_job icon acidic_job

Idempotent operations for Rails apps, built for ActiveJob or Sidekiq.

actionset icon actionset

Wire-up ActiveSet collections with a Rails controller

activerecord-enhancedsqlite3-adapter icon activerecord-enhancedsqlite3-adapter

ActiveRecord adapter for SQLite that enhances the default. Back-ports generated column support, deferred foreign key support, custom foreign key support, improved default configuration, and adds support for pragma tuning and extension loading

activeset icon activeset

A toolkit for working with enumerable sets.

alfred_libgen icon alfred_libgen

Search and Dowload ebooks from Library Genesis through Alfred

all_futures icon all_futures

A Redis-backed virtual ActiveModel that makes building faceted search UIs a snap.

awesomplete icon awesomplete

Ultra lightweight, usable, beautiful autocomplete with zero dependencies.

axe-core-gems icon axe-core-gems

Ruby integration for axe-core, the accessibility testing engine

chartable icon chartable

A lightweight and database-level Ruby library to transform any Active Record query into analytics hash ready for use with any chart library.

cubism icon cubism

Lightweight Resource-Based Presence Solution with CableReady

dotfiles icon dotfiles

:wrench: .files, including ~/.macos — sensible hacker defaults for macOS

evil_systems icon evil_systems

An easy way to enhance your system tests with Rails and Capybara using EvilMartians System of a Test.

feather icon feather

Ruby library for working with SQLite elegantly

formation icon formation

💻 macOS setup script for front-end development

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.