Blog of Rob Galanakis (@robgalanakis)

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

Please reuse your database servers

I’ve been part of a number of “monolith to microservice” transitions and something that I’ve seen a few times is engineering orgs creating separate database servers per-team or even per-service. Please don’t do this. Please start with a production server, and an “everything else” server, until you outgrow one...

Read more

18 months of wandering

In January 2018, I left as CTO of Cozy under difficult circumstances. Those of you that know me know the story. Those of you that don’t are free to buy me a coffee or beer to hear it. I joined Cozy in 2014 as Engineering Manager, and rebuilt and...

Read more

1 2 3 4 30