However I would have expected having two factor login to have prevented someone being able to login even if they had my correct credentials. Further, if you gained access to someones account, is changing the DNS settings all you'd do?

I suppose they'd do as much as they could do without attracting a lot of attention?

Hahaha, Scala is powerful, but frustratingly so sometimes. Also, watch out for calling Java code that takes java.lang.Longs, a scala.Long is a different beast.

Code:

private def emitMetrics(timestamp: Instant, metrics: Map[(String, String), Long]): Unit = {
//For some reason the scala compiler can't tell the difference between a Java method overload that takes a double
//and one that takes a long when dealing with Java numbers, so I have to add the explicit type when
//passing it(!) to ensure it knows how to pick the right one. That was a new one.
metrics.foreach { case ((metric, key), value) => emitter.gauge(metric, key, value: java.lang.Long) }
}

Oh, and make friends with import scala.collections.JavaConverters._ for ease of interop when moving between Java collections and Scala collections.

Lastly, case functions for ease of destructuring arguments are the go to. never write someTuple._1 again.

Composing a robotized scaling framework with frontend for scaling my administrations on Azure. Microsoft, for divine beings purpose, it would be ideal if you compose a library over your Service Management API; changing XML documents to build case tally is idiotic.

Just a fun small project which when you login, you select your GitHub repositories to enable a webhook on. That webhook will fire on each commit and run any changed files through prettier (html, typescript, javascript, handlebars etc) to clean up your code style, then pushes it back as a merge request.

Nothing hard but was fun doing the entire thing using serverless technologies. I've not got a single running server or database hosted which was the goal.

Just a fun small project which when you login, you select your GitHub repositories to enable a webhook on. That webhook will fire on each commit and run any changed files through prettier (html, typescript, javascript, handlebars etc) to clean up your code style, then pushes it back as a merge request.

Nothing hard but was fun doing the entire thing using serverless technologies. I've not got a single running server or database hosted which was the goal.

bless prettier. Pretty neat.

I've been playing with decorators in typescript, has been pretty cool and saved so much boilerplate.

Working with Google to create a new gRPC framework for .NET. Most of the hard implementation has already been done by other people (HTTP2, serialization, code gen) but there are some interesting technical challenges.

Getting close to 1.0.

Some of the requests per day numbers that potential users are throwing around are crazy. Trillions

We do that with a release build in Jenkins that pulls a given branch from Git. It's a bunch o' complexity in itself. We're not super big on the pull request based process, although we're using that for our new GitOps deployment model.

We had a multi release thing going on for a long while, and whilst the team was small it worked fairly well.

We've gone to "gitflow" - or very very close to it.

Moving closer to trunk based development was the goal - so small changes could be integrated quickly. But gitflow gives us the ability to do full QA integration testing after a release is arbitrarily defined.

Pull requests just become a place for asserting that builds, tests are all up to scratch and then a point of discussion. We are using draft pull requests as a way to get feedback on code in an open way - that anyone can comment on and receive feedback. Idea is to increase quality of code before merge.

Generally the business is risk adverse, and they prefer that there is human integration testing across almost everything - something we are automating as much as we can.

There is a really neat little product to help you automate those pesky pull requests, you should give it a go https://www.codacy.com/

I've been learning Rust on my weekends and really enjoying it. Being a lot lower level than something on the JVM is something that was a bit of a shock to my computer science knowledge, but it's proving as a good learning experience.