Andrew's Substack

Andrew's Substack focuses on web technology and frontend software engineering, addressing both technical and professional development themes. It discusses evolving AI impacts on programming, interview techniques, dealing with uncertainty, software development practices, improving code quality, management guidance, and optimizing work-life through productivity hacks and evaluating technology use.

Artificial Intelligence in Programming Professional Development Software Engineering Practices Coding and Technology Tutorials Management and Leadership Productivity and Work-Life Balance Personal Development

The hottest Substack posts of Andrew's Substack

And their main takeaways
83 implied HN points 29 Nov 24
  1. Code coverage alone doesn't indicate whether tests are good or useful. It's more about the quality of the tests than the quantity.
  2. Not all tests are valuable; some can be complex and fail for reasons that don't matter, which can lead to false confidence in the code.
  3. The aim of testing should be to assure that your code works and to catch errors, instead of just trying to raise a coverage percentage.
2 HN points 18 Jul 24
  1. It's best to build products with accessibility from the beginning to save costs and get better results.
  2. Making an app accessible later can be challenging and lead to a backlog of accessibility bugs.
  3. In the real world, retrofitting for accessibility may be necessary, and it's valuable to focus on educating teams, ensuring new developments are accessible, and tackling a subset of accessibility issues at a time.
Get a weekly roundup of the best Substack posts, by hacker news affinity:
2 HN points 09 Jun 24
  1. TypeScript 5.5 introduces inferred type predicates, improving variable type tracking through code, even when dealing with undefined values.
  2. Control flow narrowing for constant indexed access in TypeScript 5.5 allows for safer type handling when accessing object properties.
  3. TypeScript 5.5 now supports type imports in JSDoc, making it easier to import types for type-checking in JavaScript files.
1 HN point 02 Aug 24
  1. Zed is an open-source code editor and stands out because it's built in Rust, not Electron. This makes it a faster and smoother option for coding.
  2. One unique feature of Zed is 'channels,' which allow teams to collaborate on coding projects in a way that feels more like a dedicated group chat for a project.
  3. These channels are long-lived, meaning anyone can join in and help out whenever they want, making remote collaboration easier and more interactive.
1 HN point 27 Apr 24
  1. React 19 introduces actions, making it easier to handle data mutations and state updates in response to async requests, with features like useActionState to simplify state management.
  2. Server components in React 19 allow rendering components ahead of time, separate from the client app, which can be beneficial for static site generation or running server components on CI servers.
  3. Server actions in React 19 are a magical feature that combines server-side actions not included in client bundles but accessible to client components, enhancing network request capabilities.
2 HN points 11 Feb 23
  1. Uncertainty is unavoidable. It's scary not knowing how things will turn out.
  2. In your journey, there's no one with all the right answers. You're the authority now.
  3. Keep moving forward despite uncertainty. Focus on improving decision making and don't be afraid to change course.
0 implied HN points 09 Oct 24
  1. Progressive enhancement means creating websites that work well without JavaScript first, and then adding more features for those who do have it. This approach helps make sites more accessible for everyone.
  2. Using native HTML elements in progressive enhancement leads to simpler code, which means less client-side state management and easier overall development.
  3. It often results in better performance since the browser handles more tasks. Less JavaScript code can lead to faster and more focused functionality in applications.
0 implied HN points 26 Jun 23
  1. Understand the core insight in questions from executives to address feedback effectively.
  2. When users consistently do something 'wrong,' it might be the system that needs adjustment, not the users.
  3. Quality of screen time matters more than quantity - evaluate how apps respect your time and attention.
0 implied HN points 15 Oct 24
  1. The 'useEffectEvent' hook lets you use values in an effect without causing the effect to rerun when those values change. This helps keep your code clean.
  2. You can currently manage values with refs or by excluding them from the dependency array, but both ways can be clunky or raise warnings.
  3. Using 'useEffectEvent' simplifies handling non-reactive values, making your code easier to read and maintain.
0 implied HN points 19 Jun 24
  1. The creator experimented with creating a new video course called Pro Git to enhance Git skills at work, a helpful tool for professional development.
  2. The creator faced challenges like intimidation and procrastination but overcame them by focusing on making a little progress each day, highlighting the importance of consistency.
  3. Despite initial obstacles, the creator found joy in the process of creating content, and expressed eagerness to continue building this skill based on feedback.
0 implied HN points 14 Oct 24
  1. Use Tailwind for most styles in your React app since it helps maintain consistency and keeps stylesheets small.
  2. CSS modules are helpful for specific cases like custom animations or grid areas when Tailwind isn't enough.
  3. For very dynamic styles that depend on JavaScript, using inline styles in React is the way to go, but these situations should be rare.
0 implied HN points 10 Jul 24
  1. React may not be the best choice for everything, but it has its strengths and can be a reasonable choice for many projects.
  2. Using a consistent framework across an organization can be beneficial in certain cases.
  3. React's server components can reduce the need to ship a lot of JavaScript to clients, making it a server-only templating language for parts of a webpage.
0 implied HN points 30 Jul 24
  1. Node.js is getting support to run TypeScript files directly, making it easier for developers to work with TypeScript without the need for extra setups or tools.
  2. Currently, this TypeScript support will only allow basic features, meaning some advanced features like enums aren't included yet; however, most features will still be usable.
  3. Even though you can run TypeScript files, published packages on npm won't support TypeScript for now to avoid complicating things further.
0 implied HN points 07 Sep 24
  1. In Remix, it's better to share code using functions instead of creating reusable API endpoints. This helps keep your code cleaner and easier to manage.
  2. When sharing functionality across different routes, let each loader return only the data needed for that specific route. This simplifies your code and reduces complexity.
  3. If you have common code between loaders, extract it into a separate function. This keeps your routes straightforward and maintains readability.
0 implied HN points 03 Jul 23
  1. Asking for help can be a competitive advantage and enlists people in your journey.
  2. Focus on doubling down on strengths rather than neutralizing non-fatal weaknesses.
  3. Find a balance in your skills - not too specific to limit opportunities, but not too general to be undervalued.