Barcamp 2015 Talk Slides: Bronze Bullet Architecture

Way back in November, I gave a talk at BarCamp Philly. BarCamp Philly is a local unconference and one of my favorite events in the Philly tech community. If you’re in Philly, or a few hours’ drive away, you should definitely check it out. There’s all kinds of talks on all types of subjects, from the technical to the decidedly non-technical. In the talk I gave, I coined the phrase “Bronze Bullet Architecture” to describe my technical approach to building message-based, domain-driven line of business software, and explained you how my professional experience helped me arrive at this style.

Read More

An Elegant Abandoned Cart Email Using NServiceBus

Abstract

Some of the toughest requirements to model in enterprise development are business rules that involve the dimension of time. In this post I’ll show you how to fulfill those types of requirements in an elegant, testable, and scalable way using a message-driven style with NServiceBus.

tl;dr

If you’re familiar NServiceBus and specifically its sagas feature, you can check out the code on GitHub. Of particular interest would be the saga and its tests. There’s also a console app client that will let you play around.

Read More

Making Entity Framework More Unit-Testable

Abstract

For developers using Entity Framework, unit testing code that depends on the DbContext class is not the easiest thing. If we’re interested in doing unit testing, we need to be able to use an in-memory (“fake” in Martin Fowler’s terminology) version of DbContext comprised of lists of objects so that our tests do not hit the database. This series of posts takes you through my process in getting to a facade on top of Entity Framework that results in testable code and tests that are fast to write.

Read More

The Josh Test: A Sorta-Objective Way to Analyze New Opportunities

I find myself in the incredibly fortunate position of having a skill set that is greatly in demand. I get calls and emails on a near-daily basis from recruiters for all types of jobs. (If you don’t think that having recruiters contact you on a daily basis is a good problem to have, I would advise you to consider the employment circumstances of anyone else who is not a medical or IT professional, i.e. the other 99.999% of the world.) While there’s a lot to like about my current position, it would be foolish to be closed to new opportunities if the right one comes up. But how do I now what “the right opportunity” looks like? My answer: The Josh Test.

Read More

It's High Time to Make Windows Development Cheaper

At work, I use a MacBook Pro and boot into Windows directly using BootCamp. I tried using VirtualBox but key bindings not matching up drove me nuts and I was trying to get a project launched on a tight deadline, so I went with what I knew.

As a reward for launching said project, I got myself a nice new MacBook Pro for home use with a Retina screen, and 16 GB RAM. Professional tools for a professional developer and whatnot.

Read More

About Me

My name is Josh Kodroff and I’m a technolgy craftsman living in Philadelphia. I’ve spent most of my career developing enterprise software, and since I have to go to work every day, most of my learning has been focused on making that as painless as possible. Some things that I’ve learned about and applied include DevOps, domain-driven design, and message-based architectures like CQRS. When I’m not working or doing code stuff I enjoy cooking, making music, and hiking in the Wissahickon.

Read More

Contact Me

If you’d like to get in contact with me, I can be found on the following sites: Twitter: @joshkodroff GitHub: jkodroff LinkedIn Or if you like, you can fill out this form to get in contact with me directly.

Read More