334 karma · joined August 27, 2019
Location: Sydney, Australia
Remote: Remote or hybrid.
Willing to relocate: No
Technologies: .NET, JavaScript / Typescript (Node, React, etc). Azure, AWS,
Résumé/CV: Please reply if interested, and I'll shoot my through my CV and contact details :)
Email: Ditto
Senior/lead engineer, 10+ years experience. Currently looking for a role at a tech/product company after a few years as a tech lead in consulting/agency land. Have focused extensively on communication and management skills in my previous role however I am primarily (but not exclusively) looking for IC/senior roles to refocus on tech skills a bit.Strengths (IMO): I've previously been the go-to for solving tougher problems. Have uplifted engineering standards and practices. Good communication skills and ability to build rapport with team members and client stakeholders, also able to grasp bigger picture/strategic context of projects.
I've been lurking on HN for ages and hardly ever see job postings in AU (I think I'm the only commenter from Sydney so far!) so if anyone out there is hiring I'll be very interested :-)
Thanks!
I even tried asking ChatGPT :D
--
It irks me to see the frequent misconceptions surrounding GPT-based models like ChatGPT being touted as true general intelligences. While they are certainly advanced in their text generation capabilities, their output is primarily derived from identifying patterns and associations within the training data. These models lack the capacity for introspection, learning, and true understanding that characterizes human cognition.
Let's not forget the limitations of these models, specifically in regards to problem-solving, decision-making and creativity. The output may appear novel, but it is more likely a recombination of previously encountered information.
In short, GPT-based models are a remarkable achievement in natural language processing, but let's not mistake them for true AI.
--
and then I asked it to make it sound like Steve Ballmer.
"Look, I'm gonna be real with you here. ChatGPT and these other GPT-based models, they're not true AIs. They're just really good at pattern matching, right? They can generate text that looks like it's intelligent, but it's not really thinking or learning or understanding like a human does.
Now, don't get me wrong, these models are still incredibly powerful and useful for certain tasks, especially in natural language processing. But let's not pretend they're something they're not. They can't solve problems or make decisions or be creative like a human can.
So let's call a spade a spade here. These GPT models are impressive, but they're not true AIs. And that's just the way it is."
AFAIK the .NET MVC setup was pretty influenced by Rails, but don't think Rails people went to .NET
Except on HN because it's probably going to get nuked.
I'm pretty sure I asked it to complete the text for the following 1. e4 d5 2. ....
Assumes they're roasted nicely, otherwise it's comparing ashtrays with pencil shavings.
Until you run out of memory, but yeah.
Amusingly, a subreddit I frequent has one notorious user who has abused the 'block' feature to ensure their frequent posts on a particular topic are free of dissenting commenters. They block anyone who even slightly disagrees with their position, this prevents them from seeing his threads, and the comments on each thread become entirely one-sided as a result - and the growing list of blocked people have no idea that those threads even exist.
If these are old systems, it could be this... if they're running .NET apps compiled against framework pre... 4.7? 4.8? TLS ain't gonna work...
I do wish you could unlock different modes and step outside of just the pentatonic scale (expert mode?) but hey, awesome thing, I'm having great fun :-)
League, at least for me, didn't seem like a fun game (at least in like 2010 or whatever it was?). Most of the time was hitting hapless minions and waiting for some timer to finish so you could finally fight a human or go jungle/dragon or whatever it was. But that would be over in a few seconds and then back to grinding away at some shitty NPCs. Maybe some people enjoy the actual gameplay enough but 99% of my LoL friends played either for social purposes or were hyper competitive.
I found SC2 way more fun, pretty much every game was fun unless the opponent themselves did something boring like cannon rushing. I would routinely come up with interesting builds/strategies and test them out on people (fun to figure out if it worked or not). Mass marines, weird timing attacks, anti-meta. I didn't see that flexibility in LoL. The mechanics (for me) were far more involved and enjoyable anyway but that's my shitty opinion.
To the point where I can't stand using my work-supplied laptop because of slight mouse lag (I think the mouse travels maybe 30-40ms behind my hand) and 60hz screens. This is somewhat annoying coming from 165Hz, gaming peripherals. Then I have to connect to a VM to do development. Absolute hell.
I really wish Typescript had a great pattern matching system. It would be very nice indeed for structural typing, everything would be easier to read, probably some ways to add more power/expressivity, etc.
eg
type GetOptions<T> =
// Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
T extends {
queryFnData: infer TQueryFnData
error?: infer TError
data: infer TData
}
? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
: T extends { queryFnData: infer TQueryFnData; error?: infer TError }
? UseQueryOptionsForUseQueries<TQueryFnData, TError>
: T extends { data: infer TData; error?: infer TError }
? UseQueryOptionsForUseQueries<unknown, TError, TData>
: // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
T extends [infer TQueryFnData, infer TError, infer TData]
// ...
becomes type GetOptions<T> =
// Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
T extends match {
{ queryFnData: infer TQueryFnData, error?: infer TError, data: infer TData } => UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
{ queryFnData: infer TQueryFnData; error?: infer TError } => UseQueryOptionsForUseQueries<TQueryFnData, TError>,
{ data: infer TData; error?: infer TError } => UseQueryOptionsForUseQueries<unknown, TError, TData>,
[infer TQueryFnData, infer TError, infer TData] => UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
[infer TQueryFnData, infer TError] => UseQueryOptionsForUseQueries<TQueryFnData, TError>
// ...
}
or even, to make the top level way easy to understand in this case: type GetOptions<T> =
T extends match {
Part1 => Part1Match
Part2 => Part2Match
Part3 => Part3Match
}
where Part1Match etc are themselves pattern matches, so you can compose them like functions.Are exhausts/mufflers modelled?
For ages I've wanted to simulate different designs for exhaust headers and systems, to be able to possibly create different/interesting sounds from certain engines - i.e. can you add some additional headers with a different length and make an I4 sound like an I6?
I find it really difficult to go through huge chunks of iterative code. I need abstractions otherwise I can't get my head around it. I often wind up refactoring into manageable chunks (even in pseudocode/diagrams) just so I can understand stuff.
For reference, my cognitive abilities are heavily skewed towards verbal/abstract reasoning - like several standard deviations above the norm - and my spatial/concrete reasoning is nearly the inverse of this, it's terrible.
I wonder if this has something to do with it!