HN user

pkaler

2,499 karma

https://kaler.io https://twitter.com/kaler https://linkedin.com/in/kaler/ Email: pk smartful com

Posts43
Comments497
View on HN
doodles.mountainmath.ca 2y ago

What if recent apartment buildings in Vancouver were 20% taller?

pkaler
1pts0
www.bitsaboutmoney.com 2y ago

A review of Number Go Up, on crypto shenanigans

pkaler
1pts0
www.tbray.org 3y ago

AWS and Blockchain

pkaler
2pts0
parveenkaler.com 7y ago

Book Notes: High Output Management by Andy Grove

pkaler
1pts0
parveenkaler.com 7y ago

Senior iOS Developer Checklist

pkaler
2pts0
parveenkaler.com 8y ago

Millions of Customers. Billions of Dollars. iOS Architecture at Scale

pkaler
2pts0
parveenkaler.com 9y ago

MVVM, Protocols, and Operations in Swift

pkaler
1pts0
parveenkaler.com 10y ago

Good Analytics Change Behaviour

pkaler
1pts0
parveenkaler.com 11y ago

What's New in Swift 2.0

pkaler
3pts0
parveenkaler.com 11y ago

Learn Swift Now

pkaler
2pts0
parveenkaler.com 11y ago

Auto Layout, Custom Controls and LayoutSubviews

pkaler
2pts0
parveenkaler.com 12y ago

Crossfit and Gamification

pkaler
1pts0
parveenkaler.com 12y ago

Opinionated Core Data

pkaler
1pts0
parveenkaler.com 13y ago

Build API First

pkaler
4pts3
cdixon.org 14y ago

BuzzFeed's Strategy

pkaler
13pts0
parveenkaler.com 14y ago

Continuous Deployment for iOS Apps

pkaler
3pts0
cbloomrants.blogspot.com 14y ago

Sense

pkaler
2pts0
www.theverge.com 14y ago

What SOPA is, what it does, and how it works

pkaler
7pts0
dealbook.nytimes.com 14y ago

AT&T Ends Bid for T-Mobile

pkaler
2pts0
www.designstaff.org 14y ago

How to spot a design-friendly startup

pkaler
2pts0
www.theverge.com 14y ago

Carrier IQ Tracking: The Story So Far

pkaler
2pts0
www.designstaff.org 14y ago

Why you should move that button 3px to the left

pkaler
13pts3
parveenkaler.com 14y ago

AI Distribution: Siri versus Google Search

pkaler
1pts0
www.charlierose.com 14y ago

Charlie Rose with Warren Buffett: Stop Coddling the Super-Rich

pkaler
12pts11
john.a16z.com 15y ago

Building the Global Startup Part 2: Get Yourself a Strategy

pkaler
2pts0
gamesfromwithin.com 15y ago

Casey and The Clearly Deterministic Contraptions

pkaler
2pts0
github.com 15y ago

TermKit - Next Generation Terminal/Command Application

pkaler
13pts2
www.facebook.com 15y ago

Hybrid Incremental MySQL Backups

pkaler
57pts9
www.nytimes.com 15y ago

Why Twitter’s C.E.O. Demoted Himself

pkaler
64pts11
gamesfromwithin.com 15y ago

Start Pre-allocating And Stop Worrying

pkaler
3pts1

I was never a prolific blogger. I do write a LOT internally at work and I write very long messages in group chats.

With the advent of LLMs, I've felt even less need to publish publicly. It's as if an LLM can either produce something higher-quality and more tailored to the reader's context in a shorter period of time. Or the topic I write would be so niche that it should just be in a group chat.

I'm also currently reading "On the Calculation of Volume". It is fantastic.

Meta-comment about the post. I used to read and write book reviews like this all of the time. Not anymore. ChatGPT and Claude can do a just a good of a job. Now I'm looking for what you think, a unique insight, what did you feel from a book review from a humanoid. LLMs do a fine job summarizing.

Yup.

Woke up at 6am. Child 1 woke up at 7am. Dropped her off at daycare at 8am. All the other children were being dropped off by their dads, too. Full day of work ahead. Dinner at 6pm. Bath at 7pm. Bedtime and story at 8pm. Usually calls with Bangalore from 9pm to midnight but it's Labour Day over there. Sleep at midnight.

Rinse. Repeat.

As others have said, levels and titles are generally for compensation and performance reviews. Each company has their own bespoke ladder but it generally maps to:

  - L1: Intern with undergrad degree
  - L2: Intern with graduate degree
  - L3: Junior
  - L4: Intermediate
  - L5: Senior
  - L6: Staff
  - L7: Senior Staff
  - L8: Principal
  - L9: Distinguished
  - L10: Fellow
Each company has their own numbers and names but it generally progresses like that. Impact and scope scales as you head up the ladder.

