Hacker Newsnew | past | comments | ask | show | jobs | submit | eberkund's commentslogin

  Location: Toronto, Canada
  Remote: Yes (Also open to on-site)
  Willing to relocate: Yes
  Technologies: Go, Node.js, React, Vue, TypeScript, C#, Laravel, Docker, PostgreSQL
  Resume/LinkedIn: https://www.linkedin.com/in/erikberkundrevnig/


I created a small library for handling graceful shutdowns in my projects: https://github.com/eberkund/graceful

I find that I typically have a few services that I need to start-up and sometimes they have different mechanisms for start-up and shutdown. Sometimes you need to instantiate an object first, sometimes you have a context you want to cancel, other times you have a "Stop" method to call.

I designed the library to help my consolidate this all in one place with a unified API.


Haha, I had the exact same idea, though my API looks a bit less elegant. Maybe it's because it allows the caller to set-up multiple signals to handle and in which way to do it.

https://pkg.go.dev/git.sr.ht/~mariusor/wrapper#example-Regis...


I did something similar as well: https://github.com/pseidemann/finish


I assisted a past company with transition from Jenkins to GitHub Actions and some of the things you mentioned also came up for us although we did not self-host. It's been a while but I'll try to comment to the best of my recollection.

I think Jenkins makes it easier to support some less than ideal patterns because of how customizable it is.

Tracking the % of test failures across builds and normalizing failing tests rather than treating even one test failure as a critical issue that blocks the build. For test coverage we had to introduce a 3rd party tool like CodeCov or Coveralls.

I have rarely found it necessary to trigger CI workflow for a past commit. Even without dispatch parameters, you can rerun failed jobs from the web UI. If you are using workflows to deploy artifacts then I found it more straightforward to separate the testing and generation of artifacts from their deployment. So instead of building a testing, building and deploying a container all in one workflow you would instead store your artifacts in a central location and then specify the tag that you wish to deploy without rebuilding.

I also found that because we were self-hosting Jenkins and additional instances to run CI are relatively affordable there was very little emphasis put on performance and efficiency so over the years this had led up to almost 1 hour builds per commit which added up when multiplied across many developers and open PRs. I found that by splitting some repos and consolidating others we could bring this down substantially.

Also I am not sure if you're aware but there are some 3rd party managed GitHub Actions providers out there which make work as a compromise for you between hosting your own and using the runners provided by GitHub.


For me the main issue with managed GitHub runners is their low performance compared to the cost. In the context of developing my own tool for managing self-hosted runners, I maintain a benchmark here [1] that compares GitHub vs third party providers.

https://runs-on.com/benchmarks/github-actions-cpu-performanc...


Is it possible to specify tags to use to install tools specified with the tools directive?

I tried the following but it doesn't seem to work (it installs without the tags):

  go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest


I would say they are similar but the focus is more on controlling everything through Git rather than IaC which leaves this ambiguous and can require updating the Git repo and then visiting a dashboard to press a button to check the repo and apply it.

Once you dig deep enough into many tech buzzwords you'll find that that different people can mean slightly different things with the same words. Some may consider special PR comments to control infrastructure operations as a form of GitOps because what would otherwise be a button in a dashboard now lives alongside the Git history in GitHub.


Right exactly, so GitOps doesn't necessarily mean that after merging the pull request, the rest HAS to happen automatically? Judging by what you say there's indeed some ambiguity here in that sense. I guess after I hear "GitOps" being mentioned, I'll have to ask for details and dig in more to understand what people actually mean by that, haha. At least there will probably be Git there somewhere and the infrastructure is version controlled then I guess...


The rest of the world also printed a lot of money. In a globalized economy inflation does remain isolated in the country that it originates in. Especially when the country has a lot of exports.

Normally the exchange rate divergence could be countered by increasing interest rates in the country with the weakening currency. But today it appears most countries are not willing to do this to the extent necessary.


Try 99.99%


More passive than working a job.


Would you have been against granting Israeli work permits to Palestinians or allowing funding to to enter Gaza?

I read the article you shared and other than the unconfirmed paraphrasing of Netanyahu at the 2019 meeting, the actual policies come across as something that would work to improve relations. Work permits, more freedom, "turning a blind eye" to sustained rocket attacks.


No, because the advertised additional security may cause people to do things that they would not otherwise have done had they not falsely believed the security claims on the newer protocol.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: