Book picks similar to
Designing Data-Driven Applications by Martin Kleefman


professional
software
software-developer
software-engineering

Better Allies: Everyday Actions to Create Inclusive, Engaging Workplaces


Karen Catlin - 2021
    With the Better Allies® approach, it's something anyone can do.Since originally publishing Better Allies in 2019, Karen Catlin has amassed dozens of new scenarios and insights through her talks, workshops, and community interactions. In this fully revised second edition, you'll learn to spot situations where you can create a more inclusive culture, along with straightforward steps to take and changes to make. Catlin, a highly-sought after expert on allyship, will walk you through: * Attracting and hiring a diverse workforce* Cultivating an environment where coworkers feel welcome, respected, and supported* Amplifying and advocating for others* Giving effective and equitable performance feedback* Using more inclusive language* Running inclusive conferences and eventsRead this book to learn the Better Allies® approach, level-up your ally skills, and create a culture where everyone can do their best work and thrive.

Refactoring to Patterns


Joshua Kerievsky - 2004
    In 1999, "Refactoring" revolutionized design by introducing an effective process for improving code. With the highly anticipated " Refactoring to Patterns ," Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutionary process of refactoring.This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern implementations. Using code from real-world projects, Kerievsky documents the thinking and steps underlying over two dozen pattern-based design transformations. Along the way he offers insights into pattern differences and how to implement patterns in the simplest possible ways.Coverage includes: A catalog of twenty-seven pattern-directed refactorings, featuring real-world code examples Descriptions of twelve design smells that indicate the need for this book s refactorings General information and new insights about patterns and refactoringDetailed implementation mechanics: how low-level refactorings are combined to implement high-level patterns Multiple ways to implement the same pattern and when to use each Practical ways to get started even if you have little experience with patterns or refactoring"Refactoring to Patterns" reflects three years of refinement and the insights of more than sixty software engineering thought leaders in the global patterns, refactoring, and agile development communities. Whether you re focused on legacy or greenfield development, this book will make you a better software designer by helping you learn how to make important design changes safely and effectively. "

Life in Code: A Personal History of Technology


Ellen Ullman - 2017
    In 1997, she wroteClose to the Machine, the now classic and still definitive account of life as a coder at the birth of what would be a sweeping technological, cultural, and financial revolution.The intervening twenty years has seen, among other things, the rise of the Internet, the ubiquity of once unimaginably powerful computers, and the thorough transformation of our economy and society—as Ullman’s clique of socially awkward West Coast geeks became our new elite, elevated for and insulated by a technical mastery that few could achieve.In Life in Code, Ullman presents a series of essays that unlock and explain—and don’t necessarily celebrate—how we got to now, as only she can, with a fluency and expertise that’s unusual in someone with her humanistic worldview, and with the sharp insight and brilliant prose that are uniquely her own. Life in Code is an essential text toward our understanding of the last twenty years—and the next twenty.

Growing Object-Oriented Software, Guided by Tests


Steve Freeman - 2009
    This one's a keeper." --Robert C. Martin "If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book."--Michael Feathers Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this simple idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and "grow" software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you'll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD--from integrating TDD into your processes to testing your most difficult features. Coverage includes - Implementing TDD effectively: getting started, and maintaining your momentum throughout the project - Creating cleaner, more expressive, more sustainable code - Using tests to stay relentlessly focused on sustaining quality - Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project - Using Mock Objects to guide object-oriented designs - Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency

Kingpin: How One Hacker Took Over the Billion-Dollar Cybercrime Underground


Kevin Poulsen - 2011
    Max 'Vision' Butler was a white-hat hacker and a celebrity throughout the programming world, even serving as a consultant to the FBI. But there was another side to Max. As the black-hat 'Iceman', he'd seen the fraudsters around him squabble, their ranks riddled with infiltrators, their methods inefficient, and in their dysfunction was the ultimate challenge: he would stage a coup and steal their ill-gotten gains from right under their noses.Through the story of Max Butler's remarkable rise, KINGPIN lays bare the workings of a silent crime wave affecting millions worldwide. It exposes vast online-fraud supermarkets stocked with credit card numbers, counterfeit cheques, hacked bank accounts and fake passports. Thanks to Kevin Poulsen's remarkable access to both cops and criminals, we step inside the quiet,desperate battle that law enforcement fights against these scammers. And learn that the boy next door may not be all he seems.

