Readit News logoReadit News
tmerr commented on Ask HN: Who wants to be hired? (July 2024)    · Posted by u/whoishiring
DrMiaow · a year ago
Location: Beijing, China

Remote: Yes

Willing to relocate: Yes, but.... due to my unique diplomatic status, I cannot relocate unless the price is right. I don't need to work, but I will for the right project or company.

Technologies: C, C++, C#, TypeScript, JavaScript, Node.js, React, WEBASM, NGINX, SQL, Redis, Python, AWS, Docker, Kubernetes, Ansible, Terraform, CUDA, Video Encoding, Jupyter, PyTorch, LLMs, MPEG (Low-level video encoding), Linux, TV and Mobile development. HbbTV, ATSC 3.0 (NextTV). OpenTV. Design: Figma, Balsamiq, Adobe CS.

Hi. I'm a highly self-motivated builder and problem solver. Nominated for multiple technical Emmys. You name it, I have built it, at scale. Give me a team, and I will teach them how to do it right and efficiently. My previous project was a Twitch-killing streaming system for 200M+ simultaneous viewers. I can build anything. I can find a solution to any problem. I specialise in building streaming services. If you own a TV you are likely using my software already. For money, I design and build national-scale broadcast systems. Do you want to build a Netflix? I can do that from the ground up. For fun, I am currently building a large-scale AI project in public. ( https://www.youtube.com/watch?v=sqvHjXfbI8o )

Résumé/CV: https://blog.metawrap.com/1994/12/28/resume-of-james-mc-parl...

Email: james@metawrap.com

tmerr · a year ago
Heh, I'd recommend replacing dead links on the blog with https://web.archive.org/ ones.

Based on how broken the site's external links were I incorrectly concluded the whole blog was created by genAI. Then I thought to check web.archive.org and found they're legitimate links & it's just internet bit rot.

tmerr commented on A curious phenomenon called 'Etak'   maphappenings.com/2024/04... · Posted by u/MBCook
gizmo · a year ago
One the one hand this is a cool story about real technology pioneers. On the other hand, this is a story about people building technology that was so ahead of its time that it had no chance of turning into a good product. Too expensive, too unreliable, too complicated.

I think there are some obvious parallels here to General Magic and the Apple Newton. Very cool technology. Impressive demos. But ultimately the products didn't deliver on the vision. It wasn't until the iPod and capacitive touch screens and tiny hard drives came to the market that the iPhone became possible. Being 20 years early doesn't help.

Similar catastrophically flawed research projects get started today. In the past couple of days the Humane AI pin has been in the news. It's a wearable AI gadget that seems cool but it doesn't work. The tech has to catch up to the vision. It's at least a decade ahead of its time.

tmerr · a year ago
A more optimistic takeaway is that if you set out to solve a hard problem then you might be surprised about your tech's applications elsewhere. Between 1983 and 1989 they built a company that they went on to sell for ~25 million, or ~64 million in 2024 dollars. I don't know how much went into it but it doesn't sound like an obvious failure.

http://pqasb.pqarchiver.com/latimes/access/60130710.html?did...

tmerr commented on Go: What we got right, what we got wrong   commandcenter.blogspot.co... · Posted by u/veqq
norir · 2 years ago
> Also, writing a compiler in its own language, while simultaneously developing the language, tends to result in a language that is good for writing compilers, but that was not the kind of language we were after.

I have seen this sentiment a few times recently. First of all, it raises the question is a language that is not compiled in itself a bad language for writing compilers? My intuition is usually yes. Secondly, the implication is that a good language for compilers will not be good for other applications. I really don't understand this because a compiler will use most of the same building blocks that are used for other programs.

I would really like more context into what the author is trying to say though.

tmerr · 2 years ago
The ideal set of building blocks depends on the problem.

If the building blocks make it easy to write concurrent code (Go, Erlang), then it becomes easier to write a server. If they make it easy to represent "A or B or C" and pattern match on trees (ML-like languages), then it becomes easier to write a compiler.

Add to that: if you are trying to make an easy to onboard language, you want to look at how beginners use it, not experts. Someone writing a compiler for language X is certainly an expert in X.

tmerr commented on Backward Compatibility, Go 1.21, and Go 2   go.dev/blog/compat... · Posted by u/philosopher1234
KronisLV · 2 years ago
I wonder why Go isn't the new Java/.NET (yet?).

Clearly a lot of tools and APIs have been written in it, many would describe not needing a separate runtime on the target system as a big plus and the language seems simple enough to learn and utilize (with VSC support and GoLand both being good), even the typical complaints like the error handling don't seem like dealbreakers.

I wonder what's missing for Go to become a mainstay of development for the decades to come, or at least take up a huge chunk of the job market instead of being considered a niche language in some places.

