The Curious Engineer

All blogs / Software / engineering practice

Chelsea Troy

chelseatroy.com

Software / engineering practiceEngineering management / careersAI / MLTesting / QA

Posts
444 from 21 Jun 2014 to 29 Sep 2025
Posting
now and then
Kind
personal blog
Feed
https://chelseatroy.com/feed/

2025 4

  1. CS for a Nation: A conversation with Simon Peyton Jones about computer science education
  2. What can we expect of LLMs as Software Engineers?
  3. How to survive the apocalypse: a conversation with Tim O’Reilly about Generative AI
  4. The Homework is the Cheat Code: GenAI Policy in my Computer Science Graduate Classroom

2024 8

  1. What layoffs teach us about technical leadership
  2. How to flub (and not flub) group decision-making on technical teams
  3. Decision-Making Pitfalls for Technical Leaders
  4. Does AI benefit the world?
  5. The Programmers’ Identity Crisis: how do we use our powers for ‘good’?
  6. How do we build the future with AI?
  7. How does AI impact my job as a programmer?
  8. How do we evaluate people for their technical leadership?

2023 9

  1. What do we do with the Twitter-shaped hole in the internet?
  2. What do conference talks mean for you and your project?
  3. Building Online Workshops: An AMA
  4. Building an Independent Teaching Practice
  5. What’s the point of tech conferences?
  6. How do tech companies make money?
  7. Money doesn’t buy class…privilege
  8. Testing: A Heuristic Hunting Conversation with Rebecca Wirfs-Brock
  9. On Code Coverage Tools

2022 16

  1. On the Psychology of “Tech Money”
  2. Spotting Misinformation in “Studies Have Shown”
  3. What it Takes to Make a Language “Object-Oriented” (or at least object-literate)
  4. What should we be asking about machine learning studies?
  5. How I do (and don’t) prepare a talk for a tech conference
  6. On Boundaries: When You Have to Say “No,” Professionally
  7. Outsmarting Zinger Fever on the Internet
  8. “Best Practice” is not a reason to do something
  9. Coffee and Me: A Seven Year Love Affair
  10. Python’s Sneaky Default Argument Behavior and What to Do About It
  11. On offering help that’s actually helpful
  12. Why Compilers Don’t Autocorrect “Obvious” Parse Errors
  13. Implementing a Shortest Path Program from Scratch
  14. Adding Error Productions to the Lox Compiler
  15. How to Authenticate for a Dual Platform Mobile Deployment on an Existing App
  16. Emulating Objects in Functionally-Oriented Languages (The Real Midwives of Haskell)

2021 49

  1. The Hard Thing About Nested Scopes: Tracking State in an Interpreter
  2. Notes and Illustrations: Grokking Machine Learning
  3. Introduction to the Roc Compiler
  4. An Applied Programming Instructor Commentates an Algorithms Class, Pt. 2
  5. CodeSync Fireside Chat: Escalating Technical Risk
  6. RubyConf 2021: What did participants say in the Tackling Technical Debt workshop?
  7. Compilers 5: Code Generation
  8. A Rubric for Evaluating Team Members’ Contributions to a Maintainable Code Base
  9. Notes from the Second Half of Andrew Ng’s Machine Learning Yearning
  10. An Applied Programming Instructor Commentates an Algorithms Class, Pt. 1
  11. YOW! Keynote: What Counts as a Programming Language?
  12. Critique, The Internet, and You
  13. Compilers 4: Exploring a Parser
  14. The Art of Documentation
  15. Talk at Blue Team Con: Analyzing Application Risk
  16. Compilers 3: Let’s Debug an Interpreter Together!
  17. The Oxymoron of “Data-Driven Innovation”
  18. Compilers 2: Compiling Backwards
  19. Building a Career and Teaching a Skill: Podcast Interview with Elixir Wizards
  20. Compilers 1: Anatomy of a Machine
  21. The Siren Song of the ‘User’ Model
  22. Interview on “Teaching with Aisha” about designing a course
  23. What Pride Means to Me in Practice
  24. Implementing Function Declaration and Invocation in a Programming Language
  25. Understanding and Using “Instructional Code”
  26. How to Implement Variable Assignment in a Programming Language
  27. Handling Errors with Grace (and sometimes without it)
  28. For real though, what is the Visitor Pattern and why do I care?
  29. Designing Assignments for Programming Classes
  30. Learning from Academic “Open Courses” Online
  31. Detecting Trouble Spots in Programming Homework Assignments
  32. Largest Simultaneous Software Risk Analysis Ever Done?
  33. What Counts as a Programming Language: Recorded Q&A
  34. Quantitative Programming Knife Skills, Part 2
  35. Should I use functional or object-oriented programming?
  36. Technology and Psychology of Refactoring: Recorded Q&A
  37. Data Safety: The “Knife Skills” of Quantitative Programming
  38. Functional vs. OO: The Debate that Imprecise Language Destroyed
  39. Improving Your API Design Skills with Open Source Examples
  40. Why Learn Python?
  41. What Can Technologists Learn from Dr. Martin Luther King, Jr.?
  42. Reducing Technical Debt
  43. Avoiding Technical Debt
  44. Solving Logic Problems with Python Decorators
  45. Quantifying Technical Debt
  46. Live Stream Director’s Cut: Extracting a Service Superclass
  47. Not your Daddy’s Intro to Version Control with Git
  48. Elevators in Python are harder than they sound (Part 2)
  49. Live Stream Director’s Cut: Parent and Child View Controllers

