HNHacker News
TopNewBestAskShowJobs

faizshah

3,439 karma · joined July 30, 2013

Contact: Username @ umd.edu
submissionscomments
faizshah··on AWS CEO tells workers to quit if they don't want to come back to the office
The fact that US labour laws are this weak is a travesty. You can just circumvent severance by making working conditions unpleasant and you don’t even need to hide it.
faizshah··on Ask HN: If you were rewriting Emacs from scratch, what would you do differently?
Let us write plugins in whatever programming language we want and provide some simple interface like Unix sockets or something for us to communicate with the editor process.

Instead of making the first class installable extensions plugins create a primitive called modes that encapsulate groups of plugins with extra configurations so that instead of having to pick every plugins for our setup we just pick the most popular javascript or ruby etc. mode and then add a couple of our own plugins on top.

Add some system that suggests hotkeys based on usage. If I hit l 20 times instead of just hitting f’ to get to the end of the line show a popup. Gamify the key maps and suggest key maps and features even from my plugins.

Instead of having a package manager for your editor just use homebrew and integrate it deeply into the editor.

faizshah··on Python 3.13.0 Is Released
I don’t think they added autocomplete support so PtPython is still better.
faizshah··on What's New in Ruby on Rails 8
I highly recommend you watch the first half hour of DHH Rails World talk on Rails 8 even if you aren’t a Ruby dev: https://youtu.be/-cEn_83zRFw?si=ANVPRory_J0LKjZj

The idea of Rails 8 is to move away from trend following and try to reject some of the ideas that have become popular in the industry (like being afraid to touch a Linux server or implementing your own auth). Really though provoking stuff.

faizshah··on AI is an impediment to learning web development
Some decisions like “how do I mock a default export in jest again?” are low stakes. While other decisions like “how should I modify our legacy codebase to use the new grant type” are high stakes.

Deciding what parts of your workflow to automate is whats important.

faizshah··on AI is an impediment to learning web development
Do you have any evidence of that?

From personal experience and from the popularity of rstudio, jupyter etc. the evidence points in the other direction.

It’s because when you start out you just need to learn what code looks like, how does it run (do all the lines execute at once or sequentially), that you have these boxes that can hold values etc.

faizshah··on AI is an impediment to learning web development
If your goal is just to get something working then go right ahead. But if your goal is to be learning and improving your process and not introducing any new issues and not introducing a new threat etc. then you’re better off not just stopping at “it works” but also figuring out why it works and if this is the right way to make it work.

The idea that wanting to become better at using something is pearl clutching is frankly why everything has become so mediocre.

faizshah··on AI is an impediment to learning web development
If your goal is “ship it” then you might be right. If your goal is “ship it, and don’t break anything else, and don’t cause any security issues in the future and don’t rot the codebase, and be able to explain why you did it that way and why you didn’t use X” then you’re probably wrong.
faizshah··on AI is an impediment to learning web development
This is in my opinion the right way to use it. You can use stackoverflow or ChatGPT to get to “It works!” But don’t stop there, stop at “It works, and I know why it works and I think this is the best way to do it.” If you just stop at “It works!” You didn’t learn anything and might be unknowingly making new problems.
faizshah··on AI is an impediment to learning web development
I completely reject this way of thinking. I remember when I was starting out it was popular to say you learn less by using an IDE and you should just use a text editor because you never learn how the system works if you rely on a run button or debug button or a WYSIWYG editor.

Well in modern software we stand on the shoulders of many many giants, you have to start somewhere. Some things you may never need to learn (like say learning git at a deep level when learning the concept of add, commit, rebase, pull, push, cherry pick and reset are enough even if you use a GUI to do it) and some thins you might invest in over time (like learning things about your OS so you can optimize performance).

The way you use automation effectively is to automate the things you don’t want to learn about and work on the things you do want to learn about. If you’re a backend dev who wants to learn how to write an API in Actix go ahead and copy paste some ChatGPT code, you just need to learn the shape of the API and the language first. If you’re a rust dev who wants to learn how Actix works don’t just copy and paste the code, get ChatGPT to give you a tutorial and then your write your API and use the docs yourself.

faizshah··on AI is an impediment to learning web development
The modern software space is too complex for any one person to know everything. There’s no one mental model. Your expertise over time comes from learning multiple mental models.

For example if you are a frontend developer doing typescript in React you could learn how React’s renderer works or how typescript’s type system works or how the browser’s event listeners work. Over time you accumulate this knowledge through the projects you work on and the things you debug in prod. Or you can purposefully learn it through projects and studying. We also build up mental models of the way our product and it’s dependencies work.

The reason a coworker might appear to be 10x or 100x more productive than you is because they are able to predict things about the system and arrive at solution faster. Why are they able to do that? It’s not because they use vim or type at 200 wpm. It’s because they have a mental of the way the system works that might be more refined than your own.