tmerr · 2 years ago
Maybe the decline of desktop applications (Java, C#) and Android (Java)? And then Go coming out with some killer frameworks? I have to stretch my imagination to imagine anything causing Go to outpace C# or Javas ecosystem.
tmerr commented on The Missing Semester of Your CS Education   missing.csail.mit.edu/... · Posted by u/saikatsg
mydriasis · 3 years ago
I love vim, it's great to know how to navigate it, but I have met very few people who use it professionally. I'd love to hear others' experiences, there.
tmerr · 3 years ago
I'm 30 and have been using vim since college. Usually I'm not actually using the vim editor, but some IDE that has vim keybindings. Good enough for me since I don't customize it much anyway. And then I get the best of both worlds: IDE features for navigating around files (jump to definition, display references), and vim for navigating within a file. Professionally I never paid attention to how many people are using it. Off hand I know a couple people that use emacs, and zero that know vim, but this is probably because emacs users talk about emacs :)
tmerr commented on Google fires 31 massage therapists as part of layoffs   nypost.com/2023/01/26/goo... · Posted by u/gmays
philliphaydon · 3 years ago
Yeah some of them were TikTok. I don't know if it's gloating or recruitment tools, I'm just observing as a non-US person that's never seen perks even remotely similar.
tmerr · 3 years ago
Social media is played up like reality TV. Perks are good but working at a faang is 90% just work, like anywhere else.
tmerr commented on Conc: Better Structured Concurrency for Go   github.com/sourcegraph/co... · Posted by u/aurame420
camdencheek · 3 years ago
> nice work

Thanks!

> The default concurrency GOMAXPROCS is almost never what I want.

FWIW, the default concurrency has been changed to "unlimited" since the 0.1.0 release.

> Aggregated errors are almost never what I want.

Out of curiousity, what do you want? There is an option to only keep the first error, and it's possible to unwrap the error to an array of errors that compose it if you just want a slice of errors.

> Using it would place a burden on any reader that isn't familiar with the library

Using concurrency in general places a burden on the reader :) I personally find using patterns like this to significantly reduce the read/review burden.

tmerr · 3 years ago
> FWIW, the default concurrency has been changed to "unlimited" since the 0.1.0 release.

Nice! Will that end up on Github?

> Out of curiousity, what do you want

Most often I want to return just the first error. Some reasons: (1) smaller error messages passed across RPC boundaries (2) original errors can be inspected as intended (e.g. error codes) (3) when the semantics are to cancel after the first error, the errors that come after that are just noise.

A couple other thoughts

  - I think the non-conc comparison code is especially hairy since it's using goroutine pools. There's nothing wrong with that and it's fast, just not the easiest to work with. Often goroutine overhead is negligible and I would bound concurrency in dumber ways e.g. by shoving a sync.Semaphore into whatever code I otherwise have
  - I like that errgroup has .Go() block when concurrency limit is reached. Based on a quick skim of the code I think(?) conc does that too, but it could use documentation

tmerr commented on Conc: Better Structured Concurrency for Go   github.com/sourcegraph/co... · Posted by u/aurame420
tmerr · 3 years ago
Ahh having a generic pool abstraction that collects results is tempting... nice work. I likely won't use this library though, since

  - I don't want to mess with panics.
  - The default concurrency GOMAXPROCS is almost never what I want.
  - Aggregated errors are almost never what I want. (I haven't read the implementation, but I worry about losing important error codes, or propagating something huge across an RPC boundary).
  - Using it would place a burden on any reader that isn't familiar with the library

tmerr commented on Ask HN: How do I lead a team in whom I have no confidence?    · Posted by u/toqti
tmerr · 3 years ago
My advice:

Tell the teammates that you want to see them grow to become code reviewers. At first require PRs to be approved by two people: first someone else reviews it. once they LGTM, then you review it for final approval. Do this for a while, until you start noticing like you have little to add. And then grant the relevant reviewer the privilege to review in a single pass. Bus factor += 1, and better knowledge transfer.

That is the process you'll have when you get back. But in the short term, it's probably fine to let them approve each others code while you're gone. Yes they might they break something.. but you can always roll back (I hope). Blocking all PR merging until you return sounds a little overkill to me, but there might be some reason the stakes are so high that I'm missing.

tmerr commented on Monorepos are changing how teams build software   vercel.com/blog/monorepos... · Posted by u/gk1
tored · 3 years ago
How would you handle versioning in a monorepo? Just a new directory for major versions?

If we have multiple teams you can’t really refactor other teams code and sometimes you need to do breaking changes thus I imagine that some versioning must exist.

tmerr · 3 years ago
That's a great question. What I've seen is versioning de emphasized. Good unit & integration test coverage to prevent refactor breakage. And when you make a large change that affects consumers of your library, you find a way to do it incrementally. E.g. instead of changing a function's parameters, you can create a second function, migrate everyone over, then delete the old one. And of course, you would not ordinarily modify another teams code without first getting their LGTM.

u/tmerr

KarmaCake day346October 4, 2012
About
github.com/tmerr
View Original