Functional-Light JavaScript: Pragmatic, Balanced FP in JavaScript


Kyle Simpson - 2017
     Functional Programming (FP) is an incredibly powerful paradigm for structuring code that yields more robust, verifiable, and readable programs. If you've ever tried to learn FP but struggled with terms like "monad", mathematical concepts like category theory, or symbols like λ, you're not alone. Functional-Light programming distills the most vital aspects of FP—function purity, value immutability, composition, and more!—down to approachable JavaScript patterns. Rather than the all-or-nothing dogmatism often encountered in FP, this book teaches you how to improve your programs line by line.

97 Things Every Engineering Manager Should Know: Collective Wisdom from the Experts


Camille Fournier - 2019
    With 97 short and extremely useful tips for engineering managers, you'll discover new approaches to old problems, pick up road-tested best practices, and hone your management skills through sound advice.Managing people is hard, and the industry as a whole is bad at it. Many managers lack the experience, training, tools, texts, and frameworks to do it well. From mentoring interns to working in senior management, this book will take you through the stages of management and provide actionable advice on how to approach the obstacles you'll encounter as a technical manager.A few of the 97 things you should know:"Three Ways to Be the Manager Your Report Needs" by Duretti Hirpa"The First Two Questions to Ask When Your Team Is Struggling" by Cate Huston"Fire Them!" by Mike Fisher"The 5 Whys of Organizational Design" by Kellan Elliott-McCrea"Career Conversations" by Raquel V�lez"Using 6-Page Documents to Close Decisions" by Ian Nowland"Ground Rules in Meetings" by Lara Hogan

Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman


Dave Hoover - 2009
    To grow professionally, you also need soft skills and effective learning techniques. Honing those skills is what this book is all about. Authors Dave Hoover and Adewale Oshineye have cataloged dozens of behavior patterns to help you perfect essential aspects of your craft. Compiled from years of research, many interviews, and feedback from O'Reilly's online forum, these patterns address difficult situations that programmers, administrators, and DBAs face every day. And it's not just about financial success. Apprenticeship Patterns also approaches software development as a means to personal fulfillment. Discover how this book can help you make the best of both your life and your career. Solutions to some common obstacles that this book explores in-depth include:Burned out at work? "Nurture Your Passion" by finding a pet project to rediscover the joy of problem solving.Feeling overwhelmed by new information? Re-explore familiar territory by building something you've built before, then use "Retreat into Competence" to move forward again.Stuck in your learning? Seek a team of experienced and talented developers with whom you can "Be the Worst" for a while. "Brilliant stuff! Reading this book was like being in a time machine that pulled me back to those key learning moments in my career as a professional software developer and, instead of having to learn best practices the hard way, I had a guru sitting on my shoulder guiding me every step towards master craftsmanship. I'll certainly be recommending this book to clients. I wish I had this book 14 years ago!" -Russ Miles, CEO, OpenCredo

Go in Practice


Matt Butcher - 2015
    Following a cookbook-style Problem/Solution/Discussion format, this practical handbook builds on the foundational concepts of the Go language and introduces specific strategies you can use in your day-to-day applications. You'll learn techniques for building web services, using Go in the cloud, testing and debugging, routing, network applications, and much more.

The Service Startup: Design Thinking gets Lean


