Building Mobile Apps at Scale

Building Mobile Apps at Scale

Author: Gergely Orosz

Publisher:

Published: 2021-04-06

Total Pages: 238

ISBN-13: 9781638778868

DOWNLOAD EBOOK

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?


Letters to a New Developer

Letters to a New Developer

Author: Dan Moore

Publisher: Apress

Published: 2020-08-07

Total Pages: 215

ISBN-13: 9781484260739

DOWNLOAD EBOOK

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.


Continuous Delivery

Continuous Delivery

Author: Jez Humble

Publisher: Pearson Education

Published: 2010-07-27

Total Pages: 956

ISBN-13: 0321670221

DOWNLOAD EBOOK

Winner of the 2011 Jolt Excellence Award! Getting software released to users is often a painful, risky, and time-consuming process. This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours— sometimes even minutes–no matter what the size of a project or the complexity of its code base. Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk delivery process. Next, they introduce the “deployment pipeline,” an automated process for managing all changes, from check-in to release. Finally, they discuss the “ecosystem” needed to support continuous delivery, from infrastructure, data and configuration management to governance. The authors introduce state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization. For each, they review key issues, identify best practices, and demonstrate how to mitigate risks. Coverage includes • Automating all facets of building, integrating, testing, and deploying software • Implementing deployment pipelines at team and organizational levels • Improving collaboration between developers, testers, and operations • Developing features incrementally on large and distributed teams • Implementing an effective configuration management strategy • Automating acceptance testing, from analysis to implementation • Testing capacity and other non-functional requirements • Implementing continuous deployment and zero-downtime releases • Managing infrastructure, data, components and dependencies • Navigating risk management, compliance, and auditing Whether you’re a developer, systems administrator, tester, or manager, this book will help your organization move from idea to release faster than ever—so you can deliver value to your business rapidly and reliably.


Software Engineering at Google

Software Engineering at Google

Author: Titus Winters

Publisher: O'Reilly Media

Published: 2020-02-28

Total Pages: 602

ISBN-13: 1492082767

DOWNLOAD EBOOK

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


The Passionate Programmer

The Passionate Programmer

Author: Chad Fowler

Publisher: Pragmatic Bookshelf

Published: 2009-05-28

Total Pages: 184

ISBN-13: 1680505106

DOWNLOAD EBOOK

Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself--don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical "Act on It" sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.


Modern Software Engineering

Modern Software Engineering

Author: David Farley

Publisher: Addison-Wesley Professional

Published: 2021-11-16

Total Pages: 479

ISBN-13: 0137314868

DOWNLOAD EBOOK

Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David Farley helps software professionals think about their work more effectively, manage it more successfully, and genuinely improve the quality of their applications, their lives, and the lives of their colleagues. Writing for programmers, managers, and technical leads at all levels of experience, Farley illuminates durable principles at the heart of effective software development. He distills the discipline into two core exercises: learning and exploration and managing complexity. For each, he defines principles that can help you improve everything from your mindset to the quality of your code, and describes approaches proven to promote success. Farley's ideas and techniques cohere into a unified, scientific, and foundational approach to solving practical software development problems within realistic economic constraints. This general, durable, and pervasive approach to software engineering can help you solve problems you haven't encountered yet, using today's technologies and tomorrow's. It offers you deeper insight into what you do every day, helping you create better software, faster, with more pleasure and personal fulfillment. Clarify what you're trying to accomplish Choose your tools based on sensible criteria Organize work and systems to facilitate continuing incremental progress Evaluate your progress toward thriving systems, not just more "legacy code" Gain more value from experimentation and empiricism Stay in control as systems grow more complex Achieve rigor without too much rigidity Learn from history and experience Distinguish "good" new software development ideas from "bad" ones Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.


User Stories Applied

User Stories Applied

Author: Mike Cohn

Publisher: Addison-Wesley Professional

Published: 2004-03-01

Total Pages: 291

ISBN-13: 0132702649

DOWNLOAD EBOOK

Thoroughly reviewed and eagerly anticipated by the agile community, User Stories Applied offers a requirements process that saves time, eliminates rework, and leads directly to better software. The best way to build software that meets users' needs is to begin with "user stories": simple, clear, brief descriptions of functionality that will be valuable to real users. In User Stories Applied, Mike Cohn provides you with a front-to-back blueprint for writing these user stories and weaving them into your development lifecycle. You'll learn what makes a great user story, and what makes a bad one. You'll discover practical ways to gather user stories, even when you can't speak with your users. Then, once you've compiled your user stories, Cohn shows how to organize them, prioritize them, and use them for planning, management, and testing. User role modeling: understanding what users have in common, and where they differ Gathering stories: user interviewing, questionnaires, observation, and workshops Working with managers, trainers, salespeople and other "proxies" Writing user stories for acceptance testing Using stories to prioritize, set schedules, and estimate release costs Includes end-of-chapter practice questions and exercises User Stories Applied will be invaluable to every software developer, tester, analyst, and manager working with any agile method: XP, Scrum... or even your own home-grown approach.