2020 96

  1. Elevators in Python are harder than they sound (Part 1)
  2. Reader’s Guide: Natural Language Processing with PyTorch
  3. How to Be a 10x Developer
  4. Another Announcement
  5. RubyConf Workshop: Analyzing Risk in a Software System
  6. Inheritance in Python
  7. The dangers of the exclusive “or”
  8. Live Stream Director’s Cut: A Collection Onscreen
  9. Why use (or not use) interfaces in Python?
  10. Debugging: Podcast Interview with Ruby Rogues
  11. What counts as a programming language?
  12. Interview on Greater than Code
  13. How do Python objects do stuff?
  14. Live Stream Director’s Cut: Extracting Custom Views
  15. Clean Structural Verification with Alloy
  16. Collaborating with Students on Code Assignments
  17. Structural Verification: Catching Data Model Clusterfumbles Before They Happen
  18. Does Daddy Know Best?
  19. Live Stream Director’s Cut: Pretty Designs and Functional Menus
  20. Techtivism 3: Biding Time, Boycotts, and Beyond
  21. Raft 14: The Grand Finale About the Barking Spider Circus
  22. Designing a Course 9: Iterating on the Course
  23. Raft 13: Configuration Changes
  24. Advanced Debugging with XCode and LLDB, Part 3
  25. Raft 12: Maintenance Repairs
  26. Data Persistence on Android with GreenDAO
  27. Raft 11: Leader Elections, Part 2
  28. Only One Right Way
  29. Raft 10: Leader Elections, Part 1
  30. A Conversation About Tech Jobs, Mobile Development, and Blogging
  31. Worship of the Written Word
  32. Raft 9: Log Replication, Part 3
  33. Techtivism 2: The Four Levers
  34. Designing a Course 8: Use of Surveys
  35. Live Stream Director’s Cut: Adding Interactivity
  36. Raft 8: Log Replication, Part 2
  37. Designing a Course 7: Planning Collaborative Activities
  38. Code Reviewer Briefing for Zooniverse Mobile Application
  39. Live Stream Director’s Cut: From Views to Code
  40. Mobile Software Development: About this Class
  41. Quantity over Quality
  42. Raft 7: Log Replication, Part 1
  43. Clean Surveys in Android
  44. Appearance on Podcast: “Conversations in Software Development”
  45. Designing a Course 6: Dividing Students into Groups
  46. The Scottish Gaelic Tattoo App: A Case Study in iOS Autolayout and Constraints
  47. How to Jump-Start Learning a New Programming Language
  48. The Role of Empathy in Mobile Apps for Care Management
  49. What We Lose When We Get Defensive
  50. Uploading Metadata: A Case Study in Adjusting Undocumented Behavior on Legacy Code Bases
  51. Anti-Racist Pedagogy in a Graduate Computer Science Class
  52. Designing a Course 5: Why Use Group Work?
  53. Advanced Debugging with XCode and LLDB, Part 2
  54. Haste Makes Waste
  55. Lessons from Space: Edge Free Programming
  56. So you have to do a layoff.
  57. Signing In: A Case Study for Android
  58. Designing a Course 4: Teaching Methods for Remoteness
  59. Question: How does git detect renames?
  60. Lessons From Space: Debugging Plants
  61. Transcript – Debugging: Techniques for Uncertain Times
  62. Designing a Course 3: What will we do in a session?
  63. Q&A: How can I mentor marginalized colleagues?
  64. Talking about Feedback on the CTO Connection Podcast
  65. Swift Question: Dictionaries with Keys of Arbitrary Type
  66. Designing a Course 2: How will the sessions go?
  67. Advanced Debugging with XCode and LLDB, Part 1
  68. Lessons from Space: Roadmaps
  69. Lessons from Space: Requirement Gathering
  70. A Technical Tour of the NASA Landsat Data Processing Pipeline
  71. Lessons from Space: Avoiding Catastrophe
  72. Lessons From Space: Pre-Launch Testing
  73. Lessons from Space: Who’s Who, and Why it Matters
  74. Lessons from Space: Why Delay a Launch?
  75. Designing a Course 1: What will students learn?
  76. Perfect is the Enemy of…Even Marginally Adequate
  77. Raft 6: Terms and Leadership
  78. Advance Your Tech Career: Networking
  79. One-Page Notes: The Command Line
  80. Live Coding: Authenticating an Imagery Request
  81. The Price of Whiteness in Tech: Introduction
  82. Adventures in Process Design: A Case Study on Automated Classification, Pt. 1
  83. Learning Circles: What I Have Learned
  84. The Case of the Failing Upload, Part 2
  85. The Case of the Failing Upload, Pt. 1
  86. Raft 5: Taking Stock
  87. Sharing Context on Slack (or similar)
  88. Pairing After Hours with Avdi and JessiTRON
  89. Raft 4: Bare Minimum Log Replication
  90. PoSD 4: Don’t knock things you haven’t tried
  91. A Framework for Debugging
  92. Raft 3: Threads, Processes, and State Machines
  93. Storing Context in Commit Messages
  94. PoSD 3: Debugging Tactics
  95. Raft 2: Setting Up Socket Servers
  96. Boundaries 2: Assisted Processing

