HN user

tomlagier

429 karma

Freelance full-stack software engineer. I like solving problems with code of all shapes and sizes. Lots of experience with JS.

lagiers.studio, heapviz.com, and storysystem.games.

I'm always looking for contacts and contracts!

Get in touch at tom@lagiers.studio

Posts17
Comments150
View on HN

Why is it catching on? In the best light because it actually is a tremendous productivity accelerator. In the worst light, because we live in a world that incentivizes "fake it til you make it".

It's great at a few things and pretty good at a lot of things. In my view, the thing that it's the absolute best at is churning out low value, rarely-read communication. There is a massive amount of that type of communication - spam, student essays, procedural documents for compliance. There are loads of jobs that need to do that sort of thing regularly and it's a godsend for them.

Next.js 14 3 years ago

Honestly, I've had a great experience because I've read a lot of experiences like yours and stuck with pages router & Next 12, which works nicely for everything I've needed it to do.

There might be a point where app router is stable & smooth but it's pretty clearly not right now, so havn't really seen the need to upgrade. I think there was a pretty decent comms issue with the stability of it from both the Next and React teams, but I have a hard time faulting an otherwise fairly stable and useful framework for adding features when they're not breaking the existing stable path.

Hooks was a bit of a bumpy transition as well, but I do think that I prefer the code written with them to the code before them. I think it's OK to wait a year or two to let the rough edges get filed down when these types of frameworks release big new feature sets.

Edit: I'll note that we don't use next/image or API routes either, both of which I've seen some churn / pain with. Possible I just hit on the framework when it was in a pretty happy place and most of the new features or suggested defaults have had pain points that I havn't experienced.

Nit: Foundry uses Pixi.js for rendering, so it's using more or less standard JS gamedev tools to draw on a WebGL context in a canvas.

Edit: See https://foundryvtt.wiki/en/development/guides/pixi

Edit2: For an example of why gamedev toolkits don't necessarily produce performant, highly usable software, check out Dungeondraft (https://dungeondraft.net/). It's built with Godot and gets the job done, but as an application it's a total mess. I'm working on an alternative but (surprise!) it's a challenge.

For me, the reason I prefer Google to GPT is that it's much easier for me to assess the credibility of a Google answer vs a GPT one. There are so many signals in any primary source. Some obvious ones are things like number of upvotes, site reputability, presence of (working) examples, when was the answer written? More intangible things are like how closely does this solution match my problem statement, does the author write in a trustworthy manner are also easy for me to pick up at a glance.

With GPT, I don't have any of that (or maybe I just need to re-learn it?)

Also, I get a useful answer from most Google queries. GPT performs at a significantly lower bar (at least right now) - it works well for some stuff but not others, and the time it takes to figure out whether it's going to do a good job (and maybe do a couple of rounds of prompt refinement) is much more than just Googling.

I wonder if there's something that you can do as you're nearing the end of the context window to summarize the "state" of the world so far and put it into context so that the model always has context on the most important details. I'd imagine that you'd lose some of the minor stuff by compressing context this way, but, hey, humans forget minor details too.

Not a dumb question!

They cover different needs - Tailwind is a low-level CSS library that provides a different (and some claim better) way of styling HTML. It doesn't provide markup, interactivity, etc.

AntD is a high-level component library that provides components with pre-built markup, JS interactivity, accessibility, etc. Any of the component libraries in this thread are a good point of comparison.

You might use Tailwind if you're building out your own components, or styling a page that doesn't need much interactivity. It is fast, lightweight, and easy to integrate. You can compare it to any CSS-in-JS tool, SASS, and other styling solutions.

You'd typically turn towards a component library (like MaterialUI, Ant Design, or Tailwind UI) if you're looking to quickly build a webapp that needs a lot of interactivity out of the gate. These solutions are larger and heavier, but provide a lot more functionality (interactivity, accessibility).

I wonder if AWS will make more or less money from these outages?

Will large players flee because of excessive instability? Or will smaller players go from single-AZ to more expensive multi-AZ?

My guess is that no-one will leave and lots of single-AZ tenants who should be multi-AZ will use this as the impetus to do it.

Honestly, having events like this is probably good for the overall resilience of distributed systems. It's like an immune system, you don't usually fail in the same way repeatedly.

Morally, I'm very pro-high density housing. Just like I'm pro-public transit. But in reality, my expressed preference is a single-family house with a yard and the convenience a car brings. I'm not sure how to square these things.

PostgREST 9.0 5 years ago

The issue I have with these automatic "backend from your DB" service is:

* For the simple case, they seem like they are as good as a simple backend service, albeit easier to set up.

* For more complex cases (e.g. external dependencies, complex business logic), they seem so much more difficult to make work that I can't imagine anyone _not_ setting up a separate service to handle those scenarios. Maybe you can do everything with stored procedures, but Hasura, Postgraphile, et al. all seem to suggest that you should stand up a separate service for this.