The Moment of Lift

The Moment of Lift

Author: Melinda Gates

Publisher: Flatiron Books

Published: 2019-04-23

Total Pages: 224

ISBN-13: 1250313562

DOWNLOAD EBOOK

NEW YORK TIMES BESTSELLER “In her book, Melinda tells the stories of the inspiring people she’s met through her work all over the world, digs into the data, and powerfully illustrates issues that need our attention—from child marriage to gender inequity in the workplace.” — President Barack Obama “The Moment of Lift is an urgent call to courage. It changed how I think about myself, my family, my work, and what’s possible in the world. Melinda weaves together vulnerable, brave storytelling and compelling data to make this one of those rare books that you carry in your heart and mind long after the last page.” — Brené Brown, Ph.D., author of the New York Times #1 bestseller Dare to Lead “Melinda Gates has spent many years working with women around the world. This book is an urgent manifesto for an equal society where women are valued and recognized in all spheres of life. Most of all, it is a call for unity, inclusion and connection. We need this message more than ever.” — Malala Yousafzai "Melinda Gates's book is a lesson in listening. A powerful, poignant, and ultimately humble call to arms." — Tara Westover, author of the New York Times #1 bestseller Educated A debut from Melinda Gates, a timely and necessary call to action for women's empowerment. “How can we summon a moment of lift for human beings – and especially for women? Because when you lift up women, you lift up humanity.” For the last twenty years, Melinda Gates has been on a mission to find solutions for people with the most urgent needs, wherever they live. Throughout this journey, one thing has become increasingly clear to her: If you want to lift a society up, you need to stop keeping women down. In this moving and compelling book, Melinda shares lessons she’s learned from the inspiring people she’s met during her work and travels around the world. As she writes in the introduction, “That is why I had to write this book—to share the stories of people who have given focus and urgency to my life. I want all of us to see ways we can lift women up where we live.” Melinda’s unforgettable narrative is backed by startling data as she presents the issues that most need our attention—from child marriage to lack of access to contraceptives to gender inequity in the workplace. And, for the first time, she writes about her personal life and the road to equality in her own marriage. Throughout, she shows how there has never been more opportunity to change the world—and ourselves. Writing with emotion, candor, and grace, she introduces us to remarkable women and shows the power of connecting with one another. When we lift others up, they lift us up, too.


EMPOWERED

EMPOWERED

Author: Marty Cagan

Publisher: John Wiley & Sons

Published: 2020-12-03

Total Pages: 435

ISBN-13: 1119691257

DOWNLOAD EBOOK

"Great teams are comprised of ordinary people that are empowered and inspired. They are empowered to solve hard problems in ways their customers love yet work for their business. They are inspired with ideas and techniques for quickly evaluating those ideas to discover solutions that work: they are valuable, usable, feasible and viable. This book is about the idea and reality of "achieving extraordinary results from ordinary people". Empowered is the companion to Inspired. It addresses the other half of the problem of building tech products?how to get the absolute best work from your product teams. However, the book's message applies much more broadly than just to product teams. Inspired was aimed at product managers. Empowered is aimed at all levels of technology-powered organizations: founders and CEO's, leaders of product, technology and design, and the countless product managers, product designers and engineers that comprise the teams. This book will not just inspire companies to empower their employees but will teach them how. This book will help readers achieve the benefits of truly empowered teams"--


Optimized C++

Optimized C++

Author: Kurt Guntheroth

Publisher: "O'Reilly Media, Inc."

Published: 2016-04-27

Total Pages: 387

ISBN-13: 1491922036

DOWNLOAD EBOOK

In today’s fast and competitive world, a program’s performance is just as important to customers as the features it provides. This practical guide teaches developers performance-tuning principles that enable optimization in C++. You’ll learn how to make code that already embodies best practices of C++ design run faster and consume fewer resources on any computer—whether it’s a watch, phone, workstation, supercomputer, or globe-spanning network of servers. Author Kurt Guntheroth provides several running examples that demonstrate how to apply these principles incrementally to improve existing code so it meets customer requirements for responsiveness and throughput. The advice in this book will prove itself the first time you hear a colleague exclaim, “Wow, that was fast. Who fixed something?” Locate performance hot spots using the profiler and software timers Learn to perform repeatable experiments to measure performance of code changes Optimize use of dynamically allocated variables Improve performance of hot loops and functions Speed up string handling functions Recognize efficient algorithms and optimization patterns Learn the strengths—and weaknesses—of C++ container classes View searching and sorting through an optimizer’s eye Make efficient use of C++ streaming I/O functions Use C++ thread-based concurrency features effectively