2019 69

  1. PoSD 2: What causes insidious bugs?
  2. The Raft Algorithm: What, Why, and How
  3. Reviewing Pull Requests
  4. Philosophy of Software Design: Pt. 1
  5. Submitting Pull Requests
  6. Boundaries
  7. SICP 7: Nondeterministic Programming
  8. Listening 7: Deliberate Appreciation
  9. SICP 6: Metalinguistic Abstraction
  10. On Becoming a Presence in the Software Community
  11. SICP 5: Modularity, Objects, and State
  12. Listening 6: Deliberate Inquisition
  13. SICP 4: Objects, Functions, and Change
  14. Live Coding: Ship It!
  15. Listening, 5: Optimizing for Impact
  16. SICP 3: Representing Data Structures
  17. Listening, 4: No One Listens
  18. Building a Parser
  19. Listening, 3: Optimizing for Learning
  20. SICP 2: State and Modularity
  21. Hosting a Conference
  22. SICP, Introduction: On Learning the Abstract
  23. Listening, 2: A Penny (foregone) for Your Thoughts
  24. Techtivism 1: Eyes on the Mountain
  25. Building a Scanner
  26. Listening, Part 1: Introduction
  27. Drawings of How Compilers Work
  28. Planning an Engaging Conference Program
  29. On Writing Informative Programming Texts
  30. On Building an Inclusive Tech Conference
  31. Live Coding: The Abstraction Gradient
  32. 20 Minute Talk: Giving and Receiving Feedback
  33. Iterating on a Speech/Talk
  34. Live Coding: Exploring an API
  35. Crafting and Outlining a Speech/Talk
  36. Live Coding: Reactive Themes for React Native Components
  37. Would you like to watch me code? Now you can.
  38. Identifying a Speaking Niche
  39. Resources for Programming Instructors
  40. 20 Minute Talk: Leveling Up as a Technologist
  41. Planning (and surviving) a 3 Hour Lecture
  42. A Podcast on Leveling Up, Machine Learning, and Inclusion
  43. Learning to Teach a Programming Course
  44. An Announcement
  45. Reducing Job Interview Anxiety, Part 3: Interviewing with the Right Companies
  46. Time and Space Efficiency, an Applied Example: Part 3
  47. Reducing Job Interview Anxiety, Part 2: Establishing Success Metrics
  48. Time and Space Efficiency, An Applied Example: Part 2
  49. Reducing Job Interview Anxiety, Part 1: Increasing Touch Points
  50. Time and Space Efficiency: An Applied Example, Part 1
  51. Transcript from Lecture: Giving and Receiving Feedback
  52. Thanks, Mom: A Personal “Ask Me Anything” (AMA)
  53. Transcript from Keynote: Leveling Up
  54. Applied Data Science Case Study, Part 6: Error Analysis
  55. Applied Data Science Case Study, Part 5: Fitting Models
  56. Modifying Authentication Behavior in Devise
  57. Behind the Scenes: Ruby By the Bay Civic Hack
  58. Leveling Up, 20th Post Corollary: Mentors and Sponsors
  59. Applied Data Science Case Study, Part 4: Performant Processing
  60. PearConf Keynote – The Technology and Psychology of Refactoring
  61. Leveling Up Skill #19: Getting Mentors
  62. Applied Data Science Case Study, Part 3: Exploratory Analysis
  63. Applied Data Science Case Study, Part 2: Assessing the Data
  64. Neural Style Transfer with Latte Art, Part 1: Layer Depth
  65. Leveling Up Skill #18: Who to Ask, How to Ask
  66. Applied Data Science Case Study, Part 1: Assessing Business Value
  67. Leveling Up Skill #17: Asking for Help
  68. A Framework for Feature Engineering, Part 3: Evaluating Features
  69. Leveling Up Skill #16: Operationalizing Feedback

