HNHacker News
TopNewBestAskShowJobs

andygrunwald

381 karma · joined April 14, 2015

Software Engineer Available at @andygrunwald Source hosted at https://github.com/andygrunwald
submissionscomments
andygrunwald··on Eight years of organizing tech meetups (2023)
I have been organizing a local tech meetup in Düsseldorf, Germany, for the last 11 years. We ran it _every month_ (except for the pandemic). This year (2024), I stopped doing it.

I share a lot of comments here. Especially the effort, which is not seen/appreciated. What I don't share is the trouble finding sponsors. Local (tech) companies are often happy to sponsor a room, food, and drinks for the evening. In exchange, they get a slide in the intro speech and the opportunity to present themselves. Recruiters are not welcome. This worked pretty well. If you want this, this is a different question.

However, I summed up my learnings from organizing over 90 meetups in two blog posts:

* Lessons learned from running a local tech meetup for 11 years (Sunday 14 January 2024) - https://andygrunwald.com/blog/lessons-learned-from-running-a...

* Lessons learned from running a local meetup (Tuesday 25 October 2016) - https://andygrunwald.com/blog/lesson-learned-from-running-a-...

andygrunwald··on Show HN: Google Analytics for Podcasts (Open Source)
Seeing https://github.com/openpodcast/apple-connector and https://github.com/openpodcast/spotify-connector this looks like API scraping.
andygrunwald··on JiraCLI
Author of https://github.com/andygrunwald/go-jira here:

This lib is maintained, still a bit out of date and has a few flaws. Like using the same client for JIRA Cloud and JIRA OnPremise (different APIs). But most of the flaws have been evolved over time, while Atlassian switched strategies.

I am preparing a roadmap for v2 where I implement a lot of reliability features, like context support, but also separate APIs for OnPremise and Cloud and easier access for custom fields.

Watch the github repo if you want to stay up to date.

andygrunwald··on JiraCLI
Author of https://github.com/andygrunwald/go-jira here: This lib is maintained, still a bit out of date and has a few flaws. Like using the same client for JIRA Cloud and JIRA OnPremise (different APIs). But most of the flaws have been evolved over time, while Atlassian switched strategies.

I am preparing a roadmap for v2 where I implement a lot of reliability features, like context support, but also separate APIs for OnPremise and Cloud and easier access for custom fields.

Watch the github repo if you want to stay up to date.

andygrunwald··on Database Connection Deserves a Name
Author here. I am curious, what kind of tricks do you apply that are similar to connection naming?

Other options I know about:

1. Using an own username per application

2. Adding comments into every database query

Let me know what you think about all this.

andygrunwald··on Ask HN: How does high quality source code from Google looks like?
Thanks!

I am a huge fan of Go. My question here would be more like: Is this comparable? A lot of people outside of google contribute to Go. Are similar standards applied to the Go Review Process like to internally created software?

