Blog of Rob Galanakis (@robgalanakis)

And what if we hired randomly?

A couple posts ago, I wrote about letting candidates choose their own hiring process. But for years, I’ve been toying with the idea of something even more radical — what if we hired randomly? This sounds silly, but wait! Think of a time you’ve transferred teams, or came in...

Read more

Managers learn lessons on the backs of their reports

When you make mistakes as a manager, you usually don’t pay the price. Your reports are always the ones walking away worse off — they have to deal with the repercussions of your mistake, and probably didn’t learn anything useful. This is an inherent part of hierarchical power dynamics....

Read more

What if candidates controlled the interview process?

The software engineering interview process at most jobs is similar- phone screen, some programming work, a bit of architecture or systems design, cross-functional (aka “culture fit”) interviews. Companies are all over the place on how well they execute this formula, but the general formula is the same. Not only...

Read more

Reflections on greenfielding MilkRun

When I joined MilkRun in June 2018, the technical situation was… not good. Seeing as I couldn’t even sign up due to errors, I had expected issues. But when I saw a timestamp primary key field which was also used as a foreign key, and other WTFs, I knew...

Read more

Don’t bother with migrations for performance-based indices

I used to write database migrations for performance-based indices, like adding an index to a foreign key column. I don’t do it anymore, and do not recommend the practice. Instead, write your SQL against a production-like database (same schema and data), and run it against production directly as part...

Read more

Reflections on over-engineering: Cozy

The Good We were processing over $100m/mo in rent at Cozy, nearly all of that on the 1st of the month. We were able to do that in a Ruby monolith by maintaining a disciplined programming team, with thorough automated tests and monitoring. Every time we had a performance...

Read more

Reflections on over-engineering

My entire career has been spent replacing other people’s applications. The closest I’ve come to greenfielding was spending 3 months rebuilding MilkRun and then migrating data from the old system to the new (none of the code or schema was kept). I think I’ve been pretty successful at replacing...

Read more

“Professional services” for pre-revenue startups

Something I’m beginning to explore is what a services business providing programming and long-term technical guidance and mentorships for startups would look like. A business that takes the things I know I am good at — mentorship, programming, product management — and provide it to companies who need it...

Read more

Feature team models that work

Along with a number of “monolith to microservice” transitions, I’ve been a party to many “functional team to cross-functional team” transitions. I think there are some patterns and rules of thumbs that are widely applicable. The place these transitions fall down is where the definition of “cross functional” is...

Read more

Let’s not fix venture capital. Let’s replace it.

There’s a lot of talk in Portland and other secondary markets about how difficult it is to raise early money compared to places like San Francisco and Seattle. I believe this is true. But I don’t think it really comes down to anything except, there are a lot of...

Read more

1 2 3 30