2018 67

  1. Behind the Scenes: Planning a Lecture
  2. Risk-Oriented Testing (From RubyTapas Screencast)
  3. Leveling Up Skill #15: Receiving Feedback
  4. Behind the Scenes: Screencast with RubyTapas
  5. A Framework for Feature Engineering, Part 2: Shattering Classes
  6. Leveling Up Skill #14: Attracting Feedback
  7. A Framework for Feature Engineering, Part 1: Intuition
  8. Behind the Scenes: Syllabus Design
  9. Code Mechanic: Numpy Vectorization
  10. Leveling Up Skill #13: Framing Feedback
  11. Leveling Up Skill #12: Identifying Safe Opportunities for Feedback
  12. Leveling Up Skill #11: Evaluating Whether to Give Feedback
  13. Behind the Scenes: Podcast Interview with Greater Than Code
  14. Hiring for Fit
  15. Code Mechanic: The Scipy CSR Sparse Matrix
  16. Leveling Up Skill #10: Reflecting on Mistakes
  17. Git Commit Messages: Options and Approaches
  18. Adventures in Process Design: A Case Study on Data Import
  19. Leveling Up Skill #9: High-Level Reflection
  20. Design Patterns for Data Science, Part 2: Paper vs. Ceramic
  21. Design Patterns for Data Science, Part 1: Python Files and Notebooks
  22. Build Graceful Processes: An Approach to App Design
  23. Proxy Models in Django: An Example and a Use Case
  24. Level Up Skill #8: Active Reading
  25. API Design, Part 3: GraphQL and the Future
  26. API Design, Part 2: The Arrival of REST
  27. Leveling Up Skill #7: Approaching Academic Papers
  28. API Design, Part 1: Before There Was REST
  29. Seniority Means Saying No
  30. Leveling Up Skill #6: Commit Tracing
  31. Leveling Up Skill #5: Warm-Up Reading
  32. Leveling Up Skill #4: Warm-Up Activities
  33. Streamlining your Automated Test Strategy with Risk Maps
  34. Leveling Up Skill #3: Tracking our Progress with Accountability Calendars
  35. Leveling Up Skill #2: Removing Reliance on Motivation
  36. Can we rethink imposter syndrome?
  37. A Rubric for Evaluating Team Members’ Contributions to an Inclusive Culture
  38. Leveling Up Skill #1: Setting Goals
  39. Questions for Prospective Managers
  40. Progress Report on Error Analysis Visualizations: Classification Added!
  41. What growing your tech team means for your app
  42. Designing Code for Testing: An Example Implemented in Python
  43. Leveling Up: A Guide for Programmers
  44. But what if I can’t tap my remote employee on the shoulder?
  45. Why Your Efforts to Fix your Pipeline Aren’t Fixing Your Pipeline
  46. Analyzing Relationships Between ESG Data and Stock Performance
  47. Performance Optimization: An Example Implemented in Ruby
  48. How do we make remote meetings not suck?
  49. One Page Notes: Statistics Done Wrong, Part 2
  50. Why do remote meetings suck so much?
  51. One Page Notes: Statistics Done Wrong, Part 1
  52. Why are there always technical problems in remote meetings?
  53. Don’t people slack off when they work remotely?
  54. Analyzing Relationships Between ESG Data and Stock Performance, Part 3
  55. If remote work is so awesome, why does it make my job as a leader harder?
  56. How to Socialize Big Changes at Work, Part 3: Timing
  57. Data Visualization in Python: A Project-First Approach
  58. How to Socialize Big Changes at Work, Part 2: Scale Up Your Effort
  59. Why do large companies keep abandoning remote work?
  60. How to Socialize Big Changes at Work, Part 1: Start at the Grassroots Level
  61. Analyzing Relationships Between ESG Data and Stock Performance, Part 2
  62. Contributing to Open Source
  63. Natural Language Processing: A Project-First Approach
  64. Analyzing Relationships between ESG Data and Stock Performance, Part 1
  65. Book Review of Feminist Fight Club: An Office Survival Manual for a Sexist Workplace
  66. Managing Humans: Biting and Humorous Tales of a Software Engineering Manager
  67. One-Page Notes: Confident Ruby, by Avdi Grimm