andygrunwald··on What firefighting taught me for my job as an engineering manager
A Question that came up while reading: What happens when I start with collecting all the ideas and too many ideas are coming up? Do I need to put a particular focus on managing these ideas? How to treat the team fairly when everyone comes with an idea?
andygrunwald··on Meetup Payment Changes
A friend of mine posted https://kommunity.com/
andygrunwald··on Meetup Payment Changes
I am an organizer of a Web Engineering Meetup in Düsseldorf, Germany, for > 6 years (https://www.meetup.com/Web-Engineering-Duesseldorf/). We run the event every month, with 50 up to 90 people. Indeed, our no-show rate is something between 40% and 50%. This is heavy, but we know it and calculate it in.

We run the complete meetup non-profit. Never put a euro in. Never got a euro out — everything based on sponsors. Our motivation is to learn, share knowledge, and have fun together. And we want to make it accessible for everyone to learn about web engineering.

Switching to the new cost model will reduce the no-show rate, but makes it 1000% times less accessible. In my opinion, Meetup.com is creating a higher barrier to enter a community. If we, the organizers, would pay for the attendees, we would pay 100$ up to 180$ every month. We have no interest to afford this.

Furthermore, what I don't get: Meetup is charging a lot of money for thousands of groups. The web platform is stale for>2 years. The last major feature was a facelift in design. But no feature that helps the organizers or users. The iOS app had some releases, but the app is far from a great UX. Flaky everywhere. I ask myself: What is this company doing? Where does all the money go?

Friends who run similar groups are thinking already to move away. Many people from the US think the same.

I think this tweet sums it up: https://twitter.com/obfuscurity/status/1183831607821656068

andygrunwald··on Ask HN: Examples of open-source projects which became closed/proprietary?
This guy wrote about his open source project which he made closed source: https://medium.com/@kitze/github-stars-wont-pay-your-rent-8b...
andygrunwald··on Modern Code Review: A Case Study at Google [pdf]
What so you mean by automated presubmits? Are those „just“ CI checks for static analysis or is there more sophisticated things going on like merging it to a generated branch, deploying it, running all tests in the infrastructure there and more?

Can you elaborate a little bit more on this? Or point me to a resource that is doing this?

andygrunwald··on Ask HN: What open source project, in your opinion, has the highest code quality?
When we take the language into consideration, unwound like to mention Redis.

Often codebases written in C are a a mess to understand, a mess to read. The Redis Source Code is understandable even without deep knowledge of C

andygrunwald··on Ask HN: Who wants to be hired? (June 2018)
Location: Düsseldorf, NRW, Germany

Remote: Maybe, but I would prefer onsite

Willing to relocate: No

Technologies: The current web stack incl. container and resource scheduler. A few technologies I have worked with are Go, PHP, Redis, Memcached, MySQL, Docker, Mesos, Kubernetes, Saltstack, Chef, Apache, Nginx, Kafka, AWS/GCP

Résumé/CV: Please email me about my detailed CV. I have a bachelors degree in business economics + computer science and I am 9 years on the job. I started as a PHP programmer doing agency work with TYPO3. In the last 5 1/2 years, I am doing Site Reliability Engineering. I've helped to expand from one datacenter to five now (from the software perspective). I built a team around this. This team is lead by me since 4 years now. Since 2 years we introduced AWS and GCP into the stack for various areas. More details during a conversation.

Email: andygrunwald@gmail.com

What I am looking for: An exciting job. I am an engineering manager and software engineer with a high focus on backend and infrastructure. Let us talk!

andygrunwald··on Tcpdump Examples
What is the „correct“ way? (real question, I am curious)
andygrunwald··on Ask HN: Blogs about engineering team management and technical leadership?
I am anegineering Manager myself and don’t follow specific blogs. I can recommend the weekly email from Software Lead: http://softwareleadweekly.com

This is a good mix of various articles from different authors every week.

andygrunwald··on Ask HN: What is your favorite YouTube channel for developers?
I second that. You can even tweet Franscesc about possible topics and he will listen.
andygrunwald··on WeWork is going to acquire Meetup
I am running a Web Engineering Meetup in Düsseldorf, Germany [1] since more than 4 years. This group is quite big (~1.600 people) with 40 up to 100 people per Event (depends on the weather, the topic, the day, if side events happen in the city or not). We run it 100% non profit and community driven. No money is involved for paying speakers or accommodation. This is a fact where we are really proud of, because we believe if we involve money it will make things harder and more complicated. Questions like Who do pay what flight, etc. Of course, we have food and drink sponsors. But they order the food and deliver this to us. No "direct" money involved. We run every month, except of december (because december is a busy month everywhere, company parties, family, etc.). For a german meetup, this is a quite big one (if you compare the topic and the non profit).

I want to tell you what i like and what i don't like about Meetup:

What i like:

- "Advertising" of the meetup via email: This is very good. People will be reminded, it will suggest new people your meetup depends on tags / topics and so on

- Uncomplicated for attendees: Sign up or not sign up, this is quite easy for people

What i don't like:

- The user interface: It is horrible. Especially for a meetup organizer. The editor is so limited, it is not intuitive at all

- Innovation / Change: Since nearly 4 years, meetup has changed nearly nothing. Recently they are working more and more on their iOS app (a lot of updates coming in) and a new brushed layout for the website was released, but it took way to long. Smaller changes, really iterating over it, this is what i am missing.

- Organizing a meetup: They are tools missing. Meetup is a kind of simple CURD app. But really tools for meetup organzers are missing. I know tons of companies who want to sponsor a meetup (location, food, etc.). I see tons of meetups who suffer from finding a speaker or a sponsor. I know tons of speaker who want to test their next conference talk befor eon a meetup to get feedback. Connect them. Make it easy for meetup organizers to organize one. I personally see so much potential in this area. In this regard i often ask myself "What is Meetup doing with all these employees?"

- The "pro" version: This is a joke. I tried it out. I guess the target group are meetup groups that should run all over the world (like the wordpress one). But for normal organizers, useless IMO. I expected so much from it (Statistics, deep insights in my community, what are the members interested in, etc.). So much potential.

The problem with meetup is, that without effort from people meetups will be created, 1 meetup will be held, they are disappointed that only a hand full of people showed up and they will never do it again. Because they realize that organizing a meetup is a huge effort. And only time the number of people will grow. But you need time for this.

I see a lot of groups that were created recently, but never have a meetup scheduled at all. This is sad.

Why i don't create a "better meetup"? I would love to. But the big issue here: Meetup.com has the critical mass. And signing up for a new platform etc. I wouldnt do it as an attendee. Ideas?

My unwritten goal is to provide the opportunity in Düsseldorf to visit a tech meetup every workday. This is what i fight for and i help other organizers around to do this while connecting them and offer them my support and knowledge. A year ago i wrote a blog article about "Lessons learned from running a local meetup" [2]. I think i need to write a new one. I learned so much new things in the last year. And we try to write/document everything we need to do to organize our meetup on Github [3]. Not completed yet, but it is growing.

[1] https://meetup.com/Web-Engineering-Duesseldorf/

[2] http://andygrunwald.com/blog/lesson-learned-from-running-a-l...

[3] https://github.com/WebEngDUS/WebEngDUS

andygrunwald··on Ask HN: Best conferences in Europe 2018?
https://fosdem.org/2018/ in Brüssel, Belgium (for free)
andygrunwald··on Trivago helps secure webpack's future with 120,000 sponsorship
Checkout the other HN post here: https://news.ycombinator.com/item?id=14911836
andygrunwald··on Sponsoring Webpack
Checkout the other HN post here: https://news.ycombinator.com/item?id=14911762
andygrunwald··on Sponsoring Webpack
Webpack blogged about this in their blog here: https://medium.com/webpack/trivago-helps-secure-webpacks-fut...

I am working for trivago. If you have any questions, i can answer them or forward them to the right team to get the answer. AMA!

andygrunwald··on Trivago helps secure webpack's future with 120,000 sponsorship
trivago blogged about this in their engineering blog here: http://tech.trivago.com/2017/08/02/sponsoring-webpack/

I am working for trivago. If you have any questions, i can answer them or forward them to the right team to get the answer. AMA!

andygrunwald··on Learn Redis the hard way: in production
https://github.com/eleme/corvus This might be an option. Someone tweeted me this. Didnt tested this yet
andygrunwald··on Learn Redis the hard way: in production
Not yet. Sadly.
andygrunwald··on Learn Redis the hard way: in production
twemproxy is not the best piece of software when it comes to maintenance of code quality. But it works reliable. We are still using twemproxy and we are maintaining our own fork of it. This fork often has changes from us, like bugfixes or introducing new redis commands that are not supported yet.

Every bug we fix we apply this as a PR. A few PRs from the repository we have cherry-picked internally and deployed. But we have also a few issues with it like this one here: https://github.com/twitter/twemproxy/issues/442 or live reconfiguration would be a nice feature. Think about it if you really need this, because it is not only fun. A few pain points:

* Deployments of new configs and restarting twemproxy on your server farm

* New redis version with new commands? Extend twemproxy for those command support

I don't now any _real_ alternative to it, right now. I know from https://github.com/Netflix/dynomite which is a twemproxy fork. When we had only memcached and no redis (we are using both with twemproxy), then we would try https://github.com/facebook/mcrouter from facebook. But it is specialized on memcached.

If you come up with an alternative, please let me know.

andygrunwald··on Learn Redis the hard way: in production
Original author here. It really depends on which debugging session. Several debugging sessions was across days, because we didn't understand the problem at first. Some others were hours up to minutes (e.g. were we checked which commands we are using and optimized them).

Does this answer your question?

andygrunwald··on Learn Redis the hard way: in production
Original author here. Thank you.

The article didn't go into depth of the server architecture. But in general all instances i wrote about were setted up as a classical Master <-> Slave connection. Sometimes with multiple slaves.

Related to persistence: It depends. It depends on your tooling around. E.g. If you have a Master <-> Slave setup with persistence enabled, you have multiple options. BGSAVE on master only. BGSAVE on slave only. A seperate slave without traffic only for BGSAVE (to avoid the forking issue, many companies doing this) or BGSAVE on every node.

BGSAVE on every node can make sense of you have a running sentinel that propagades the slave as the new master once the master failed.

IMO it depends. We are running master <-> slave envs with persistence enabled on every node. Were we don't need persistence there we are running only single instances that are combined by the client to a consistent hashing ring.

Does this answer your question? Any questions left i can answer?

andygrunwald··on Learn Redis the hard way: in production
Original author here. I think i wrote the sentence in the post confusing. The error rates of (40% 500 error) were not normal. A normal hit rate was at ~97%. But because the redis server itself was overloaded by KEYS request, BGSAVE / forking, etc. this instance was not able to answer the cache request. Due to this we had a high error rate.

But in general i agree. A normal behaviour of a cache with such a bad rate should be avoided. I hope this make more sense now?

andygrunwald··on Learn Redis the hard way: in production
Original author here. Thanks for your comment. I don't think you mean everything bad or snarky here. I like to read critical feedback. Thats how you learn.

But i guess you mix things up. So yes. This architecture has grown over the time. And the whole story didn't happen yesterday. It starts September 3, 2010. So >6 years back. The first _Real_ problems appeared in 2013. So ~4 years back.

With our current knowledge, i agree that those three use cases should not fit in one redis instance.

> I think the post could have been more useful if it would have conceded the point earlier that they made bad decisions from the get-go, that they had to play catch up with those decisions, and that the advice was for attempting to catch up to these decisions.

This post is written as a kind of story. Of course it would be possible to conduct this post to learnings.

> It would be very interesting to understand why they made the choices they did.

Feel free to ask every question you want to know. I am here and happy to answer.

> Why are they running memcached and Redis at the same time?

Because this are two different systems with two different concepts for different usecases. If you use caching, i agree. Both can cache data. But on use cases where you need master slave replication (maybe across data centers), memcached may not fit. IMO it is hard to say both systems are the same. E.g. if you deal with caching data that vary a lot in size per entry (same data concept), one memcache instance / consistent hashing ring might be the wrong solution, because of the slap concept of memcache.

> Why wasn't a regular database suitable for data persistence or temporary data?

This question is not answered in general. But i use one use case. We had a MySQL table running on InnoDB that was really read heavy with ~300.000.000 lines. The indexes were set for the read patterns. Everything fine. An normal insert in this table took some time. And we wanted to avoid to spent this time during a user request. This would slow down the request. One option the dev team considered is to write it in redis and have a cronjob that reads this data out of redis and stores them in the table. With this the insert time was moved from the user back to the system.

> Why wasn't the cache for search installed on the application server to remove network latency altogether?

There is a cache on the application server. But we have several cache layer in our architecture. This was just one of them.

> Why weren't they running php-fpm from the get-go?

We are working on a switch to php-fpm from the typical prefork model. Such a task sounds easy. But in a bigger env this can get quite a challenge.

> I made the comment because doing some research or having some understanding from the beginning, might have avoided the post altogether.

Agree. The challenge here was, that the people who introduced Redis at that time has left the company. So in short: We had the problem, and had to fix it. With our current knowledge, we would fix this in a different way and maybe choose different approaches. But yeah, i assume this is a normal learning process.

Anyhow. Thanks for your feedback.

andygrunwald··on Learn Redis the hard way: in production
Original author here. I agree with this. And i tried to deliver this sentence between the lines within this article.
Page 1 of 2Next →