*This is an evolution of a prior post about remote work. Many are working remotely now, thanks to COVID-19. I’m assuming this will be more of A Thing™ going forward and decided to refresh my thoughts.
Enabling effective remote work is increasingly becoming a requirement successful tech companies. Hiring is competitive, costs of living are going up in tech hubs, and there’s an increased focused on cost and profitability in the markets.
The industry trends towards leaning into remote work and/or funding offices in less-expensive areas. For better or for worse, I have extensive experience working remotely or on distributed teams, both before joining Dropbox and then in bootstrapping Dropbox NYC over the five years I was there. Below are some of my learnings and thoughts.
Note that “remote workers” and “distributed teams” are very different things. Remote workers are physically alone day-to-day (often working from home), and distributed teams are groups of people working together in an office outside of headquarters. At this level of discussion, they’re similar enough that I’ll refer to both as “remote.”
Successful remote workers are:
Further leveraging remote work is certainly possible and potentially very fruitful, but a company must be thoughtful and deliberate about how to invest. Effectively taking advantage of remote work requires:
Last year, Stripe announced Remote as an engineering hub. Rather than allowing teams to have one-off remote employees, they treat all remote engineers as being in the same “office.” In general, remote engineers work together, and the teams they’re on are entirely remote. I haven’t seen this in practice, but it’s an interesting idea. Remote workers already know how to work well with one another, the touchpoints with remote work that require high-bandwidth communication are limited to leadership, and the risks to slowing down every team that takes on a remote workers are minimized.
I have an artist on Fiverr that I love working with, so I hired him to turn some of the coronavirus health tips in heavy metal logos. Here they are:cover your mouth when you cough don’t touch your face wash your hands frequently maintain social distancing
Feel free to print these up and spread them around, but please do not sell them.
Hi! I’m Issac. I try hard to learn new things but I’ve always been kind of a non-traditional student. I dropped out of high school and then dropped out of college.
Getting kicked out of school for two months and being told to learn by myself on the internet would have been a dream for me.
I know that schools are closing and that other in-person events like Black Girls Code are being canceled and delayed and I want to help out.
I also am dealing with my own cabin fever from a surprise work-from-home situation and my whole family being slightly under the weather.
If you’re a kid or a parent (middle school to undergrad) and you fall in this category but don’t really know where to start I have an idea…
firstname.lastname@example.org – I’ll publish a few letters and my responses.
I can also probably open up a few short video chats next week, but start by writing me a letter and telling me what you’re interested in learning.
I recently downloaded an iPad app called Looom which is a fun tool for creating hand-drawn animation. The first thing I whipped up is a yo-yoing animation. It took about 90 minutes concoct and I love the result.
This is a guide for using Figma and Google Sheets to rapidly prototype card games. It includes links to the tools, an overview of the key steps, and links to templates. Credit to Raph D’Amico for discovering this workflow and teaching it to me!
This workflow has some great benefits:
Google Sheets is a free online spreadsheet program. It is easy to use and has powerful function capabilities for generating cards.
Figma is a sophisticated online design tool. It is mainly used by web designers but is a great fit for other mediums as well. It’s free to use and has a robust community of plugins, designers, and users.
Google Sheets Sync is a Figma plugin by Dave Williames. It lets you use data from Google Sheets to automatically populate a Figma file. It provides similar functionality to Data Merge in other applications. The plugin has some sophisticated capabilities but we’ll be sticking to the basics you can learn more by reading its documentation.
Card Game Figma Template is a Figma file that’s prepared for Google Sheets Sync. It currently set for up to 99 cards with fronts and (optional) backs. You can easily extend it beyond 99 cards.
Example Card Data for Figma is a Google Sheet that contains example data for Figma to pull in. You can add more columns of data to customize it for your game.
6) In your Figma file, set up Google Sheets Sync by clicking Menu > Plugins > Google Sheet Sync.
The cards in Figma should now populate with data from your spreadsheet. You’ll need to re-run Fetch & Sync every time you update your data in Google Sheets – don’t forget to choose ‘Update entire document’.
The Figma file is set up so that the pages of cards draw from one Component card template for each side of the card. These are located left of the pages.
Any changes you make to the Card Component will affect the actual cards embedded in the pages to the right. Figma offers a robust suite of design tools to change color, font, layout, and more. I recommend keeping things simple and in black and white for early stage playtests.
You can add additional columns of data to Google Sheet but you’ll need to update the Card Component to pull those values in. Do so by creating a new text element in the Card Component and giving it a tile “#ColName” where ColName is the name of the new column in Google Sheets – capitalization and spaces are ignored. Make sure the column title is in bold font.
Once your Figma file has the right design and the correct data, export to PDF by clicking Menu > File > Export Frames to PDF.
Before you print, make sure to delete any empty pages, including the backs, if you aren’t using them. If your cards are two sided but your printer doesn’t print duplex, you’ll have to print the first 11 pages and then feed the fronts back into the printer and then print pages 12-22.
Consider getting a paper cutter ($10 USD) to speed up the card creation:
While the template is set up for simple black and white cards, you can get quite sophisticated with your designs. Raph used this approach to make our cards for Dungeon Court and they turned out great!
While this guide covers the basics, there are many directions for further exploration:
Depending on time / interest, I might expand this guide and make more templates.
In this episode of PopCast, I share some of my favorite responsive freehand tricks using a prototype Pop Art yo-yo.
I also share a true story about the time I offered to help an astronaut with a lunar landing.
Thanks to Greg Knowles and all of my backers on https://www.patreon.com/docpop
To: My Website Visitors
Jesse and I are writing back and forth about a project he’s working on to build a screenless qwerty note-taking device.
Jesse is a very capable software hacker with some hardware tinkering behind him. If you’re following along, your mileage may vary, but feel free to write with your own questions and ideas.
You can find me below or at email@example.com
To: Jesse Andrews
You mentioned that you’re into an iterative approach. I am too! One of the things that I like to do early-on for iterative projects is to define the main blocks and their interfaces.
Defining the blocks means you can focus on one part of a problem at a time.
Defining the interfaces means that you can trade out different blocks and likely get similar results.
Down to the brass tacks then! I’m going to focus on Hardware for now. I really like the idea of a pocket-sized qwerty with all the bells and whistles. I think it’s possible with maybe 3 or 4 jumps from my “Version 0” as described below.
I suggest that you take this project in three parts that can be iterated almost totally independently from one another.
Once we’ve defined the main bits, the next thing to do is to list the interface between them.
If I were gonna go out on a limb, I’d guess that we can make “USB” the interface at each point for the hardware bits. We have to do a little math to figure out if I’m going to recommend USB 2 or USB 3. The biggest difference for you is that USB 3 has many more options for the amount of power you can draw.
If things stay below 500mA of power draw, then sticking with USB 2 is probably a good idea. It’s a much more simple protocol. If they don’t, then we can make some adjustments.
Between the Computery-bits (whatever they are, to be discussed below) and the power bits, we’ll use USB.
This makes it easy to source a wall-wart power supply, or to use a USB battery pack, in a few dozen or more available sizes and form factors.
If you want to learn more about power management, you can DIY a USB-compatible power supply as well. You could probably make one from lemons or potatoes.
This is a bit of a tricky suggestion because it puts a constraint on both your keyboard and your computery bits.
Your computer needs to support some kind of USB host mode. This is easy to do with any raspberry pi or x86 kind of computer. It gets a little more complicated with microcontrollers, but not a lot.
We can find a microcontroller that supports USB On The Go (OTG) directly in the hardware.
Honestly I trust you to come up with something useful here. I’d suggest we plan on both wifi and removable storage. I think you should save onto “disk” in some durable-but-readable format. I’d suggest line-formatted JSON or protobufs for serialization and deserialization of your notes.
Build something quickly and figure out what you like about it.
Make this mobile. Battery-backed RPI should be pretty straight forward to use a USB backup battery.
Use a keyboard you like better. I like using the Atreus because it’s a pretty good open-source base to keep growing from too.
This is a fun time to iterate on the keyboard and the eventual form factor.
Let’s swap the raspberry pi for something a little slimmer?
We can investigate a raspberry pi zero, or any number of microcontrollers with USB-OTG support.
Let’s consider collapsing the computer/power system blocks into one integrated “compute & power” unit. Maybe we custom design/fabricate this?
Let’s collapse the keyboard, power, and compute blocks into one custom project, based on all the stuff we learned above.
It’s been a while since I’ve worked on any sewing projects. Back in the day I managed to pay rent by selling handmade denim wallets. I was a tailor for a local denim shop at the time and would save the larger scraps to turn into wallets.
These wallets are super thin always get better with age. I posted a few on my shop.
You sent me a note some time time ago about wanting to build a hardware project and not quite knowing what the next steps were.
The project you listed was a note taking device with the following capabilities
There’s an important question from me to you: What’s your goal?
Those are all just the sorts of questions that would guide recommendations either toward or away from “first principles” sorts of approaches.
You mentioned that you might be able to build this with a raspberry pi and a bluetooth keyboard. My gut is that is correct and definitely in your wheelhouse but that you wanted something more. What was the "more".
I’m not the sort of guy who thinks that in order to take a note you must first mine some graphite and pulp some paper, ya know? But if you want to learn about that stuff, I do think that making a notebook might be an interesting approach.
And here is how it looks after it’s on your phone
People keep treating me as if it’s a bigger deal than I think it actually is. “Like” (my therapist said) “when a toddler falls and you rush to their side and they start crying because you’re scared.” (This is when I asked them if I was heartless for not being devastated about the whole thing. Was I not feeling much because I was protecting myself or because it actually wasn’t that big of a deal? Therapy is great. More people should do it.)
Many people rightfully take it hard when pregnancy doesn’t work out for them. Whether because of religion, or because they’ve been trying so hard, or because of whatever… and I respect that. But this isn’t that story. If hearing that perspective will be harmful to you in some way, please stop reading now.
When Reed and I first started rolling around together, we talked about kids. (As anyone having sex should.) It was off the table between us, but we kept enjoying each other while I sought a person to procreate and raise children with (ah, the bonuses of polyamory). As our relationship deepened, it was put back on the table. We decided to be primaries, to cohabitate, to get hitched, to try to procreate. Like many things we do together, we set a timeline and a budget. If it didn’t work out within those constraints, we’d both get sterilized and pick up hang gliding.
Our plan worked out surprisingly quickly for us. Reed found a great OB, and as things developed on track we carefully told our families and made plans at our workplaces. All the tests were in the clear for the first trimester. We heard a heartbeat and saw tiny raised fists on an organism that was bizarrely growing inside me. Side note: AS A NONBINARY PERSON HOLY SHIT THE GENDER DYSPHORIA. I opted to know All The Things All At Once via a microarray CVS at the beginning of the second trimester. Why keep honing in on probability when relative certainly is an abdomen-puncture away?
The results came back, and we talked about them, and the micro deletion that showed fell outside our acceptable risk profile. In short, we should try again on our own or via IVF (still figuring this out). EG, having a second trimester abortion.
The dilation was the worst part. The actual procedure is fine, although I’ll end up with bruises from an IV as usual. And the thought that so many other people don’t have access to harassment free clean care and caring nurses is fucking horrific. As I’ve said in other places, if this story moves you to any action, please let it be supporting Planned Parenthood.
So we’re going to try again. Maybe it’ll work, or maybe I’ll get to learn hang gliding. I now know I can survive the first trimester and still be gender queer while I do so. I know I’ve got loving, supportive people around me and a Reed who is amazingly present.
I know this is a big part of many people’s stories, but it’s not for me. It’s just another thing that happened. And that’s fine.
Thanks to Ride Free Fearless Money and to Reed for helping me to not shrink away from conversations about money and my responsibility in its orbit.
So I grew up with some money. I think my parents did a pretty good job of navigating it – we were spoiled with things like good health care, good mattresses, healthy food, and comfortable shoes. I didn’t have a lot in the way of clothing or toys or other “frivolous” things, but we did have our basic needs well met. They helped with my school until I got a scholarship that paid for the bulk of it. At both times I worked part time to cover the rest. I graduated without debt. When I was in an abusive relationship, they covered my costs leading up to and after I left him. I am privileged.
I also have had the luxury of being principled about what jobs I do (and don’t) take. I’ve asked for (and gotten) loans from my parents (as well as gifts from an aunt) in the long stints between jobs at places I could work at in good conscious. I’ve since paid them back for the support, but I want to acknowledge the impact their support had on my career path.
And so now I can take jobs that I enjoy and feel are net positive impact and which pay well. To get here without the level of support I’ve had takes a bigger badass than me.
Now that I make dirty tech money (that, while less dirty than most, is still a part of the narrative of over valuing some skills and under valuing others) I’ve found this stupid thing to be absolutely true: having money makes it easier to get more money. In fact, people tend to just give you more money once you’ve gotten to a certain point.
It’s broken and I hate it.
Back in 2015 when I got my first steady-income job making a bit more than I needed to live off of, I started thinking about how to responsibly invest that money. In addition to that starting point, I also give to nonprofits and GoFundMes and Patreons. But there’s this thing that is still really awful to me, and it’s this: I am now wealthier than some of my dearest friends and some of my family, and to have a microcosm of society’s larger ills so close to our faces fucking sucks. I’ve been wondering if it’s possible to just give people money (also one of the most effective humanitarian interventions!) in addition to the organizations I support.
Enter the Protestant Work Ethic, AKA “the American Dream.” What it says in brief is that your moral goodness is evident in how well you do in the world. EG, you don’t have to wait for your rewards in heaven, you get signals that you’ll go to heaven based on how successful you are while alive. It’s some bollocks and it’s what I think of as a core illness in American Society.
So I can’t just give people money because it’s indicative that they didn’t earn it and therefore to have it is an evil (even tho money is just being given to me without being based in merit or need). While to me at this point it’s just another resource I’d really rather share, I can’t because of Protestantism. Or maybe they have other reasons of their own.
I’m pretty new to all this, so I expect to be immature in my approach, and I’m eager for feedback in the comments.
After consulting many great humans I respect, here’s where I think we’re at:
It seems to be ok to give them money without a lot of explanation. Can just be marked with “for a rainy day” without further explanation. This may also come under the expectation of middle- and upper-class environments based on “if money goes from your parents to you, you’re middle- to upper-class. If it flows from kids to parents, you’re lower class.”
A Patreon, an artistic practice, etc: commission something from them. Pay them as good or better than market rate so they also value their work more and can point at the sale in future negotiations to uplift their entire business. If you’re already supporting their monthly Patreon (or whatever), increase your amount.
This is also a great chance to give gifts. If someone is into a new hobby or embarking on a new adventure, giving gifts to get them set up well can launch them and not feel invasive.
Offer an interest-free loan you’re potentially willing to forget about. If not willing to forget about it, work on clear, flexible ways to do the repayment.
Another great point for gifts.
Include a note about how wealth disparity in general sucks, how a windfall was just come into (inheritance, signing bonus, etc), and that you’d like to redistribute it. Make it clear there are no strings and what they chose to do with it is up to them. Don’t be offended or mention it if they don’t cash a check.
Money is a point of deeply personal stress and pain for many folk. It is not easy to talk about, to need, to offer. And you know your friends and family better than I will, so your mileage may vary. I anticipate that if you’re kind and loving and up to make mistakes you’re willing to own up to and you’ll be fine.
Stick ’em in the comments!
Wish me luck as I embark on enacting these even more in life.
If we haven't met yet, I'm Issac.
I am an engineering manager at a company in San Francisco (though they're a worldwide company) called Stripe. I am inside a group called Treasury Engineering, where I work on helping manage Stripe's liquidity and foreign exchange products and services both internally and for Stripe's customers.
This is not about Stripe but I'll say: It's really quite nice to be able to say all of that.
From April 2017 until September 2019 I worked for "Astra". They are building a small disposable orbital launch vehicle, or ideally, dozens of them. I started the test and launch software discipline and built a team there.
Ashlee Vance wrote about us here for Bloomberg: https://www.bloomberg.com/features/2020-astra-rocket/ (IA Link)
Eric Berger wrote about us here for Ars Technica: https://arstechnica.com/science/2020/02/at-astra-space-failure-is-an-option/ (IA Link)
From November 2013 until October 2015 I worked for "Nonchalance". They were building something. It was a game, and a society of like-minded folks, and an art installation. It was lots of things to lots of people. I spent my time there running the "Systems" group, which was both hardware and software with a very strong bent toward experimental human computer interface design.
Lots of people wrote lots of things, but I'm going to only list my two favorites
Jessica Lachenal wrote about us here: https://medium.com/@jeslach/the-latitude-society-a-story-45915e489937 (IA Link)
Lydia Laurenson wrote about us for Vice: https://www.vice.com/en_us/article/xygykj/my-year-in-san-franciscos-2-million-secret-society-startup (IA Link)
In many ways I loved both of these jobs tremendously. In many ways they were both quite crummy. One thing that they both had in common until very recently was that they insisted that we don't talk about it in public.
This does a disservice to the business in at least these ways:
This does a disservice to the employees of your business in at least these ways:
I learned a lot of things at ORDcamp this year in Chicago, but I wasn’t able to attend the “How To Make SPAM Musubi” workshop. After hearing from so many people about how easy it was, I decided to learn. I’ve gone through two cans of SPAM since then.
Here is the video that taught me how it’s done.
The caveats here are : I’m running the gitlab-omnibus-ce in docker
It mounts all of it’s data (etc and var) at /virt/gitlab
# Make the backup docker exec -t gitlab gitlab-backup create BACKUP=gitlab-full-backup # Put the backup somewhere good s3cmd put /virt/gitlab/var/opt/gitlab/backups/gitlab-full-backup_gitlab_backup.tar s3://go.rottenboat.co/gitlab/etc/gitlab/gitlab.rb # Copy gitlab.rb and gitlab-secrets.json s3cmd put /virt/gitlab/etc/gitlab/gitlab.rb s3://go.rottenboat.co/gitlab/etc/gitlab/gitlab.rb s3cmd put /virt/gitlab/etc/gitlab/gitlab-secrets.json s3://go.rottenboat.co/gitlab/etc/gitlab/gitlab-secrets.json
I saved all of that to a file called “backup_gitlab.sh” which I run daily on a cron job.
I need to setup wal-e on my home server because recovery plans are good.
First I setup a new S3 bucket and IAM user for it
Then I started following the README and the following blog post.
I have modified some of the instructions to use a python virtualenv because I like clean environments.
umask u=rwx,g=rx,o= sudo mkdir -p /etc/wal-e.d/vars sudo su echo "my secret" > /etc/wal-e.d/vars/AWS_SECRET_ACCESS_KEY echo "my access key" > /etc/wal-e.d/vars/AWS_ACCESS_KEY_ID echo "us-west-1" > /etc/wal-e.d/vars/AWS_REGION echo 's3://mybucket/wal-e' > /etc/wal-e.d/vars/WALE_S3_PREFIX virtualenv env -p python3.8 source env/bin/activate pip install wal-e[aws] envdir chown -R root:postgres /etc/wal-e.d
First and foremost I want to make sure I can push a full backup via cron
sudo su postgres /etc/wal-e.d/env/bin/envdir /etc/wal-e.d/vars /etc/wal-e.d/env/bin/wal-e backup-push /virt/postgresql_data/postgresql/10/main/
I got this error, so I installed lzpop and pv
postgres@pelennor5:/etc/wal-e.d$ /etc/wal-e.d/env/bin/envdir /etc/wal-e.d/vars /etc/wal-e.d/env/bin/wal-e backup-push /virt/postgresql_data/postgresql/10/main/
wal_e.main INFO MSG: starting WAL-E DETAIL: The subcommand is "backup-push". STRUCTURED: time=2020-02-08T22:28:37.586041-00 pid=25452 wal_e.main ERROR MSG: could not run one or more external programs WAL-E depends upon DETAIL: Could not run the following programs, are they installed? lzop, pv STRUCTURED: time=2020-02-08T22:28:37.693263-00 pid=25452 postgres@pelennor5:/etc/wal-e.d$ exit root@pelennor5:/etc/wal-e.d# sudo apt install ^C root@pelennor5:/etc/wal-e.d# apt install lzop pv
Next time my cron-capable command worked from the postgres user, which suggests a few things are going well.
Now I need to edit postgresql.conf
archive_mode = on archive_command = '/etc/wal-e.d/env/bin/envdir /etc/wal-e.d/vars /etc/wal-e.d/env/bin/wal-e wal-push %p' archive_timeout = 60
sudo systemctl restart postgresql then seemed to work…
After that, I setup the base backup on crontab for postgres. All set on the backup side.
Now I need to test a restore to prove to myself this is reasonable, so I am going to setup postgres10 in docker on my laptop and try to restore from S3.
I have to update my expired GPG key today.
I followed a guide saying "Set up a master key, with no expiry and keep it somewhere safe, and use that to make new keys, and revoke/expire them if necessary"
I did that. Then my "child" key expired (in April 2019) and now I can't make new password with "pass"
I followed these two guides
Updating the expiry
Importing and Exporting