faizshah··on AI is an impediment to learning web development
It has nothing to do with your level of knowledge or experience as a programmer. It has to do with how you learn: https://www.hup.harvard.edu/books/9780674729018

To learn effectively you need to challenge your knowledge regularly, elaborate on that knowledge and regularly practice retrieval.

Building things solely relying on AI is not effective for learning (if that is your goal) because you aren’t challenging your own knowledge/mental model, retrieving prior knowledge or elaborating on your existing knowledge.

faizshah··on AI is an impediment to learning web development
The copy-paste programmer will always be worse than the programmer who builds a mental model of the system.

LLMs are just a faster and more wrong version of the copy-paste stackoverflow workflow it’s just now you don’t even need to ask the right question to find the answer.

You have to teach students and new engineers to never commit a piece of code they don’t understand. If you stop at “I don’t know why this works” then you will never be able to get out of the famous multi hour debug loop that you get into with LLMs or similarly the multi day build debugging loop that everyone has been through.

The real thing that LLMs do that is bad for learning is that you don’t need to ask it the right question to find your answer. This is good if you already know the subject but if you don’t know the subject you’re not getting that reinforcement in your short term memory and you will find things you learned through LLMs are not retained as long as if you did more of it yourself.

faizshah··on Emacs Speaks Statistics
I think it depends on how new your students are to programming. If they are already coding and have their favorite IDE then it would be nice to force them to try something new to see a different workflow (even if they end up going back to vscode later).

On the other hand for newer programmers you want to focus less on the tools, installation and workflow and more on just getting them programming. In that situation the batteries included environments like RStudio would be preferred.

Another practical thing to think about is how much you and your TAs want to wrestle with installation issues vs just giving them a web based notebook environment like Colab.

faizshah··on Terence Tao on O1
This has been observed by more people than just Terence Tao. Try using chatgpt to program something of higher complexity than tutorial code or write a basic blog post, it lacks creativity and the code is poorly designed.
faizshah··on Show HN: Io_uring for Ruby
I found the easiest way to explain it is Ruby/Python/Lua are scripting languages for optimized C code.
faizshah··on Artifacts are now generally available
So I have used it in the way you’re describing for coding a backend service in Rust. I had never used rust before and I was just trying to see how easy it would be.

The good part is you can get the minimum viable product of every feature up every time. The bad part is when you run into bugs you can’t debug it yourself because you haven’t built up the mental model of how the system works since you’re just copying and pasting. The more unique your problem gets (once you’re out the hello world zone of problems) the worse the AI is at helping you. The first few times you run into a simple debugging and the AI figures it out for you it’s pretty cool but the frequent times the AI gets stuck in a loop and you spend hours feeding it debug output after debug output and it still being broken makes you hate this workflow.

So yes it does help you rapidly build the features but at the same time there’s an immense amount of additional work needed to maintain and debug the system. Also the code is generally very poorly structured and architected.

So yea impressive stuff at a surface level and great for speeding up your ability to get started on a task. But really bad to rely on it (at this point) for anything of greater complexity than the basic quick start tutorial of your library of choice (in my experience).

faizshah··on Artifacts are now generally available
This is nice but this is what I would call hello world complexity. Like if you do a basic react tutorial or have the AI teach it to you (2 hours) then you would be able to make this in <30 minutes and most likely it would teach you tailwind as well.

The advantage is this lets you see what something would look like in a few minutes without needing to learn the thing (saves you 2.5 hours) the disadvantage is when you try to add new features or build a new site you haven’t learned anything. The 2.5 hours is an investment in the skill.

Another interesting thing to point out is how the UI pattern is off in your example. Do you see how “selected” category is in the same multi selection as the actual menu items whereas the normal UI pattern would be to have a Cart or something on the page. This is the issue that I have been running into with these Generative UI approaches is this stuff happens constantly and in very strange ways.

faizshah··on Artifacts are now generally available
Has anyone had success applying with these yet?

I found that for anything above hello world complexity the snippets produced by these tools take more time and have lower quality than if you just learned the tool yourself (which you can use AI for) and did it yourself.

I did manage to get interesting results when I turned it into a few shot prompt with a lot more RAG. So maybe more specialized versions of these tools can produce better results than generalist versions.

faizshah··on Three questions to turn the table during technical interviews
I don’t like the wording of the question but saying “talk to a product manager” is a red flag answer that would be the exact wrong answer an engineer would be looking for.

A good manager coaches their engineers on how to package (one pager, demo, talking to partners etc.) and present their ideas to get buy-in from leadership, these types of managers are the ones hackers like.

A bad manager is one who gives a dismissive “talk to a PM” answer, who doesn’t coach through the politics/process of the company and simply dismisses your ideas outright. If you hear this type of answer it gives the impression of those “just do your job and keep your head down” sort of workplaces with management that’s bad for growth.

faizshah··on Three questions to turn the table during technical interviews
In theory it’s irrelevant in practice although companies try to make the process quantitative it is ultimately qualitative because it’s a human rating on a qualitative rubric. The impression you leave on the interviewer always makes a difference in how they represent you in their feedback and panels.