L5 or Senior is usually considered a “terminal” role. That means all engineers should be able to get to this role. And people without the headroom get managed out if they can’t get to L5.

Staff+ is usually “special”. It means that people count on you to drive initiatives and you have something special other than just writing code. You are able to make product and business impact.

Distinguished and Fellow are very rare. Large FAANG companies will only have a handful of these engineers. It means you’ve made industry-wide impact like inventing map-reduce or DynamoDB or Kubernetes.

SIMD and data locality. You probably want to check across three vectors simultaneously and load the coordinates next to each other.

I'm guessing here. I haven't written video games in 20 years but struct packing/alignment was super important on the Sony PSP back then.

Agree!

Most orgs should just be shipping features. Before starting an Experiment Program teams should be brainstorming a portfolio of experiments. Just create a spreadsheet where the first column is a one-line hypothesis of the experiment. Eg. "Removing step X from the funnel will increase metric Y while reducing metric Z". And the RICE (Reach-Impact-Confidence-Estimation) score your portfolio.

If the team can't come up with a portfolio of 10s to 100s of experiments then the team should just be shipping stuff.

And then Experiment Buildout should be standardized. Have standardized XRD (Experiment Requirements Doc). Standardize Eligibility and Enrollment criteria. Which population sees this experiment? When do they see it? How do you test that bucketing is happening correctly? What events do analysts need? When do we do readouts?

That's just off the top of my head. Most orgs should just be shipping features.

Beg to differ. I live in Yaletown in one of the Concord Pacific towers. David Lam Park and George Wainborn Park are vibrant as is the whole seawall. My kid goes to the daycare along one of the parks.

I'm sitting at my desk in an office in Gastown in a low-rise. The streets are covered in feces and broken crack pipes.

I have a 9 month old and we are drowning in toys. We have bought very few of them. The article is clearly not written by a parent because it barely touches on Buy Nothing Groups on Facebook.

We've barely bought any clothes either. They all come from Buy Nothing groups. Kids grow out of toys and clothes every 3 months. Parents are desperate to offload this stuff.

And my wife has become a hoarder as have other parents in the neighbourhood. Buy Nothing groups seem to set off some sort of hoarding affliction in parents.

