eberkund
Joined 10 years ago
Joined 10 years ago
The essay structure you're criticizing is exactly how I was taught to write from primary school through to university. You start with a title or hook, introduce the topic and propose a thesis. That is followed up upon with supporting arguments for the primary claim.
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 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.
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.
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@latestOnce 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.
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.
In the Go codebases I have worked on, generics were not overused IMHO. It did allow us to get rid of some type specific helper functions and made collection based operations like sorting a lot nicer to work with.