2017 41

  1. Tips for Building on Graph Databases (Neo4j)
  2. Disrupting Management: A Fix for Tech Culture?
  3. Computer History Video of the Week: The Laptop
  4. Edge-Free Programming, by Michael Feathers
  5. The Bullshit Rule for Tech Managers
  6. Computer History Video of the Week: ENIAC
  7. Progress Report on Multivariate Linear Regression Visualizations
  8. Computer History Snippet of the Week: The IBM Selectric II
  9. Anger and Sadness in the Workplace
  10. Computer History Video of the Week: APL
  11. Computing History Video of the Week: The Qwerty Keyboard
  12. Puzzles: how a social experiment built coworking community
  13. The Numpy API: Resources, Idiosyncracies, Examples
  14. ‘Everybody Lies’ Review Part 2: Dangerous Methodology
  15. ‘Everybody Lies’ Review Part 1: Takeaways
  16. A Visual for High-Dimension Regression Data
  17. Advance Your Tech Career: What are stock options, and how do I use them?
  18. Building a Motion Detector to Learn OpenCV
  19. Tech Leadership: Fault vs. Responsibility
  20. “Smart” is Not a Hiring Criterion
  21. Takeaways: Machine Learning Yearning by Andrew Ng, Chapters 1-14
  22. Writing an Alexa App in 8 Hours
  23. The Seeds of a Great Company Culture
  24. How your Dudebros are Losing You Money: The Microcosmic Impact of Inclusion on your Bottom Line
  25. Dear Corporations: Read this before you sponsor Pride
  26. Advance Your Tech Career: A Guide to Evaluating Total Compensation
  27. But Isn’t Pair Programming Expensive?
  28. Advance Your Tech Career: Why make yourself replaceable, and how?
  29. Leading a Software Rewrite at Your Company
  30. Adding Members to Your Software Team
  31. Advanced Pair Programming: Learning From Your Pair
  32. Advanced Pair Programming: Enabling Your Pair
  33. Advanced Pair Programming: Pairing Remotely
  34. Test-Driven iOS: Testing Asynchronous Network Calls with FutureKit
  35. Do iterations make business sense?
  36. A Survival Guide for Women Working in Male-Dominated Companies
  37. Machine Learning Intuition: Understanding Taylor Series Approximation
  38. Machine Learning Intuition: Using Derivatives to Minimize the Cost Function
  39. Machine Learning Intuition: Cost Function Optimization
  40. Test-Driven iOS: Passing Information With Segues
  41. One-Page Notes: Weapons of Math Destruction, by Cathy O’Neil

2016 26

  1. Test-Driven iOS: Mocking Dependencies
  2. One-Page Notes: On Intelligence, by Hawkins and Blakeslee
  3. Test-Driven iOS: Using Segues
  4. Machine Learning: Using Regression Analysis to Detect Biases in Compensation
  5. Test-Driven iOS: Introduction to Feature Tests
  6. Test-Driven iOS: Dependency Injection
  7. Test-Driven iOS: Testing an App with Storyboard UI
  8. Machine Learning: Wine Recommender
  9. Diagramming Data, Part 3: Preventing and Curing Data Deficiencies
  10. Diversity, Inclusion, and Money.
  11. Diagramming Data, Part 2: Reversible and Irreversible Data Issues
  12. Diagramming Data, Part 1: Simple Code Depends on Nice Data
  13. Bias doesn’t start with skin color.
  14. Android How-To: Card Flip Animation in API 23
  15. Test-Driven Android: Testing Multiple Cursor Loaders for One Activity/Fragment
  16. When Not to Use Microservices
  17. Allyship in Times of Crisis
  18. Spring Batch with Java Config: An Example
  19. Spring Integration with Java Config: An Example from Spring Integration in Action
  20. Test-Driven iOS: Enabling Unit Testing with a Code-Only UI
  21. Material Design: An Experience Report by Andy Detskas
  22. If I had a quarter for every time I have seen this damn dagger error…
  23. Machine Learning, Part 2: Classification
  24. Professionalism
  25. Test-Driven Android: Tab Layouts
  26. Remote Pair Programming: Best Practices