(Aside: My goodness, Medium has gotten terrible. The article will not scroll for me because of some random overlay that won't dismiss. Why do publishers stay on Medium? I regret it every time I click a link.)

I never understood those annual release cycles anyway. Too artificial, too forced. Great for marketing hype, accumulating bugs, and missing out on documentation. Bad for quality.

False! A foundational concept in Constraint Theory is that "Large Batch Sizes Increase Lead Time".

Apple should figure out how to release smaller batches more often to improve quality. They should figure out how to release the first day of the quarter, every quarter. And work backward on what needs to happen to make that happen. Then release first of the month, every month. Once again, work backward on how to make that happen.

For example, we release to the iOS App Store and Google Play Store first thing on Monday, every Monday. And we worked backwards to figure out what we needed to do to make that happen.

When something goes wrong, the batch size is small enough that we can quickly figure out what happened. Also, the release train is reliable enough that engineers can push back on PMs. "You are not getting this feature this Monday. You'll get it next Monday".

Large batch sizes and long release cycles are terrible for quality!

> A little insight on Vancouver: PRC investment firms decided that the steady growth of the North American real estate market looked to provide great returns on investment. So, these firms started buying up large numbers of single-family homes in Vancouver.

Reference required. Empirical evidence does not support your claim.

The PDF in the parent’s comment shows there were 1010 vacant homes in 2017 and 502 vancant homes in 2022.

Jens Avon Bergmann of MountainMath.ca did analysis after the 2021 numbers were released. His takeaway:

> “The results demonstrate very little “toxic demand” leading to vacancies in BC, and provide valuable checks on estimates of “foreign” ownership.”

https://doodles.mountainmath.ca/blog/2021/11/21/three-years-...

Please stop spreading this disinformation unless you have actual references with actual empirical evidence. It is actively harmful to supply-side solutions.

I am open to have my mind changed if you have evidence that toxic demand is actually causing significant harm. With significant harm defined as being one magnitude greater than the 500 vacant homes in the above PDF from the City of Vancouver.

”Be Useful” 3 years ago

I'm a fan of Arnold, but I think it's pretty clear that he suffers from issues stemming from his rough relationship with his father.

Read the book and watch the Netflix documentary. I’m pretty sure Arnold is self-aware of his father issues. For a concrete example, Arnold’s brother dies drinking-and-driving at the age of 24. Arnold contrasts the way he was able to handle his relationship with his father compared to his deceased brother.

I had a chance to look at an early version of Unblocked. I think the huge benefit is when you work in a microservices environment or with many clients.

Over time, engineers get comfortable working on their own microservice but don’t have the context to make changes in microservices that other team’s own. Having iOS, Android, and web clients exasperates this.

Unblocked helps engineers get all of the context they need around changes. When teams grow, this context ends up in places like Slack threads that are 100 comments deep.

As much as you try to get engineers to write documentation, it just makes more sense to pull already written context from Slack and GitHub and generate the documentation.

GraphQL makes sense when you have:

  - Many teams with many micorservices with many underlying stores
  - A fetch-based architecture
Each team can be responsible for implementing the resolver for their service along with caching, scaling, etc. At Netflix's scale you don't want to have every single service have to scale to the level of the BFF/Orchestration layer. https://www.apollographql.com/docs/apollo-server/data/resolv...

If you have push-based architecture, it makes more sense for underlying microservices to publish to a broker like Kafka and then materialize a view to DynamoDB, Mongo, Redis, etc.

And if you don't have many teams with many microservices, then just do the REST, Rails, MVC thing and save yourself the headache.

Dumb question, what are invariants?

The term that you want to Google or ask ChatGPT is "Design By Contract". An invariant is something that is true during the lifecycle of a class, function, loop, service, system, etc. Invariants, preconditions, and postconditions are the three primary constructs in DbC.

This is a blast from a previous lifetime! I worked at Relic Entertainment during that time. Both Relic and Radical's offices were in Yaletown in Vancouver at that time, IIRC. Radical ended up moving to Main & Terminal.

I worked on Company of Heroes and Dawn of War during this era. The code looks very familiar. It's the same style of C++. The code looks very similar to Homeworld. https://github.com/HomeworldSDL/HomeworldSDL

I went to SFU, where Neall Verheyde one of the programmers from Radical lectured one semester. Sadly, it looks like he passed away a few years ago. https://www.dignitymemorial.com/obituaries/west-vancouver-bc...

He only really excelled at creating inhumane structures that only serve to impress the intelligentsia. It's not like you'd ever want to live in his austere glass boxes

I read your comment while perched on a stool next to my kitchen island. The city stares at me in the background while I glance back at the city from time to time.

I used to live in one of the "austere glass boxes" you speak of that is pictured on the cover of Douglas Coupland's City of Glass. I live a couple blocks down the street now. https://en.wikipedia.org/wiki/City_of_Glass_(Coupland_book)

The metaphorical stones of others can not shatter this beauty.

I have two Staff+ level positions open on my team. The expectation for them is to be able to work in a cloud-native (AWS/K8s/Terraform/etc), distributed systems (Kafka/SNS/SQS/Kinesis) that is mission critical because it touches people's money (fintech). And new client code gets written in modern stacks (Swift/SwiftUI, Kotlin/Compose, Typescript/React/Next.js).

If I were still an IC rather than a talking head on Zoom all-day, my role would map to somewhere between Senior Staff and Principal. I would write microservices from scratch, deploy to the cloud, operate them, and then write all of the clients (iOS/Android/Web) myself. I've been doing this for ~20 years so I have the ability to quickly pick up new languages, frameworks, platforms, technologies, etc.

The current Senior Staff/Principal engineers do projects like decomposing that old miscellaneous database from the original monolithic codebase and implement it across all domains with correct boundaries. Build libraries that all engineers on the team use. Ship V1 of that new product that is very strategically important to the company.

(Send me an email if you are a Staff+ engineer that is looking for something new!)

Is the coding question that is representative of the work you do at your company, and that you expect candidates to have done?

The solution is a while-loop with a couple of if-statements. I would hope an engineer would write code like this many times per day. Whenever they need to marshal a blob from A to B.

It also can feel just a tad insulting to be drilled on CompSci 101 questions.

I wish I had this problem! In these rare cases, I just say, "Great job! This was to just double-check you could write code. You'd be surprised how often a candidate isn't able to solve this! Let's talk about your career. In what aspects would you like to grow next?"

Hiring manager here with open REQs. I've been doing multiple phone screens daily, and it's been brutal on my end, too.

I structure the hour-long phone screen to be 1/3 coding, 1/3 behavioural questions, and 1/3 career growth and questions for me.

We rarely get out of the coding question block. It's a fairly simple question that ChatGPT solves easily. The tightest solution is about 10 lines of code. It can be answered either with iterative, recursive, or functional code. There is a general case, an empty case, and an exceptional case. It's the type of code I was able to write after completing CMPT 101. I had to change the question since it was so easily solvable by ChatGPT.

Engineers with years of experience at FAANG and similar companies cannot solve this straightforward problem. It's like, what have you been doing with your life? Did everyone do nothing during ZIRPy times and have accumulated years of rust that they now need to shake off?

This is an interesting topic. I suspect you are being vague for privacy. But is it possible to get some more context?

What do you think your strengths are? Which strengths does the manager want you to grow?