jeremydeanlakey's comments

jeremydeanlakey | 1 year ago | on: Cognitive load is what matters

To make this more concrete:

If your service layer method requires data to be saved and the results to be sorted, you want to call a data layer method that saves it and a library method that sorts it. You do not want any of that saving or sorting functionality in your service method.

Combining different layers and different tasks so that your module is "deep" rather than "shallow" will make your code much higher cognitive load and create a lot of bugs.

jeremydeanlakey | 1 year ago | on: Cognitive load is what matters

The central idea around cognitive load is very good, central to writing good code.

But it's deeply mistaken to oppose smaller (or more correctly: simpler) classes/functions and layered architecture.

Layered architecture and simple (mostly small) classes and methods are critical to light cognitive load.

e.g. You should not be handling database functionality in your service classes, nor should you be doing business logic in your controllers. These different kinds of logic are very different, require different kinds of knowledge. Combining them _increases_ cognitive load, not decreases.

It's not mainly about swapping out dependencies (although this is an important benefit), it's about doing one thing at a time.

jeremydeanlakey | 3 years ago | on: U.S. moves to bar noncompete agreements in labor contracts

> The bottom line is, a non compete is not something that springs on you.

It's pretty standard now for employers to spring on you a previously-unmentioned non-compete clause at the time that you're onboarding. I've learned to ask for it before accepting an offer but I don't think most employees know to do that.

I'm a capitalist and I think non-competes have a very valid purpose in a limited set of circumstances. But the ubiquitous use right now is to make it harder for employees to leave.

jeremydeanlakey | 3 years ago | on: The WFH Folks

The desire for social connection at work might be dependent on phase-of-life.

My first job out of college had lots of socializing. In fact, that's where I met my wife.

Now I have kids. I don't really want to socialize with coworkers.

Socializing with coworkers was low before COVID. Now it's even slightly lower and I'm okay with that.

Edit: Also the impact of social connection on productivity might depend a lot on role and personalities involved.

jeremydeanlakey | 4 years ago | on: Two Wishes for Dev Tooling

I like the refactor bot idea.

I'd be a little nervous to lean on Copilot to refactor, but I'd love a bot that just implements the changes that IntelliJ can already recommend to me.

A bot that did other logically straightforward refactors (like extracting mapper methods from big functions) would also be nice.

jeremydeanlakey | 4 years ago | on: Green vs. Brown Programming Languages

Ever since I first started working as a developer, I've wanted to preach the idea that code UX is important.

Some issues I found: 1) It took me years to clearly specify what clean code is. 2) I still haven't learned to effectively articulate its importance. 3) Except maybe onboarding time, I don't know how to measure its importance. 4) Cleaning up code is not rewarded. 5) Writing dirty code is often rewarded with promotions.

jeremydeanlakey | 5 years ago | on: Outgrowing Software

> tech will change everything, but once the dust has settled the questions that matter will mostly be retail questions, not tech questions

I'm not disagreeing but how will we know the dust has settled?

I might have thought the dust had settled with music when you could download mp3s. But now streaming services are the thing.

jeremydeanlakey | 6 years ago | on: Show HN: Finicity API Client for easy financial data

I created this after trying to use Finicity's API for my personal project. This handles authorization, endpoints and parameters, paging, mapping responses to typed objects.

Note that Plaid has a similar but official Python API library. But so far as I know, it only handles the authorization and endpoints, not the paging and mapping responses to objects.

I'm a little confused why companies whose product is an API don't create robust client libraries as they can do so better and more cheaply than their customers (and only once). If anyone can shed light on why they don't, I would be interested to know.

jeremydeanlakey | 6 years ago | on: No One Gets Rich by Shunning New Cars and Lattes

When I was a student, buying lattes would have significantly hurt my freedom. My stress level would be higher and I may have struggled to graduate before running out of money.

After building a career, worrying about lattes was a waste of effort. But buying a nice car would have limited my freedom. For example, I would not have bought as much investment real estate and I would probably be >$500K poorer.

But worrying about buying new cars probably won't make sense for me soon.

Avoiding lattes and new cars was, in fact, very important for my finances (in the past, but not now). The article acknowledges the importance of individual circumstances:

> What should determine personal spending is the totality of the buyer’s financial circumstances.

But the headline risks misleading people.

jeremydeanlakey | 6 years ago | on: Analyzing churn rates, free trials, and other metrics

> You might think "just crank up the growth until you hit $10k/month". Something weird happens ... you ended up losing money with high growth.

Ratio of new customers showing losses vs old customers showing profits.

Your ratio of new to old customers basically IS your growth rate.

As that ratio increases, you could show "losses". But financially, it's more like investment than losses.

You probably should, in fact, crank up the growth in this situation. Think of it as an investment and calculate your rate of return.

Edit 1: I threw together a quick spreadsheet to illustrate the point (shows cash flows per customer):

https://docs.google.com/spreadsheets/d/19mbsjcwlyLs_KsvPrjdt...

Edit 2: On second thought, rate of return is the wrong measure because time value of money is not significant. What you care about is Customer Acquisition Cost and Customer Lifetime Value.

Edit 3: FYI I'm a developer now, but was actuarial, and Excel whiz w/degrees in finance & accounting. I'm always happy to give anyone a little bit of free help with things like this.

jeremydeanlakey | 6 years ago | on: Basic Social Skills Guide (2012)

I plan to use this with my son because I think he's going to struggle socially as I did when I was a kid.

One thing about body language though - I think it's one thing to read about body language but a very different thing to visually train your brain to recognize it quickly.

I hope to one day make YouTube videos with lots of examples for this purpose. In the meantime, the best book resource I've found for that is the book "What Every Body is Saying", because it contains lots of example pictures.

jeremydeanlakey | 6 years ago | on: Code Health: Respectful Reviews == Useful Reviews

They didn't have my favorite one: using questions instead of statements For example, "Why did you do it this way?" instead of "Here's why you should do it a different way". (or "have you considered...", "what are the benefits of A vs B", "is this going to meet this requirement or avoid that problem")

This approach has helped me because

a) It feels less aggressive (more like you're working through it together),

b) It prods them into thinking through what they missed, and

c) It prods for information that I might be missing. I might actually discover that I'm wrong and the other person considered more information.

jeremydeanlakey | 6 years ago | on: Today’s correction isn’t much like the dot-com bubble

One perspective that I gained much later than I should have:

Suppose you have a small software company, Reinvest Software with big margins and lots of opportunities to expand. You can take home that profit and pay taxes. Or you can invest in growth. That investment in growth is an investment in intangible assets with insanely good tax treatment. But it looks bad on the financial statements.

Suppose an investor, Smart Capital, sees your business potential and invests even though your GAAP income is low or negative. Smart Capital does very well for itself.

Suppose another investor, Sucker Capital, sees Smart Capital doing well, decides that profits don't matter and invests in Negative Margin Software, which never has hope of making money.

I think a lot of people can't distinguish between Negative Margin Software and Reinvestment Software. For many years, I didn't realize that they were separate things and I thought tech was mostly a Ponzi scheme.

At first glance, I see more Reinvestment Software vs Negative Margin Software compared to the dot-com era.

page 1