It’s like in school every TA uses the same rubric yet they all grade differently.

faizshah··on Three questions to turn the table during technical interviews
Yea these questions aren’t great but if you want to ask these type of questions a better version would be:

- “Can you tell me about the last time an IC on your team turned an idea into a feature/product? What was the process?”

This can pinpoint whether the manager has a record of helping their directs get their own ideas into the product.

- “Tell me about the challenges you ran into in your last major migration, how did you decide what technical debt falls below the line?”

All migrations end up being late due to unknown unknowns, but you probably want to learn a little bit about how they managed the situation and how they decided to cut scope to still meet the new deadline. Or you could go with something like “tell me about the first 6 months of your most recent hire.”

The “6 months have gone by, what’s different?” Is just a bad question. If what you’re trying to figure out is how you’ll transition from onboarding to full team member why not just ask about that directly?

Also if you wanna social engineer the interview with this type of strategy, you probably should ask questions that are less focused on what they will do for you and more focused on how you can impact the organization.

faizshah··on Experience the Apollo 11 Lunar Landing
Do yourself a favor and look up moon landing 4k on youtube. There’s some amazing immersive stuff now: https://youtu.be/boFZ3cAws20

There’s also a few amazing first person videos from space walks on the ISS: https://youtu.be/AmrrSfiMxGA

The footage from Artemis is gonna be incredible.

Also highly recommend this “are we going?” Talk on engineering issues in Artemis: https://youtu.be/OoJsPvmFixU Which is where I learned about this report from NASA called “What Made Apollo a Success”: https://ntrs.nasa.gov/api/citations/19720005243/downloads/19...

faizshah··on The historical distinction between coder and programmer
You can absolutely work as a professional writing code for 20 years and never work on a large software project or a project with a large team.

I worked on a small team at a government contractor that never used version control and deployments were an rsync from the lead engineer’s laptop to the cloud, this was in 2020.

There’s a lot of industries like bioinformatics or journalism where there’s people who are adept at writing code but who are not doing software engineering.

faizshah··on The historical distinction between coder and programmer
There is definitely a difference between “someone who can write a working computer program in a language” and “someone who can design, maintain, communicate, document and own a part of a large software project.”

Whatever you decide to call these two things anyone who has onboarded a new grad/intern has observed this distinction because its a different skill set.

faizshah··on Linux Pipes Are Slow
This is a really cool post and that is a massive amount of throughput.

In my experience in data engineering, it’s very unlikely you can exceed 500mb/s throughput of your business logic as most libraries you’re using are not optimized to that degree (SIMD etc.). That being said I think it’s a good technique to try out.

I’m trying to think of other applications this could be useful for. Maybe video workflows?

faizshah··on ArcticDB: Why a Hedge Fund Built Its Own Database
I still didn’t get why they built this, there’s a better explanation of the feature set in the FAQ comparison with parquet: https://docs.arcticdb.io/latest/faq/

> How does ArcticDB differ from Apache Parquet?¶

> Both ArcticDB and Parquet enable the storage of columnar data without requiring additional infrastructure.

> ArcticDB however uses a custom storage format that means it offers the following functionality over Parquet:

> Versioned modifications ("time travel") - ArcticDB is bitemporal. > Timeseries indexes. ArcticDB is a timeseries database and as such is optimised for slicing and dicing timeseries data containing billions of rows. > Data discovery - ArcticDB is built for teams. Data is structured into libraries and symbols rather than raw filepaths. > Support for streaming data. ArcticDB is a fully functional streaming/tick database, enabling the storage of both batch and streaming data. > Support for "dynamic schemas" - ArcticDB supports datasets with changing schemas (column sets) over time. > Support for automatic data deduplication.

The other answer I was looking for was why not kdb since this is a hedge fund.

faizshah··on Ask HN: What do you monitor on your servers?
The implementations of zero trust that I have seen involve exposing your service to the public internet with an Authenticating Proxy on top. So instead of trusting the network implicitly you trust the caller’s auth token before they can connect to the server.

So you might have an internal service that has passed a minimal security bar that you can only establish an https connection with if you have a valid SSO token.

faizshah··on Ask HN: What do you monitor on your servers?
I mean this is true but the key part is “securing them for exposure on the internet.” Adding a simple 2FA layer (I think google calls this the Access Proxy or Identity Aware Proxy) on top is usually the way you secure zero trust services.

I don’t think it is advisable to directly expose your Grafana to the public internet where you can hit it with dictionary attacks.

faizshah··on Structured Outputs in the API
The converse API in AWS bedrock lets you use function calling across a number of different providers (doesn’t support OpenAI): https://docs.aws.amazon.com/bedrock/latest/userguide/convers...

I have been using it so that my agents aren’t specific to a particular model or api.

Like others have said many other providers already have function calling and json schema for structure outputs.

← PreviousPage 4 of 27Next →