Hi, I’m Sam

This is my blog. I also have a website thing.

Staying Positive

Posted on

About 6 months ago, I tweeted that I want to be known for being positive.

I want to be known for going out of my way to be positive. Hold me to that.

@soffes on 2018-07-17

I think the value positivity is underrated. When you go out of your way to be positive, it really changes your outlook on life. The idea of being known for always being positive is really interesting to me.

Continue reading →

Maximum Effort

Posted on

A few of my coworkers and I say “Maximum Effort” to each other a lot. Don’t confuse Maximum Effort with perfectionism.

per·fec·tion·ism noun

refusal to accept any standard short of perfection.

Our team is called Design Systems. We make trade-offs on a daily basis. Our job is to maintain a bunch of components, tools, documentation, technical infrastructure, design guidelines, etc. The goal is to make all of the UI more consistent and to make the teams using the design system more productive.

Continue reading →

Custom Mechanical Keyboard

Posted on

I ordered a mechanical keyboard from WASD Keyboards awhile back. I got Cherry MX Brown switches. The still have a satisfying click but aren’t insanely loud like greens or blues. After having it for awhile, I decided to get dampers for it to make it even quieter. This made it feel too squishy and I removed them.

A few months in, I decided to design new keycaps. It’s fairly cheap to order a new set, so you can change your mind often if you’re into that. Here’s my latest iteration:

Keyboard

Continue reading →

Aggressively Hiding the Cursor

Posted on

I’m working on a Mac app that has a color picker in it. Here’s a screenshot:

Loupe

For this to work, I hide the cursor and have a custom view track your mouse movements. (When I say cursor I mean the pointer on screen you control with your mouse, and when I say mouse I mean your physical input device.) I use a full screen, borderless window and NSTrackingArea to do this. Nothing too crazy there. I do this to avoid dealing with custom a NSCursor since that was a lot more work.

Continue reading →