Advertisement
director of software engineering: Become an Effective Software Engineering Manager James Stanier, 2020-06-09 Software startups make global headlines every day. As technology companies succeed and grow, so do their engineering departments. In your career, you'll may suddenly get the opportunity to lead teams: to become a manager. But this is often uncharted territory. How can you decide whether this career move is right for you? And if you do, what do you need to learn to succeed? Where do you start? How do you know that you're doing it right? What does it even mean? And isn't management a dirty word? This book will share the secrets you need to know to manage engineers successfully. Going from engineer to manager doesn't have to be intimidating. Engineers can be managers, and fantastic ones at that. Cast aside the rhetoric and focus on practical, hands-on techniques and tools. You'll become an effective and supportive team leader that your staff will look up to. Start with your transition to being a manager and see how that compares to being an engineer. Learn how to better organize information, feel productive, and delegate, but not micromanage. Discover how to manage your own boss, hire and fire, do performance and salary reviews, and build a great team. You'll also learn the psychology: how to ship while keeping staff happy, coach and mentor, deal with deadline pressure, handle sensitive information, and navigate workplace politics. Consider your whole department. How can you work with other teams to ensure best practice? How do you help form guilds and committees and communicate effectively? How can you create career tracks for individual contributors and managers? How can you support flexible and remote working? How can you improve diversity in the industry through your own actions? This book will show you how. Great managers can make the world a better place. Join us. |
director of software engineering: Software Engineering at Google Titus Winters, Tom Manshreck, Hyrum Wright, 2020-02-28 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 |
director of software engineering: Building Great Software Engineering Teams Joshua Tyler, 2015-07-03 WINNER of Computing Reviews 20th Annual Best Review in the category Management “Tyler’s book is concise, reasonable, and full of interesting practices, including some curious ones you might consider adopting yourself if you become a software engineering manager.” —Fernando Berzal, CR, 10/23/2015 “Josh Tyler crafts a concise, no-nonsense, intensely focused guide for building the workhouse of Silicon Valley—the high-functioning software team.” —Gordon Rios, Summer Book Recommendations from the Smartest People We Know—Summer 2016 Building Great Software Engineering Teams provides engineering leaders, startup founders, and CTOs concrete, industry-proven guidance and techniques for recruiting, hiring, and managing software engineers in a fast-paced, competitive environment. With so much at stake, the challenge of scaling up a team can be intimidating. Engineering leaders in growing companies of all sizes need to know how to find great candidates, create effective interviewing and hiring processes, bring out the best in people and their work, provide meaningful career development, learn to spot warning signs in their team, and manage their people for long-term success. Author Josh Tyler has spent nearly a decade building teams in high-growth startups, experimenting with every aspect of the task to see what works best. He draws on this experience to outline specific, detailed solutions augmented by instructive stories from his own experience. In this book you’ll learn how to build your team, starting with your first hire and continuing through the stages of development as you manage your team for growth and success. Organized to cover each step of the process in the order you’ll likely face them, and highlighted by stories of success and failure, it provides an easy-to-understand recipe for creating your high-powered engineering team. |
director of software engineering: Software Engineering for Science Jeffrey C. Carver, Neil P. Chue Hong, George K. Thiruvathukal, 2016-11-03 Software Engineering for Science provides an in-depth collection of peer-reviewed chapters that describe experiences with applying software engineering practices to the development of scientific software. It provides a better understanding of how software engineering is and should be practiced, and which software engineering practices are effective for scientific software. The book starts with a detailed overview of the Scientific Software Lifecycle, and a general overview of the scientific software development process. It highlights key issues commonly arising during scientific software development, as well as solutions to these problems. The second part of the book provides examples of the use of testing in scientific software development, including key issues and challenges. The chapters then describe solutions and case studies aimed at applying testing to scientific software development efforts. The final part of the book provides examples of applying software engineering techniques to scientific software, including not only computational modeling, but also software for data management and analysis. The authors describe their experiences and lessons learned from developing complex scientific software in different domains. About the Editors Jeffrey Carver is an Associate Professor in the Department of Computer Science at the University of Alabama. He is one of the primary organizers of the workshop series on Software Engineering for Science (http://www.SE4Science.org/workshops). Neil P. Chue Hong is Director of the Software Sustainability Institute at the University of Edinburgh. His research interests include barriers and incentives in research software ecosystems and the role of software as a research object. George K. Thiruvathukal is Professor of Computer Science at Loyola University Chicago and Visiting Faculty at Argonne National Laboratory. His current research is focused on software metrics in open source mathematical and scientific software. |
director of software engineering: Head First Software Development Dan Pilone, Russ Miles, 2008-12-26 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. |
director of software engineering: Staff Engineer Will Larson, 2021-02-28 At most technology companies, you'll reach Senior Software Engineer, the career level for software engineers, in five to eight years. At that career level, you'll no longer be required to work towards the next pro? motion, and being promoted beyond it is exceptional rather than ex? pected. At that point your career path will branch, and you have to decide between remaining at your current level, continuing down the path of technical excellence to become a Staff Engineer, or switching into engineering management. Of course, the specific titles vary by company, and you can replace Senior Engineer and Staff Engineer with whatever titles your company prefers.Over the past few years we've seen a flurry of books unlocking the en? gineering management career path, like Camille Fournier's The Man? ager's Path, Julie Zhuo's The Making of a Manager, Lara Hogan's Re? silient Management and my own, An Elegant Puzzle. The manage? ment career isn't an easy one, but increasingly there are maps avail? able for navigating it.On the other hand, the transition into Staff Engineer, and its further evolutions like Principal and Distinguished Engineer, remains chal? lenging and undocumented. What are the skills you need to develop to reach Staff Engineer? Are technical abilities alone sufficient to reach and succeed in that role? How do most folks reach this role? What is your manager's role in helping you along the way? Will you enjoy being a Staff Engineer or you will toil for years to achieve a role that doesn't suit you?Staff Engineer: Leadership beyond the management track is a pragmatic look at attaining and operate in these Staff-plus roles. |
director of software engineering: Continuous Software Engineering Jan Bosch, 2014-11-11 This book provides essential insights on the adoption of modern software engineering practices at large companies producing software-intensive systems, where hundreds or even thousands of engineers collaborate to deliver on new systems and new versions of already deployed ones. It is based on the findings collected and lessons learned at the Software Center (SC), a unique collaboration between research and industry, with Chalmers University of Technology, Gothenburg University and Malmö University as academic partners and Ericsson, AB Volvo, Volvo Car Corporation, Saab Electronic Defense Systems, Grundfos, Axis Communications, Jeppesen (Boeing) and Sony Mobile as industrial partners. The 17 chapters present the “Stairway to Heaven” model, which represents the typical evolution path companies move through as they develop and mature their software engineering capabilities. The chapters describe theoretical frameworks, conceptual models and, most importantly, the industrial experiences gained by the partner companies in applying novel software engineering techniques. The book’s structure consists of six parts. Part I describes the model in detail and presents an overview of lessons learned in the collaboration between industry and academia. Part II deals with the first step of the Stairway to Heaven, in which R&D adopts agile work practices. Part III of the book combines the next two phases, i.e., continuous integration (CI) and continuous delivery (CD), as they are closely intertwined. Part IV is concerned with the highest level, referred to as “R&D as an innovation system,” while Part V addresses a topic that is separate from the Stairway to Heaven and yet critically important in large organizations: organizational performance metrics that capture data, and visualizations of the status of software assets, defects and teams. Lastly, Part VI presents the perspectives of two of the SC partner companies. The book is intended for practitioners and professionals in the software-intensive systems industry, providing concrete models, frameworks and case studies that show the specific challenges that the partner companies encountered, their approaches to overcoming them, and the results. Researchers will gain valuable insights on the problems faced by large software companies, and on how to effectively tackle them in the context of successful cooperation projects. |
director of software engineering: Think Like a Software Engineering Manager Akanksha Gupta, 2024-08-06 Unlock your full potential as an effective, efficient, and inspiring leader, and be the software engineering manager that your team deserves! Most development teams are only as good as their leader. In this practical guide, you’ll explore all aspects of the software engineering manager’s job, from operational practices to the core skills of handling humans. Think Like a Software Engineering Manager is full of all the skills you’ll need to thrive in software leadership, including: People and performance management Empathy and feedback Delegation and learning to let go Hiring amazing engineers and handling attrition Collaborating with cross-functional partners Managing expectations at all levels Implementing engineering and operational excellence Time and organizational change management Experienced team leader Akanksha Gupta helps you explore whether software engineering management is the right move for your career, guides you through preparing for the position, and gives you all the tools you need to thrive in the role. Thought-provoking exercises help you apply what you learn to your daily professional life, and prepare you for making the big decisions about software. Purchase of the print book includes a free eBook in PDF and ePub formats from Manning Publications. About the technology A software engineering manager needs to be an amazing communicator, an effective decision maker, and a thoughtful mentor. Your success depends on your ability to evaluate and manage projects, motivate and lead your team, and coolly handle whatever crisis each new day brings. It’s a big transition, and this book will guide you every step of the way. About the book Think Like a Software Engineering Manager teaches you how to hire, train, and lead a successful development team. You’ll start with building and managing your team to maximize performance. You’ll then quickly progress to strategies for delivering large scale projects, cultivating excellence in your projects, and managing change. Author Akanksha Gupta’s battle stories and industry anecdotes from her work at Amazon, Audible, Robinhood, and Microsoft reveal how the experts handle the biggest engineering management challenges. What's inside People and performance management Hiring amazing engineers and handling attrition Collaborating with cross-functional partners Practice for success with insightful exercises About the reader For new and aspiring software engineering managers. About the author Akanksha Gupta is an engineering leader at Amazon AWS. She has served as an engineering manager at Robinhood, Audible, and Microsoft and passionately champions the cause of empowering women within the tech industry. The technical editor on this book was Bruce Bergman. Table of Contents PART 1 1 Exploring the engineering manager role 2 Individual contributor to engineering manager 3 Managing people, teams, and yourself 4 Managing performance 5 Delegation: Learn to let go 6 Rewards and recognition 7 Hiring 8 Handling attrition PART 2 9 Working with cross-functional partners 10 Project management, execution, and delivery 11 Managing expectations PART 3 12 Engineering and operational excellence 13 Organizational change management 14 Time management 15 Beyond this book: Grow yourself |
director of software engineering: The Manager's Path Camille Fournier, 2017-03-13 Managing people is difficult wherever you work. But in the tech industry, where management is also a technical discipline, the learning curve can be brutal—especially when there are few tools, texts, and frameworks to help you. In this practical guide, author Camille Fournier (tech lead turned CTO) takes you through each stage in the journey from engineer to technical manager. From mentoring interns to working with senior staff, you’ll get actionable advice for approaching various obstacles in your path. This book is ideal whether you’re a new manager, a mentor, or a more experienced leader looking for fresh advice. Pick up this book and learn how to become a better manager and leader in your organization. Begin by exploring what you expect from a manager Understand what it takes to be a good mentor, and a good tech lead Learn how to manage individual members while remaining focused on the entire team Understand how to manage yourself and avoid common pitfalls that challenge many leaders Manage multiple teams and learn how to manage managers Learn how to build and bootstrap a unifying culture in teams |
director of software engineering: Research Software Engineering with Python Damien Irving, Kate Hertweck, Luke Johnston, Joel Ostblom, Charlotte Wickham, Greg Wilson, 2021-08-06 Writing and running software is now as much a part of science as telescopes and test tubes, but most researchers are never taught how to do either well. As a result, it takes them longer to accomplish simple tasks than it should, and it is harder for them to share their work with others than it needs to be. This book introduces the concepts, tools, and skills that researchers need to get more done in less time and with less pain. Based on the practical experiences of its authors, who collectively have spent several decades teaching software skills to scientists, it covers everything graduate-level researchers need to automate their workflows, collaborate with colleagues, ensure that their results are trustworthy, and publish what they have built so that others can build on it. The book assumes only a basic knowledge of Python as a starting point, and shows readers how it, the Unix shell, Git, Make, and related tools can give them more time to focus on the research they actually want to do. Research Software Engineering with Python can be used as the main text in a one-semester course or for self-guided study. A running example shows how to organize a small research project step by step; over a hundred exercises give readers a chance to practice these skills themselves, while a glossary defining over two hundred terms will help readers find their way through the terminology. All of the material can be re-used under a Creative Commons license, and all royalties from sales of the book will be donated to The Carpentries, an organization that teaches foundational coding and data science skills to researchers worldwide. |
director of software engineering: The Effective Engineer Edmond Lau, 2015-03-19 Introducing The Effective Engineer--the only book designed specifically for today's software engineers, based on extensive interviews with engineering leaders at top tech companies, and packed with hundreds of techniques to accelerate your career. |
director of software engineering: Software Engineering with Microsoft Visual Studio Team System Juan J. Perez, Sam Guckenheimer, 2006-05-09 Software Engineering with Microsoft Visual Studio Team System is written for any software team that is considering running a software project using Visual Studio Team System (VSTS), or evaluating modern software development practices for its use. It is about the value-up paradigm of software development, which forms the basis of VSTS: its guiding ideas, why they are presented in certain ways, and how they fit into the process of managing the software lifecycle. This book is the next best thing to having an onsite coach who can lead the team through a consistent set of processes. Sam Guckenheimer has been the chief customer advocate for VSTS, responsible for its end-to-end external design. He has written this book as a framework for thinking about software projects in a way that can be directly tooled by VSTS. It presents essential theory and practical examples to describe a realistic process for IT projects. Readers will learn what they need to know to get started with VSTS, including The role of the value-up paradigm (versus work-down) in the software development lifecycle, and the meanings and importance of “flow” The use of MSF for Agile Software Development and MSF for CMMI Process Improvement Work items for planning and managing backlog in VSTS Multidimensional, daily metrics to maintain project flow and enable estimation Creating requirements using personas and scenarios Project management with iterations, trustworthy transparency, and friction-free metrics Architectural design using a value-up view, service-oriented architecture, constraints, and qualities of service Development with unit tests, code coverage, profiling, and build automation Testing for customer value with scenarios, qualities of service, configurations, data, exploration, and metrics Effective bug reporting and bug assessment Troubleshooting a project: recognizing and correcting common pitfalls and antipatterns This is a book that any team using or considering VSTS should read. |
director of software engineering: An Elegant Puzzle Will Larson, 2019-05-20 A human-centric guide to solving complex problems in engineering management, from sizing teams to handling technical debt. There’s a saying that people don’t leave companies, they leave managers. Management is a key part of any organization, yet the discipline is often self-taught and unstructured. Getting to the good solutions for complex management challenges can make the difference between fulfillment and frustration for teams—and, ultimately, between the success and failure of companies. Will Larson’s An Elegant Puzzle focuses on the particular challenges of engineering management—from sizing teams to handling technical debt to performing succession planning—and provides a path to the good solutions. Drawing from his experience at Digg, Uber, and Stripe, Larson has developed a thoughtful approach to engineering management for leaders of all levels at companies of all sizes. An Elegant Puzzle balances structured principles and human-centric thinking to help any leader create more effective and rewarding organizations for engineers to thrive in. |
director of software engineering: Case Study Research in Software Engineering Per Runeson, Martin Host, Austen Rainer, Bjorn Regnell, 2012-03-07 Based on their own experiences of in-depth case studies of software projects in international corporations, in this book the authors present detailed practical guidelines on the preparation, conduct, design and reporting of case studies of software engineering. This is the first software engineering specific book on the case study research method. |
director of software engineering: Ontologies for Software Engineering and Software Technology Coral Calero, Francisco Ruiz, Mario Piattini, 2006-10-12 This book covers two applications of ontologies in software engineering and software technology: sharing knowledge of the problem domain and using a common terminology among all stakeholders; and filtering the knowledge when defining models and metamodels. By presenting the advanced use of ontologies in software research and software projects, this book is of benefit to software engineering researchers in both academia and industry. |
director of software engineering: Financial Software Engineering Kevin Lano, Howard Haughton, 2019-05-02 In this textbook the authors introduce the important concepts of the financial software domain, and motivate the use of an agile software engineering approach for the development of financial software. They describe the role of software in defining financial models and in computing results from these models. Practical examples from bond pricing, yield curve estimation, share price analysis and valuation of derivative securities are given to illustrate the process of financial software engineering. Financial Software Engineering also includes a number of case studies based on typical financial engineering problems: *Internal rate of return calculation for bonds * Macaulay duration calculation for bonds * Bootstrapping of interest rates * Estimation of share price volatility * Technical analysis of share prices * Re-engineering Matlab to C# * Yield curve estimation * Derivative security pricing * Risk analysis of CDOs The book is suitable for undergraduate and postgraduate study, and for practitioners who wish to extend their knowledge of software engineering techniques for financial applications |
director of software engineering: Startup Engineering Management, 2nd Edition , 2014-07-23 If you're currently an engineer and have been offered a management job at a startup, this book is for you! If you're an engineer wondering what your manager is supposed to do for you, this book is for you as well! Drawing from the author's experience as an engineer and manager, this book explains: When to consider doing management work. How to put together a team. What to consider when interacting with engineers. How to hire top engineers for your startup. How to pick engineering leaders. How to define processes and a process cookbook. When you don't need a process. How to report to your managers. How compensation systems and promotion systems work, and when they fail. Foreword by Harper Reed. This kind of books are nowhere to be found...as an engineer probing in the dark for what's next I have looked very hard for career guidance for the past few years, and yours are the only books to give enlightenment. --- Cindy Zhou Whether experienced or aspiring, this book will be a great manual to help understand and be successful at this mysterious craft. --- Harper Reed, from the Foreword. |
director of software engineering: Optimized C++ Kurt Guntheroth, 2016-04-27 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 |
director of software engineering: Continuous Delivery Jez Humble, David Farley, 2010-07-27 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. |
director of software engineering: The Essence of Software Engineering Volker Gruhn, Rüdiger Striemer, 2018-06-13 This open access book includes contributions by leading researchers and industry thought leaders on various topics related to the essence of software engineering and their application in industrial projects. It offers a broad overview of research findings dealing with current practical software engineering issues and also pointers to potential future developments. Celebrating the 20th anniversary of adesso AG, adesso gathered some of the pioneers of software engineering including Manfred Broy, Ivar Jacobson and Carlo Ghezzi at a special symposium, where they presented their thoughts about latest software engineering research and which are part of this book. This way it offers readers a concise overview of the essence of software engineering, providing valuable insights into the latest methodological research findings and adesso’s experience applying these results in real-world projects. |
director of software engineering: Developer Hegemony Erik Dietrich, It’s been said that software is eating the planet. The modern economy—the world itself—relies on technology. Demand for the people who can produce it far outweighs the supply. So why do developers occupy largely subordinate roles in the corporate structure? Developer Hegemony explores the past, present, and future of the corporation and what it means for developers. While it outlines problems with the modern corporate structure, it’s ultimately a play-by-play of how to leave the corporate carnival and control your own destiny. And it’s an emboldening, specific vision of what software development looks like in the world of developer hegemony—one where developers band together into partner firms of “efficiencers,” finally able to command the pay, respect, and freedom that’s earned by solving problems no one else can. Developers, if you grow tired of being treated like geeks who can only be trusted to take orders and churn out code, consider this your call to arms. Bring about the autonomous future that’s rightfully yours. It’s time for developer hegemony. |
director of software engineering: Essentials of Software Engineering Frank Tsui, Orlando Karam, 2011 Computer Architecture/Software Engineering |
director of software engineering: Ask a Manager Alison Green, 2018-05-01 'I'm a HUGE fan of Alison Green's Ask a Manager column. This book is even better' Robert Sutton, author of The No Asshole Rule and The Asshole Survival Guide 'Ask A Manager is the book I wish I'd had in my desk drawer when I was starting out (or even, let's be honest, fifteen years in)' - Sarah Knight, New York Times bestselling author of The Life-Changing Magic of Not Giving a F*ck A witty, practical guide to navigating 200 difficult professional conversations Ten years as a workplace advice columnist has taught Alison Green that people avoid awkward conversations in the office because they don't know what to say. Thankfully, Alison does. In this incredibly helpful book, she takes on the tough discussions you may need to have during your career. You'll learn what to say when: · colleagues push their work on you - then take credit for it · you accidentally trash-talk someone in an email and hit 'reply all' · you're being micromanaged - or not being managed at all · your boss seems unhappy with your work · you got too drunk at the Christmas party With sharp, sage advice and candid letters from real-life readers, Ask a Manager will help you successfully navigate the stormy seas of office life. |
director of software engineering: The New Software Engineering Sue A. Conger, 1994 This text is written with a business school orientation, stressing the how to and heavily employing CASE technology throughout. The courses for which this text is appropriate include software engineering, advanced systems analysis, advanced topics in information systems, and IS project development. Software engineer should be familiar with alternatives, trade-offs and pitfalls of methodologies, technologies, domains, project life cycles, techniques, tools CASE environments, methods for user involvement in application development, software, design, trade-offs for the public domain and project personnel skills. This book discusses much of what should be the ideal software engineer's project related knowledge in order to facilitate and speed the process of novices becoming experts. The goal of this book is to discuss project planning, project life cycles, methodologies, technologies, techniques, tools, languages, testing, ancillary technologies (e.g. database) and CASE. For each topic, alternatives, benefits and disadvantages are discussed. |
director of software engineering: Smart and Gets Things Done Avram Joel Spolsky, 2007-10-17 A good programmer can outproduce five, ten, and sometimes more run-of-the-mill programmers. The secret to success for any software company then is to hire the good programmers. But how to do that? In Joel on Hiring, Joel Spolsky draws from his experience both at Microsoft and running his own successful software company based in New York City. He writes humorously, but seriously about his methods for sorting resumes, for finding great candidates, and for interviewing, in person and by phone. Joel’s methods are not complex, but they do get to the heart of the matter: how to recognize a great developer when you see one. |
director of software engineering: Deep Learning for Coders with fastai and PyTorch Jeremy Howard, Sylvain Gugger, 2020-06-29 Deep learning is often viewed as the exclusive domain of math PhDs and big tech companies. But as this hands-on guide demonstrates, programmers comfortable with Python can achieve impressive results in deep learning with little math background, small amounts of data, and minimal code. How? With fastai, the first library to provide a consistent interface to the most frequently used deep learning applications. Authors Jeremy Howard and Sylvain Gugger, the creators of fastai, show you how to train a model on a wide range of tasks using fastai and PyTorch. You’ll also dive progressively further into deep learning theory to gain a complete understanding of the algorithms behind the scenes. Train models in computer vision, natural language processing, tabular data, and collaborative filtering Learn the latest deep learning techniques that matter most in practice Improve accuracy, speed, and reliability by understanding how deep learning models work Discover how to turn your models into web applications Implement deep learning algorithms from scratch Consider the ethical implications of your work Gain insight from the foreword by PyTorch cofounder, Soumith Chintala |
director of software engineering: Building Mobile Apps at Scale Gergely Orosz, 2021-04-06 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? |
director of software engineering: Never Too Small Joe Beath, Elizabeth Price, 2023-04-19 Joel Beath and Elizabeth Price explore this question drawing inspiration from a diverse collection of apartment designs, all smaller than 50m2/540ft2. Through the lens of five small-footprint design principles and drawing on architectural images and detailed floor plans, the authors examine how architects and designers are reimagining small space living. Full of inspiration we can each apply to our own spaces, this is a book that offers hope and inspiration for a future of our cities and their citizens in which sustainability and style, comfort and affordability can co-exist. Never Too Small proves living better doesn’t have to mean living larger. |
director of software engineering: A Handbook of Software and Systems Engineering Albert Endres, H. Dieter Rombach, 2003 Annotation This handbook presents the laws that significantly impact software engineering. This book begins with requirements definitions and concludes with maintenance and withdrawal. Along the way, it identifies and discusses existing laws that significantly impact software engineering. Software engineers who wish to reacquaint (or ecquaint) themselves with the basic laws of software engineering and their applicability in an industrial setting. |
director of software engineering: The Future of Software Engineering Sebastian Nanz, 2010-10-20 This book focuses on defining the achievements of software engineering in the past decades and showcasing visions for the future. It features a collection of articles by some of the most prominent researchers and technologists who have shaped the field: Barry Boehm, Manfred Broy, Patrick Cousot, Erich Gamma, Yuri Gurevich, Tony Hoare, Michael A. Jackson, Rustan Leino, David L. Parnas, Dieter Rombach, Joseph Sifakis, Niklaus Wirth, Pamela Zave, and Andreas Zeller. The contributed articles reflect the authors‘ individual views on what constitutes the most important issues facing software development. Both research- and technology-oriented contributions are included. The book provides at the same time a record of a symposium held at ETH Zurich on the occasion of Bertrand Meyer‘s 60th birthday. |
director of software engineering: Programming JavaScript Applications Eric Elliott, 2014-06-26 Take advantage of JavaScript’s power to build robust web-scale or enterprise applications that are easy to extend and maintain. By applying the design patterns outlined in this practical book, experienced JavaScript developers will learn how to write flexible and resilient code that’s easier—yes, easier—to work with as your code base grows. JavaScript may be the most essential web programming language, but in the real world, JavaScript applications often break when you make changes. With this book, author Eric Elliott shows you how to add client- and server-side features to a large JavaScript application without negatively affecting the rest of your code. Examine the anatomy of a large-scale JavaScript application Build modern web apps with the capabilities of desktop applications Learn best practices for code organization, modularity, and reuse Separate your application into different layers of responsibility Build efficient, self-describing hypermedia APIs with Node.js Test, integrate, and deploy software updates in rapid cycles Control resource access with user authentication and authorization Expand your application’s reach through internationalization |
director of software engineering: Modern Software Engineering David Farley, 2021-11-16 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. |
director of software engineering: The Software Developer's Career Handbook Michael Lopp, 2023-08-09 At some point in your career, you'll realize there's more to being a software engineer than dealing with code. Is it time to become a manager? Or join a startup? In this insightful and entertaining book, Michael Lopp recalls his own make-or-break moments with Silicon Valley giants such as Apple, Slack, Pinterest, Palantir, Netscape, and Symantec to help you make better, more mindful career decisions. With more than 40 stand-alone stories, Lopp walks through a complete job lifecycle, starting with the interview and ending with the realization that it might be time to move on. You'll learn how to handle baffling circumstances in your job, understand what you want from your career, and discover how to thrive in your workplace. Learn how to navigate areas of your job that don't involve writing code Identify how the aspects you enjoy will affect your next career steps Build and maintain key relationships and interactions within your community Make choices that will help you have a deliberate career Recognize what's important to your manager and work on things that matter |
director of software engineering: Measure What Matters John Doerr, 2018-04-24 #1 New York Times Bestseller Legendary venture capitalist John Doerr reveals how the goal-setting system of Objectives and Key Results (OKRs) has helped tech giants from Intel to Google achieve explosive growth—and how it can help any organization thrive. In the fall of 1999, John Doerr met with the founders of a start-up whom he'd just given $12.5 million, the biggest investment of his career. Larry Page and Sergey Brin had amazing technology, entrepreneurial energy, and sky-high ambitions, but no real business plan. For Google to change the world (or even to survive), Page and Brin had to learn how to make tough choices on priorities while keeping their team on track. They'd have to know when to pull the plug on losing propositions, to fail fast. And they needed timely, relevant data to track their progress—to measure what mattered. Doerr taught them about a proven approach to operating excellence: Objectives and Key Results. He had first discovered OKRs in the 1970s as an engineer at Intel, where the legendary Andy Grove (the greatest manager of his or any era) drove the best-run company Doerr had ever seen. Later, as a venture capitalist, Doerr shared Grove's brainchild with more than fifty companies. Wherever the process was faithfully practiced, it worked. In this goal-setting system, objectives define what we seek to achieve; key results are how those top-priority goals will be attained with specific, measurable actions within a set time frame. Everyone's goals, from entry level to CEO, are transparent to the entire organization. The benefits are profound. OKRs surface an organization's most important work. They focus effort and foster coordination. They keep employees on track. They link objectives across silos to unify and strengthen the entire company. Along the way, OKRs enhance workplace satisfaction and boost retention. In Measure What Matters, Doerr shares a broad range of first-person, behind-the-scenes case studies, with narrators including Bono and Bill Gates, to demonstrate the focus, agility, and explosive growth that OKRs have spurred at so many great organizations. This book will help a new generation of leaders capture the same magic. |
director of software engineering: 201 Principles of Software Development Alan Mark Davis, Alan Michael Davis, 1995 Software -- Software Engineering. |
director of software engineering: The Software Craftsman Sandro Mancuso, 2014-12-12 Be a Better Developer and Deliver Better Code Despite advanced tools and methodologies, software projects continue to fail. Why? Too many organizations still view software development as just another production line. Too many developers feel that way, too—and they behave accordingly. In The Software Craftsman: Professionalism, Pragmatism, Pride, Sandro Mancuso offers a better and more fulfilling path. If you want to develop software with pride and professionalism; love what you do and do it with excellence; and build a career with autonomy, mastery, and purpose, it starts with the recognition that you are a craftsman. Once you embrace this powerful mindset, you can achieve unprecedented levels of technical excellence and customer satisfaction. Mancuso helped found the world’s largest organization of software craftsmen; now, he shares what he’s learned through inspiring examples and pragmatic advice you can use in your company, your projects, and your career. You will learn Why agile processes aren’t enough and why craftsmanship is crucial to making them work How craftsmanship helps you build software right and helps clients in ways that go beyond code How and when to say “No” and how to provide creative alternatives when you do Why bad code happens to good developers and how to stop creating and justifying it How to make working with legacy code less painful and more productive How to be pragmatic—not dogmatic—about your practices and tools How to lead software craftsmen and attract them to your organization What to avoid when advertising positions, interviewing candidates, and hiring developers How developers and their managers can create a true culture of learning How to drive true technical change and overcome deep patterns of skepticism Sandro Mancuso has coded for startups, software houses, product companies, international consultancies, and investment banks. In October 2013, he cofounded Codurance, a consultancy based on Software Craftsmanship principles and values. His involvement with Software Craftsmanship began in 2010, when he founded the London Software Craftsmanship Community (LSCC), now the world’s largest and most active Software Craftsmanship community, with more than two thousand craftsmen. For the past four years, he has inspired and helped developers to organize Software Craftsmanship communities throughout Europe, the United States, and the rest of the world. |
director of software engineering: Refactoring for Software Design Smells Girish Suryanarayana, Ganesh Samarthyam, Tushar Sharma, 2014-10-31 Awareness of design smells – indicators of common design problems – helps developers or software engineers understand mistakes made while designing, what design principles were overlooked or misapplied, and what principles need to be applied properly to address those smells through refactoring. Developers and software engineers may know principles and patterns, but are not aware of the smells that exist in their design because of wrong or mis-application of principles or patterns. These smells tend to contribute heavily to technical debt – further time owed to fix projects thought to be complete – and need to be addressed via proper refactoring.Refactoring for Software Design Smells presents 25 structural design smells, their role in identifying design issues, and potential refactoring solutions. Organized across common areas of software design, each smell is presented with diagrams and examples illustrating the poor design practices and the problems that result, creating a catalog of nuggets of readily usable information that developers or engineers can apply in their projects. The authors distill their research and experience as consultants and trainers, providing insights that have been used to improve refactoring and reduce the time and costs of managing software projects. Along the way they recount anecdotes from actual projects on which the relevant smell helped address a design issue. - Contains a comprehensive catalog of 25 structural design smells (organized around four fundamental designprinciples) that contribute to technical debt in software projects - Presents a unique naming scheme for smells that helps understand the cause of a smell as well as pointstoward its potential refactoring - Includes illustrative examples that showcase the poor design practices underlying a smell and the problemsthat result - Covers pragmatic techniques for refactoring design smells to manage technical debt and to create and maintainhigh-quality software in practice - Presents insightful anecdotes and case studies drawn from the trenches of real-world projects |
director of software engineering: The Dark Side of Software Engineering Johann Rost, Robert L. Glass, 2011-03-23 Betrayal! Corruption! Software engineering? Industry experts Johann Rost and Robert L. Glass explore the seamy underbelly of software engineering in this timely report on and analysis of the prevalance of subversion, lying, hacking, and espionage on every level of software project management. Based on the authors' original research and augmented by frank discussion and insights from other well-respected figures, The Dark Side of Software Engineering goes where other management studies fear to tread -- a corporate environment where schedules are fabricated, trust is betrayed, millions of dollars are lost, and there is a serious need for the kind of corrective action that this book ultimately proposes. |
director of software engineering: Software Build Systems Peter Smith PhD, 2011-03-11 “This book represents a thorough and extensive treatment of the software build process including the choices, benefits, and challenges of a well designed build process. I recommend it not only to all software build engineers but to all software developers since a well designed build process is key to an effective software development process.” —Kevin Bodie, Director Software Development, Pitney Bowes Inc. “An excellent and detailed explanation of build systems, an important but often overlooked part of software development projects. The discussion of productivity as related to build systems is, alone, well worth the time spent reading this book.” —John M. Pantone, Objectech Corporation, VP, IT Educator and Course Developer “Peter Smith provides an interesting and accessible look into the world of software build systems, distilling years of experience and covering virtually every type of tool in the build engineer’s toolbox. Well organized, well written, and very thorough; I would recommend this book to anyone with a build system under their responsibility.” —Jeff Overbey, Project Co-Lead, Photran “Software Build Systems teaches how to think about building software. It surveys the tools and techniques for building software products and the ways things go wrong. This book will appeal to those new to build systems as well as experienced build system engineers.” —Monte Davidoff, Software Development Consultant, Alluvial Software, Inc. Inadequate build systems can dramatically impact developer productivity. Bad dependencies, false compile errors, failed software images, slow compilation, and time-wasting manual processes are just some of the byproducts of a subpar build system. In Software Build Systems, software productivity expert Peter Smith shows you how to implement build systems that overcome all these problems, so you can deliver reliable software more rapidly, at lower cost. Smith explains the core principles underlying highly efficient build systems, surveying both system features and usage scenarios. Next, he encapsulates years of experience in creating and maintaining diverse build systems–helping you make well-informed choices about tools and practices, and avoid common traps and pitfalls. Throughout, he shares a wide range of practical examples and lessons from multiple environments, including Java, C++, C, and C#. Coverage includes • Mastering build system concepts, including source trees, build tools, and compilation tools • Comparing five leading build tools: GNU Make, Ant, SCons, CMake, and the Eclipse IDE’s integrated build features • Ensuring accurate dependency checking and efficient incremental compilation • Using metadata to assist debugging, profiling, and source code documentation • Packaging software for installation on your target machine • Best practices for managing complex version-control systems, build machines, and compilation tools If you’re a developer, this book will illuminate the issues involved in building and maintaining the build system that’s best for your team. If you’re a manager, you’ll discover how to evaluate your team’s build system and improve its effectiveness. And if you’re a build “guru,” you’ll learn how to optimize the performance and scalability of your build system, no matter how demanding your requirements are. |
director of software engineering: Bulletin , 1986 |
外企中Managing Director和General Manager有什么区别?
外企特别是金融类外企经常有vice president,director, managing director之类,头衔很大,其实很多只是职级而已,大多不是字面表达的意思,更多是类似国内的职称。比如VP其实就是外企 …
名片中职务的对应英文翻译及欧美企业职务含义及级别? - 知乎
1. 如果怕误解为中干,建议翻为CEO,这个老外一听就了解。至于Managing Director要看总经理是否董事会成员,如果是,CEO和Managing Director取其一(听你们领导的),不要重复用。 …
对董事长、总经理等职务,最准确常用的商务英语翻译是什么?
中小公司: General Manager 或 Managing Director. 合伙人制公司中负责日常运作的那位合伙人: Managing Partner. 副总经理: 看公司大小. 大公司: Executive Vice President, 下面还有 …
外企职位层级的划分?从低到高,求中英文对照? - 知乎
而对大多数在职场打拼了半辈子的senior director来说,他们的职业生涯也就止步于此了。从director 到VP,是只属于少数职场精英们的最后一个升职(升值)瓶颈。 第八级: 副总 …
GM、VP、FVP、CIO都是什么职位? - 知乎
知乎,中文互联网高质量的问答社区和创作者聚集的原创内容平台,于 2011 年 1 月正式上线,以「让人们更好的分享知识、经验和见解,找到自己的解答」为品牌使命。知乎凭借认真、专业 …
导演、监制、制片人、出品人的职责和分工是怎么样的? - 知乎
本题已加入知乎圆桌 »影视职人说 | 青年导演养成记,更多「电影产业」讨论欢迎关注。
如何知道一个期刊是不是sci? - 知乎
Master Journal List在这个网站能搜到的就是吗?我在web of knowledge 上能搜到文章的杂志就是sci吗?
执行董事和CEO有什么区别? - 知乎
Nov 13, 2018 · 我的英国公司职位就是Manaing Director,然后中文名片上写“执行董事”,我承认这个名称一般中国客户都不明白,几乎都认为是董事会的什么角色。但实际上,就是CEO,或者 …
研究员为什么是principal investigator而不是researcher? - 知乎
美国国家科学基金会(National Science Foundation,简称NSF)定义为”由受让入指定、美国国家自然科学基金委同意的负责项目科学技术方向的个体”,同时指出”这一术语一般用于研究领域”, …
PE、PM、PD、PR分别是什么岗位? - 知乎
PD(product designer/product director):产品设计或产品负责人,多见于互联网等以产品为中心的行业。 PM(product manager/project manager):产品经理或项目经理,前者多见于互联 …
外企中Managing Director和General Manager有什么区别?
外企特别是金融类外企经常有vice president,director, managing director之类,头衔很大,其实很多只是职级而已,大多不是字面表达的意思,更多是类似国内的职称。比如VP其实就是外企 …
名片中职务的对应英文翻译及欧美企业职务含义及级别? - 知乎
1. 如果怕误解为中干,建议翻为CEO,这个老外一听就了解。至于Managing Director要看总经理是否董事会成员,如果是,CEO和Managing Director取其一(听你们领导的),不要重复用。 …
对董事长、总经理等职务,最准确常用的商务英语翻译是什么?
中小公司: General Manager 或 Managing Director. 合伙人制公司中负责日常运作的那位合伙人: Managing Partner. 副总经理: 看公司大小. 大公司: Executive Vice President, 下面还有 …
外企职位层级的划分?从低到高,求中英文对照? - 知乎
而对大多数在职场打拼了半辈子的senior director来说,他们的职业生涯也就止步于此了。从director 到VP,是只属于少数职场精英们的最后一个升职(升值)瓶颈。 第八级: 副总 …
GM、VP、FVP、CIO都是什么职位? - 知乎
知乎,中文互联网高质量的问答社区和创作者聚集的原创内容平台,于 2011 年 1 月正式上线,以「让人们更好的分享知识、经验和见解,找到自己的解答」为品牌使命。知乎凭借认真、专业 …
导演、监制、制片人、出品人的职责和分工是怎么样的? - 知乎
本题已加入知乎圆桌 »影视职人说 | 青年导演养成记,更多「电影产业」讨论欢迎关注。
如何知道一个期刊是不是sci? - 知乎
Master Journal List在这个网站能搜到的就是吗?我在web of knowledge 上能搜到文章的杂志就是sci吗?
执行董事和CEO有什么区别? - 知乎
Nov 13, 2018 · 我的英国公司职位就是Manaing Director,然后中文名片上写“执行董事”,我承认这个名称一般中国客户都不明白,几乎都认为是董事会的什么角色。但实际上,就是CEO,或者 …
研究员为什么是principal investigator而不是researcher? - 知乎
美国国家科学基金会(National Science Foundation,简称NSF)定义为”由受让入指定、美国国家自然科学基金委同意的负责项目科学技术方向的个体”,同时指出”这一术语一般用于研究领域”, …
PE、PM、PD、PR分别是什么岗位? - 知乎
PD(product designer/product director):产品设计或产品负责人,多见于互联网等以产品为中心的行业。 PM(product manager/project manager):产品经理或项目经理,前者多见于互联 …