#developer challenges
SubscribeDeveloper challenges are tasks or problems that developers are tasked with solving. These challenges can be related to any programming language, such as JavaScript, but often involve complex algorithms and require problem-solving skills. They can range from small coding exercises to larger projects that require a lot of effort and creativity. By working through these challenges, developers can improve their understanding of the language and develop better problem-solving skills.
A Framework for Managing Technical Debt
TechLead Conference 2023
35 min
A Framework for Managing Technical Debt
Top ContentToday's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Fighting Technical Debt With Continuous RefactoringWatch video: Fighting Technical Debt With Continuous Refactoring
React Day Berlin 2022
29 min
Fighting Technical Debt With Continuous Refactoring
Top ContentThis Talk discusses the importance of refactoring in software development and engineering. It introduces a framework called the three pillars of refactoring: practices, inventory, and process. The Talk emphasizes the need for clear practices, understanding of technical debt, and a well-defined process for successful refactoring. It also highlights the importance of visibility, reward, and resilience in the refactoring process. The Talk concludes by discussing the role of ownership, management, and prioritization in managing technical debt and refactoring efforts.
Monolith to Micro-Frontends
React Advanced 2022
22 min
Monolith to Micro-Frontends
Top ContentMicrofrontends are considered as a solution to the problems of exponential growth, code duplication, and unclear ownership in older applications. Transitioning from a monolith to microfrontends involves decoupling the system and exploring options like a modular monolith. Microfrontends enable independent deployments and runtime composition, but there is a discussion about the alternative of keeping an integrated application composed at runtime. Choosing a composition model and a router are crucial decisions in the technical plan. The Strangler pattern and the reverse Strangler pattern are used to gradually replace parts of the monolith with the new application.
Hacking JSX: Building in Minecraft with ReactWatch video: Hacking JSX: Building in Minecraft with React
Hacking JSX: Building in Minecraft with React
JSX can be used to create builds in Minecraft by writing pseudo-HTML code within JavaScript. It can be transpiled into a format that the browser can understand and is not limited to React. JSX allows for the creation of an intermediary representation that can be converted into commands for Minecraft. Existing tooling can be used with JSX, eliminating the need for custom parsers and enabling linting and IDE support. The source code for the project is available on GitHub.
Supercharged Code Refactoring via Abstract Syntax TreesWatch video: Supercharged Code Refactoring via Abstract Syntax Trees
React Summit 2023
29 min
Supercharged Code Refactoring via Abstract Syntax Trees
This Talk explores the power of Abstract Syntax Trees (ASTs) in software development. It covers the use of ASTs in maintaining React examples, automating dependency identification, and introducing generic typing. The Talk also discusses using ASTs to reason about and generate code, as well as their application in building ESLint plugins and code mods. Additionally, it highlights resources for exploring ASTs, testing AST scripts, and building Babel plugins.
The Rewrite Trap
TechLead Conference 2023
22 min
The Rewrite Trap
The Talk discusses the 'rewrite trap' in software development, where the urge to start from scratch often leads to poor outcomes. It emphasizes the importance of understanding the existing project before making big technical decisions and the benefits of gradual improvement. The Talk also highlights the challenges and pitfalls of a complete rewrite, such as false sense of productivity, problems with edge cases, and the accumulation of tech debt. It stresses the need to understand the system and its influences, cater to the needs of stakeholders outside of engineering, and focus on creating value.
The Game Theory of Software Decision Making
TechLead Conference 2023
18 min
The Game Theory of Software Decision Making
Today's talk is about the Game Theory of Software Decisions, exploring how game theory can be applied to software development. The speaker shares tips on creating a productive team environment and effective decision-making. They emphasize the importance of letting go of unimportant things and focusing on what's best for the project. The talk also discusses handling coding dilemmas and decision-making, suggesting strategies such as defining KPIs and consulting a neutral jury. The speaker concludes by emphasizing the importance of staying rational, bringing data, and maintaining professionalism in software development.
Developing and Driving Adoption of Component Libraries
React Advanced 2022
22 min
Developing and Driving Adoption of Component Libraries
2 authors
Today's Talk discusses the importance of a good component API and the balance between rigidity and flexibility. The demo showcases the gradual evolution of a component's configurability while maintaining ease of use. Measuring the effectiveness of a component library involves factors like adoption rate and component coverage. Collecting data and embracing breaking changes are crucial for continuous improvement. Ensuring consumers are updated and on the cutting edge is a responsibility of the library provider.
Multiple apps, one code to rule them all
React Summit 2022
20 min
Multiple apps, one code to rule them all
This Talk discusses the benefits of using a single app to host multiple experiences or mini-apps, as opposed to a micro front-end architecture. By using a single app, it becomes easier to share state, simplify code sharing, handle analytics and errors, and deploy and monitor the app. The Talk also covers the handling of the shell app, routing, authentication, and subdomains for authentication.
How to Share Code between React Web App and React Native Mobile App in Monorepo
React Summit 2022
7 min
How to Share Code between React Web App and React Native Mobile App in Monorepo
This presentation focuses on sharing code between React web and React native mobile apps. The speaker demonstrates how to achieve feature parity using a Monorepo with NX. They highlight the importance of sharing non-UI code, such as business logic and state management, through shared libraries. This approach allows the apps to focus on UI code while keeping non-UI code separate. For more details, refer to the speaker's blog post.
Advanced Patterns for API Management in Large-Scale React Applications
React Advanced 2021
20 min
Advanced Patterns for API Management in Large-Scale React Applications
Top ContentThis Talk covers advanced patterns for API management in large-scale React applications. It introduces the concept of an API layer to manage API requests in a more organized and maintainable way. The benefits of using an API layer include improved maintainability, scalability, flexibility, and code reusability. The Talk also explores how to handle API states and statuses in React, and provides examples of canceling requests with Axios and React Query. Additionally, it explains how to use the API layer with React Query for simplified API management.
Make legacy code delightful with statecharts
React Finland 2021
22 min
Make legacy code delightful with statecharts
If you must have legacy code, you want it written in statecharts. We'll break down the mental models required for understanding unfamiliar UI code, and compare the maintenance costs with and without statecharts.
Stories and Strategies from Converting to TypeScript
Stories and Strategies from Converting to TypeScript
This Talk discusses the process of converting to TypeScript at CodeCademy. It emphasizes the importance of encouraging adoption and knowledge sharing within the team. The Talk also highlights the seamless integration of TypeScript into the existing infrastructure and build system. The strategy for converting to TypeScript involved using dedicated pull requests and automated tools. The speaker shares tips on automating changes, setting up a styling guide, and celebrating victories. Resources for learning TypeScript are also mentioned.
Complex React Migration: New Solutions to Old Codebase Problems
Complex React Migration: New Solutions to Old Codebase Problems
This Talk discusses the challenges of dealing with legacy code and the benefits of partnerships in software development. It highlights the case study of ServingMonkey and Rango, showcasing the solutions implemented to modernize their code bases. The talk emphasizes the importance of three-tiered architecture and collective ownership in achieving sustainable changes. It also addresses the challenges of migrating to new technologies and the need to consider business value when making technology decisions. The talk concludes with insights on preventing code from becoming legacy and the benefits of code migration and collaboration.