Software Engineering Tidbits

Software Engineering Tidbits shares practical advice and insights on software development, drawing from the author's experiences at Airbnb, Uber, and Microsoft. It covers a range of topics including coding practices, code reviews, release and outage management, scaling personal productivity, development experience, API design, engineering course opportunities, and maintaining a positive engineering culture.

Software Development Best Practices Code Reviews and Management Release and Outage Management Personal Productivity in Engineering Development Experience Improvement API Design and Documentation Engineering Education and Courses Engineering Culture and Communication

The hottest Substack posts of Software Engineering Tidbits

And their main takeaways
98 implied HN points 22 Jan 24
  1. Large Language Models (LLMs) are key in AI applications like OpenAI's ChatGPT and Anthropic's Claude.
  2. Vector databases and embeddings help understand word associations, with tools like Pinecone and the Embedding Projector by TensorFlow.
  3. Tooling in AI is advancing, with Vellum for versioning prompts and Not Diamond for routing prompts for optimal model response.
255 implied HN points 26 Apr 23
  1. Ensure all necessary steps are taken before landing a pull request to the main branch, such as passing all tests and code reviews.
  2. Deploy new software versions gradually to production, starting with a small number of machines first.
  3. Consider implementing CI/CD for continuous deployment to improve observability, but balance it with on-demand deployments to ensure all changes are attended to.
235 implied HN points 13 Feb 23
  1. Acknowledge and address service alerts promptly to prevent further degradation.
  2. Prioritize returning the service to normalcy by rolling back changes or failing over to healthy regions.
  3. Communicate effectively, prepare in advance, and conduct post mortems for effective outage management.
216 implied HN points 11 Apr 23
  1. One way to scale yourself in a professional setting is to schedule specific office hours for addressing requests.
  2. Another method to scale yourself is to create a comprehensive internal search system to easily access knowledge resources.
  3. Delegating tasks to team members and managers is essential for freeing up time, reducing bottlenecks, and fostering growth opportunities.
Get a weekly roundup of the best Substack posts, by hacker news affinity:
176 implied HN points 09 Feb 23
  1. Keep variable declarations close to their usage in the code.
  2. Use guarding techniques to keep the majority of the code unnested and clean.
  3. Try to reduce the number of parameters in a function for better readability.
117 implied HN points 27 Nov 22
  1. Fix a bug and write a unit test simultaneously for solid coding practice.
  2. Solid experience in software engineering is shown by fixing bugs and writing unit tests.
  3. Benefits include avoiding regressions, ensuring correct fixes, and improving code coverage and test suite reliability.
294 implied HN points 27 Jan 22
  1. Keep your pull requests small and focused on one change at a time
  2. For reviewers, make sure to properly review and provide constructive feedback, avoiding auto-approvals
  3. Pay attention to non-reversible decisions and ensure encapsulations are well designed
78 implied HN points 07 Feb 23
  1. Regularly refactoring code is important for maintaining a clean and efficient code base.
  2. A well-maintained code base can boost team morale and productivity.
  3. Working in a messy code base is like working in a messy kitchen - not an ideal environment for software engineers.
58 implied HN points 22 Mar 23
  1. Recommend following a 'Help me Help you' approach in software engineering
  2. In bug reports, provide clear title, priority, severity, repro steps, expected result, actual result, and additional details for easier resolution
  3. Consider adding valuable information like screen recordings and detailed context in bug reports for the engineering team
176 implied HN points 28 Mar 22
  1. Clean code should be readable and easy to understand at a glance.
  2. Elegant code is sectioned off into different parts, making it easy to navigate and locate bugs.
  3. Effortlessly extendable code allows for easy modifications and additions without complexity.
176 implied HN points 22 Mar 22
  1. A good development experience is crucial for happy engineers.
  2. Investing engineering time to improve development experience is important.
  3. Neglecting the quality of development experience can lead to decreased happiness and effectiveness of engineers.