* Once you've got a separate service where your complexity lives, that's going to be the meat of your project.

* Is it really worth it to introduce a separate dependency & pattern just to scaffold the easy parts more quickly? The consistency of having a single data access pattern between the client and all parts of your service seems like it would outweigh not needing to write a little code to proxy queries through your backend by far.

I guess it really depends on the app - if it's really just a view layer, or if the RUD* has very little logic to it and it's expected that the complexity of the backend logic really won't grow over time (never seen this...) then sure, it could be a fit.

Until then it seems like yet another MVP optimization that gets thrown away as soon as the app needs to grow up.

Maybe not quite the answer you're looking for, but I'll throw it in anyway.

- I planned on quitting my FAANG job in February 2020 to go travel the world for 9 months (midlife crisis, sabbatical, whatever you want to call it).

- COVID hit, we came back March 2020.

- Decided to take the opportunity to leave the Bay Area and try our hand at freelance / contracting for time flexibility so we could go travel again once lockdown ended and international travel became a possibility.

- We thought we might come back to the Bay Area once "it was over" and we'd travelled.

- Lockdown stretched on, borders stayed closed.

- Contracting picked up, was able to negotiate part-time hours making enough to live on.

- My partner switched careers successfully, starting a new business.

- Fast forward to now, I'm still contracting. We've put down roots in the small town we moved to. My partner's business is thriving. We're saving up for a house.

Overall life is good. We've traded the stresses of the Bay Area for a different set of stresses - it's equally difficult finding housing here, starting a new business has been hard, and figuring out what I want out of a freelance career has been a struggle as well. We've got a lot more free time, and the flexible hours have been a huge blessing.

Very cool! We use Postman collections extensively to internally document our APIs and make handoff between frontend and backend easier. We're waffling a bit on backend schema (currently using Yup & Typescript to export request/response types, but no formal definition), but seeing this makes me think it might be worth investing in a migration to OpenAPI, just to ease documentation.

Is there any downside to writing deterministic games? It seems like the only sane way to do it, but I guess it adds some complexity overhead for the initial write otherwise everyone would do it by default?

Just listened to a Revisionist History episode that called out the harms of over-consumption of linoleic acid. Apparently the shift away from animal and towards vegetable oils in the '70s and '80s caused a lot of adverse health effects because we now consume multiples of the amount of linoleic acid that we did in previous generations.

Podcast: https://blog.simonsays.ai/the-basement-tapes-with-malcolm-gl...

(Somewhat biased, but still a good summary of the research) article on linoleic acid: https://theecologist.org/2014/feb/24/linoleic-acid-overwhelm...

Huh, TIL. I had assumed the thickness of the iron would have lead to better heating, but it looks like both aluminum and steel heat much more evenly.

I still argue that the care regimen is overblown, you can scrub with soap and a sponge and as long as you're not just grinding at the surface it will be fine. You can soak it, it's fine. We treat our cast iron like any other pan and it's really not a big deal - we just add appropriate oil if we took off too much of the bonded oil the last time we cooked.

You can just use it like a normal, heavy duty pan. The difference in use and flavor between seasoned and unseasoned is pretty minor, IMO.

The real advantage is that they're so cheap relative to their utility. They heat evenly and stand up to incredible abuse at a fraction of the cost of a normal pan.

Seems like a pretty low ROI to me.

Generously, we're talking about ~$100/hour, my guess is it was actually a lot less than that, maybe as low as half or a third, and this is for an idea that got some traction.

That could be a good wage for some groups of people, but my guess is you'd find a much better one either a) growing something to a larger size or b) working for someone else.

If you're really interested in building these tiny products though, then it could be a way to support yourself doing what you're interested in. I just wouldn't generalize this strategy to "this is a good way to make a living".

On the flip side, I bet doing this sort of thing really sharpens the entrepreneurs skillset - identifying good ideas, quickly bootstrapping a product, and negotiating for funding, so I bet you're getting some pretty big personal levelups as you go.

I just worked through them so it's a bit of a fresh wound. I wanted so badly for there to be a big satisfying payoff!

This is a great idea and caused me to go down a rabbit hole of learning what it would take to actually register a new gTLD.

Short version: The ICANN would need to do a new round of gTLD registrations. This is unannounced but rumored to begin some time this year.

Then, a corporation would need to apply for the gTLD string. This application cost $185,000, non-refundable, in 2012 [1]. Smart money is a steeper fee.

Next, they would actually need to be approved for the gTLD. This requires a company with enough funding to pass the ICANN's audit, and enough technical chops to maintain name servers with enough bandwidth and availability to serve the traffic generated by the new gTLD [2]. There is also a criminal background check and anti-cybersquatting check [3].

Finally, they would have to win in a contention process that involves any other registrar applying for the same string. This may be settled by an auction [4].

The buzz around the 2012 process is that it was generally a waste of time and money - many of the gTLDs far underperformed expectations by the registrars. Further, many of the corporate-owned gTLDs are unused (such as the 76! owned by Amazon)[5].

