HN user

solidninja

99 karma
Posts0
Comments47
View on HN
No posts found.

Dioxus is the only web-platform technology toolkit that I see having the ability to be cross-platform and use Javascript as little as possible - glad to see their native WGPU rendering stack progress (check out the videos by Nico Burns on Blitz, Taffy etc)

CHOP isn't just the future, it's the present. And if you're not using it, you're starting to fall behind the ones who are.

Be that as it may, the reason I got into software development as a kid was because I wanted to understand how computers worked and tinker with them. I did not get into it because of increased efficiency, or for telling others how to do stuff that I could learn how to do myself. If that makes me unmarketable, then I guess I will move to something that is not so prone to automation. Because I don't want to be a glorified manager (of bots or of people). :)

Thank you for writing this - it is more detailed that I could come up with!

I would like to add that I feel like functional approaches are more the "future" of programming than trying to iterate over imperative ones to make them as "nice" to use. So I don't really see the big deal of trying to add-on features to existing languages when you can adopt new ones (or experiment with existing ones e.g. https://github.com/getkyo/kyo for a new take on effects in Scala).

It's a balance but IMO there should be no realistic concept of "winning the market". If it gets to that point then sure the company is probably making a lot of money but they also have the power to squeeze as much as they can. The irony of posting this on a forum originating from VC culture does not escape me.

a “if you were on an elevator with Marc Andreessen” question

Were they looking for a nice local newspaper story about a misdemeanor assault?

This resonates very strongly with me - I am happy there are other people writing about this. It may not change the course of society but we need to fight for things worth fighting for and not give in to the system.

I Am Tired of AI 2 years ago

There's a quantity argument to be made here - before, it used to be hard to generate large amounts of plausible but incorrect text. Now it easy. Similar to surveillance before/after smartphones + the internet - you had to have a person following you vs just soaking up all the data on the backbone.

In my experience, using tools that do not support the "Go To Implementation" shortcut makes it hard. In IntelliJ, Ctrl+Shift+Click will take you to the possible implementors of an interface.

Concrete example from work today - we have a trading application and there are many paths that lead to alerts of some kind. Alerts are usually raised inline with any business logic (as should be - they intrinsically coupled). Alerts however can be delivered differently - via SMS, other messaging systems and/or log messages. The different places where the alerts need to be generated do not _need_ to know how the alert is going to be physically delivered to its destination - they just need to generate it. Without an interface (or at least a type alias for a function) - it would make being able to say e.g. this alert is a direct phone message vs. a chat message in some channel because of the type it is - much harder.

The problem is manual wiring (as always). It is fairly convenient to declare the source of your dependencies (somewhere around main) and have them be automatically wired in the sub-component graph, all without having to write out the chains of code to call constructor parameters. Also simplifies refactoring, as compile-time DI is mostly done on type and not on name or parameter position.

I'm always fascinated by the amount of comments that devalue separating concerns and reducing coupling by using traits and modules. Maybe if you're exclusively writing serverless functions you don't need much code anyway, but the idea that you can go and read a piece of code that deals with the database separately from a piece of code that deals with your HTTP request encoding (and see how they meet in the middle via a few method signatures) is a pretty powerful one in my experience.

Why Not Comments 2 years ago

That still needs discipline though - or you end up with N half-finished Confluence pages describing the intention behind the design, all of which are now out of date (and naturally in completely different places). The best way I've seen to keep track of changing things is to have the design linked to the ticket somehow (and if it's a link, then that needs to be a permalink to something that will not go away in a year's time).

Probably a lot of that is to do with the short-term profit mindset. There is tons of software that is far from optimal, breaks frequently and has a massive impact on human lives (think: medical record systems, mainframes at banks, etc.). None of it is sexy, none of it is something you can knock up a PoC for in a month, and none of it is getting the funding to fix it (instead funding is going to teams of outsourced consultants who overpromise and just increase their budgets year on year). Gen AI won't make this better I think.

Founder Mode 2 years ago

It comes back to the work itself being interesting and whether you actually care about the field that you are working in. I would not like to live in a world where you have to put in 80 hours a week to get a decent salary as an expert. It's true that there are a lot of people who got into the industry just because of the comp though :(

Well maybe "taking over the market" is also a monopolistic and anti-competitive practice and if we had say, working regulation that forbade the existence of these behemoth companies then the landscape of value would look a little different.

The parallels with abstracting over the effect type and Free(r) monads are really apparent if you've had exposure to that style of programming. As you said, the benefit is that you can separate the business logic (what you want to do) from the execution model (how you do it) and this is very much an ongoing theme in programming language development.

  Full-Time or Contract
  Location: UK
  Remote: Yes or Hybrid (London)
  Willing to relocate: No
  Technologies: Spark, SQL, Postgres, Kafka, Protobuf, Arrow, Linux, Scala, Rust, C#, .NET Core, AWS, GCP
  LinkedIn: https://www.linkedin.com/in/vladimir1/
  Contact: briar_lepton0l@icloud.com or see https://github.com/vladimir-lu
--

I am Vlad, an experienced software engineer that loves using functional/statically typed languages to solve data engineering or distributed system problems.

Full-Time or Contract

  Location: UK
  Remote: Yes or Hybrid (London)
  Willing to relocate: No
  Technologies: Spark, SQL, Postgres, Kafka, Protobuf, Arrow, Linux, Scala, Rust, C#, .NET Core, AWS, GCP
  LinkedIn: https://www.linkedin.com/in/vladimir1/
  Contact: briar_lepton0l@icloud.com or see https://github.com/vladimir-lu
--

I am Vlad, an experienced software engineer that loves using functional/statically typed languages to solve data engineering or distributed system problems.

Indeed - I do not think it is a coincidence that a lot of production experiments in effect systems are happening in Scala right now - the language is very flexible to conduct them. https://github.com/getkyo/kyo in particular looks interesting as it explores a different space where the monadic nature is less exposed to the end user.

  Location: United Kingdom
  Remote: Yes
  Willing to relocate: No
  Technologies: Scala, Rust, Java; Kafka, gRPC, NATS; PostgreSQL, Snowflake, BigQuery; AWS, GCP
  Email: vladimir+hn AT solidninja DOT is
  LinkedIn: https://www.linkedin.com/in/vladimir1/
  Blog: https://blog.solidninja.is/ 
  Github: https://github.com/vladimir-lu
Senior software engineer with a focus on building robust and scalable systems with functional programming techniques. Looking for either contracts or permanent positions within distributed teams. Worked for 13 years in the industry with some of the biggest financial firms as well as tech, ecommerce and mobility companies.