176 implied HN points 22 Mar 22
  1. An API should clearly state what it will do and then do that.
  2. You shouldn't have to dig into the code of an API to understand how to use it.
  3. Good APIs should not have hidden or unintended consequences not mentioned in the documentation.
117 implied HN points 22 Mar 22
  1. Priority in an outage is returning service to green status
  2. First look at rolling back recent changes or falling back to unaffected regions
  3. Avoid spending time to identify root cause before fixing the outage
98 implied HN points 23 Mar 22
  1. Controversy exists around the concept of '10x engineers' because elegant code is hard to quantify.
  2. Working with '10x engineers' can reveal their line of thinking and elegance through simplicity.
  3. The logic and patterns put in place by exceptional engineers tend to endure long after they are gone.
39 implied HN points 24 Nov 22
  1. The author is grateful for starting the newsletter, which allows them to share technical posts online.
  2. The author participated in a Twitter Space discussion about Elon Musk acquiring Twitter from an engineering perspective.
  3. The author will teach a 'Mastering Software Engineering' course on Maven, sharing lessons learned from working at companies like Uber, Airbnb, and Microsoft.
78 implied HN points 22 Mar 22
  1. Experienced engineers need to be adept at distinguishing between reversible and non-reversible decisions.
  2. Reversible decisions can be made quickly without much hesitation, while non-reversible decisions require thorough thought and consideration.
  3. Taking non-reversible decisions lightly should be avoided.
78 implied HN points 22 Mar 22
  1. Noisy on-call rotations with false positive alerts can harm team morale and cause engineers to ignore alerts.
  2. It's important to quickly address and improve the situation to prevent further negative impact.
  3. Consider turning off paging alerts and dedicate time to get the on-call rotation into a healthier state.
78 implied HN points 22 Mar 22
  1. Be open minded during code reviews and try to understand feedback.
  2. Even experienced engineers can benefit from fresh perspectives.
  3. Treat code reviews as a gift to improve your work.
58 implied HN points 22 Mar 22
  1. Consider holding a meeting if a code review discussion thread gets too long or if a pull request is not progressing.
  2. If you are short on time and need a pull request to be reviewed quickly, follow up with a code review meeting.
  3. Check out the "Software Engineering from the Frontlines" course by Georges El Khoury on Maven for valuable insights.
58 implied HN points 22 Mar 22
  1. A good pull request outline is clear and concise with specific sections like description, testing, and reviewers.
  2. Include helpful details like screenshots, curl requests/responses, and line comments on code diffs to assist code reviewers.
  3. Consider taking a course on mastering software engineering if interested in learning lessons from big tech companies like Uber, Airbnb, and Microsoft.
19 implied HN points 18 Nov 22
  1. When migrating systems, standardize and consolidate the API of the old system first.
  2. Implement the API of the new system as the second step.
  3. Shadow both the old and new system outputs to compare and fix discrepancies during the migration process.
39 implied HN points 22 Mar 22
  1. Keeping the main/master branch in an always shippable state is vital in software engineering.
  2. Maintaining an always shippable state ensures high quality and functional code in the repository.
  3. Consider taking a course on 'Software Engineering from the Frontlines' by Georges El Khoury for valuable insights.
39 implied HN points 22 Mar 22
  1. When code reviewing, provide comments as suggestions and questions for a friendly and constructive review.
  2. Consider teaching "Software Engineering from the Frontlines" course to share hard-learned lessons from your experiences at top companies.
  3. Encourage readers to subscribe for free to receive new posts and support the author's work on Software Engineering Tidbits.
19 implied HN points 22 Mar 22
  1. Blameless postmortem culture is crucial for improving quality in an engineering organization.
  2. A good postmortem outage report should include an executive summary, timeline, impact, root cause analysis, detection, mitigation, prevention, and next steps.
  3. Writing and sharing a postmortem report, along with following up on next steps, can lead to a culture of continuous improvement.
19 implied HN points 22 Mar 22
  1. Keeping pull requests small improves quality and speed of review.
  2. Consider taking a course on Software Engineering from the Frontlines.
  3. Subscribe to receive more posts from Software Engineering Tidbits.