It’s important to keep in mind that 12 years ago, the patterns for high scale message queues (and often even low scale) were still in flux and getting established.
In the ruby world, delayed job was getting upended by sidekiq, but redis was still a relatively new tool in a lot of tool-belts, and organizations had to approach redis at that time with (appropriate) caution. Even Kafka by the mid 10s was still a bit scary to deploy and manage yourself, so it might have been the optimal solution but you potentially wanted to avoid it to save yourself headaches.
Today, there are so many robust solutions that you can choose from many options and not shoot yourself in the foot. You might end up with a slightly over complicated architecture or some quirky challenges, but it’s just far less complex to get it right.
That means fewer blog posts. Fewer people touting their strategy. Because, to be frank, it’s more of a “solved” problem with lots of pre existing art.
All that being said, I still personally find this stuff interesting. I love the stuff getting produced by Mike Perham. Kafka is a powerful platform that can sit next to redis. Tooling getting built on top of Postgres continues to impress and show how simple even high scale applications can be——
But, maybe not everyone cares quite the way we do.
This stuff is hard. As someone who runs infra teams for a living, these are the worst kinds of weeks.
Hang in there. You all will learn from this and be better for it. Your architecture will improve. Customers will give you a second chance. This too shall pass.
I was lucky enough to visit the broadcast studios seven or so years ago for a taping of windows weekly. It was a bucket list item of mine after I started listening to Leo in 2008 during grad school.
It beat my wildest expectations, getting to watch live one of the best in the business. Even after taping for nearly two hours, with a fast turn around to his next show, he was kind enough to grab me his fez hat, take a couple of photos behind the desk, and chat with me about life.
I still look at that photo from time to time, and remember the joy I felt that day. Those are those special moments that make life so beautiful.
Same story for me! I had just moved to San Francisco in ~2014 after landing my first Silicon Valley tech job. One of the first things I did was head up to the studios to watch This Week in Tech live. Leo was so nice and we chatted for a bit after the show and took pictures. I love that photo! I’ve been a fan since TechTV!
Leo in many ways has spawned a whole industry with podcasting and youtubers covering tech. Kevin Rose did a great interview years back with Leo as the subject and it was fascinating hearing about how it all came to be. Much respect!
As someone who has built out a similar internal tool, one of the things I'm excited to see someone do is the route propagation technique. It's something I've evaluated adding to our internal solution as we rolled out a service mesh, but ultimately we manage routing in a different way under the hood.
Either way, this notion of slices of environments being deployed for testing, with "baseline" or fallback environments being used otherwise, is the future of software development. It's a real boon for developers when rolled out effectively, and I've seen it scale massively at GoodRx.
Congrats to the team. Wish you all tons of success!
Thank you! We're really excited about covering the entire dev lifecycle using this approach. Re: routing, do you make use of a library that is directly included in each service? We've seen an approach in the wild where such logic is embedded into gRPC interceptors and HTTP middleware. Curious to hear how you thought about the choice between that and using the mesh.
Right now, we just require intermediate services to be spun up if you need to connect with a custom downstream service.
So, as an example, if I have three services where A talks to B, B talks to C, and I have a custom version of A & C that require testing E2E, we have to spin up B in the middle.
It definitely is a point of confusion for engineers who have to understand what intermediate services are in play when working on a frontend and some distant backend microservice. Fortunately, that intermediate layer tends to just always be the same two services, so folks learn pretty quickly. At scale, especially hyper-scale in a microservices architecture, this becomes untenable, and either automatic dependency discovery OR routing (like you designed) is the path forward.
Needless to say, it's a "niche" issue I think folks don't run into for a while in their setups; however, once you run into it, it's a PIA for those involved.
Makes sense. I have seen a couple of instances of this pattern - with service dependencies being stitched together using configuration. Thanks for sharing!
Sean Kelly (aka Stabby), is one of the most talented engineers I’ve ever worked with, and is someone who understands the challenges and pitfalls of architecture ahead of his time, as this article highlights so well. To this day, I try to channel Sean’s approaches to design, coding, and architecture, in my own work.
Sean is a treasure in the Boston and Golang community, and folks should seek out his wisdom and guidance.
I took 5 weeks off from my startup when I had my first, and I’ll be taking 3 months off for my second who arrives end of the month. I’m at a larger organization now in a leadership role, and my past startup I was one of three.
As others are already writing, you should take some bonding time and adjustment time, regardless of company size. Those first few weeks are a huge adjustment, and you need to focus on your family, partner, and newborn, more than a company.
How long is appropriate then becomes a question of a number of factors. I don’t want to make a value judgment on anyone who feels like 2 weeks is enough vs someone who says 12 weeks is the minimum. Life is complicated and nobody knows your situation better than you. But, you should optimize first for your family, and then once that is finished, figure out what a return to work timeline looks like.
Parenthood is such a wild journey with its own unique set of challenges, struggles, and joys. My best to you and your partner.
Always excited when chess pops up on HN once a month or so. As someone who picked it up as a hobby in December, I can attest that lichess is a great app and site for folks looking to get back into the game or get started (I’m also a premium chess.com member as I use both products).
For those of you thinking about picking up chess, I’d highly recommend watching the Chess Brah “Building Habits” series on YouTube. Watch the first five or so videos, and just start practicing those habits in rapid games (recommend 15 minute with 10 second increment on lichess, which shows up as 15+10). Embrace the losses, and just keep working on not hanging your pieces for free.
If you’re intimidated by playing other humans, you can try the “Maia 1” bot on Lichess. It’ll likely beat you up for a while if you’re a beginner, but it’s a bot designed to play more like a human, and it’ll help you get the reps to feel more comfortable playing other humans.
From there, just enjoy yourself. Chess can be frustrating because by design you always lose about 50% or your takes, but once you learn to accept the losses, it can be a great mental exercise to keep your brain sharp.
I agree. I would also recommend Daniel Naroditsky's speed run video series. He starts with new account and explains his ideas and thoughts as he progress to higher and higher elo.
He is a fantastic coach and trainer, Bobby Fisher's second in his follow-up match with Spassky, and top ten in the world (1) mid-1990, and with another great coach and writer, Jeremy Silman, author of several great chess books. Three of all the time greats—Kasparov, Karpov, Ivanchuk—were in the top 4 when Seirawan cracked the top ten.
Think of the loss as a form of payment. What it buys you is experience. So whenever you lose, ask yourself what experience that just bought you? What improvement does it allow you to bring into your future games?
If your mindset is to become a better player, rather than winning, then a loss is still a way to gain something. And long term, you'll win more games if you think this way
Because of how ELO works, your win-loss ratio will pretty quickly normalize to 50-50, regardless of how good you are.
Over time your increased rating will reflect increased skill, but even if your skill was doubled tomorrow, you would still hit a 50-50 W/L because you would be playing people at the same skill level.
However…if you want to feel better, play for a couple weeks and then challenge an occasional player. Once you obliterate them, you’ll feel better about the losses it took to get there. :)
I had a very strong coach work with me on this exact problem. He required me to reframe my definition of what it means to win. Basically it came down the the quality of effort I put into the game. If I put everything I have into a game and lose, it now feels like a win, because I know it will make me stronger. Conversely, if I don't give a good effort, but happen to win the game, I count that as a loss. This only applies to longer time control games. I still play blitz now and then for light fun.
I think it's a great approach and I try something along those lines. However it requires some form of self-persuasion which is hard to get when you are just binge-playing quick games.
I feel doing what you advise + playing slower games (for me usually 10min + increment) + doing puzzles is a great combination. It forces me to calculate more variations than just the most likely candidate move, and to think about positions more. I still tilt in blitz a lot but I tilt much less when I follow my own advise.
For me the biggest blocker was over-focusing on the numbers going up and down. On lichess you can make all ratings invisible (bottom of the preferences page, "Show player ratings"). This means you can't see your own rating or your opponent's. Your opponent can obviously still see both if he or she doesn't have this option enabled.
Make a list of the reasons you get angry, and re-write and filter down to the top two. Write those somewhere and look at it regularly. You'd be amazed at how useful subconscious insights will filter up into consciousness this way.
I'm a Lichess puzzle player. I find it more entertaining than a full game, and can fit a puzzle or two anytime rather than a match (even a bullet game is too draining for a quick time-filler)
I find a lot of beginners have this mentality and skip over analyzing games they win to their detriment.
In general, the way to get better at chess, or anything really, is all about intentionality.
I'd recommend reviewing every game, win or loss, and looking for things you missed, what your opponent missed, thinking about what your opponent was thinking, why did they play the moves they did, etc.
Both platforms are worth supporting. Com does a lot of great events and creates great content, and I like supporting it. I also prefer their UX.
Lichess has Maia bot, some good course material as well, and I like to use my lichess account sometimes as an “alt” where I can experiment with less stress about losing rating. Rating doesn’t matter, but it still makes me queasy if I tilt 100 points while trying out a new opening.
The poster only mentioned two things. So you answer just makes me think you just don't admire commercial chess sites!
To take the video lessons, chess.com are clearly leagues ahead of lichess. They can pay the contributors to produce quality productions. You can't really open source the time of experts .
Isn't all open source built from the time of experts? (Not experts in chess, but in programming, design, etc) :)
I mean in theory, nothing prevent a professional chess player to make a nice video lesson and share it for free. And there is no reason to assume this video would not be as good as videos made for money (just like it's the case for software)
Add me to the list of folks likely to respond to this thread about getting back into it later in life. I have a toddler (and soon baby number 2) and I find it a really enjoyable brain exercise when I have brief gaps.
For those of you with just basic experience, or looking to learn, I really recommend the “Chessbrah Building Habits” series on YouTube.
GM Aman is a really pleasant dude, solid teacher, and takes the most methodical approach to coaching beginners to intermediates how to build habits at each elo range to keep growing.
For those new to time controls, 15 minute rapid games are a good place to start. I felt a lot more comfortable after a couple of months jumping to 3 or 5 minute blitz based on my schedule, once I felt like I could get out of the opening without being totally lost :)
Other great content creators are GothamChess (be aware his YouTube and twitch styles are different but equally awesome), Hikaru, Eric Rosen, Nemo, St Louis Chess Club, and so many more.
The chess community is really great. I hope y’all come and join the fun.
Would be a shame not to mention Naroditsky. Watch him play through lower rated players and give you great insight to both his and his opponents thought process.
I watch all of his videos but if you are starting, 'Building habits' is definitely much better, Aman will often keep making the simple moves he preaches even when more complex ones are available just to drill it into you. Naroditsky, while a great teacher and highly educational can't help himself from playing overly complicated lines that people at those levels wouldn't see. Hikaru is even worse in that respect (tho he doesn't attempt to be particularly educational in the first place anyway).
Other than that, I'd also recommend John Bartholomew who also explains his moves thoroughly in his series where he plays lower rated players.
I too came back to chess. The weird thing is that now at age 48 I'm obsessed with it while when I was young (I played from very young until approx 15) I never really liked it. It was something that you were just supposed to do. I played in a club and played regional and national tournaments with varying results but it was never enjoyable. Had i known the word then, I would've said it was a grind.
I taught the kids as soon as they were old enough (age 4-5) but they never liked it back then either, it was something I think they did because I wanted to do it and I only wanted to do it because it was something my dad and grand fathers did with me.
And then, booom! When my son was approx. 15 a couple of years ago he met a few friends at school and chess became something highly competitive and I was drawn into it again and suddenly, it was so much fun and I was completely engulfed by it. And my kids were also drawn into it (I have a daughter too).
I used to study openings as a kid but hated it and now, it's the best way to spend an evening. Now I play almost daily with the kids (one daughter that is also playing) and after my son moved off to uni it's how we keep in touch (but he's effing killing me with the London System).
Youtube channels? No day is complete with out a game from agadmator's channel.
I had the opposite experience. I was really into chess when I was a teenager, but after getting back into it in my 50s, I find it a bit "samey." I also picked up Go and Shogi. I like both of those games better than chess because they both seem to have more variety between games. The Duck Chess article from HN yesterday did pique my curiosity though, so I'll have to give that a try.
Have you heard of or tried Chess960? That's one popular solution to the sameyness of chess, randomizing the starting positions of the pieces on the back rank.
So timely. This (and the replies) are just what I needed. I am 40 and getting back to chess. I was never really good to begin with (I think I was in the 1400s in high school) and I’m quite awful at chess now. But my 7yo has become obsessed with chess. I would like to not only get better myself but also get better at teaching him.
Thank you for sharing that series. I've been looking for something like this and chess books put me to sleep. Check out BotezLive, Maurice Ashley, and Hanging Pawns on YouTube. xQc also has a series on how not to play.
We do 30 minute daily “standup ups” where the “what I’m currently focused on” component lasts for 10 minutes. Our group discussions, that are IC led, that come out of challenges or successes folks are facing, make up the last 20 some days (otherwise we wrap).
Of the 8 hours a day of my work, it’s the least likely to be a waste of time. It’s a great way for our distributed team to stay connected, express interest in work streams, and have a laugh.
Work can be so much more than just optimizing productivity to the nth degree.
Not only did he get suspended, but he was suspended while also competing in the Grand Prix, where he needs to likely make the semi finals to make the candidates tournament.
He openly said during interviews since the suspension that he was losing sleep over it and was distracted from the tournament play. So far (as of me writing this) he’s lost one match and drawn two. He likely needs one or two wins to move out of the group stage. It’s not inconceivable, given he won the first leg of the Grand Prix, that the suspension will have played a major role in him not making the candidates tournament.
Edit: He’s playing as I write this, if you’re interested in following the match.
In the ruby world, delayed job was getting upended by sidekiq, but redis was still a relatively new tool in a lot of tool-belts, and organizations had to approach redis at that time with (appropriate) caution. Even Kafka by the mid 10s was still a bit scary to deploy and manage yourself, so it might have been the optimal solution but you potentially wanted to avoid it to save yourself headaches.
Today, there are so many robust solutions that you can choose from many options and not shoot yourself in the foot. You might end up with a slightly over complicated architecture or some quirky challenges, but it’s just far less complex to get it right.
That means fewer blog posts. Fewer people touting their strategy. Because, to be frank, it’s more of a “solved” problem with lots of pre existing art.
All that being said, I still personally find this stuff interesting. I love the stuff getting produced by Mike Perham. Kafka is a powerful platform that can sit next to redis. Tooling getting built on top of Postgres continues to impress and show how simple even high scale applications can be——
But, maybe not everyone cares quite the way we do.