To write code efficiently, we need to be able to rely on our tools. Editors always save files when we ask them to, version control systems restore old files when we ask them to, and so on. This is reproducibility: the tool reliably does the same thing when given the same inputs. Many tools lack this reliability, but there does seem to be a positive trend, which we examine in this talk. First, we compare the designs of Git, React, and Bundler, each of which relies on reproducibility and was a huge improvement over its predecessors. Then, we imagine what other benefits might come from continuing to focus on reproducibility in our tools.
Gary Bernhardt is a creator and destroyer of software compelled to understand both sides of heated software debates: Vim and Emacs; Python and Ruby; Git and Mercurial. He runs Destroy All Software, which publishes advanced screencasts for serious developers covering Unix, OO design, TDD, and dynamic languages.
Open Source sells itself as being about technical problems--delightfully thorny technical problems, at that. However, successful projects are filled with people, which introduces a whole different set of problems.
This talk tells a story about the many ways in which things went badly wrong because I didn’t treat people problems as first-class citizens in exercism.io.
Katrina accidentally became a developer while pursuing a degree in molecular biology. When programming, her focus is on automation, workflow optimization, and refactoring. She works primarily in Go and Ruby, contributes to several open source projects, and is the creator of exercism.io.
The iOS landscape is much wider than it was even a year ago. Your once plain old iOS app now runs on multiple devices, resolutions, and processors. It may or may not have a watchOS extension or be available as a tvOS app. You've got media and code that can only be used by certain devices, and your bundle size seems to be ever growing. You don't want to sacrifice a beautiful experience for smaller app sizes, and thankfully you don't have to. This talk will focus on simple-yet essential best practices for managing your app's media and content.
iOS9 gave us the concept of App Thinning which allows us to deliver only the asset content applicable to the device that will use it by way of App Slicing. To deliver device optimized binaries by way of Bit Code. And to off-deliver additional content at runtime using apple's iCloud and On-Demand Resources (ODR). Whether you've got a new app that you are building or an existing one that you are maintaining you will want to be sure you're squeezing the most out of those bytes you ship.
We will walk you through working examples that show app thinning in action to ensure you deliver the best experience to every user possible.
I'm an iOS developer at Detroit Labs by day, Superdad at home by night, and side project tinkerer by late night.
Algorithms are part of our everyday lives, yet we often think of them as pure code & math, failing to question their origins. What happens when they benefit some people more than others or produce results that reflect biases? Despite their growing prominence and relevance to technologists, algorithm development is still a term that leaves even the most experienced developers intimidated. Many of us have little exposure to algorithm development and many programmers without advanced CS degrees have never written their own algorithms. When we look at algorithm development with a critical eye, we start to notice how deeply impactful the creation of new algorithms are to us as a society. This talk will discuss the ethical and social implications of algorithm development using examples such as Google's infamous image tagging mistake where an algorithm tagged a photo of Black people as gorillas. We also are seeing the impacts of algorithms in current events: Washington State recently announced that a bug in an assessment algorithm for parolees allowed over 3,000 inmates to be released early from their sentences over the course of 13 years. This algorithm, not made known to the public, included a tracked bug that affected the calculations.
Because of how much influence algorithms are gaining over our lives, we must be prepared to ask tough questions about their development: who writes these algorithms? Who reviews them? What biases do they fight or amplify? Where is the accountability? Are we exacerbating or solving social issues with algorithms? This talk will propose the need for the democratization of algorithm development and implore developers of all skills levels to begin writing, reviewing, and analyzing algorithms in their applications, data analysis tools, and everyday interactions with computers.
Liz Rush is a developer & developer evangelist in Seattle who loves talking tech & teaching code. She has worked on development teams large and small to build web apps, experimental services, and complex data platforms. Liz is a graduate of Ada Developers Academy's inaugural cohort and remains active as an alumna mentor. Prior to transitioning into tech, her professional background was in translation & marketing and she studied at St. Louis University in Madrid. When she's not blogging or coding, she can be found volunteering or out at live music & techno shows.
Everyone's heard the old saying "A family thats plays together, stays together", right? Well this session is going to kick that up a notch and talk about getting the family to "hack" together. It starts out discussing the different forms of hacking a family might embrace and at what age levels each might be best suited. Along the way it highlights what supplies & equipment you might need, as well as suggesting the overall costs that one might expect to incur. It then takes a brief focus on safety and proper use of that equipment. The session finishes off with some tips and tricks that may help with both the hacks themselves, as well as getting the family to actually interact by joining in on the fun.
Daniel Davis is a Business Improvement Consultant, Agile Practitioner, Polyglot Developer, Innovator, Hacker, and Maker. He has been working in Agile and Agile Software Development for the last 10 years. Currently, he is an Executive Consultant with Pillar and has spent the last few years focused on driving solutions at an enterprise level working with companies such as ACSI, Delphi, AAA Life, General Motors, Blue Cross Blue Shield, Cengage Learning, and Delta Dental. Daniel’s prior work background includes a wide range of disciplines such as mobile development, web development, design, marketing, and photography. His prevailing passion lies in helping businesses and people discover the true value in their efforts.
Getting a pull request merged into open source is hard. In this talk, we'll look at what it takes to get a pull request merged into a project like Ruby on Rails. We'll look at common mistakes that beginners make, and how you can avoid them.
Rails has over 400 open pull requests today. Learn how keep yours from getting lost in the noise, and better contribute to any open source project.
Sean is a committer on Ruby on Rails, the maintainer of Active Record, cohost of The Bike Shed podcast, and the creator of Diesel, an ORM and query builder for Rust. Having spent over a decade in the industry, he now focuses entirely on open source software. In recent months he primarily focuses on Rust and improving the web development landscape.
Photography is all about understanding and working within a wide variety of constraints. There are mechanical and electrical systems that all interact to create limitations for photographers. As it turns out, these constraints have led to endless amounts of creativity within the field.
Designing APIs is a lot like photography. There are often dozens of interrelated constraints that API designers must adhere to, which can seem daunting at first. But like photography, understanding and embracing these constraints leads to great API design.
This talk will teach you how to find your API's "voice," the underlying philosophy that makes an API consistent and easy to use, all viewed through the lens of photography.
Functional programming languages are gaining in popularity. If you’ve worked in object-oriented languages, you might be baffled at how they work. Maybe hearing the word “recursion” makes you want to scream. Or maybe you’ve just heard the hype and want to know what the hype is about.
In this talk, we will briefly explain what functional languages are, and go into some examples of tasks that these languages are suited for. We will look at the major languages in use today and see how they work. We'll see some of the things they have in common, and the many things that make them distinctive. Finally, we’ll offer some suggestions on how to dive into learning these and using them on your own projects.
Sarah is a software developer, speaker, and mentor in the Kansas City area. She loves being involved in a variety of women in computing events as well as teaching and mentoring various people and groups in town.
10 full time employees, 10 white dudes aged 28-40. That was the state we at Test Double found ourselves in during the fall of 2014. We had grown in the first three years of doing business from two people to ten, we’d begun to improve our sales, recruiting, operations, and delivery efforts but we were woefully lacking in one important area, diversity.
When you are in that bad of a state, completely lacking diversity, how do you get out? When you work inside a company that you founded, how can you get an unbiased view of the mistakes you are making that lead to a lack of diversity?
When you are a woman, interviewing for a position at a company that is lacking diversity, what do you need to look out for? How can you find the companies that are struggling but getting better versus the companies that are maintaining an oppressive culture? How can a marginalized person support those trying to get better?
We struggled over the last two years to improve in our diversity and we’ve still got a long way to go. We’ll help share our story from both a white male employer perspective, and a female new hire perspective so that other companies can learn from our mistakes and stop playing the “That’s just the way our industry is” card.
As self-taught dev, Katie's journey to writing code came through a wide range of careers. To her surprise there was more in common between architecture, auto mechanics and code than she ever would have imagined. She loves solving hard problems with a booming sense of humor and compassion for the end user of her code.
Words to live by:
"If there was a problem, yo, I'll solve it" -- vanilla ice
"There is nothing to fear. What may seem challenging can liberate you & expand your awareness for who you truly are." -- megan kathleen mcisaac
Todd is a software developer, consultant, and entrepreneur with over 18 years experience in delivering software solutions into production. He has worked with a variety of technology and process, but recognizes that awesome people are the magic ingredient to building good software teams. This realization lead him to co-found Test Double in 2011, a group of elite software developers and consultants focused on improving the way the world builds software.
Whether you’re an experienced Android developer, or you’re just getting started, you will need to think about storing data on the device. Android offers several options including relational data storage on a SQLite Database, but the APIs and examples provided by Google look like the state-of-the-art JDBC programming you did back in 1995! In this session, you’ll learn about how to apply modern tools and techniques, such as Dependency Injection with RoboGuice, and Object Relational Mapping with Realm, to the Android platform to make database development on Android fun, easy, and testable.
Eric Maxwell is a Principal Engineer at Credible Software. He has spent 11 years architecting and developing software for various companies across different industries including healthcare, insurance, library science, and private aviation. His current focus is training, mentoring, and mobile development. He has developed and taught courses on Java, Android and iOS. He’s also the author of the United Way of Delaware County Donor Discount app. When he’s not working he enjoys spending time with family, and watching/performing improv comedy. He is one of the founding members of Hashtag Comedy in Columbus and a cast member from 2012-2014.
One in every five of us suffer from a mental illness. Look around your team room and do the math, odds are that you are working with team members who are dealing with mental illness, even if you are working on a small team. These illnesses have names like Depression, Bipolar Disorder, Borderline Personality Disorder, and even well known eating disorder fall in this category. Those who suffer from them judgement of their actions, dismissal of what they are dealing with, and discrimination in work policies.
Let me tell you about my journey in dealing with a major depressive disorder that I was diagnosed with 17 years ago. Let me explain how it affects my ability to do my job, and my worries about talking to people about it, even as someone who is relatively open abut his illness.
Then we will move on to talk about how we can all work together to build a workplace environment that supports all of us, and the problems that we deal with. Discover some techniques to help you communicate with people who are suffering from mental illness. And finally talk about some work policies that you can implement, or sugges your employer implement, to balance out the scales for those suffering from these illnesses.
Always avoiding the fads to explore the systems that felt "right" to him. Matt has developed a passion for developing maintainable quality software that delivers what his customers really need (even if they don't know what that is). He jumped on the React bandwagon pretty early, and is passionate about helping that community develop better practices to help them develop quality maintainable software.
In his spare time, which with two toddlers is basically non-existent, Matt like to explore what is next, after JS and/or React, and doing projects around his house, like attempting to finish a basement despite no knowledge of construction or carpentry.
Leveraging the power of the cloud and microservices, this session demonstrates how music can be analyzed and composed in real-time to augment musical performance with a futuristic instrument. This session contains an introduction to relevant cloud technologies, and an introduction to music theory and composition. This session also has musical demonstrations and code snippets scattered throughout. Enabling technologies demonstrated in this session include Spring Boot and Cloud Foundry.
James Weaver is a Java developer, author, and speaker with a passion for helping Java to be increasingly leveraged in rich-client and and cloud-native applications. James has written books including Inside Java, Beginning J2EE, the Pro JavaFX series, and Java with Raspberry Pi. As an Pivotal Evangelist, James speaks internationally at software technology conferences about Java and Cloud Native development. James tweets as @JavaFXpert, blogs at http://JavaFXpert.com and http://CulturedEar.com and may be reached at jweaver AT pivotal.io
The list of things we want to learn is infinite. How many of us have marked items to read/watch, yet never go back to them? Despite the best of intentions, I often only learn what I directly need. It wasn’t until I started running a couple lightweight continuing education programs at work that I followed through on my goals. We’ll discuss strategies for making these programs low maintenance and long-lived, as well as flexible enough to help both more and less experienced folks. If you’ve been looking for a more effective approach to learning, but still outside classrooms, this talk is for you!
KWu is a Ruby Agent software engineer at New Relic. Prior to New Relic, she attended Hackbright Academy and had worked at Google for 5 years in various technical support and product operations roles. A proud New Jersey native, she nevertheless fits in well in Portlandia, what with biking to work and spending weekends canning and preserving the fruits and veggies from a local farm share.
Despite the media attention given to the diversity in tech problem, many technology practitioners don't see how a lack of diversity affects their daily life. So, it is not surprising that they neither understand the magnitude of the problem nor how they can fix it.
However, the principles and language of debugging, something technology practitioners understand well, can be used to help them understand diversity and their role in solving the problem. So, technologists already have a set of terms that they can use to tackle diversity. They just need to know how to apply those terms in order to effect positive change. These terms are expected behavior, tracing, refactoring, and sample code.
The first step in understanding a bug in knowing the expected behavior of the system. Similarly, understanding diversity is impossible without knowing the expected behavior of technology environments. Whether it's a workplace, conference, or happy hour, the dominant demographic in technology understands and benefits from the behavior patterns they expect from others. However, they often fail to see how underrepresented groups are often denied those benefits. The ability to see these lapses in expected behavior is vital to helping the dominant demographic understand that the key problem behind diversity is a lack of inclusiveness.
Since software programs are often very complicated, debugging them is often made easier by seeing the output of the underlying code. This is done by tracing which is the practice of displaying lines of code as the program runs. If technologists turn their diversity tracers on, they can see the ways that underrepresented groups are often excluded from information and often exposed to micro-aggressions by the dominant demographic.
While the allure of adding new features can be powerful, legacy code is made easier to maintain and less costly to develop by refactoring. This is the practice of restructuring and improving the internal design of code without disrupting the functionality of the system. Diversity refactoring is a good way for technologists to begin making the technology industry a more inclusive one. This is the process of improving the internal structure and design of how underrepresented groups are viewed in tech.
One way to debug code is to see a sample of similar code that runs well. Essentially, another programmer "lends" you code that helps your code work better. Just as a person can "lend" code to another person, a person can "lend" privilege to another person. This can be done by helping underrepresented groups get access to information and events that naturally flow to the dominant demographic in most technology companies.
Attendees of this session will leave with an understanding of the diversity in technology problem that is illuminated by terms that they already know. They will gain techniques that they can immediately put into action for making technology the inclusive environment in which we all deserve to build our careers.
Anjuan Simmons is a technologist with a successful track record of delivering technology solutions from the user interface to the database. He has worked as an executive for Infosys, Accenture, and Deloitte, all multi-billion dollar technology services companies with hundreds of clients around the world. He's a Certified Scrum Master with a passion for agile software development.
Anjuan is also an energetic and informative speaker who often presents at conferences, seminars, schools, and community events. He is a sought after thought leader for his opinion on agile development, diversity, and leadership. Drawing from his work experience as well as his educational background, Anjuan delivers presentations that focus on facts and provide simple explanations of complex ideas.
Anjuan has an undergraduate degree in electrical engineering from the University of Texas at Austin and an MBA from Texas A&M University.
Not everyone can hire a professional designer for their websites and web apps, but we all still want our interfaces to be easy to use and attractive. However, if you want to learn a bit of design, design books jump straight into concepts like "the golden ratio" and teach proper typographic terms which, to be frank, aren't needed if you're just looking to improve your website's look and feel.
This talk will cover the top quick ways to improve your website, covering both user experience as well as visual design. Quick hits, easy to understand and utilize principles that anyone can use to improve their design skills. Perhaps you too can become the next designer+developer unicorn!
Tracy Osborn is a designer, developer, and entreprenerd living in the Bay Area of California. She's the author of Hello Web App, teaching beginner web app development. Building websites since she was twelve, she always felt an affinity to computers, the internet, and what it brings us.
Tracy graduated with a BFA in Art & Design with a concentration in Graphic Design from California Polytechnic State University, San Luis Obispo, and worked as a web designer for five years before teaching herself programming and launching her first startup, WeddingLovely. She's also an avid outdoorswoman and would love to go on a hike with you.
One of the most dreaded questions for an engineer is “What’s the estimate on that? When will it be done?” Too often it feels as if business users treat estimates as set in stone promises that engineers must treat as blood oaths. It is easy for an engineer to throw up his or her hands and proclaim “It will be done when it’s done!” While that may be satisfying, accurate technical estimates are a real need for any business. In order for a business to be successful, it must be able to plan. Estimates feel hopeless because too often we do them wrong. There IS a way to make accurate technical estimates based on qualitative data, rather than gut feeling or guesswork. This talk will present my method for estimating technical projects (whether for development, operations, or both) that has been honed through years of experience as both an engineer and a team lead. You will walk away understanding and knowing how to communicate the difference between an estimate and a deadline, along with recognizing when someone may say one and really mean the other. You will also see a live demo of estimating a real feature piece by piece, step by step, and immediately be able to apply it to your own work. Estimates suck because most of us (engineering or business users alike) simply don’t know how to do them. Come to this talk to find out how.
Nell Shamrell-Harrington is a Software Development Engineer at Chef, focusing on the Supermarket open source product. She also sits on the advisory board for the University of Washington Certificates in Ruby Programming and DevOps. She specializes in Chef, Ruby, Rails, Regular Expressions, and Test Driven Development and has traveled the world speaking on these topics. Prior to entering the world of software development, she studied and worked in the field of theatre. The world of theatre prepared her well for the dynamic world of creating software applications. In both, she strives to create a cohesive and extraordinary experience. In her free time she enjoys practicing the martial art Naginata.
Swift is Apple's new hybrid programming language. Originally developed for their platforms, they've decided to open source it, making it available on a variety of systems. Swift offers diverse avenues for exploration by passionate developers, especially those used to Objective-C. This talk will focus on practical examples of how to exploit Swift's core design principles to improve your code and apps. And maybe have some fun in the process.
I will first explore Swift's extensions, which can be used to extend types and protocols to provide unique and optimized code for your apps. I will also demonstrate how to integrate Swift's generics into your APIs and outline some of it's shortcomings and how to work around them. Finally, I will review Swift's powerful protocols, which form much of the language's core functionality, and show you how to integrate protocol-oriented programming into your code.
An iOS developer at Detroit Labs, Jon has been developing for Apple platforms for over 10 years now.
We want to create teams where people thrive. We want an environment where we can create valuable software people love, make money, and have fun together while doing it. For a team to be healthy in this way, we need to be able to talk about difficult subjects. If only it weren't so awkward!
In this session, you'll learn how to give effective feedback, both positive and negative. You'll also learn how to receive feedback without so much pain, learning from it without losing yourself. Lastly, you'll learn how difficult conversations done well can make your team happier & more resilient.
Alex Harms wants to make the world a little gentler for developers and tech teams. By teaching and coaching from a place of mindfulness and empathy, Alex helps disempower fear, strengthen communication, and build connection, so that tech teams learn together and thrive. They’re host of the Geek Joy Podcast, and head coach at Maitria.
Code reviews, stand up, retros, and performance reviews — all acknowledge the importance of communication and feedback and they are good starts. But they don’t tell you how to give negative feedback or ensure that you, as a teammate or manager, hear the small things before they become big things.
Let’s talk about feedback and examine frameworks for how to ask for and frame feedback effectively. Not all situations call for the same type of feedback and some are more sensitive than others. We will look at Non-violent communication, techniques from family and marriage therapy, as well as more traditional frameworks for feedback.
Rebecca Miller-Webster is a software engineer, conference organizer, and educator. She is the founder of Write/Speak/Code and CTO at Polymathic. Rebecca has been developing software professionally for over a decade, previously organized GORUCO, and was the founding teacher at Dev Bootcamp NYC. Rebecca lives in Chicago with her husband and 2 dogs. And she changes her hair. A lot.
"Oh no! I just typed something into git and now my work is gone! Ahh!"
Don't panic. Contrary to popular belief, git is one of the most non-destructive version control systems available. When used right, git
never loses any data, and even when misused, chances are very high you can still recover.
This talk will present turn-by-turn directions on how to recover from a wide array of common git mistakes, and also provide some workflows
to minimize them.
Examples include, but are not limited to:
* Changing spelling errors in commit messages.
* Split commits into multiple commits with logical separation.
* Combining multiple commits into one.
* Resetting the base commit when you accidentally branch off of the wrong branch.
* Recovering from merge conflicts.
As well as more advanced topics, such as:
* Extracting parts (e.g. sub-directory) of a repository as a new repository.
* Merging multiple repositories into one while retaining version history.
* Removing confidential data accidentally committed.
Magnus Stahre is a software craftsman doing application development for two decades.
He is currently an Agile craftsman at Pillar Technology where he solves difficult problems while coaching others on techniques and tools that help developers work better.
He is also a dedicated Unix lover, having started his career as a sysadmin.
Distributed development organizations can enable more diverse teams and encourage greater work-life balance; hiring junior developers can allow you to train team members in your stack and company culture from the ground up. However, many companies only offer remote roles to senior developers, under the premise that junior developers require more face-to-face mentorship than a remote working environment can provide.
In this session, you'll learn how junior developers can actually succeed in a remote environment, how to prepare your team for hiring remote junior developers, and how to filter candidates for the skills required in a remote junior development position.
kf is a developer focusing on distributed systems, data processing, and functional programming--currently as a Data Engineer at Simple in Portland, OR. In her spare time, she's a board member at ClojureBridge and Bridge Foundry, as well as a mentor for the Software Design Studio at Reed College.
This presentation will cover how developers can take advantage of the most beneficial aspects of the watch in their apps, along with optimal ways of using watch frameworks. Looking at current user behavior, I'll pair these habits with key features that any compelling watch app should have.
Data and file transfer (Watch Connectivity)
Optimal battery performance
I'll also take a look at the best uses for complications (widgets on watch home screen), and how to use the ClockKit framework better-suited to developers' needs. This largely differs based on the type of service that developers' apps provide and the talk will cover the most optimal ways to show their users the information that is most useful to them.
The audience will be able to walk away with a better idea of what it takes to create a watch app experience that will keep users coming back again and again.
Kristina Thai is currently an iOS software engineer at Intuit. She works on the QuickBooks Self-Employed iOS app. Kristina is an avid blogger at kristinathai.com and spends her time writing iOS and watchOS development tutorials and blogging about her early career experience. She started her engineering career after graduating from the University of California, San Diego with a degree in Computer Science. Fun fact: she follows more animals on Instagram than people.
With GUI programs in abundance to help us with our everyday job it is easy to go years without touching a command line. Like most things in life: “if you don’t use it, you lose it.” In this talk we’ll use real world examples to show how you can automate and be more efficient at the things you do all day every day with some simple commands. We will also talk about how you can start to incorporate these tools into your everyday workflow so that you don’t ‘lose it’.
When writing code it’s very easy to lose sight of how much power we have as developers to do good - or cause harm - in the world.
This talk focuses on considerations for inclusivity and the technical options available to support them. The talk assumes an existing understanding of how removing biased assumptions from user experiences benefits all application stakeholders. Multiple solutions to each issue will be evaluated along with a presentation of suggested evaluation criteria for which option to chose given various contexts.
Across organizational verticals the scenarios discussed will include:
* Gender, sex, and sexual orientation topics
* Blindness, including colorblindness
* Holidays across faiths
* Language translation
Alison Stanton is a problem solver focusing on business intelligence reporting, product measurement, process improvement through automation, and technical training. She makes data accessible, discoverable, and actionable for Operations teams, Product Managers, and clients. Currently, her main languages are SQL, Python, and LookML. She loves knitting and using technology to empower audacious ideas.
Interested in doing machine learning in the cloud? In this demo-heavy talk, I will set the stage with some information on the different types of machine learning (clustering, classification, regression, and anomaly detection) supported by Azure Machine Learning and when to use each. Then, for the majority of the session, I’ll demonstrate using Azure Machine Learning to build a model which predicts survival of individuals on the Titanic (one of the challenges on the Kaggle website). I'll talk through how I analyze the given data and why I choose to drop or modify certain data, so you will see the entire process from data cleaning to building, training, testing, and deploying a model. You’ll leave with practical knowledge on how to get started and build your own predictive models using Azure Machine Learning.
Jennifer Marsman is a Principal Developer Evangelist in Microsoft’s Developer and Platform Evangelism group, where she educates developers on Microsoft’s new technologies. In this role, Jennifer is a frequent speaker at software development conferences across the United States. In 2009, Jennifer was chosen as "Techie whose innovation will have the biggest impact" by X-OLOGY for her work with GiveCamps, a weekend-long event where developers code for charity. She has also received many honors from Microsoft, including the Central Region Top Contributor Award, Heartland District Top Contributor Award, DPE Community Evangelist Award, CPE Champion Award, MSUS Diversity & Inclusion Award, and Gold Club. Prior to becoming a Developer Evangelist, Jennifer was a software developer in Microsoft’s Natural Interactive Services division. In this role, she earned two patents for her work in search and data mining algorithms. Jennifer has also held positions with Ford Motor Company, National Instruments, and Soar Technology. Jennifer holds a Bachelor’s Degree in Computer Engineering and Master’s Degree in Computer Science and Engineering from the University of Michigan in Ann Arbor. Her graduate work specialized in artificial intelligence and computational theory. Jennifer blogs at http://blogs.msdn.com/jennifer and tweets at http://twitter.com/jennifermarsman.
By now, almost everyone’s heard of test-driven development (TDD). You’ve been told it’s what you should do as a professional developer. You may even have tried some katas on your own. The trouble is that it’s hard. Figuring out what to test and how to test it can be a real challenge. Also, what’s mocking? Nobody mentioned mocking in any of those simple TDD examples.
This session will be a live performance of a test-driven kata that makes the domain logic for a Tamagotchi. The kata will be pair-programmed and narrated by the performers. By talking through the decisions being made, we will gain insights regarding what to test next and how to test it. We also will cover how to leverage test doubles (mocks, stubs, and spies) to more accurately depict the complexity of a real-world software project.
This talk is targeted for developers who have tried TDD but have trouble taking it beyond simple projects. If you want to know more about TDD and want to see how it can work in a more complex space that more accurately reflects work projects, this talk is for you! Also, if you really love Tamagotchi.
Lean Product Development is predicated on validating assumptions that we make about the product we want to build in lightweight ways; user research, contextual studies, paper prototypes, simple clickable prototypes. A few short weeks of these activities can massively reduce the risk of building the wrong thing, and in a world where developing the wrong software can cost millions or sink a company, the investment can be well-worth the time.
So how do you structure a project so that Product and Design have an opportunity to answer necessary questions, while making sure you’re not wasting developer resources or boring the crud out of your team?
This joint presentation by Pivotal Labs Product Manager Rosemary King, and UX Designer Simon Phillips will explore why up front investment in Discovery and Framing set up a project on solid foundation, how to involve development teams in the exploration and synthesis process, and how to set a cadence for your UX design work so that a comfortable buffer exists to allow for continual evolution of the product based on user feedback and changing understanding. Baked into the presentation will be case studies, challenges and lessons learned on recent lean/agile projects.
I'm a Product Manager at Pivotal Labs in London. Currently, I'm working with companies large and small to help them develop a user-centered product practice, implement lean methodologies and build products in environments of uncertainty and risk. In July 2014, I relocated to help Pivotal Labs build its Product practice in London.
I host Product Office Hours, where founders and companies come in to discuss their product challenges, and what to tackle next. If you're interested in participating, visit: http://pivotal.io/office-hours to sign up. You can also find me at the monthly ProductTank meet-ups and #LeanCoffee events.
In medicine and public health, specifically drug treatment, there's an ethos known as harm reduction. The approach is rooted in an acceptance of the fact that drug use *will happen*, so rather than trying to stop it categorically, practitioners should try to mitigate the negative side effects. It affords people suffering from addiction their humanity in a way that rigidly prescriptive regimes do not.
Oddly enough, software development has areas where an analogue to this 'harm reduction' mentality is valuable. If you're a developer, you probably touch one of them every day: your package manager. In this talk, I'll explore how package managers - tools that bring safety to the risky, uncertainty-laden work of creating software - are really about harm reduction, and what that tells us about the fundamental nature of both software and software ecosystems.
Sam was an activist and organizer with the loosely-termed "global justice" movement of the mid-2000s. Which, somehow, led to software engineering. In the years since, he's worked in open source communities large and small, for companies large and small, and on projects large and small. He's a polyglot programmer, definitely somewhere between "dev" and "ops," and writes overly long bios. He cares deeply about facilitating stable, supportive communities that can bring technology's enormous potential to bear on the world's critical problems.
Pair-programming is a practice that is often praised, but rarely practiced. So what is it about pairing that makes so difficult to get to? Any developer who wants to grow and learn with others will want to take a deeper look at pairing through a variety of lenses. First, we'll take a step back and look at pairing in other contexts from the cockpit to the kitchen. We'll investigate pairing from both a rational and emotional perspective to see what barriers we can remove. And we'll look at how to make pairing a habit that can re-energize a developer and a team. Attendees will leave with a more holistic understanding of pair-programming and some practical steps to make it a regularly rewarding habit.
Mark designs and develops web and mobile applications. He believes that user experience and creativity are essentials of software development, and that technology is just a small part of addressing the diversity of human need. He is an amateur woodworker, metalworker, and sailor.
Most programmers, regardless of our discipline or focus of choice, have a shared set of skills that make us good at what we do. On the whole we're excellent problem solvers who aren't afraid of failure and we spend ample amounts of time researching our options before experimenting with different solutions. What if we applied these deductive skills to more difficult scenarios of human interaction, like code reviews and teamwork? Is it possible for us to learn how to become better humans from how we program? Can being better humans make us better at programming? Using the tactics familiar to us as programmers, I'll outline a programmatic approach for human interactions to help us win at both programming and people-ing.
Liz Abinante is an engineer living in Portland. Previously, she has served as co-leader for the Chicago chapter of Girl Develop It where she focused on creating and teaching accessible programming curriculum for beginning and advanced levels. She is infectiously enthusiastic about web development, teaching, learning, and feminism. She enjoys speaking at conferences, knitting, sewing, and a hacking away on interesting problems. Her greatest dream in life is to spend her entire day surrounded by puppies while coding. She swears she's a lot more interesting than this bio makes her sound. She's often been compared to cartoon characters due to her enormous personality and penchant for sing/dancing her way through life.
The words we use to describe culture matter. We talk about the rituals and traditions we enjoy together. In agile software development one of the traditions we like is standups. Some of our rituals include drinking coffee and alcohol. It’s very important to us. I’m a self-described “beverage enthusiast” so I’m no stranger to these rituals. These are ways to bring some people together, but when we’re creatively building something we must dig deeper to describe what we value in our collaborative interactions.
Consider how our values, the core principles of our character, fit together when building a community and working with one another. Not everyone likes coffee. Not everyone likes beer. Not every can pop off to the pub after work to make critical business decisions over a pint, so maybe we shouldn’t be doing that.
Rituals and traditions are helpful but superficial ways to bring people together. Unfortunately they only bring some people together. This boils down to being deliberate about how we make decisions, and how we work together. If you aren’t being deliberate about what values bring people in your community together then you’re likely to end up with a community of people who are all very similar.
How do we end up with communities and organizations which lack diversity? By not being deliberate about creating inclusive environments. It can be avoided, and this talk is a discussion about what members of majority groups, often in positions of power, can do to influence the inclusivity of open source.
Working in Internet infrastructure, web app security, and design taught Casey to be a paranoid, UX-oriented, problem solving Internet plumber; his earliest contributions to Perl live to this day on your Mac. Casey’s speaking and writing ranges from open source communities and culture to technical architecture and automation tips and tricks. Casey West wears the mantle of Principal Technologist focused on Pivotal’s Cloud Foundry Platform and lives in Pittsburgh raising three sarcastic children.
Burnout saps the joy from creating and leaves the world in shades of grey. What do you do when you realise your work is meaningless and you dread going in every day? As an engineer, you can analyse the system, determine what is missing, and inject some much needed color.
Cate Huston is Director of Mobile Engineering at Ride. She’s lived and worked in the UK, Australia, Canada, China and the United States, previously as an engineer at Google, an Extreme Blue intern at IBM, and a ski instructor. Cate built Show & Hide (available on iTunes), and speaks internationally on mobile development. Her writing has been published on sites as varied as Be Leaderly, Lifehacker, The Daily Beast, The Eloquent Woman and Model View Culture. She is an advisor at Glowforge, co-curates Technically Speaking, blogs at Accidentally in Code and is @catehstn on Twitter.
We have been teaching a group of around 15 Detroit high school students the fundamentals of software development through a program called D-Code. Their coding experience is limited, as is our teaching experience; however, we are determined to introduce them to the opportunities that the modern economy has to offer them, especially within their own city. We are focusing not just on the technical material, but also on how thinking like a developer can help students with problem solving and communication. This way, they can take all the skills they learn into any professional field and into their own lives.
We are still teaching this program, so attendees will be getting our most recent impressions of this exciting process!
Brandy appeared from Reach, ready to code or change the world, or both if possible.
Kyle Ofori has been a mobile developer at Detroit Labs since September 2014. His primary platform is Android, though he has since explored iOS and web development languages. He is a graduate of Detroit Labs' apprenticeship program. Kyle enjoys teaching young people about the fundamentals of computer programming as a way to provide them with new opportunities; he is currently co-teaching a course in web development. He is an enthusiastic resident of Detroit.
Every modern smartphone is incredibly aware of its user’s actions, routines, and environment. “Context-aware” applications synthesize the passively-collected information exposed by these devices to proactively produce a personalized and relevant experience. Archetypal examples include:
- weather apps that monitor location and notify the user of incoming inclement weather;
- fitness apps that automatically detect and record time spent running and cycling.
Despite the deserved popularity of apps in this space, it was until recently relatively difficult to build apps that were aware of one of the most important contexts of all - the people immediately around us. Google’s Android and iOS Nearby APIs, launched in July 2015, aim to fix this. This talk will be one big exploration of these new APIs and the capabilities they provide, covering the following main themes:
- API basics and code samples
- privacy best practices
- cross-platform caveats
- Nearby-augmented apps: considerations
- Nearby-based apps: context at the core
Hello! I’ve been developing Android & iOS applications professionally for about two years, thanks to Detroit Labs. Before that, I taught and earned a Ph.D. in Applied Math from the University of Arizona. I’m originally from England!
As developers we have a core set of values that we strive to live by. In this talk I will explore how we can put some of these values into practice by participating in Open Source projects. The discussion will center on how we can get better at our jobs, build more useful tools, find learning and teaching moments, and practice good citizenship through volunteer coding. We will also explore strategies for effective collaboration with other developers in the community and touch on lessons learned from my own successes and missteps.
Coraline Ada Ehmke is a speaker, writer, teacher, open source advocate and technologist with 20 years of experience in developing apps for the web. As a founding member of OS4W.org and contributor-covenant.org, she works diligently to promote diversity and inclusivity in the tech industry. Her current interests include refactoring, code analytics and artificial intelligence.
Have you ever looked at your code and realized that a certain design pattern was charging in like a romantic hero, sweeping away the confusion and bringing order to chaos? Or perhaps you've encountered a pattern that you utterly hated...until it's virtues slowly grew on you as you realized that the alternative was a complete disaster? Let's imagine Ada Lovelace reading Jane Austen, and compare some of my favorite design patterns with some of my favorite Jane Austen heroes.
Note: I'll be showing Swift code, but neither knowledge of Swift nor Jane Austen are required.
Anne Cahalan is an application developer at Detroit Labs and a survivor of their apprenticeship program. She makes apps with Xcode, sweaters with sticks, and cocktails with bourbon.
Your content is clear, your images are responsive, your code is clean, and your layout flows beautifully on all the most popular devices. You think you're ready to launch, but you might have overlooked a crucial aspect of your website's development. If it's not easy for a person to access your content regardless of the way in which they use the internet, there's still work to be done. Developing for accessibility should be part of the standard workflow, but it's often given very little attention. This talk will cover why web accessibility is important, resources for learning about accessibility standards, and patterns for addressing challenges facing users (focusing mainly on visual impairment, but also including hearing, motor, and cognitive).
Aisha Blake arrived in Detroit in 2013 to serve as a Jesuit Volunteer at Detroit Cristo Rey High School and somehow ended up on the leadership team for Girl Develop It Detroit. This inevitably led to a deep love of the tech community in Detroit and a desire to put down roots. She has since become the owner of a cat and a house. She works on the instructional staff at Grand Circus teaching career changers the joys and the struggles of front-end web development.
Developing an app is just one step in the process. Helping users easily discover, download, and use your app, however, is a critical step in the process many miss. This is where the power of search comes into play. With iOS 9, Apple introduced three new search and discoverability APIs: NSUserActivity, CoreSpotlight, and Web Markup, which give third-party developers like us the ability to make our app content searchable in Spotlight and Safari!
In this talk, I will be demonstrating how to implement the Search APIs, and provide quality search results for your iOS apps. Using NSUserActivity API, NSUserActivity objects can be indexed, and displayed to app users in Spotlight search results. Additionally, we will also be exploring how to use deep app links to enhance user engagement by directing users to the specific app content they want.
iOS Developer, Chess Master, and Sports Fanatic