Best of CareerSeptember 2024

  1. 1
    Article
    Avatar of bytebytegoByteByteGo·2y

    EP128: The Ultimate Software Architect Knowledge Map

    Discover the ultimate knowledge map for software architects, exploring essential skills such as mastering programming languages, tools, design and architectural principles, platform knowledge, data analytics, networking, and supporting skills. Learn about the wide-ranging capabilities of PostgreSQL, from time-series data to federated querying and graph databases. Gain insights into advancing from a junior to a senior developer, covering collaboration tools, programming languages, API development, authentication, and system design.

  2. 2
    Article
    Avatar of communityCommunity Picks·2y

    Top 50 System Design Terminologies You Must Know

    Master key system design terminologies essential for acing interviews with practical examples and additional learning resources. Concepts covered include scalability, load balancing, microservices, CAP theorem, sharding, latency, throughput, and many more crucial for building efficient and scalable systems.

  3. 3
    Article
    Avatar of javarevisitedJavarevisited·2y

    20 System Design Case Studies, Articles and Videos for Software Developers

    System Design is a crucial yet challenging topic for tech interviews. This collection of 20 case studies, articles, and videos from platforms like ByteByteGo, Design Guru, Exponent, and Educative offers in-depth insights into designing scalable systems. These resources cover real-world problems and solutions, helping developers prepare for interviews and enhance their software design skills. Topics include designing Uber's backend, Twitter's timeline, Facebook Messenger, YouTube's streaming service, and more.

  4. 4
    Article
    Avatar of javarevisitedJavarevisited·2y

    10 Best Resources for Software Engineer Interviews in 2024?

    Comprehensive guide to preparing for Software Engineering interviews in 2024, covering coding, system design, low-level design, and behavioral interviews. It includes recommended books, YouTube playlists, online courses, practice platforms, and strategies for effective interview preparation. The guide emphasizes the importance of consistent practice and structured learning to succeed in interviews.

  5. 5
    Article
    Avatar of bytebytegoByteByteGo·2y

    EP130: Design a System Like YouTube

    QA Wolf provides an AI-native approach to automate end-to-end testing, allowing teams to achieve rapid QA cycles and high test coverage. The post also covers various Software Development Life Cycle (SDLC) models such as Waterfall, Agile, V-Model, and others. It includes a detailed process for designing a system similar to YouTube, highlighting steps like video upload, transcoding, and content delivery through a CDN.

  6. 6
    Article
    Avatar of workchroniclesWork Chronicles·2y

    (comic) Delegating effort

    Explores themes related to workplace culture and delegation of tasks, highlighting the humorous aspects through a comic frame. Substack is mentioned as a notable platform for this content.

  7. 7
    Article
    Avatar of communityCommunity Picks·2y

    Bad questions for Senior Frontend Dev Interview

    The current landscape of technical interviews for Senior Frontend Developers often includes questions that fail to assess practical experience and real-world problem-solving skills. Common questions like the workings of the Event Loop, differences between arrow functions and regular functions, or memory management often focus on rote memorization rather than actual expertise. The post argues for more meaningful, experience-based questions that better evaluate a candidate’s ability to apply theoretical knowledge practically.

  8. 8
    Article
    Avatar of systemdesigncodexSystem Design Codex·2y

    Message Queues & Message Brokers

    Message queues enable asynchronous communication between producers and consumers by storing messages in FIFO order. They are useful for processing background tasks, distributing tasks, email services, buffering, and payment retries. Message brokers manage these queues and provide additional features like message routing, transformation, protocol translation, and support for the publish-subscribe pattern. This allows seamless integration and communication between different services in applications, such as in an e-commerce platform where order, inventory, shipping, and notification services interact efficiently.

  9. 9
    Article
    Avatar of communityCommunity Picks·2y

    How to Build Your Online Presence as a Developer

    Developers can build their online presence through consistent and genuine engagement on platforms like GitHub, LinkedIn, Twitter, Reddit, and Dev.to. Sharing learnings, providing valuable content, balancing honesty and engagement, and maintaining patience and consistency are key. It's essential to choose the right platforms and strategies that align with personal goals, whether it's career growth, launching a product, or simply sharing knowledge.

  10. 10
    Article
    Avatar of workchroniclesWork Chronicles·2y

    (comic) Bug Reduction Technique

    A lighthearted comic about techniques to reduce bugs at work, crafted with a blend of love and coffee. A delightful take on workplace productivity through humor.

  11. 11
    Article
    Avatar of itnextITNEXT·2y

    System Design Sketches

    System design sketches for various popular applications including social networks, ride-sharing apps, messaging platforms, video streaming services, file hosting apps, and web crawlers. Each sketch outlines the functional and non-functional requirements, core entities, and API endpoints. The post also provides deep dive resources for further exploration.

  12. 12
    Article
    Avatar of systemdesigncodexSystem Design Codex·2y

    Introduction to Kafka

    Kafka is a distributed event store and streaming platform initially developed by LinkedIn and now widely used by companies like Netflix and Uber for data pipelines. It is favored for its reliability and scalability. Kafka messages are written in batches to enhance efficiency, and these messages are categorized into topics and partitions. Producers send messages to Kafka brokers, while consumers read these messages. Kafka brokers usually function within a cluster, allowing for message replication and redundancy. Despite its benefits, Kafka has several complexities, including a plethora of configuration options and underdeveloped client libraries outside Java and C.

  13. 13
    Article
    Avatar of systemdesigncodexSystem Design Codex·2y

    3 Interview Questions on Event-Driven Patterns

    System Design interviews often test candidates on event-driven patterns such as Competing Consumer, Retry Messages, and Async Request-Response. The Competing Consumer Pattern allows multiple instances to process messages concurrently. The Retry Messages Pattern manages transient errors by retrying failed transactions with mechanisms like exponential backoff. The Async Request-Response Pattern involves using correlation IDs to relate requests and responses across multiple instances, ensuring asynchronous communication between services.

  14. 14
    Article
    Avatar of medium_jsMedium·2y

    The Unwritten Rules to Becoming a Senior Developer: 4 Steps to Level Up

    Many developers aspire to become senior developers, a title that greatly influences a team and carries significant salary benefits. The journey from mid-level to senior is less defined and can involve common pitfalls like over-focusing on coding skills alone. Essential steps include improving collaboration, tackling tough problems, documenting work, and learning to write clearly. Promotions might not always come immediately due to budget constraints, but perseverance and continuous improvement will lead to success.

  15. 15
    Article
    Avatar of communityCommunity Picks·2y

    10 Software Design and Programming Best Practices for Developers

    This post outlines 10 essential software design best practices that developers can learn quickly to improve code quality, maintainability, and efficiency. It covers key principles such as modularity, encapsulation, consistent naming conventions, SOLID principles, DRY, separation of concerns, error handling, comments and documentation, test-driven development (TDD), and performance considerations.

  16. 16
    Article
    Avatar of lobstersLobsters·2y

    Twelve rules for job applications and interviews

    Learn twelve practical rules to enhance your job applications and interview performance. The advice emphasizes the importance of demonstrating value through specific examples, being personal and concrete, telling stories, showing vulnerability, confronting weaknesses, and thoroughly researching prospective employers. Additionally, it advises against using AI-generated content to maintain authenticity and personal touch in your applications.

  17. 17
    Article
    Avatar of bytebytegoByteByteGo·2y

    EP131: How Uber Served 40 Million Reads with Integrated Redis Cache?

    Uber uses an integrated caching solution named CacheFront with Redis, Docstore, and MySQL for efficient data handling. The system fetches data from Redis for cache hits and uses MySQL for cache misses, leveraging a CDC service for invalidation. Multi-region cache warming with Redis streaming handles potential database overloads during region fail-overs, while strategic sharding ensures even load distribution across instances.

  18. 18
    Article
    Avatar of systemdesigncodexSystem Design Codex·2y

    Polling Vs Webhooks

    Polling involves repeatedly requesting data from a server, which can be resource-intensive and inefficient. Webhooks, on the other hand, offer a real-time, push-based approach where a server notifies a client when new data is available. Polling can lead to missed real-time updates, while webhooks are more efficient and suitable for scenarios requiring immediate notifications. Each approach has use cases: polling for frequent but non-real-time data updates, and webhooks for scenarios where real-time data is crucial.

  19. 19
    Article
    Avatar of devsquadDev Squad·2y

    Sometimes it will ruin your day

    Bad days can disrupt your emotional and psychological state. Learning how to cope and recover from them is essential for maintaining mental health and overall well-being.

  20. 20
    Article
    Avatar of programmingdigestProgramming Digest·2y

    On Being A Senior Engineer

    Modern resources on what makes a good senior engineer are scarce. There is a significant amount of knowledge in the industry about the characteristics of productive engineers. However, most available literature focuses on management roles and not on the direct responsibilities and skills of senior technical individual contributors.

  21. 21
    Article
    Avatar of bartwullemsThe Art of Simplicity·2y

    Becoming a professional software developer: Identity over skills

    To become a successful software developer, focus on shifting your identity rather than just acquiring skills. Adopt the mindset of a developer who consistently follows best practices and builds daily habits. Reinforce this identity through small, consistent actions, and prioritize systems over goals to ensure long-term professional growth.

  22. 22
    Article
    Avatar of communityCommunity Picks·2y

    Why Generalists Own the Future

    In the age of AI, generalists, who are curious about various domains and adept at solving novel problems, are well-positioned for success. Unlike specialists, generalists can leverage AI to quickly gain new knowledge and navigate complex, unpredictable environments, making them valuable in modern and future economies. This adaptability and problem-solving capability give generalists a significant advantage over both specialists and AI alone.

  23. 23
    Article
    Avatar of bytebytegoByteByteGo·2y

    Millions of Requests Per Hour: SoundCloud’s Microservices Evolution

    SoundCloud evolved from a monolithic architecture to a sophisticated multi-tier microservices setup to handle millions of requests per hour. By implementing Backends-for-Frontends (BFF), Value-Added Services (VAS), and Domain Gateways, SoundCloud optimized its system for better client-specific responses, reduced operational risk, and improved development speed. BFFs provide tailored API gateways for different clients, while VAS centralize business logic to minimize code duplication. Domain Gateways further segregate business concerns, enhancing scalability and autonomy within the system.

  24. 24
    Article
    Avatar of hnHacker News·2y

    Why don’t tech companies pay engineers more to stay?

    Tech companies often lose talented engineers due to inadequate compensation structures that fail to recognize tenure and impact. The author discusses the need for transparent, impact-based compensation models that reward long-standing employees appropriately. At Ethena, plans are underway to implement such a structure to foster long-term employee retention.

  25. 25
    Article
    Avatar of piccalilliPiccalilli·2y

    Introducing: Complete CSS

    Introducing Complete CSS, a new course focused on enhancing your CSS knowledge along with essential soft skills like communication, planning, and execution. The course includes a real-world project to help apply what you've learned. Pre-orders are now open, with the course set to go live in November 2024. You can subscribe to receive updates if you prefer to wait until it's available.