Tennyson Pinheiro - 2014
    Agreed on many fronts but I found his reinvention of these principles when applied to the service industry to be extremely insightful. The concept of a Minimum Valuable Service is unique, new and sets goals intended to deliver maximum value with measurable results. This is a must read for anyone in the global innovation economy." - Rick Rasmussen, NestGSV. International Business development.This book is a practical guide that explores how startup entrepreneurs and business leaders, who hold no Design degrees, can integrate Service Design into their development cycles in order to create sustainable, desirable and profitable new services. In the first part, Tenny explores the reasons why startups need to move away from the "make and sell" industrial logic we've been exploiting over the last century. To take its place he proposes a new service oriented mindset that carries the idea of "learn, use and remember" users' journeys. He also discusses the challenges our industrial society is facing and how the combination of design with a service oriented mentality can be key to help new and existent businesses make this shift. In the second part, he will take you on a journey through the MVS - Minimum Valuable Service - model. This model can seamlessly integrate Service Design into the Lean Startup or any Agile development cycle. It adds the human values needed to foster service innovations within the Lean's scientific approach. In this part of the book you will learn tools, methods and practices that will help you get your hands dirty with design.At some point every adventure requires a great guide, and this journey into the heart of the new is led impeccably by Tenny Pinheiro. Slyly sidestepping the pitfalls of the Lean Startup approach, he skillfully navigates us through to a deeper understanding of the forces shaping the evolving service economy. By trusting the wisdom of the many to help design the next phase of business, his approach taps into an inexhaustible source of creativity and innovation. The Service Startup is a trusty roadmap that you will long keep by your side. As Tenny might suggest: learn it, use it, and remember it. - Jamer Hunt, Parsons The New School for Design. Director for the graduate Program in Transdisciplinary Design."I'll admit it: I enjoy seeing someone who knows their stuff re-assemble and improve on the work of an adjacent profession. Tenny calls out what's lacking in the Lean Startup approach, in the most thorough and insightful ways. In the spirit of iteration, he's taken an existing approach and improved on it. If only all criticism were this good. I enjoyed his delightfully nuanced views on the world of services - how they're perceived, experienced, and remembered - as well as his historical perspectives on the worlds of design, business and marketing. Opinionated but also well-informed, this is a pragmatic, human-centric take on designing and delivering services that I'd recommend to anyone whose work affects other people. - Chad Thornton, Experience Designer, Airbnb"

Version Control with Subversion


Ben Collins-Sussman - 2004
    Today's increasingly fast pace of software development--as programmers make small changes to software one day only to undo them the next--has only heightened the problem; consecutive work on code or single-programmer software is a rare sight these days. Without careful attention to version control, concurrent and collaborative work can create more headaches than it solves. This is where Subversion comes into play.Written by members of the Subversion open source development team, Version Control with Subversion introduces the powerful new versioning tool designed to be the successor to the Concurrent Version System or CVS. CVS users will find the "look and feel" Subversion comfortably familiar, but under the surface it's far more flexible, robust, and usable, and more importantly, it improves on CVS's more notable flaws.The book begins with a general introduction to Subversion, the basic concepts behind version control, and a guided tour of Subversion's capabilities and structure. With thorough attention to detail, the authors cover every aspect of installing and configuring Subversion for managing a programming project, documentation, or any other team-based endeavor. Later chapters cover the more complex topics of branching, repository administration, and other advanced features such as properties, externals, and access control. The book ends with reference material and appendices covering a number of useful topics such as a Subversion complete reference and troubleshooting guide.Version Control with Subversion aims to be useful to readers of widely different backgrounds, from those with no previous experience in version control to experienced sysadmins. If you've never used version control, you'll find everything you need to get started in this book. And if you're a seasoned CVS pro, this book will help you make a painless leap into Subversion.

The Software Requirements Memory Jogger: A Pocket Guide to Help Software and Business Teams Develop and Manage Requirements


Ellen Gottesdiener - 2005
    The Software Requirements Memory Jogger provides every member of your project team with the tools and techniques to foster communication between business and technical teams on the necessary requirements for producing successful software. The Software Requirements Memory Jogger will benefit all stakeholders at any organizational level involved in software development projects management team, practitioners, QA/QC personnel. - Explore practical steps, tips, and examples to help you develop and manage requirements - Follow the User Requirements Roadmap a toolkit of techniques for discovering and analyzing user requirements - Streamline communications between all requirements stakeholders - Learn how to write clear, concise requirements documents

Staffing Organizations


Herbert G. Heneman III - 1994
    This work contains components of the model, which include staffing models and strategy, staffing support systems (legal compliance, planning, job analysis and rewards), core staffing systems (recruitment, selection, employment), and staffing system and retention management.

Refactoring: Improving the Design of Existing Code


Martin Fowler - 1999
    Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, non-optimal applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as refactoring, these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use... until now. In Refactoring: Improving the Design of Existing Software, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.

Managing the Software Process


Watts S. Humphrey - 1989
    Emphasis is placed on the basic principles and priorities of the software process. Sections are organized in a natural way for managers and professionals to implement improvement activities.