Topics/Engineering practice/Tags
engineering
64 notes tagged engineering in the Engineering practice topic. How engineering teams work: process, estimation, hiring and leadership.
- No. 43: Tuan Dao on delegating to AI
Tuan Dao, an engineer at Dwarves, on moving from pair programming with AI to delegating to it, and why human review is always the bottleneck.
- #5 Building is cheap now, getting heard is the hard part
Han talks with Ethan Phan, co-founder and CTO of Plot, about reading a pivot signal, staying lean for 2.5 to 3 years, and running an AI-native engineering team where…
- Waterfall, iterative or Agile: how to choose a software lifecycle for a project
Software 101 notes on when Waterfall, iterative and Agile each fit, where each one breaks, and why no single lifecycle suits every software project.
- Engineering release checklists for production, UAT and frontend UI
Three pre-ship checklists in one place: production readiness for a service, user acceptance testing with the product team, and the frontend UI check before a design goes…
- Our publish step took 110 seconds, then 78. Our release tab took three tries.
Reading a CI log line by line cut memo's publish step from 110 to 78 seconds and exposed three silent bugs. Then agents started deploying all day, and the Releases tab…
- Better engineering
A personal take on how AI is changing software development and why better engineering still comes down to human judgment, not just better tools.
- IC and management
Philip Su's journey from IC to management reveals three career growth drivers and one critical question every potential leader must answer. The insights challenge…
- Engineers in the AI landscape: architects, tinkerers, planners, and the vibers
Exploring the new archetypes of software engineers in the age of AI: architects, tinkerers, planners, and vibers.
- Working with legacy code
Learn how to navigate large, established codebases without losing your sanity. Discover technical strategies, cultural insights, and AI assistance for thriving in…
- The removal of Apache Kafka's dependency on Zookeeper
Kafka has been using Zookeeper for a variety of important functions. It uses Zookeeper to keep track of which brokers are part of the Kafka cluster. This is a critical…
- Sql and how it relates to disk reads and writes
Sequential read/write operations involve accessing data in a continuous, linear manner. This typically occurs when transferring large files or accessing a large file on…
- URL Redirect vs. Rewrite; What’s the difference?
When working with websites and managing the computers that show them, we run into two important ideas: redirect URLs and rewrite URLs. These ideas are like tools that…
- Our view on fullstack engineering
Discover what full-stack engineering truly means, exploring how skilled developers blend frontend, backend, and infrastructure knowledge to create seamless, user-focused…
- Adoption of pnpm
The Dwarves team switched from Yarn to pnpm for faster, more efficient package management, improving development speed and saving disk space across their projects and…
- A paid project as an interview assessment at Dwarves
Discover how a paid coding project at Dwarves using Discord API and Elixir provided a unique interview experience focused on real backend data engineering and engagement…
- Render optimization in data-fetching libraries
Data-fetching libraries are software tools or frameworks that can help improve the performance and scalability of your application by handling network requests and data…
- How we created an AI powered interview system using OpenAI's ChatGPT
Discover InterviewGPT, an AI-powered ChatGPT system that automates technical interviews by generating tailored questions and evaluating answers for engineers at all…
- Managing concurrent workloads in Go, part 1: worker pools and fan-out/fan-in
Two Go concurrency patterns for handling many tasks safely: the worker pool and fan-out/fan-in, each with a worked example.
- Managing concurrent workloads in Go, part 2: pipelines, semaphores and goroutine counts
The pipeline and semaphore patterns in Go, and how to choose the number of goroutines for a workload.
- Message queues and streaming platforms eg Kafka Nats Rabbitmq
An in-depth exploration of message brokers, their use cases, and implementation examples using RabbitMQ in Go. Covers the basics of message queues, their advantages and…
Show all 64
- Lessons learned from concurrency in blockchain projects
Learn how to handle concurrency and race conditions in Go blockchain projects using PostgreSQL advisory locks for efficient distributed locking and safe cronjob…
- Continuous translation
Continuous translation (CT) is a modern approach to translation management that involves synchronizing software development and translation workflows. This means that…
- Database designs for multilingual apps: column, JSON and translation tables
Learn how to design multilingual databases using column-based, JSON-based, and translation table approaches to efficiently manage multi-language support for apps with…
- Unit testing in Go, conventions and best practices
How to write unit tests in Go, from file and function naming to table-driven tests and mocking with gomock.
- What is PNPM compare to NPM/Yarn
PNPM is a package manager for Node.js which stands for “Performant NPM”. It was introduced in 2016, the same year Yarn was released. PNPM is a fast, disk space efficient…
- Accelerating project initiation with a Next.js boilerplate and React toolkit
Speed up project initiation with NextJS-Boilerplate and React-Toolkit, featuring pre-configured tools, TypeScript, custom hooks, and ESLint for faster setup and improved…
- An i18n guideline for frontends: locale detection, routing and RTL text
Learn how to implement multi-language support with locale detection, internationalized routing, RTL/LTR text handling, and i18next formatting in React.js and Next.js…
- How blue-green deployment helped Mochi Bot ship updates
Learn how implementing blue-green deployment with Argo Rollouts on Kubernetes improved Mochi Bot’s updates by eliminating downtime and ensuring seamless releases for…
- Profiling in Go
Profiling in Go is a powerful tool that can help you identify and fix the subtle issues in your code quickly and efficiently. In this article, we'll explore the world of…
- Radio talk 61: adopting a monorepo with Turborepo and Nx
Learn how adopting monorepos and tools like Turborepo and Nx can simplify code management, reduce duplication, and boost developer productivity for faster,…
- From multi-repo to monorepo: a case study with Nghenhan Turbo
Learn how migrating to a Turbo-powered monorepo cut build times by 60%, boosted developer productivity by 40%, and simplified dependency management in a real trading…
- Why micro frontend
As web applications become more complex and feature-rich, traditional frontend architectures such as monolithic will become harder to maintain, scale, and evolve.…
- Why we chose our frontend tech stack
We pride ourselves on being a team of seasoned technology experts, passionate about crafting innovative solutions for our clients. With years of experience in the…
- No. 19: Tay Nguyen on focusing on the core
Tay Nguyen, a Senior Software Engineer at Dwarves in 2023, on how he knew IT was his field, his rule of fixing the core of a problem, and leaving a good job that did not…
- The key security mechanisms for tackling cyber threats
Learn essential cybersecurity tips from expert Hieu PC on building secure products, protecting data, and staying updated on security standards to prevent hacking and…
- Team Topologies: stream-aligned teams and the enabling teams that support them
Notes on two Team Topologies team types: what a stream-aligned team owns and needs, and how an enabling team closes capability gaps for it.
- A data analyst in retail trading: Power BI and SQL for business insight
Discover how data analysts use tools like Power BI and SQL to transform retail trading data into actionable business insights on sales, finance, and marketing…
- React 18 feature quick guide
React 18 was released in March 2022. This release focuses on performance improvements and updating the rendering engine.
- Software 101, the impact, types and history of software
The opening section of the Software 101 syllabus, covering what software is, why it matters, the main types of software and a short history of how it is built.
- Software engineering is engineering: the case for it
Explore why software engineering is truly engineering, highlighting its use of discrete math, agile methods, professionalism, and unique tools like version control that…
- Go in software engineering
An overview of Go's key features, including simplicity, concurrency support, and interface-driven OOP. Explores Go's strengths in cloud applications and utility…
- Reusability in software development, part 1: benefits, problems and the reuse landscape
Why software teams reuse code, what goes wrong, and the landscape of reuse from single classes to complete systems.
- Reusability in software development, part 2: application frameworks and product lines
How object-oriented application frameworks package reuse, and how software product lines reuse a common core across a family of related products.
- An introduction to software craftsmanship at Dwarves
Learn how software craftsmanship shapes quality coding, teamwork, and well-crafted software at Dwarf, emphasizing discipline, professionalism, and continuous improvement…
- Architecture decision records: documenting software choices
Learn how Architecture Decision Records (ADR) help teams document software choices, improve project clarity, and guide newcomers with clear context, solutions, and…
- Well crafted software
Discover how software craftsmanship enhances coding skills, promotes clean design, and drives continuous improvement for developers committed to building well-crafted,…
- Splitting and reusing code in React: render props, HOCs and hooks
Learn how to split and reuse repetitive React code using render props pattern, higher-order components, and React hooks like useState for efficient modal state…
- Be careful with your code splitting setup: scroll resets in virtual lists
Learn how improper Webpack code-splitting can cause React virtual lists to reset scroll position unexpectedly and how grouping related chunks fixes navigation glitches…