All blogs / Software / engineering practice
8th Light Insights
Software / engineering practiceAI / MLEngineering management / careersEngineering blogs
- Posts
- 861 from 12 Jul 2022 to 21 Oct 2026
- Posting
- monthly (21 in the last year)
- Kind
- company blog
- Feed
- https://8thlight.com/insights/feed/atom.xml
2026 20
- 5 lessons for getting agentic AI into production
- From AI Code to Trusted Software: Harness Engineering in Practice
- Waggy, Claude, and Code: Celebrating Drake Fish, Our Newest Beacon
- Teaching the Agent Our Craft: Structured Agentic Development on a Real Codebase
- Celebrating our Beacon: Kevin Buchanan
- Production is the New Prototype: Notes from LangChain Interrupt 2026
- Accelerating Delivery: How AI Agents Can Own the Initial Code Draft
- LLMs Are Proving That It Is Impossible to Automate Away the Human Experience
- Reframing Healthcare Technology in the AI Era
- Jon Wettersten
- A Primer: MCP Servers and the Model Context Protocol
- Honoring Our Q4 Beacon Award Recipients, Team Nimrods!
- ARTICLE Walk Out Technology Is Hitting Its Stride
- Shawn DeVries
- Making Sense of Digital Transformation Initiatives: Seeing Past the…
- The Design Process and Agile Development: Part 1 — Design Is…
- Hand, Meet Prime Time: How Biometrics Drive Fan Experiences
- From VHS to Interactive Streams: Customization at Scale with the NFL…
- The Design Process and Agile Development: Part 2 — Collaborative…
- WWE and Netflix Go Live, Loud, and (Hopefully) Unbreakable
2025 28
- Celebrating Our Beacons: Hugh Sato and Pierce Edmiston
- AI-assisted Coding is Not Doing My Dishes and Laundry
- The Evolution of Craft - Embracing AI in Software Development
- How to Make your Customers Happy and Your Engineers Even Happier
- Turning Ambiguity into Opportunity: How 8th Light Designers Innovate…
- Unlocking Safer, Faster Experimentation for a Global Tech Leader
- Celebrating our Beacon: Rani Zipelwar!
- TDD: The Missing Protocol for Effective AI Assisted Software…
- How Machine Learning Transforms Visual Validation in Game…
- AI-Powered Documentation: The Secret to Efficient Technical Writing
- Mastering Technical Documentation
- Measuring DevOps ROI: KPIs for Success
- Navigating the Shift to DevOps
- Modernizing Legacy Systems to Keep Users First
- AI-Assisted Coding and the Rise of “Vibe Coding”
- Integrating Agile in the Age of AI: Common Pitfalls and Solutions
- Why DevOps Matters
- 4 Emerging GenAI Trends in Legal Tech
- Combatting Bias in AI Systems
- Revisiting a Past Project: Using an AI Agent to Improve Efficiency
- Empowering Game Developers with Faster Builds and Better Tools
- The UX Design Process Wheel
- Essential Strategies for Upgrading Microservices Without Downtime
- Getting Started with TDD: A Practical Guide to Beginning a Lasting…
- Crafting Quality in the Age of AI: Lessons from HumanX 2025
- What I Discovered After Analyzing 2,500 ChatGPT Conversations
- Flutter Navigation: Is GoRouter Still The Best Choice?
- Introducing The Fuse & The Flint Podcast
2024 30
- Driving Adoption: Building Scalable Testimony Management Tools for a…
- Beyond Generative AI: 8 Foundations of Scalable and Secure Legal Tech…
- Achieving Sustainable Growth: 3 Revenue-Boosting Strategies for an…
- Keep Your Product Team Humming: Aligning Product, Design, and…
- Human-Centered Healthcare: Shifting from Tech-First to Provider-First…
- AI and Law: Navigating Emerging Legislation
- The MLOps Architecture Behind Trustworthy AI Principles
- Implementing Trustworthy AI Principles with MLOps
- How to Address and Mitigate Bias in AI Product Design
- Legal Tech’s Future: How AI, Data Quality, and HITL Lead the Way
- Overcoming AI Fatigue: Building Real-World AI Software Solutions
- 6 Ways GenAI Is Changing Law Services & Legal Practice
- Unlock the Power of Product-Led Growth
- Embracing AI: Transforming the Future of Design and Creativity
- Avoiding Chair Pants in the World of AI-assisted Coding
- White-Label Mobile Applications: Key Tips for Purchasing and…
- 5 Proven Strategies for Successful Software Modernization
- 8th Light Hosts AI Summit 2024
- Reflecting on CincyAI Week 2024
- The Potential and Pitfalls of AI-Assisted Coding
- How AI-Powered EMRs are Curing Healthcare's Biggest Headaches
- Using AI to Shift the Title Insurance Industry
- Is Your Company’s Technical Debt Holding Back DevOps Success?
- Managing Technical Debt
- Designing for AI: Unveiling a New Set of Personas
- Your Comprehensive Guide to Keeping Legacy Systems Successful
- The Benefits of Recreating Vendor Software In-House
- Empower Your Teams to Prioritize Product Safety at Every Stage
- How No-Code/Low-Code Solutions Impact Business Outcomes
- Fostering Product-Thinking Within Your Team
2023 58
- Password Managers: From Skeptic to Cautious Fan
- Delivering Value: The Shift from Short-Term Gains to Long-Term…
- Performance Testing with K6: The New Top Dog for Load Testing and CI…
- 3 Big Takeaways from BigDataLDN
- Volunteering Beyond Borders: Empowering the Next Generation of Coders…
- Strange Loop: Where Picasso Meets Python
- 5 Benefits of an API-driven Approach in Microservices Architecture
- A First Timer’s Dive into 14 Years of Strange Loop
- Saving a Client Over $175k on AWS: Improving DevOps Practices,…
- 5 Tips to Getting Started with Ensemble Programming
- Ensemble Programming: Tips for Software Teams to Survive and Thrive
- Internship Introduces Programming to High School Students
- A Recap of dev up 2023
- Create End-to-end Encryption Using the Diffie–Hellman Key Exchange
- QLearning: Teaching AI to play Snake
- Four Books (and One Podcast) For Summer 2023
- Traveling the Industry with 8th Light’s Experts
- How Principal Designer Kevin Zolkiewicz Blends His Passions Into a…
- Code Platoon Honors 8th Light as 2023 Partner of the Year
- Step-By-Step Guide to Develop a Microservice-Based Application…
- A History of JavaScript Modules and Bundling, For the Post-ES6…
- Centering Outcomes Over Outputs With Project Director Mike Danaher…
- Site Reliability Engineers: Becoming Crime Scene Detectives through…
- Gain Insights With Impact at sparkConf 2023
- Finding Creative Solutions With Design Thinking
- Sparking the Passions of Young Coders With Code Nation
- IEffective Use and Debugging of .gcloudignore, .dockerignore, and…
- Congratulating 2023 Moxie Award Winner, Senior Crafter Jen Udan
- Serverless Architecture: Hype vs. Reality with Bill Wanjohi
- Building Supportive Systems with Software Crafter Serene Aronow
- Exploring the Overlap of Development and Design with Coding Black…
- What Does An SRE Do?
- What Is Code Rot, and How Can You Avoid and Fix It?
- Five Signs You Need To Make a Change To Your IT Project
- Deploy an App from Scratch to Kubernetes Before Your Next Break Ends
- Programming for the Unhappy Path with Principal Crafter Jeff Ramnani
- Deploying New Careers Together With Code Platoon
- Geographic Coordinate Systems 101: A Primer for Software Generalists
- Level Up Your Software Development Career with These 4 In-Demand…
- Building Bridges with 8th Light’s Employee Engagement Manager Kim…
- De-Risking Data Migrations
- Data Regulations For Software Developers
- Demystifying Machine Learning
- An Introduction to Docker: Answering the What, Why, and How
- Making the Most of AWS and Kubernetes Certifications
- What Every Developer Should Know About HIPAA and Other US Regulations
- 6 Strategies to Move Your Technical Organization Forward in a Slow…
- What Every Developer Should Know About GDPR
- Chasing Curiosity: Malisa Middlebrooks Followed Her Interests and…
- Ya Gotta Keep ’Em Regulated: Taking Legal Requirements Into Account…
- Three Tips To Help Software Teammates Ramp Up
- Relentless Optimism: The Future of Data Engineering with Brad Ediger
- 3 Steps to Harnessing Product-Led Growth in a Challenging Market
- What to Know When Becoming a DevOps Engineer
- Built In Honors 8th Light in 2023 Best Places To Work Awards
- Unlocking Potential: Our Goals For 2023
- Advanced Unit Testing in React with Jest: Hooks and Promises
- What Sparked Our Joy In 2022
2022 27
- Finding Stability to Address Today’s Business Challenges
- Making the Most of 8th Light’s Interview Process
- Minting a Revolutionary Entertainmint Platform
- Add Approval Testing to Your Toolbox
- Leading 8th Light on the Next Part of Our Journey
- Celebrating National Apprenticeship Week
- What I Learned From My 8th Light Apprenticeship About How To Learn…
- The Next Step for 8th Light
- Unboxing the New 8th Light Brand
- Putting Our Skills to the Test at Web3 Hackathons
- Shifting Focus Beyond the Backlog to Prioritizing Customer Needs
- The Case for Rethinking Everything
- Why Everyone Is Talking About Product-Led Growth
- Optimize for People, Not Processes with Project Management
- 8 Steps to Project Planning With the Critical Path Method
- Make Developing Easier by Building a Beautiful Makefile
- What You Should Know About Web3: A Primer For Developers
- Connect with 8th Light’s co-CEO Jenny Farver at SaaStr 2022
- 5 Books to Add to Your Summer Reading List
- 5 Modes of Critique to Improve Design Reviews
- How To Set Up GitHub Actions
- Researching Your Next Employer: 3 Ways To Set Yourself Up For Success…
- How Software Professionals Can Navigate a Competitive Talent Market…
- How To Stay On Track Without Staying Online: 4 Keys to Successful…
- How to Find the Value in Legacy Code
- CORSing Confusion: How To Leverage Cross-Origin Resource Sharing
- How Rust Merges New and Old For Video Game Developers: A Q&A with…
Undated 698
- Completing a golang backend with postgres
- From hospitality to software how taylor keazirian changed careers during the pandemic
- Video how to identify and manage risks in software projects
- Top 5 most read software articles since 2020
- Video accessibility in web development
- The double diamond finding clarity in an imperfect illustration of the design process
- Code nation hackathon supporting the next generation of coders
- Sign in with ethereum using next js and go
- From desktop computers to applications how jeff ramnani continues to learn software
- Why everyone should learn ethereum
- How effective abstractions are opinionated
- Congratulating 2022 moxie award winner senior crafter jessica chung
- How to bootstrap a quality golang backend
- Of ducks and go interface misuse
- Video embedded systems from the point of view of a web developer
- Leveling up how apprenticeship broadened sunny patels developer expertise
- Miniconf a hidden driver of continual learning
- What is a convolution how to teach machines to see images
- Cant remember that slippery git trick try a rhyme to make it stick
- Simplifying to scale complex software systems
- Podcast continuous learning cultivating engaged teams with paul pagel
- Video how to add a block to a blockchain
- Image classification an introduction to artificial intelligence
- Changing careers how pedro lopez went from research engineer to software developer
- Video 100 percent test coverage
- Distributing terraform resources
- Video how to write data transformations with clean code
- Podcast just in time hands on learning with aaron patterson
- Video how to get started with functional programming and elixir
- How to deploy a kotlin api with http4k and heroku
- How to solve wordle without spoiling the fun
- Looking forward to 2022
- 8th light awarded 2022 best places to work awards in chicago austin and los angeles
- Video how to build video games with rust
- Growing a community how nicole carpenter helps the software developer community
- Video how to write in react by starting with dependency injection
- Responding to the log4shell vulnerability
- 4 questions on how to have a successful software career
- Video understanding queuing theory and software performance
- Video managing dependencies on the front end
- Built to last naomi dennis develops a brighter future through software
- Podcast into the unknown unknowns observability with charity majors
- Video developers can contribute to the ethical tech paradigm shift
- Reflections on living in data by jer thorp
- Documenting user flows in figjam
- Podcast know your history ethical source with coraline ehmke
- Podcast its a process more than machine learning with hana lee
- Our history of apprenticeship
- Sargable queries and mul indexes or why my query is slow
- What matters when designing for safety
- Podcast stealing fire ambitious side projects with kofi gumbs
- Podcast techs pre seatbelt phase with eva penzeymoog
- Podcast how design works with jon wettersten
- Introducing collaborative craft a new podcast by 8th light
- Life after moment js
- Six tips for a successful job interview
- A color coded guide to ports and adapters
- Minimally privileged terraform
- Static site deploy previews on aws
- Introducing 8th lights board of directors for 2021
- Continuous compliance on aws
- In slack no one can hear your scream
- The worlds your stage an interview with senior crafter ian carroll
- Learning to learn with metacognition
- Jon wettersten joins 8th light as head of design
- Sql json and domain objects
- Dependency injection in react
- A case study in vim script 101 making a test runner
- Simple ways to make an impact
- Jenny farver joins 8th light as co ceo
- Dare to be good enough youll be happier for it
- Your values are the rules you break
- Improving agile process at scale
- A maintainable scalable front end
- How e coli taught me to work smarter
- On anxiety uncertainty and flow
- Exstate database backed statecharts for elixir and ecto
- Problems when scaling fails and solutions
- Difficult decisions during the pandemic
- 8th light is partnering with health worker data alliance to support frontline health care workers
- Reducing operational expenses by going serverless with aws
- From web dev to android
- 8lu livestreams a new way to stay connected and keep learning
- How 8th light is responding to the covid 19 pandemic
- Mitigating the risks of small development teams
- 8th light invests in premium remote software development company one world coders
- How can you move from a business operating on spreadsheets to custom software part 2
- How can your business move from operating on spreadsheets to custom software part 1
- The iowa caucus app and the challenge of going live
- Introducing 8th light austin
- Teaching reactivex and a lot of other things like skiing
- Introducing our new career grid
- Axes of quality
- Developments in mobile 2fa and security keys
- How to write flexible and clear unit tests
- Tickets for specialised teams
- Back to basics abstraction
- One sentence a day
- Polyglot influences in python
- Functional lessons learnt
- Tips for technical writing
- Escape hatches principles vs guarantees
- Oauth2 and openid connect essentials for web developers part 2
- Works on my machine doesnt work
- To serve or not to serve amazon aurora serverless
- What is software architecture
- Oauth2 and openid connect essentials for web developers part 1
- Placing a craft cms application behind aws cloudfront
- Handling blocking threads in java
- Rich feller joins 8th lights leadership team
- 8th light merges with madriska
- Were all humans
- Effective slack alerts
- Tech care of yourself strategies for better mental health in tech
- Why keeping levels of abstraction matters
- Unit testing code boundaries
- Remote team workflows
- Tutorial add a menu bar extra to a macos app
- Aws security essentials
- Some common gotchas in python
- X marks the spot part 3 a strong fit
- Working with the enemy why blockchain adoption is a social problem
- One neat trick to avoid rewriting your software product
- X marks the spot part 2 reasonreact
- From 0 to 60 in brand design
- Engaging girls and empowering women in tech an interview with jessi chartier
- X marks the spot part 1 reasonml
- Fundamentals of design colour
- Product owners guide to investment portfolio
- Types of types in elm
- Essential amp relevant a unit test balancing act
- New beyond the buzzword navigating the blockchain hype a field guide from 8th light
- Im only going to say this once dont repeat yourself
- Rachel wendte on how to boost learning through finding your design foil
- Functional exceptions in java
- The future of work the evolution of apprenticeship onboarding at 8th light
- Rip up the resume changing the game for building teams
- So you want to be an agile functional manager
- Tech to watch in 2019
- Do you need a degree
- Heres what happened dave hoover introduces ethereum fundamentals and a peek at solidity
- The true cost of rewrites
- A new approach to state management with the react context api
- What to look for at rubyconf 2018 jeremy hanna and molly struve previewed their talks at 8th light
- 4 hesitations when asking for help and how to overcome them
- Jack of all trades master of one
- Sharing secrets with gpg
- Whats in a name domains and domain name servers
- An introduction to database indexing
- Learning new programming languages by building on existing foundations
- What is vs live vs code and why should you care
- Microservices arent magic handling timeouts
- Heres what happened five things we learned about unit tests from david scott bernstein
- Dependency inversion in react with render props
- Exploring error handling patterns in go
- Dont call us well call you inversion of control containers
- 8th light teams up with adorable opens new office in madison wis
- The hypermedia maturity model
- Diagnosing problems quickly
- Decoupling the client and server with hypermedia
- Duration vs concurrency in aws lambda
- Basic web app architecture 101
- Talking to yourself daily standups in a team of one
- Turning up the good on rest apis
- Making a static website with jekyll and s3
- The biggest software mistake that small business owners make
- Advice for early career developers
- Legacy code spying on global functions
- Framework seams
- Myths about unit tests
- Aws dos and donts
- How to grow a user group the remix
- New leadership for chicagoruby
- How json decoding works in elm part 3
- Refactoring react
- Diversity inclusion and 8th light
- The principles of chess and software
- Does the open closed principle apply to elm
- Project build protocol
- Managing cloud resources with cloudformation
- A conversation with jessi chartier from app camp for girls
- How json decoding works in elm part 2
- Hedy lamarr more than the most beautiful woman in the world
- How json decoding works in elm part 1
- Api assumption tests
- Scope and closures in javascript
- How to set up a react project without flipping tables
- Two design patterns youre probably already using
- A case for amazons elastic file system
- The core of erlang
- Using an elixir umbrella
- Forcing function in software development processes
- Working effectively with offshore teams
- Build as much as you can
- Everybody ooms
- Ansible and aws painless deployment
- Pristine jenkins
- To minimize downtime prepare for chaos
- Ginny hendry a legacy of learning
- A few dtrace gotchas and workarounds on os x
- Keeping third party swift dependencies testable
- Managing cloud resources with caps
- Comparing common lisp and clojure cons cells
- Common code smells
- Optimizing your workflow with vim
- The app is broken
- Wolf and rabbit
- Reducing software costs and mitigating risk
- Designing for pipeline transformations
- Estimation for fun and profit but mostly for sanity
- Code is better when we write it together
- The problematic pull request
- Dont make it perfect make it work and refine
- Perfect code is an illusion
- Moving towards continuous delivery
- Wear your uniform
- Getting rails on track part 3 controllers
- The why a better git commit message
- Assimilating with clojure
- Getting rails on track part 2 views
- Getting rails on track part 1 models
- Docker compose wait for dependencies
- Make yourself dispensable
- Clojure is boring
- Tdd in clojurescript
- Chronic and acute problems in software
- The third bricklayer
- The egoless programmer
- Fundamental tensions in code smells
- A good craftsman never blames his tools
- Constructor injection with the unity container
- Keeping laravel controllers clean with form requests
- Are you a wise developer
- Automating your devops infrastructure starting from scratch with ansible
- An intro to progressive web apps
- 8th light acquires wisdomgroup
- Better rspec stubs
- The onboarding checklist
- What will your legacy code be
- Refactor and source control your ci
- To teach is to learn
- Rubymine remote debugging via vagrant
- Docker as a workstation service
- Staying clean
- The relationship between clojure functions symbols vars and namespaces
- Thats not a decorator
- Speed up your tests with an in memory filesystem
- How learning a static language helped me improve my design
- Three as of responding to bugs
- A methodical approach to dealing with bugs
- How to find a bug in your code
- Tdd from the inside out or the outside in
- How to hire a software developer
- So you live in spacetime
- The stress of communication
- Running tests in vim
- Becoming a professional learner
- Hey lets learn about javascript promises
- How flexbox alleviates some common front end development pains
- Go build your own tools
- What is assumed when deferring database decisions
- Baking a cake with rails
- How tdd can make your team happier
- One weird trick that will take minutes off of your elm build on travis ci
- Using functions to make better abstractions
- Dont make me remember things
- Refactoring as a feature tax
- The hidden costs of leaving a monolith
- Ask dtrace why are my tests so slow
- Dtrace even better than strace for os x
- Caring about coding
- Retract with the old add with the new
- Entity framework and resolving team migration conflicts
- Optimizing the sustainable pace
- Internationalize your way to cleaner code
- Program like a debater character commitment team work hard work
- Loosely coupled tests
- Concurrency control strategies for secret agents
- Introducing 8th light london
- Git disciplined
- The multitasking misnomer
- Los angeles mastery cohort code katas
- Help i just force pushed to master what do i do now
- Debug like a doctor
- Alternatives to boolean parameters
- Handling exceptions with middleware in clojure
- Decorators in ruby
- Unplanned obsolescence in software
- Mr miyagi teaches coding
- To meet or not to meet
- Reid draper on property based testing and test check
- Decomposing asynchronous workers in ruby
- Using the option type effectively
- Stack overflow
- Refactoring a regex
- Using relationships to build your business
- Tail recursion in clojure
- The option type
- Functional ish ruby part 2 functional objects
- Learning from porting selecta
- The cumulative effect of inefficient workflows
- Identifying and avoiding the cargo cult
- When the going gets tough craftsmen stay tougher
- Loose coupling in go lang
- Single responsibility principle why does it matter
- They wont be interested
- Your test suite is useless
- A one day visit at 8th light
- Dont mix test code with production code
- Organizing your clojure environment and logs with leiningen
- Three short sentences
- Mistaking encapsulation for abstraction
- Attending a conference on your own
- How to be a terrible pair
- Hide your queries
- Flaky crusts good for pies bad for test suites
- Tweaking the varnish cache
- Test driving the game loop pt 2
- Professionals arent self taught
- Apprentice blog of the week isolate css
- Clojure stack traces for the uninitiated
- How long is too long
- Apprentice blog of the week did java break my byte
- Apprentice blog of the week setting date ranges in ruby
- Convenient does not necessarily mean right
- Keep left right
- Software craftsmen are arrogant slow and dogmatic
- Functional ish ruby
- Test driving the game loop pt 1
- Apprentice blog of the week googleme
- An appeal to cs teachers
- Socrates 2014 a vibrant german software craftsmanship community
- On designing by hand
- Apprentice blog of the week the dangers of ruby gems
- Prideful programming
- Bem basics
- Clojurescript faux pas forgetting the extern
- Apprentice blog of the week ssh over the internet
- Abstraction to the rescue
- Avoiding the drift to low performance
- Apprentice blog of the week formsjs
- Stand ups are broken but should they be fixed
- Command objects are gerunds
- Diving into swift with swiftest
- Take pride in your legacy code
- Apprentice blog of the week useful clojure macros for the object oriented programmer
- Pattern language of thieves
- Apprentice blog of the week stubbing authentication and authorization in controller specs
- Gender equality is not enough
- Theres an exception for that
- Yes you can speak at a conference
- How is pairing working
- Leaky libraries how to assess the risk of dependencies
- Be empirical
- On mentoring mind the knowledge gaps
- What good are strong parameters
- Buy the sandwich not the meal
- Student centered learning in software
- Combining clojure and clojurescript libraries
- Adding namespaces to ruby
- Five years of raising the bar
- We are principled 11th edition
- Store data not types
- Courage vs cargo cults
- How i evaluate open source software
- Validates presence of false
- Nested contexts are only kind of evil
- Lispy elixir
- Check your work
- Ruby derailed emergent data design
- Test extraction and readability
- Ruby derailed fast tests
- Stuck in the muck
- Synchronization in a distributed system
- Your apprenticeship is not a checklist
- Modular javascript
- Using katas to improve
- Coding fast and coding slow
- Another kind of intelligence
- I am not an island
- A case against cucumber
- Higher ranked types
- Mindfulness and stress relief
- Designing irrationally
- Activerecord mass assignment order
- Conditionals arent evil unless you duplicate them
- Deferred objects
- Set the tone with project setup
- Its the small things browser tabs and usability
- Do more of what you want at work productive partnerships
- Honesty under pressure
- Reflections on the 8th light principles stretching your boundaries
- Limelight lives clojure toolchain of choice
- The right tests in the wrong order
- Conferences challenges and inspiring great ideas
- We are principled 10th edition
- Strive for simplicity
- Procedural polymorphism
- Do i have too much experience to become an apprentice
- What is a craftsman
- Idempotent http
- Performing code katas
- We are principled 9th edition
- Replace temp with query in clojure
- What is a bug
- We are principled 8th edition
- We are principled 7th edition
- When is a character not a character
- We are principled 6th edition
- Stable sorting in ruby
- We are principled 5th edition
- The repository pattern
- We are principled 4th edition
- Html5 form elements
- We are principled 3rd edition
- We are principled 2nd edition
- Help prevent session hijacking
- We are principled 1st edition
- Jit or aot learning
- Investing in our tools
- Mythical man month the cliff notes
- Counting mistakes
- On pedigree
- Humble pursuit of mastery
- An apprentices community
- Riak mapreduce and large numbers
- How to be a great pair
- Mentoring and giving feedback
- Migrating from rspec dynamic mocks to surrogate part 2
- Migrating from rspec dynamic mocks to surrogate part 1
- How to use rails routing constraints 2 use cases with code
- Understanding selectors in css
- Protect yourself from sql injection
- Testing recursion
- Vertical rhythm in typography
- Css typographic flourishes
- Dont fail at failure in ruby
- Reflections on using backbone js
- Call for translators
- Transformation priority premise applied
- Composition over mixins
- Environment activist
- Design craftsman swap
- Taking password storage up a notch
- Servers in source control
- The experience gap
- Implementing and testing the singleton pattern in ruby
- Data validation in clojure
- Getting more out of sass
- In search of diversity
- Applying dry to editing
- Mind your git manners
- Welcome to the gilded rose in clojure
- About ergonomics
- Owning your dependencies
- The sheep and their feet
- Adapting to change
- Why frameworks
- Explicit collections
- Apprenticeship programs on the rise
- C is not slow
- The community guide to monads
- Designing in the browser web inspector prototyping
- Thinking differently about the single responsibility principle
- The classic buffer overflow
- The many ways in which past you could be ruining the future internet
- With proper tdd you get that
- Youre going to be wrong
- Accepting new methods in the digital world
- Dereferencing null pointer without a seg fault
- Effective leadership through communication
- What do developers do all day
- Entrepreneurs guide to buying custom software
- Oh its not that hard
- Test your rails application configuration
- Test driven assembly
- On obsession primitive and otherwise
- Modern vocation
- Collaborative partnerships
- Quoting without confusion
- Be a relentless programmer
- Deliberate practice
- Questions and developers
- Advice for novice mentors
- A scope heuristic
- Why i chose to be an apprentice
- Polymorphism in clojure
- Apprenticeship over college
- Craftsmanship begins with you
- Learn a new language
- A few fallacies for your consideration
- What careless code says
- How to run a great conference
- Warming up
- Craftsmen painters and monks
- 14 ways to make remote audio better
- Why apprenticeship
- How to keep a handle on your software development return on investment
- Things you should know about javascript
- Modules called they want their integrity back
- Effective customer consultant relationships
- 8 things you ought to know if you do not know anything about hiring a software developer
- Hello ios development
- Fixed feature
- Mind your own business rails
- Doing a good job
- Why i pair program
- Software craftsmanship manifesto duh
- Scna why salespeople should attend
- Three reasons to roll your own mocks
- Front end craftsmanship
- Name configuration management analysis blog
- Avoiding common errors in your jasmine test suite
- Ra elational design
- Thats not yours
- Simplicity of teamwork
- Out of controller
- Expressive html
- Inconsistent apis are costly
- Pointers schmointers
- Testing code thats hard to test
- Confession of a web developer
- Appreciative inquiry retrospectives
- The ways of practice
- The value of practice
- A brief primer on typeface selection
- Readability
- On consultancy acquisition
- Legibility
- What is the purpose of typography
- What is typography
- On web typography resources
- Type camp california day 4
- Type camp california day 3
- Type camp california day 2
- Type camp california day 1
- Winning at consistency
- Humane form errors
- My proposal for scna 2011
- Found type and graphics
- Fast talking activerecord migrations
- A tale of two forms part 3
- 10 ways to do acceptance testing wrong
- Clean this code
- A tale of two forms part 2
- A tale of two forms part 1
- Inspiration catalogs
- The near space endeavor
- Clojure mad science an evil threading macro experiment
- Css formatting tips
- Design resources for aspiring developers
- Tangible typography
- Jenkins rvm and selenium
- A scenario where tests help facilitate compatibility and communication
- Thats not in my string
- Rolemodel recap day 3
- Rolemodel recap day 2
- Rolemodel recap day 1
- Post agile standing on the shoulders of giants
- Speech is silver silence is golden
- Presence part 1
- Clojure libs and namespaces require use import and ns
- Agile manifesto chinese translation
- A leiningen tutorial
- Clean acceptance tests
- Goals for the growing the market of quality development
- Relevance craftsman swap day 4
- Relevance craftsman swap day 3
- Relevance craftsman swap day 2
- Relevance craftsman swap day 1
- Javascriptness prototype new class from classical to prototypal
- International craftsman swap day 4
- International craftsman swap day 3
- International craftsman swap day 2
- International craftsman swap day 1
- Mmemail my first clojure open source contribution
- Tdd in education theyre doing it wrong
- Jruby helps us craft quality software
- Makin somthin
- The hammock
- Walk and code
- Stubbing new considered harmful
- Zeroth rule of professionalism
- A software craftsmans new years resolutions
- Limelight 0 5 0 released
- Pair fridays
- Reflection on hangman
- Thoughts from a boutique software shop
- Hangman tournament
- Why software development is a craft
- Up and running with tdd on android
- Announcing chiphone
- Meta programming comes naturally to intern
- Reasons to attend scna
- A functional refactoring in scala
- Apprentice architecture
- Bug free or free bugs
- Obtiva craftsman swap day 5
- Obtiva craftsman swap day 4
- Obtiva craftsman swap day 3
- Obtiva craftsman swap day 2
- Obtiva craftsman swap day 1
- Copyrights conundrum
- Selenium on rails released again
- When is a mock not a mock
- Embedded ruby talks morse
- Embedded ruby sings sinatra
- Embedded ruby first steps
- One take on configuring rails routes and asset host
- Observing a craftsman
- Kata langstons ant in ruby
- Simon
- Limelight 0 3 0 released
- Agile in buenos aires
- How jim got started programming
- Fidelity life case study
- Limelight tutorial tic tac toe example
- Customer interaction
- Definition of software craftsman
- Own your tools
- Selenium on rails released
- Maturing the manifesto
- How paul started coding
- How doug got started programming
- Some random rubycocoa stuff
- Tag im it
- Apprenticeship month one report
- Developing against web browser navigation
- Some thoughts on software defects
- Active record migration dependencies
- Code less a language keystroke experiment
- Erlang and the ocp
- Promises promises
- Wake up and code
- Bowled over by rubycocoa
- Rinda and setting up rindlets
- Agile production support final brush strokes
- Rinda 101
- Emotional iterations
- Limelight at railsconf 2008
- Peer pressure
- Lessons of a craftsman are you test driving or just writing tests
- Want clean code stop using the editor
- Ruby and the art of computer programming
- Sockets enable multi lingual applications
- Test driven debugging
- Micahs general guidelines on ruby require
- A snob
- Lending a hand
- Rubycocoa tutorial
- Shake things up
- Something new every day
- Test driving module methods part two
- Pair me up
- No really we do that
- Ruby dsl blocks
- Lost in portland and thinking
- Day three at railsconf
- Day two at railsconf
- Hello from railsconf
- Test driving module methods
- Test code there is no step three
- Understanding statemachines part 4 superstates
- Sharing a database among multiple rails applications
- Storing binary data in postgres beware
- Understanding statemachines part 3 conditional logic
- Clean as you code
- Three reasons to use fitnesse
- Getting started with rails and fitnesse
- Understanding statemachines part 2 actions
- Understanding statemachines part 1 states and transitions
- Boc
- Got real
- Getting real review
- Craftsmen are like babelfish
- Rails migrations and subversion
- Ruby and human compilers
- Self shunt
- Smalltalk bowling
- Prelude to the mock off
- Pre factoring
- Paper bullet
- Over mocking
- Jack and jill
- Ilist icomparable icarumba
- Fresh testing
- Delegates vs command pattern
- Buffer to the rescue
- Building a city
- Beware the freebie
- Software apprenticeship
- Apples and tigers
- Article
- Audio
- Impact story
- Podcast
- Resource
- Video