HN user

qxmat

165 karma

My words and terrible SPAG are my own and not representative of my clients and/or employer.

Posts0
Comments66
View on HN
No posts found.

Europe is crying out for sovereign clouds. If this is to be a viable alt cloud, US jurisdiction is a no.

Not sure we can move away from cpu/memory/io budgeting towards total metal saturation because code isn't what it used to be because no one handles malloc failure any more, we just crash OOM

Jira's now discontinued server version had a sequence table to stop you sharding it. It also made disaster recovery from a hard shutdown awful. I have nothing good to say about Atlassian.

6 days is pretty reasonable to me because I'm an avid supporter of the release train (miss the release train, wait for the next one).

Governance is an important aspect of the software development cycle past the PoC stage. Releases shouldn't lead to an existential crisis.

This is something I've been unable to articulate as succinctly as you have - thanks.

In the past I put it down my experienced approach and what I need from others: make it work (mediocre solutions that deliver 80% value are fine!), then make it better (reflect and refactor until readable/approachable/idiomatic) before finally (stretch goal) make it faster (break idiomatic paradigms, vectorize etc.)

Python has a few weird issues like this. The last one I encountered was with a class inheriting Thread, join and the SQL Server ODBC driver on Linux. Fairly sure I hit page faults thanks to a shallow copy on driver allocated string data but didn't have the time to investigate like the hero of this blog post.

How to Polish CSS? 4 years ago

Modern frameworks rely on components and the shadow DOM. If you understand how these are implemented you'll go far.

One of the trickier things to grasp is where your CSS begins and ends. CSS is quite leaky here but there are ample style guides that illustrate pitfalls.

I did the same a while back.

I used ANTLR4 to generate a .NET tree walker that would build up an IQueryProvider expression. IQueryProvider would then compile to Expression<T> and self-optimise (simplifying boolean algebra and removing redundant expressions). We hooked this up to npgsql and viola - a sane, typesafe, query string DSL without a single line of SQL.

Nowadays I hack together Terraform and Python ML- I miss .NET dearly... it was a simpler time.

I've found that AWS IAM is amazing compared to Azure AD. With AWS you can do per-workload account vending and grant account owners full "AdministratorAccess", because IAM resources are tied to the account. In Azure it's batshit crazy: almost all IAM resources - roles, groups, principals etc - are tied to the overarching AD tenant and not to the AWS Account equivilent, a subscription. In short this means that I, the owner of a subscription (broad powers), cannot add a new IAM role or associate it with a resource for user assignment. It gets worse... Azure AD limits are tenant wide leading to big orgs refusing to add IAM primatives because they might hit a service limit. And the lack of ABAC makes KeyVault almost unusable compared to AWS Secrets Manager. But hey, at least I have system assigned managed identities for SQL logins, that was kinda cool until AWS introduced IAM auth for RDS.

Network layering is still important on the cloud but many DevOps appear to miss that.

Logical cloud protection layers - like security groups - are an additional security layer but not a replacement for proper route design.

Lots of timed algo ones in my city - i.e. time-space complexity. Completely unrealistic for a DevOps cum full-stack role.

If they were untimed - like homework assignments - I'd probably say yes to more but as it stands I've no issue securing work with top end rates after a f2f conversion (no technical vetting at all - people seem thankful to have me onboard).

I've seen reviewers reject 8-hour assignments because the submission uses a certain library or something contrary to the house style so I've stopped doing these too. Opinions matter but they shouldn't be a f2f filter.

Right now my hard and fast rule is no code on paper - sure we can whiteboard but I'm not writing as much as an if-statement unless I can hit F5 on my keyboard in my IDE.

(My second rule is no interviews in lobbies)

Last year I tried to source an on-demand AV scanner because we'd exhausted what clamav was capable of (it non-deterministically craps out after 2Gb and can't scan binaries). If I couldn't find a suitable drop-in replacement I was going recommend an enterprise work-flow scanning solution that had AWS cloud integration (i.e. automatically move objects through ingress/output/quarantine S3 buckets or some kind of API we could hook to tag objects with a 'passed' label).

My requirements were simple: it had to run in our cloud (AWS, eu-west-2) because of PII concerns, preferably "serverless"/ephemeral and we needed to scan assets our data analysts would use in their day to day operations (tiny files, massive files - a bit of everything).

After a several time consuming days I had to give up because I found nothing. The Internet has become a mirage of av/malware scanning solutions that no longer exist (one of our guys reported that Sophos had a CLI tool - savscan - but when I looked it appeared to be discontinued). Almost every major vendor I came across offered an end-point product that ran on their cloud or had moved out of the malware/virus scanning market in favour of a DPI firewall. I was hampered by a lack of product documentation/feature comparison tables on the "enterprise" vendor marketing websites and sad "cloudification" of stacks that really ought to have a CLI binary.

