Download or read book Software Engineering at Google written by Titus Winters and published by O'Reilly Media. This book was released on 2020-02-28 with total page 602 pages. Available in PDF, EPUB and Kindle. Book excerpt: Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world’s leading practitioners construct and maintain software. This book covers Google’s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. You’ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions
Download or read book Building Mobile Apps at Scale written by Gergely Orosz and published by . This book was released on 2021-04-06 with total page 238 pages. Available in PDF, EPUB and Kindle. Book excerpt: While there is a lot of appreciation for backend and distributed systems challenges, there tends to be less empathy for why mobile development is hard when done at scale. This book collects challenges engineers face when building iOS and Android apps at scale, and common ways to tackle these. By scale, we mean having numbers of users in the millions and being built by large engineering teams. For mobile engineers, this book is a blueprint for modern app engineering approaches. For non-mobile engineers and managers, it is a resource with which to build empathy and appreciation for the complexity of world-class mobile engineering. The book covers iOS and Android mobile app challenges on these dimensions: Challenges due to the unique nature of mobile applications compared to the web, and to the backend. App complexity challenges. How do you deal with increasingly complicated navigation patterns? What about non-deterministic event combinations? How do you localize across several languages, and how do you scale your automated and manual tests? Challenges due to large engineering teams. The larger the mobile team, the more challenging it becomes to ensure a consistent architecture. If your company builds multiple apps, how do you balance not rewriting everything from scratch while moving at a fast pace, over waiting on "centralized" teams? Cross-platform approaches. The tooling to build mobile apps keeps changing. New languages, frameworks, and approaches that all promise to address the pain points of mobile engineering keep appearing. But which approach should you choose? Flutter, React Native, Cordova? Native apps? Reuse business logic written in Kotlin, C#, C++ or other languages? What engineering approaches do "world-class" mobile engineering teams choose in non-functional aspects like code quality, compliance, privacy, compliance, or with experimentation, performance, or app size?
Download or read book The Software Engineer s Guidebook written by Gergely Orosz and published by Pragmatic Engineer BV. This book was released on 2024-02-04 with total page 398 pages. Available in PDF, EPUB and Kindle. Book excerpt: In my first few years as a developer I assumed that hard work was all I needed. Then I was passed over for a promotion and my manager couldn’t give me feedback on what areas to improve, so I could get to the senior engineer level. I was frustrated; even bitter: not as much about missing the promotion, but because of the lack of guidance. By the time I became a manager, I was determined to support engineers reporting to me with the kind of feedback and support I wish I would have gotten years earlier. And I did. While my team tripled over the next two years, people became visibly better engineers, and this progression was clear from performance reviews and promotions. This book is a summary of the advice I’ve given to software engineers over the years – and then some more. This book follows the structure of a “typical” career path for a software engineer, from starting out as a fresh-faced software developer, through being a role model senior/lead, all the way to the staff/principle/distinguished level. It summarizes what I’ve learned as a developer and how I’ve approached coaching engineers at different stages of their careers. We cover “soft” skills which become increasingly important as your seniority increases, and the “hard” parts of the job, like software engineering concepts and approaches which help you grow professionally. The names of levels and their expectations can – and do! – vary across companies. The higher “tier” a business is, the more tends to be expected of engineers, compared to lower tier places. For example, the “senior engineer” level has notoriously high expectations at. Google (L5 level) and Meta (E5 level,) compared to lower-tier companies. If you work at a higher-tier business, it may be useful to read the chapters about higher levels, and not only the level you’re currently interested in. The book is composed of six standalone parts, each made up of several chapters: Part 1: Developer Career Fundamentals Part 2: The Competent Software Developer Part 3: The Well-Rounded Senior Engineer Part 4: The Pragmatic Tech Lead Part 5: Role Model Staff and Principal Engineers Part 6: Conclusion Parts 1 and 6 apply to all engineering levels, from entry-level software developer, to principal-and-above engineer. Parts 2, 3, 4, and 5 cover increasingly senior engineering levels and group together topics in chapters, such as “Software Engineering,” “Collaboration,” “Getting Things Done,” etc. Naming and levels vary, but the principles of what makes a great engineer who is impactful at the individual, team, and organizational levels, are remarkably constant. No matter where you are in your career, I hope this book provides a fresh perspective and new ideas on how to grow as an engineer. Praise for the book “From performance reviews to P95 latency, from team dynamics to testing, Gergely demystifies all aspects of a software career. This book is well named: it really does feel like the missing guidebook for the whole industry.” – Tanya Reilly, senior principal engineer and author of The Staff Engineer's Path "Spanning a huge range of topics from technical to social in a concise manner, this belongs on the desk of any software engineer looking to grow their impact and their career. You'll reach for it again and again for sage advice in any situation." – James Stanier, Director of Engineering at Shopify, author of TheEngineeringManager.com
Download or read book Developer Testing written by Alexander Tarlinder and published by Addison-Wesley Professional. This book was released on 2016-09-07 with total page 629 pages. Available in PDF, EPUB and Kindle. Book excerpt: How do successful agile teams deliver bug-free, maintainable software—iteration after iteration? The answer is: By seamlessly combining development and testing. On such teams, the developers write testable code that enables them to verify it using various types of automated tests. This approach keeps regressions at bay and prevents “testing crunches”—which otherwise may occur near the end of an iteration—from ever happening. Writing testable code, however, is often difficult, because it requires knowledge and skills that cut across multiple disciplines. In Developer Testing, leading test expert and mentor Alexander Tarlinder presents concise, focused guidance for making new and legacy code far more testable. Tarlinder helps you answer questions like: When have I tested this enough? How many tests do I need to write? What should my tests verify? You’ll learn how to design for testability and utilize techniques like refactoring, dependency breaking, unit testing, data-driven testing, and test-driven development to achieve the highest possible confidence in your software. Through practical examples in Java, C#, Groovy, and Ruby, you’ll discover what works—and what doesn’t. You can quickly begin using Tarlinder’s technology-agnostic insights with most languages and toolsets while not getting buried in specialist details. The author helps you adapt your current programming style for testability, make a testing mindset “second nature,” improve your code, and enrich your day-to-day experience as a software professional. With this guide, you will Understand the discipline and vocabulary of testing from the developer’s standpoint Base developer tests on well-established testing techniques and best practices Recognize code constructs that impact testability Effectively name, organize, and execute unit tests Master the essentials of classic and “mockist-style” TDD Leverage test doubles with or without mocking frameworks Capture the benefits of programming by contract, even without runtime support for contracts Take control of dependencies between classes, components, layers, and tiers Handle combinatorial explosions of test cases, or scenarios requiring many similar tests Manage code duplication when it can’t be eliminated Actively maintain and improve your test suites Perform more advanced tests at the integration, system, and end-to-end levels Develop an understanding for how the organizational context influences quality assurance Establish well-balanced and effective testing strategies suitable for agile teams
Download or read book I Heart Logs written by Jay Kreps and published by "O'Reilly Media, Inc.". This book was released on 2014-09-23 with total page 79 pages. Available in PDF, EPUB and Kindle. Book excerpt: Why a book about logs? That’s easy: the humble log is an abstraction that lies at the heart of many systems, from NoSQL databases to cryptocurrencies. Even though most engineers don’t think much about them, this short book shows you why logs are worthy of your attention. Based on his popular blog posts, LinkedIn principal engineer Jay Kreps shows you how logs work in distributed systems, and then delivers practical applications of these concepts in a variety of common uses—data integration, enterprise architecture, real-time stream processing, data system design, and abstract computing models. Go ahead and take the plunge with logs; you’re going love them. Learn how logs are used for programmatic access in databases and distributed systems Discover solutions to the huge data integration problem when more data of more varieties meet more systems Understand why logs are at the heart of real-time stream processing Learn the role of a log in the internals of online data systems Explore how Jay Kreps applies these ideas to his own work on data infrastructure systems at LinkedIn
Download or read book Letters to a New Developer written by Dan Moore and published by Apress. This book was released on 2020-08-07 with total page 215 pages. Available in PDF, EPUB and Kindle. Book excerpt: Learn what you need to succeed as a developer beyond the code. The lessons in this book will supercharge your career by sharing lessons and mistakes from real developers. Wouldn’t it be nice to learn from others’ career mistakes? “Soft” skills are crucial to success, but are haphazardly picked up on the job or, worse, never learned. Understanding these competencies and how to improve them will make you a more effective team member and a more attractive hire. This book will teach you the key skills you need, including how to ask questions, how and when to use common tools, and how to interact with other team members. Each will be presented in context and from multiple perspectives so you’ll be able to integrate them and apply them to your own career quickly. What You'll Learn Know when the best code is no code Understand what to do in the first month of your job See the surprising number of developers who can’t program Avoid the pitfalls of working alone Who This Book Is For Anyone who is curious about software development as a career choice. You have zero to five years of software development experience and want to learn non-technical skills that can help your career. It is also suitable for teachers and mentors who want to provide guidance to their students and/or mentees.
Download or read book Soft Skills written by John Sonmez and published by . This book was released on 2020-11 with total page 502 pages. Available in PDF, EPUB and Kindle. Book excerpt: For most software developers, coding is the fun part. The hard bits are dealing with clients, peers, and managers and staying productive, achieving financial security, keeping yourself in shape, and finding true love. This book is here to help. Soft Skills: The Software Developer's Life Manual is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important subjects like career and productivity, personal finance and investing, and even fitness and relationships. Arranged as a collection of 71 short chapters, this fun listen invites you to dip in wherever you like. A "Taking Action" section at the end of each chapter tells you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.
Download or read book The Missing README written by Chris Riccomini and published by No Starch Press. This book was released on 2021-08-10 with total page 194 pages. Available in PDF, EPUB and Kindle. Book excerpt: Key concepts and best practices for new software engineers — stuff critical to your workplace success that you weren’t taught in school. For new software engineers, knowing how to program is only half the battle. You’ll quickly find that many of the skills and processes key to your success are not taught in any school or bootcamp. The Missing README fills in that gap—a distillation of workplace lessons, best practices, and engineering fundamentals that the authors have taught rookie developers at top companies for more than a decade. Early chapters explain what to expect when you begin your career at a company. The book’s middle section expands your technical education, teaching you how to work with existing codebases, address and prevent technical debt, write production-grade software, manage dependencies, test effectively, do code reviews, safely deploy software, design evolvable architectures, and handle incidents when you’re on-call. Additional chapters cover planning and interpersonal skills such as Agile planning, working effectively with your manager, and growing to senior levels and beyond. You’ll learn: How to use the legacy code change algorithm, and leave code cleaner than you found it How to write operable code with logging, metrics, configuration, and defensive programming How to write deterministic tests, submit code reviews, and give feedback on other people’s code The technical design process, including experiments, problem definition, documentation, and collaboration What to do when you are on-call, and how to navigate production incidents Architectural techniques that make code change easier Agile development practices like sprint planning, stand-ups, and retrospectives This is the book your tech lead wishes every new engineer would read before they start. By the end, you’ll know what it takes to transition into the workplace–from CS classes or bootcamps to professional software engineering.
Download or read book Site Reliability Engineering written by Niall Richard Murphy and published by "O'Reilly Media, Inc.". This book was released on 2016-03-23 with total page 552 pages. Available in PDF, EPUB and Kindle. Book excerpt: The overwhelming majority of a software system’s lifespan is spent in use, not in design or implementation. So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems? In this collection of essays and articles, key members of Google’s Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You’ll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient—lessons directly applicable to your organization. This book is divided into four sections: Introduction—Learn what site reliability engineering is and why it differs from conventional IT industry practices Principles—Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE) Practices—Understand the theory and practice of an SRE’s day-to-day work: building and operating large distributed computing systems Management—Explore Google's best practices for training, communication, and meetings that your organization can use
Download or read book Software Telemetry written by Jamie Riedesel and published by Simon and Schuster. This book was released on 2021-08-31 with total page 558 pages. Available in PDF, EPUB and Kindle. Book excerpt: Software Telemetry is a guide to operating the telemetry systems that monitor and maintain your applications. It takes a big picture view of telemetry, teaching you to manage your logging, metrics, and events as a complete end-to-end ecosystem. You'll learn the base architecture that underpins any software telemetry system, allowing you to easily integrate new systems into your existing infrastructure, and how these systems work under the hood. Throughout, you'll follow three very different companies to see how telemetry techniques impact a greenfield startup, a large legacy enterprise, and a non-technical organization without any in-house development. You'll even cover how software telemetry is used by court processes--ensuring that when your first telemetry subpoena arrives, there's no reason to panic!
Download or read book Head First Software Development written by Dan Pilone and published by "O'Reilly Media, Inc.". This book was released on 2008-12-26 with total page 495 pages. Available in PDF, EPUB and Kindle. Book excerpt: Provides information on successful software development, covering such topics as customer requirements, task estimates, principles of good design, dealing with source code, system testing, and handling bugs.
Download or read book How Google Tests Software written by James A. Whittaker and published by Addison-Wesley. This book was released on 2012-03-21 with total page 316 pages. Available in PDF, EPUB and Kindle. Book excerpt: 2012 Jolt Award finalist! Pioneering the Future of Software Test Do you need to get it right, too? Then, learn from Google. Legendary testing expert James Whittaker, until recently a Google testing leader, and two top Google experts reveal exactly how Google tests software, offering brand-new best practices you can use even if you’re not quite Google’s size...yet! Breakthrough Techniques You Can Actually Use Discover 100% practical, amazingly scalable techniques for analyzing risk and planning tests...thinking like real users...implementing exploratory, black box, white box, and acceptance testing...getting usable feedback...tracking issues...choosing and creating tools...testing “Docs & Mocks,” interfaces, classes, modules, libraries, binaries, services, and infrastructure...reviewing code and refactoring...using test hooks, presubmit scripts, queues, continuous builds, and more. With these techniques, you can transform testing from a bottleneck into an accelerator–and make your whole organization more productive!
Download or read book The Software Craftsman written by Sandro Mancuso and published by Pearson Education. This book was released on 2014-12-14 with total page 285 pages. Available in PDF, EPUB and Kindle. Book excerpt: In The Software Craftsman, Sandro Mancuso explains what craftsmanship means to the developer and his or her organization, and shows how to live it every day in your real-world development environment. Mancuso shows how software craftsmanship fits with and helps students improve upon best-practice technical disciplines such as agile and lean, taking all development projects to the next level. Readers will learn how to change the disastrous perception that software developers are the same as factory workers, and that software projects can be run like factories.
Download or read book Righting Software written by Juval Löwy and published by Addison-Wesley Professional. This book was released on 2019-11-27 with total page 586 pages. Available in PDF, EPUB and Kindle. Book excerpt: Right Your Software and Transform Your Career Righting Software presents the proven, structured, and highly engineered approach to software design that renowned architect Juval Löwy has practiced and taught around the world. Although companies of every kind have successfully implemented his original design ideas across hundreds of systems, these insights have never before appeared in print. Based on first principles in software engineering and a comprehensive set of matching tools and techniques, Löwy’s methodology integrates system design and project design. First, he describes the primary area where many software architects fail and shows how to decompose a system into smaller building blocks or services, based on volatility. Next, he shows how to flow an effective project design from the system design; how to accurately calculate the project duration, cost, and risk; and how to devise multiple execution options. The method and principles in Righting Software apply regardless of your project and company size, technology, platform, or industry. Löwy starts the reader on a journey that addresses the critical challenges of software development today by righting software systems and projects as well as careers—and possibly the software industry as a whole. Software professionals, architects, project leads, or managers at any stage of their career will benefit greatly from this book, which provides guidance and knowledge that would otherwise take decades and many projects to acquire. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Download or read book User Interface Design for Programmers written by Avram Joel Spolsky and published by Apress. This book was released on 2008-01-01 with total page 152 pages. Available in PDF, EPUB and Kindle. Book excerpt: Most programmers' fear of user interface (UI) programming comes from their fear of doing UI design. They think that UI design is like graphic design—the mysterious process by which creative, latte-drinking, all-black-wearing people produce cool-looking, artistic pieces. Most programmers see themselves as analytic, logical thinkers instead—strong at reasoning, weak on artistic judgment, and incapable of doing UI design. In this brilliantly readable book, author Joel Spolsky proposes simple, logical rules that can be applied without any artistic talent to improve any user interface, from traditional GUI applications to websites to consumer electronics. Spolsky's primary axiom, the importance of bringing the program model in line with the user model, is both rational and simple. In a fun and entertaining way, Spolky makes user interface design easy for programmers to grasp. After reading User Interface Design for Programmers, you'll know how to design interfaces with the user in mind. You'll learn the important principles that underlie all good UI design, and you'll learn how to perform usability testing that works.
Download or read book Release It written by Michael T. Nygard and published by Pragmatic Bookshelf. This book was released on 2018-01-08 with total page 490 pages. Available in PDF, EPUB and Kindle. Book excerpt: A single dramatic software failure can cost a company millions of dollars - but can be avoided with simple changes to design and architecture. This new edition of the best-selling industry standard shows you how to create systems that run longer, with fewer failures, and recover better when bad things happen. New coverage includes DevOps, microservices, and cloud-native architecture. Stability antipatterns have grown to include systemic problems in large-scale systems. This is a must-have pragmatic guide to engineering for production systems. If you're a software developer, and you don't want to get alerts every night for the rest of your life, help is here. With a combination of case studies about huge losses - lost revenue, lost reputation, lost time, lost opportunity - and practical, down-to-earth advice that was all gained through painful experience, this book helps you avoid the pitfalls that cost companies millions of dollars in downtime and reputation. Eighty percent of project life-cycle cost is in production, yet few books address this topic. This updated edition deals with the production of today's systems - larger, more complex, and heavily virtualized - and includes information on chaos engineering, the discipline of applying randomness and deliberate stress to reveal systematic problems. Build systems that survive the real world, avoid downtime, implement zero-downtime upgrades and continuous delivery, and make cloud-native applications resilient. Examine ways to architect, design, and build software - particularly distributed systems - that stands up to the typhoon winds of a flash mob, a Slashdotting, or a link on Reddit. Take a hard look at software that failed the test and find ways to make sure your software survives. To skip the pain and get the experience...get this book.
Download or read book Ask a Manager written by Alison Green and published by Ballantine Books. This book was released on 2018-05-01 with total page 306 pages. Available in PDF, EPUB and Kindle. Book excerpt: From the creator of the popular website Ask a Manager and New York’s work-advice columnist comes a witty, practical guide to 200 difficult professional conversations—featuring all-new advice! There’s a reason Alison Green has been called “the Dear Abby of the work world.” Ten years as a workplace-advice columnist have taught her that people avoid awkward conversations in the office because they simply don’t know what to say. Thankfully, Green does—and in this incredibly helpful book, she tackles the tough discussions you may need to have during your career. You’ll learn what to say when • coworkers push their work on you—then take credit for it • you accidentally trash-talk someone in an email then hit “reply all” • you’re being micromanaged—or not being managed at all • you catch a colleague in a lie • your boss seems unhappy with your work • your cubemate’s loud speakerphone is making you homicidal • you got drunk at the holiday party Praise for Ask a Manager “A must-read for anyone who works . . . [Alison Green’s] advice boils down to the idea that you should be professional (even when others are not) and that communicating in a straightforward manner with candor and kindness will get you far, no matter where you work.”—Booklist (starred review) “The author’s friendly, warm, no-nonsense writing is a pleasure to read, and her advice can be widely applied to relationships in all areas of readers’ lives. Ideal for anyone new to the job market or new to management, or anyone hoping to improve their work experience.”—Library Journal (starred review) “I am a huge fan of Alison Green’s Ask a Manager column. This book is even better. It teaches us how to deal with many of the most vexing big and little problems in our workplaces—and to do so with grace, confidence, and a sense of humor.”—Robert Sutton, Stanford professor and author of The No Asshole Rule and The Asshole Survival Guide “Ask a Manager is the ultimate playbook for navigating the traditional workforce in a diplomatic but firm way.”—Erin Lowry, author of Broke Millennial: Stop Scraping By and Get Your Financial Life Together