There were a few winners - the ICANN themselves made a hefty sum of money - some $212 million left over in 2020 [6]. Some other companies figured out the right way to "game" the contention process and intentionally lose the auction for the string [7]. Finally, a company named "Donuts, Inc", won some 270 gTLDs under various subsidiary companies. With such a massive portfolio, they were able to capture a few big winners (such as .guru) [8].

[1] https://newgtlds.icann.org/en/applicants/global-support/faqs... point 2.2

[2] https://www.icann.org/en/system/files/files/gtld-drd-ui-10se...

[3] https://newgtlds.icann.org/en/applicants/agb/guidebook-full-... module 2

[4] https://newgtlds.icann.org/en/applicants/agb/guidebook-full-... module 1.1.2.10

[5] https://domainnamewire.com/2019/02/28/new-tlds-five-years-in...

[6] https://www.icann.org/en/system/files/files/annual-report-20... page 33

[7] https://www.circleid.com/posts/20130603_icann_auctions_or_pr...

[8] https://en.wikipedia.org/wiki/Donuts_(company)

I really liked the first book and parts of the 2nd and 3rd, but man the 3rd book really threw me off the series. Just a really unsatisfying way to land a trilogy - all of the stress and torment that Fitz had gone through for a couple of thousand pages across the 3 books is given just a few pages at the end, not even in-character, to pay off.

Wonderful prose but man the storytelling was a disappointment. Put me off her work completely.

Advertise.

* Tap your network. Post on social, bug old coworkers, ask friends and family. Know what skills you are selling and at what price.

* Build your brand. Create a website, LinkedIn, and social media accounts. Start blogging or posting regularly somewhere. Even if you don't get clients this way, it will increase your credibility.

* Reach out. Look through job postings and hiring sites. Cold email companies that you're interested in working with. Refine your elevator pitch. Join networking communities.

* if you want to buy a home, talk to a mortgage lender while still employed and see what the options are for self employed folks. When I last checked (years ago) you needed to have two years of self employment income to qualify for a mortgage.

This is still true per the lenders I've talked to as of late last year.

Hmm, I'm doing this now & it's been a lot more of an informal process than the top comment. I'm still working with mostly startups who need extra bandwidth on their MVP.

The reason I started is for the flexibility. I'd like to be able to schedule a month or two to travel each year and this seems out of the parameters of most FTE positions. I'd also like to enjoy the outdoors more than a typical 9-5 + commute will allow for.

I actually quit my FTE job at the beginning of the year with the intent of traveling for most of 2020. COVID cut that short, and I decided to contract once we got back for maximum flexibility. I did have enough savings for at least 6 months to start, but only ended up needing to draw down about a month's worth before the contracting income was enough to live on.

I started by tapping my network. I also reached out on hiring platforms and tech communities, and started self-promoting via blog and social posts (though I havn't kept this up at all, perhaps to my detriment).

It didn't take long to secure some small contracts, in the $5 to $10k range for a month or two of work. Doing a good job on these opened me up to further work with those companies. I also kept my ear open on LinkedIn, though the vast majority of people on there and most hiring platforms are looking for FTE.

Every company that I've worked for has wanted to engage me for longer, but I've found that startups are most willing to look to contractors for flexible and part time work.

My most lucrative but least fulfilling contract was 6 months of a mostly-9-to-5, this just felt like being an employee with worse benefits.

Currently, I am working hourly for a couple of small orgs doing some odds-and-ends feature work that's outside of their in-house developers expertise, and I have an 11-day-a-month contract with one of the companies I did project-based work with last year.

This is enough to provide a stable SWE salary with a lot more flexibility. I won't be multiplying the value of my time unless I get into "product-esque" consulting (security, SEO, privacy, accessibility audits), or start working with larger companies.

My workload meets my needs for now, but if I want to grow a business I'll need to refine my offering, target larger companies, and generally put a more professional face forward. I'm not sure this is what I'm interested - I've always been more of an engineer than a business person, so I'm leaning towards working on product with some other people in the free time that my flexible schedule affords.

Some tidbits of advice:

* Get an accountant early on. Money well spent, and will save you a brutal headache when you run into tax questions in the next year.

* I havn't felt the need for a lawyer yet. I suspect if/when I start working with larger organizations, I'll need that next. I have not had much difficulty putting contracts together or getting paid, but I suspect my good luck will come to an end eventually :)

* I did incorporate as an LLC. It hasn't been particularly useful yet, but it might in the future.

* Knowing _why_ you are contacting is important. If you're working with people from the same company 9-5 for months at a time, having a daily standup with them - is that really much different from being a FTE? In some sense, yes, because you can change teams more quickly and easily than FTE, but you take on quite a bit of overhead to do it. You'll need to really work at building a schedule that accomplishes _your_ goals. Everyone wants more of your time!