Shape Up: Stop Running in Circles and Ship Work that Matters
Ryan Singer - 2019
"This book is a guide to how we do product development at Basecamp. It’s also a toolbox full of techniques that you can apply in your own way to your own process.Whether you’re a founder, CTO, product manager, designer, or developer, you’re probably here because of some common challenges that all software companies have to face."
The Goal: A Process of Ongoing Improvement
Eliyahu M. Goldratt - 1984
His factory is rapidly heading for disaster. So is his marriage. He has ninety days to save his plant—or it will be closed by corporate HQ, with hundreds of job losses. It takes a chance meeting with a colleague from student days—Jonah—to help him break out of conventional ways of thinking to see what needs to be done.The story of Alex's fight to save his plant is more than compulsive reading. It contains a serious message for all managers in industry and explains the ideas which underline the Theory of Constraints (TOC) developed by Eli Goldratt.
The Mom Test: How to talk to customers & learn if your business is a good idea when everyone is lying to you
Rob Fitzpatrick - 2013
They say you shouldn't ask your mom whether your business is a good idea, because she loves you and will lie to you. This is technically true, but it misses the point. You shouldn't ask anyone if your business is a good idea. It's a bad question and everyone will lie to you at least a little . As a matter of fact, it's not their responsibility to tell you the truth. It's your responsibility to find it and it's worth doing right .Talking to customers is one of the foundational skills of both Customer Development and Lean Startup. We all know we're supposed to do it, but nobody seems willing to admit that it's easy to screw up and hard to do right. This book is going to show you how customer conversations go wrong and how you can do better.
Cypherpunks: Freedom and the Future of the Internet
Julian Assange - 2012
Julian Assange, the editor-in-chief of and visionary behind WikiLeaks, has been a leading voice in the cypherpunk movement since its inception in the 1980s.Now, in what is sure to be a wave-making new book, Assange brings together a small group of cutting-edge thinkers and activists from the front line of the battle for cyber-space to discuss whether electronic communications will emancipate or enslave us. Among the topics addressed are: Do Facebook and Google constitute "the greatest surveillance machine that ever existed," perpetually tracking our location, our contacts and our lives? Far from being victims of that surveillance, are most of us willing collaborators? Are there legitimate forms of surveillance, for instance in relation to the "Four Horsemen of the Infopocalypse" (money laundering, drugs, terrorism and pornography)? And do we have the ability, through conscious action and technological savvy, to resist this tide and secure a world where freedom is something which the Internet helps bring about?The harassment of WikiLeaks and other Internet activists, together with attempts to introduce anti-file sharing legislation such as SOPA and ACTA, indicate that the politics of the Internet have reached a crossroads. In one direction lies a future that guarantees, in the watchwords of the cypherpunks, "privacy for the weak and transparency for the powerful"; in the other lies an Internet that allows government and large corporations to discover ever more about internet users while hiding their own activities. Assange and his co-discussants unpick the complex issues surrounding this crucial choice with clarity and engaging enthusiasm.
Building Evolutionary Architectures: Support Constant Change
Neal Ford - 2017
Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This practical guide ties those parts together with a new way to think about architecture and time.
Only the Beginning
Laramie Briscoe - 2014
It hasn’t always been easy. One heartbreak almost ruined her. Some days it’s hard to keep a smile on her face and stay positive, but there are a lot of people counting on her to keep it together. Just when it seems like she’s at the pinnacle of her career, her life takes a turn. She meets a man who challenges everything she knows about herself and makes her question if the life she’s living is for her or for the Nashville machine.
Heavy Metal’s bad boy.Hair trigger temper.Struggling to deal with pressure of the industry.
Garrett 'Reaper' Thompson is tired. Touring and keeping up appearances with his band “Black Friday” is beginning to wear him out. He’s ready for a change, ready for something different. When he meets Hannah at an awards show, he knows that she’s the one, he knows that he can’t live without her.The problem?Their own insecurities, their fans, her ex-boyfriend, and the media themselves. Can they look past it all and come through on the other side? For their story – this is only the beginning.
The Developer's Code: What Real Programmers Do
Ka Wai Cheung - 2012
There are no trite superlatives here. Packed with lessons learned from more than a decade of software development experience, author Ka Wai Cheung takes you through the programming profession from nearly every angle to uncover ways of sustaining a healthy connection with your work. You'll see how to stay productive even on the longest projects. You'll create a workflow that works with you, not against you. And you'll learn how to deal with clients whose goals don't align with your own. If you don't handle them just right, issues such as these can crush even the most seasoned, motivated developer. But with the right approach, you can transcend these common problems and become the professional developer you want to be. In more than 50 nuggets of wisdom, you'll learn: Why many traditional approaches to process and development roles in this industry are wrong - and how to sniff them out. Why you must always say "no" to the software pet project and open-ended timelines. How to incorporate code generation into your development process, and why its benefits go far beyond just faster code output. What to do when your client or end user disagrees with an approach you believe in. How to pay your knowledge forward to future generations of programmers through teaching and evangelism. If you're in this industry for the long run, you'll be coming back to this book again and again.
Data Driven
D.J. Patil - 2015
It requires you to develop a data culture that involves people throughout the organization. In this O’Reilly report, DJ Patil and Hilary Mason outline the steps you need to take if your company is to be truly data-driven—including the questions you should ask and the methods you should adopt.
You’ll not only learn examples of how Google, LinkedIn, and Facebook use their data, but also how Walmart, UPS, and other organizations took advantage of this resource long before the advent of Big Data. No matter how you approach it, building a data culture is the key to success in the 21st century.
You’ll explore:
Data scientist skills—and why every company needs a Spock
How the benefits of giving company-wide access to data outweigh the costs
Why data-driven organizations use the scientific method to explore and solve data problems
Key questions to help you develop a research-specific process for tackling important issues
What to consider when assembling your data team
Developing processes to keep your data team (and company) engaged
Choosing technologies that are powerful, support teamwork, and easy to use and learn
Chaos Engineering
Casey Rosenthal - 2017
You’ll never be able to prevent all possible failure modes, but you can identify many of the weaknesses in your system before they’re triggered by these events. This report introduces you to Chaos Engineering, a method of experimenting on infrastructure that lets you expose weaknesses before they become a real problem.Members of the Netflix team that developed Chaos Engineering explain how to apply these principles to your own system. By introducing controlled experiments, you’ll learn how emergent behavior from component interactions can cause your system to drift into an unsafe, chaotic state.- Hypothesize about steady state by collecting data on the health of the system- Vary real-world events by turning off a server to simulate regional failures- Run your experiments as close to the production environment as possible- Ramp up your experiment by automating it to run continuously- Minimize the effects of your experiments to keep from blowing everything up- Learn the process for designing chaos engineering experiments- Use the Chaos Maturity Model to map the state of your chaos program, including realistic goals
Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma - 1994
Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.
Explain the Cloud Like I'm 10
Todd Hoff - 2018
And I mean all the time. Every day there’s a new cloud-based dating app; a new cloud-based gizmo for your house; a new cloud-based game; or a thousand other new things—all in the cloud.The cloud is everywhere! Everything is in the cloud! What does it mean! Let’s slow down. Take a deep breath. That’s good. Take another. Excellent. This book teaches you all about the cloud. I’ll let you in on a little secret: the cloud is not that hard to understand. It’s not. It’s just that nobody has taken the time to explain to you what the cloud is. They haven’t, have they?Deep down I think this is because they don’t understand the cloud either, but I do. I’ve been a programmer and writer for over 30 years. I’ve been in cloud computing since the very start, and I’m here to help you on your journey to understand the cloud. Consider me your tour guide. I’ll be with you every step of the way, but not in a creepy way.I take my time with this book. I go slow and easy, so you can build up an intuition about what the cloud really is, one idea at a time. When you finish reading, you’ll understand the cloud. When you hear someone say some new cool thing is in the cloud, you’ll understand exactly what they mean. That’s a promise. How do I deliver on that promise? I use lots and lots of pictures. I use lots and lots of examples. We’ll reveal the secret inner-workings of AWS, Netflix, Facebook Messenger, Amazon Kindle, Apple iCloud, Google Maps, Nest and cloud DVRs. You’ll learn by seeing and understanding; no matter if you're a complete beginner, someone who knows a little and wants to learn more, or a programmer looking to change their career to the cloud.The cloud is the future. You don't want to miss out on the future, do you? Read this book and we'll discover it together.I’m excited. This will be fun. Let’s get started!
Designing Data-Intensive Applications
Martin Kleppmann - 2015
Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures
Indian Innovators
Akshat Agrawal - 2015
Each innovator comes from diverse backgrounds from those who hold a PhD to those who have had no formal education! Despite this difference, what unites them is their passion for innovation, the grit with which they have fought adversities and their vision for a better world.Each story celebrates the triumphant spirit of these determined individuals in a society that places little incentive on innovation. These innovators have resolved to break the status quo in the Indian innovation landscape!
Getting Real: The Smarter, Faster, Easier Way to Build a Web Application
37 Signals - 2006
At under 200 pages it's quick reading too. Makes a great airplane book.
Understanding Computation: From Simple Machines to Impossible Programs
Tom Stuart - 2013
Understanding Computation explains theoretical computer science in a context you’ll recognize, helping you appreciate why these ideas matter and how they can inform your day-to-day programming.Rather than use mathematical notation or an unfamiliar academic programming language like Haskell or Lisp, this book uses Ruby in a reductionist manner to present formal semantics, automata theory, and functional programming with the lambda calculus. It’s ideal for programmers versed in modern languages, with little or no formal training in computer science.* Understand fundamental computing concepts, such as Turing completeness in languages* Discover how programs use dynamic semantics to communicate ideas to machines* Explore what a computer can do when reduced to its bare essentials* Learn how universal Turing machines led to today’s general-purpose computers* Perform complex calculations, using simple languages and cellular automata* Determine which programming language features are essential for computation* Examine how halting and self-referencing make some computing problems unsolvable* Analyze programs by using abstract interpretation and type systems