2015 20

  1. Machine Learning, Part 1: Regression
  2. Test-Driven Android: When and How I Use Robolectric
  3. Test-Driven Android: Testing Context-Dependent Components with a Provider
  4. Test-Driven Android: Separating Dagger from Robolectric in Test Suites
  5. Staging Area for External Post Review
  6. Test-Driven Android: RecyclerViews
  7. On Decency
  8. SpringOne: The Bootiful Microservice as a Microcosm for a Larger Discussion of Spring
  9. SpringOne: Modern Java Component Design with Spring 4.2
  10. Test-Driven Android: Testing Layout Elements with Subclass and Override
  11. Android Programming for the More Curious: Diving into Concepts from the Big Nerd Ranch Guide
  12. Professional UX Design: An Experience Report
  13. What Software Teams Can Learn from Improv Comedy
  14. A Reading Companion to Steve Krug’s “Don’t Make Me Think”
  15. Set up an Android Project with Robolectric
  16. Choices in UI: A Goofus and Gallant Example
  17. “UI Design for Programmers” by Joel Spolsky
  18. Roles Don’t Matter, Skills Do: Balanced Team Summit, Grand Rapids
  19. “The Clean Coder” by Uncle Bob Martin
  20. The First Two Weeks at Pivotal Labs

2014 39

  1. Pairing with Coraline, Entry 3: Recommendations for “Spiking” and the Skeleton of a Ruby Project
  2. A Reading Companion to Caleb Doxsey’s Book on Golang
  3. Learning Java from TDD by Kent Beck
  4. Geekfest: Ray Hightower Dumps a Robot into Lake Michigan
  5. My Five Favorite Things About SASS (The CSS Extension Language)
  6. DCamp Code Retreat: Lessons Learned
  7. How to Make the Most of DCamp
  8. Hacking Chart.JS: A Crash Course in Down-and-Dirty Front End (Part 3)
  9. Chicago Ruby: VIM for Ruby
  10. Pairing with the Pros: A Day at Pivotal Labs
  11. Pairing with Coraline, Entry 2: Ternary Operators and a Healthy Dose of Scope
  12. Hacking Chart.js: A Crash Course in Down-and-Dirty Front End (Part 2)
  13. API Strategy and Practice Conference: Intro to APIs with Kin Lane and Kirsten Hunter
  14. Pairing with Coraline, Entry 1: Ruby Syntax, Level 2 Spells, and POROs
  15. A Contemplative Review: Extreme Programming Explained, by Kent Beck and Cynthia Andres
  16. Hacking Chart.js: A Crash Course in Down-and-Dirty Front End (Part 1)
  17. OpenGov Hack Night: Dan Platt and Craig Booth on Chicago Crime Stories
  18. Geekfest: Brian Kung—”What Dance Taught Me About Programming”
  19. Justin Love on SQRL (and the post-password authentication movement in general)
  20. Matt Polito on Why Cucumber is Still Relevant
  21. Dave Hoover on Developing Developers
  22. Jessica Kerr Talks TDD at Windy City Rails
  23. Chris Powers on Building Apps for Chromecast
  24. Dinshaw Gobhai on Speeding up Rails at Constant Contact
  25. Dr. Nic Williams on Orchestration
  26. Sean Griffin’s Functional Web Talk, Plus Further Reading
  27. Rubinius X: Everything you wish Ruby could do?
  28. Windy City Rails: Yan Pritzker on Domain Driven Rails
  29. Windy City Rails: Daliah Saper on Development and the Law
  30. Windy City Rails: Mark Menard on Upfront Design
  31. Windy City Rails: Lucas Mazza on Devise
  32. How Being an Athlete Prepared Me for Programming
  33. My First Ruby Gem!
  34. API Support for World-Changing Datasets
  35. Zero to Bit.ly (with analytics!) in 8 Hours
  36. It’s not magic.
  37. Why Break the Rules of Front-End Development?
  38. Drawing a Computer Program
  39. Coding the Fibonacci Sequence