Is your enterprise a product or solutions startup? Products only scale if resold - the magical 90% pure profit margin only exists on theory. In practice client demands will almost always turn small fry into a services business because you can't afford to lose a client, especially an anchor tenant. Why services? Because you can't say "no" so you end up doing what you promised you wouldn't and incorporate ungeneralised per tenant/client features into to the product.

Perhaps you should advertise your skills as a service?

He's isolated like he's receiving chemotherapy. A few years back he pointed out that many leaders appeared to be dying of cancer. Add the US mortality statement last week and it's clear to me he's got terminal cancer.

In the enterprise you'll find that Jira is used for general workflow management not just CICD. I've encountered teams of analysts spend their working day moving and editing work items. It's the Quicken of workflow management solutions.

Jira Server is deliberately cobbled by the sequence table + no Aurora support and now EOL (no security updates 1 year after purchase!). DC edition scales horizontally if you have 100k.

Jira in general is a poorly thought out product (looking at you customfield_3726!) but it's held in such a high regard by users it's impossible to avoid.

I've found that external tech requirements are horrible to work with, especially when the underlying stack simply doesn't support it. Normally these are pushed by certified cloud consultants or by an intrepid architect who found another "best practice blog."

It's begins with small requirements such as coming up with a disaster recovery plan only for it to be rejected because your stack must "automatically heal" and devs can't be trusted to restore a backup during an emergency.

Blink and you're implementing redundant networking (cross AZ route tables, DNS failover, SDN via gateways/load balancers), a ZooKeeper ensemble with >= 3 nodes in 3 AZs, per service health checks, EFS/FSX network mounts for persistent data that expensive enterprise app insists storing on-disk and some kind of HA database/multi-master SQL cluster.

... months and months of work because a 2 hour manual restore window is unacceptable. And when the dev work is finally complete after 20 zero-downtime releases over 6 months (bye weekend!) how does it perform? Abysmally - DNS caching left half the stack unreachable (partial data loss) and the mission critical Jira Server fail-over node has the wrong next-sequence id because Jira uses an actual fucking sequence table (fuck you Atlassian - fuck you!).

If only the requirement was for a DR run-book + regular fire drills.

This appears to be similar to Azure AD Application Proxy. If it is they're one step ahead of MS because their App Proxy Connector clobbers MSAL auth tokens and they can't be bothered to fix the issue a year later.

I've felt SOA is the easiest to grow because it encourages you to swap out concrete implementations as requirements change. For example, IUserService can start off with a "local" UserService implementation that makes direct calls to a database. Once you signup with an IdP this might become UserServiceAzureAD/Okta/Auth0. Unlike microservices, I keep my compile-time guarantees that IUser continues to have the properties I require without any tooling.

Given the rhetoric here I worry that I'm the only person who's genuinely swapped out their implementation. The ol' "N-tier is stupid - you're never going to change the database" comment couldn't be more wrong.

I've worked with people of varying skill-levels but personally gravitate towards those who can code idiomatically. For me it's important I write idiomatic code and follow the language/framework/api guidelines to the letter so I don't become a maintenance burden to my team.

In the fast-paced world of frontend dev, the last thing I want to do is revisit "complete" work, be it a lack of env parametrisation or something bigger. We make assumptions based on idiomatic implementation - failing to conform means work-items can slip ("This story will slip into the next sprint because the I had to convert the callback into an idiomatic action/reducer first").

We use Azure AD Application Proxy because it's an approved technology/pattern. Sadly SAML auth doesn't work with MSAL 2.x frontends because auth tokens are clobbered - gh bug #3420 - so we're looking at replacing it.

Right now the USP of Azure AD Application Proxy is that it "just works", give or take a bit of powershell. Replicating the functionality behind their Azure edge network and proxy connector groups is costly. It would be helpful if this project dove-tailed with the Azure edge side so we could run our own proxy connectors.

As an independent software contractor I could say the same about Microsoft's Partner Network.

Unless I sit a myriad of different exams I can't advance my competency to Silver or Gold. This means my MPN default "Partner" benefit is restricted Azure AD Basic and I can't take a parallel Azure DevOps build with me to a new project.

Worst still, if I leave my MS Gold Partner for a start-up I'll lose access to the enterprise elements of Azure AD (SCIM integration, Azure AD Application Proxy etc). If I'm called out to support something I delivered I'll need to absorb the cost of upgrading my Azure AD subscription.