Thursday, December 5, 2013

CCDE Training Schedule for 2014

Congratulations to my seven students who successfully completed the CCDE Practical exam on November 22nd! I am honored to have trained 31 of the world’s CCDEs. Thank you for allowing me to be a part of your success. Passing this exam is quite an accomplish; you should be very proud of your effort.

Interest in the CCDE program has increased considerably since I started training network engineers and architects for this certification in 2010. I’m trying my best to increase my training offerings to meet candidates needs. To that end I have opened registration for the following CCDE training classes. If you are interested in attending, please click on the links below. If you have any questions, please don’t hesitate to ask.

April CCDE Practice Exams

My next online CCDE practice exams are scheduled for Saturday April 5th and 12th, 2014. Registrants for these sessions will receive four CCDE Practice exam scenarios, as well as my CCDE overview presentation and guidance documents. The review sessions will take place on consecutive Saturdays and are expected to last from 9am ET until approximately 1pm ET. Registration for these sessions in available at Eventbrite.

Self-Paced CCDE Practice Exams

My CCDE practice exams are available in a self-paced offering. Once you register you will receive the exam content within 24 hours. Registrations for the self-paced class are always invited to attend any subsequent live sessions as well, including the February 1st CCDE overview presentation and question & answer session. Registration for the self-paced class is available at Eventbrite. I have updated my content to reflect the most recent changes in the CCDE program, including the flexible lunch breaks and day-before registration for any Pearson Professional Center.

CCDE Bootcamp in Philadelphia, Pennsylvania - January 27-31, 2014

My next scheduled live CCDE Practical bootcamp class is coming up at the end of January. It will be held at the University of Pennsylvania campus in Philadelphia, PA. My live class content has been updated to incorporate the latest CCDE updates. I have also added a new section comparing/contrasting GETVPN and DMVPN, based on feedback from recent class attendees. Registration is open at Eventbrite.

CCDE Bootcamp in Celebration, Florida - July 28-August 1, 2014

Last year’s Celebration, Florida class was quite successful. Feedback about the town (located near Orlando in Central Florida) and the Stetson University facilities was overwhelmingly positive. I have decided to bring my class back to the same location this coming July. Registration is open at Eventbrite. The course description can be found by clicking on the title above.

CCDE Bootcamp in Dubai, UAE March 30 - April 3, 2014

I am also offering my week-long class in Dubai during the week of March 30th, 2014. Registration is available in at Eventbrite. The class will be held at City Seasons Suites in Dubai. If you have any questions about this class please let me know. I am also considering a European class the month of November, 2014. If you are interested in attending a class in London or Frankfurt, please let me know. I am still trying to gauge the interest level before committing to this class.

As always, if you have any questions about my training classes or the CCDE program please write me an email at I look forward to helping candidates succeed at this certification in the coming year.

Tuesday, October 1, 2013

Python Scripting and the Blackjack "In Bet"ween Bet

I recently spent an hour or so at the local casino (Delaware Park) playing blackjack with my father-in-law. The table we chose had a side bet called “IN BETween”, which compares the player’s two cards to the dealer’s up card. If all three cards match, the player is paid a 30-1 return. If the dealer’s card is in between the two player cards (hence the name of the game), the player is paid based on a pay table. At Delaware Park, the current pay table is:

Result Pay Ratio Example Winning Hand
All Cards Match 30-1 7-7-7
One Card Spread 10-1 3-4-5
Two Card Spread 6-1 8-T-J
Three Card Spread 4-1 2-5-6
All Other Spreads 1-1 3-7-T
For comparison purposes, Aces are the highest possible card.

After watching this side bet for awhile, I began to wonder what the house odds were for this game. Sure, I can just look it up (h/t to the State of Washington -, but this seemed like a perfect excuse to spend a few minutes with Python. So I dusted off my old Poker python script and modified it to simulate this game. No one actually starts a Python script with an empty notepad file, right? Smile

If you are interested in playing with this script, it takes two parameters. The first is the number of decks used. The number of decks is an important factor in this wager, as the majority of the value in the bet is due to the frequency of 30-1 payouts. Seeing three matching cards on a random draw from a single deck only happens .235% of the time (3/51 * 2/50), while the same result from eight decks happens .541% of the time, more than twice as often (31/415 * 30/414).

The second parameter is the number of iterations. Monte Carlo simulations benefit from many iterations. I’ve found that 1,000,000 iterations convergences on the mathematical results that the State of Washington has in their reference document.

Without further explanation, here is the script. If you notice any errors or anything I’ve done that is wildly inefficient please let me know; I always like improving my programming skills. If you want to improve this one suggestion would be to add the other pay tables listed in the State of Washington document. My local casino only seems to use the payouts I have listed, and since I rarely go to a casino (even the local one) these are the only payouts I was interested in.

# - Runs Monte Carlo simulation of In BETween bet
#       with user-specified number of decks and iterations
# Reference URL -
import sys
import random
def inbetween(cards):
# Takes array of three cards
# Returns win multiple based on standard pay table
#   return value includes original wager, if successful
  if cards[0][0] > cards[2][0]:
    cards[0], cards[2] = cards[2], cards[0]
  if cards[0][0] == cards[1][0] == cards[2][0]: return 30+1
  if cards[0][0] < cards[1][0] < cards[2][0]:
    if cards[2][0] - cards[0][0] == 2: return 10+1
    elif cards[2][0] - cards[0][0] == 3: return 6+1
    elif cards[2][0] - cards[0][0] == 4: return 4+1
    return 1+1
  return 0

def card_gen(num_decks):
# Takes number of decks (1 - 8)
# Returns three cards in array
# cards[0] = Player Card 1
# cards[1] = Dealer card 1
# cards[2] = Player Card 2
  card1 = []
  card2 = []
  card3 = []
  card1 = [random.randrange(0,13), random.randrange(0,4), random.randrange(0, num_decks)]
  card2 = [random.randrange(0,13), random.randrange(0,4), random.randrange(0, num_decks)]
  while card2 == card1:
#    print "Collision! " + str(card1) + " " + str(card2)
    card2 = [random.randrange(0,13), random.randrange(0,4), random.randrange(0, num_decks)]
  card3 = [random.randrange(0,13), random.randrange(0,4), random.randrange(0, num_decks)]
  while (card3 == card1) or (card3 == card2):
#    print "Collision! " + str(card1) + " " + str(card2) + " " + str(card3)
    card3 = [random.randrange(0,13), random.randrange(0,4), random.randrange(0, num_decks)]
  cards = []
  return cards

def readable_hand(cards):
# Returns a readable version of a set of cards
  rank_refstring = "X23456789TJQKA"
  suit_refstring = "xcdhs"
  string = ""
  for i, v in enumerate(cards):
    string += rank_refstring[v[0]+1] + suit_refstring[v[1]+1] + str(v[2]+1)
  return string
# Main Program Body
# Initialization
iterations = 0
num_decks = 0
cards = []
total_won = 0
result = 0
# Process command-line arguments
if (len(sys.argv) < 3) or (sys.argv[1] in ("-h", "--help")):
First input is number of decks to be used (1 - 8)\n\
Second input is number of iterations to run the Monte Carlo simulation\n\n\
--help: This message\n")
    num_decks = int(sys.argv[1])
    iterations = int(sys.argv[2])
    if iterations < 1: iterations = 1
for n in range(1, iterations+1):
  cards = card_gen(num_decks)
  result = inbetween(cards)
  total_won += result
#  print "Result[" + str(n) + "]: $" + str(result) + " Hand = " + readable_hand(cards)
print "Total Wagered = $" + str(iterations)
print "Total Returned = $" + str(total_won)
print "Total Profit = $" + str(total_won - iterations)
print "Win / Loss Percentage = %.2f" % \
  (100*float(total_won - iterations) / iterations) + "%"

Friday, September 13, 2013

CCDE Study Resources Update

It’s been a while since I have updated my CCDE Study Resources list. Below is a list of resources that I recommend CCDE Practical candidates use to prepare for the exam. But first… who should be attempting this exam?

Cisco recommends 7+ years of network design experience before tackling this certification program. I would like to add that 7+ years designing the same small network is unlikely to cut it. Candidates will want to have spent time in a variety of network design challenges; preferably split between service provider and enterprise networks. I agree with the CCDE program team that many technologies have made the jump between these two traditional network types, but not all of them have. For example, I haven’t run into an Enterprise running IS-IS. I know they’re out there, but they are still rare.


Recommended Reading List

I highly recommend that CCDE candidates read the following Cisco Press books. Remember, you can skip the configuration syntax, although I often find it helpful to review configs to bolster my understanding of technology:

  • Optimal Routing Design
  • MPLS Fundamentals
  • End-to-End QoS Network Design (a new version is due out in November 22, 2013)
  • BGP Design and Implementation
  • Definitive MPLS Network Designs

I also suggest that CCDE candidates familiarize themselves with the technologies covered in these books. Whether you actually read them, or use their tables of content to guide you online learning, that’s your call:

  • Layer 2 VPN Architectures
  • IPv6 Fundamentals
  • Network Management: Accounting and Performance Strategies
  • Developing IP Multicast Networks (terribly dated, so I suggest researching this on your own)

Cisco Live 365

Cisco Live 365 is an incredibly valuable CCDE preparation resource. Himawan Nugroho wrote an excellent blog post on preparing for the CCDE where he covered the presentations that he used to pass the exam. My own list is similar to his, so I’ll only list my ‘must watch’ sessions here.

  • BRKRST-2042 Highly Available Wide Area Network Design
  • BRKSEC-4054 DMVPN Deployment Model
  • BRKRST-2335 IS-IS Network Design and Deployment
  • BRKRST-2310 Deploying OSPF in a Large Scale Network
  • BRKRST-2336 - EIGRP Deployment in Modern Networks
  • BRKRST-3051 - Core Network Design: Minimizing Packet Loss with IGPs and MPLS

As a bonus, here are a couple that look highly relevant to the CCDE Practical exam, but I haven’t watched yet:

  • BRKIPM-3010 - Which Routing Protocol? - IPv4 and IPv6 Perspective
  • BRKRST-2044 - Enterprise Multi-Homed Internet Edge Architectures
  • BRKCRS-3036 - Enterprise Campus Design: Routed Access


Online Discussion Boards

There are two great online resources for CCDE preparation. The first is Cisco’s own Cisco Learning Network. The CCDE section of this site is the definitive source for test dates and official exam blueprints. There is also an online discussion board that is monitored by Cisco and several current CCDEs and CCDE candidates. On topic questions are generally answered quickly. You can even find a CCDE overview video that I participated in on the main page on the site.

The second resource is Ethan Bank’s CCDE Group Study Google group. Ethan is a prospective CCDE candidate who created this Google group. It currently has over 100 members, including several current CCDEs (myself included) and several of Cisco’s CCDE Practical content developers. My favorite part of the Google group is the ability to opt-in to daily email updates. Message traffic is light, but with so many participants, any questions are quickly answered.



I provide two forms of training for the CCDE Practical exam:


CCDE Practical Bootcamp Classes

These are five day in person classes where we cover the technologies candidates will need to know for the CCDE Practical exam. My next class is hosted by CCBootcamp in Las Vegas, NV the week of November 11, 2013. I am tentatively scheduling my first CCDE bootcamp of 2014 for the week of January 27th in Philadelphia, PA. If you are interested in attending either of these classes, please email me at and I can provide registration information. Also, if you have a suggestion for a European location for 2014, please let me know. I’d like to take my class on the road next year… let me know where you’d like it to be.

Details on the format of the classes can be found at


Online CCDE Practice Exams

For those candidates who cannot take a week off for training, or have difficulty traveling to the US, I also offer an online CCDE training option. This event utilizes my CCDE practice exams to prepare candidates for the type of questions and format of the CCDE Practical exam. Participants receive four CCDE exam scenarios with a total of 80 questions. I review the exams via WebEx with candidates on two consecutive Saturdays (two scenarios per review session). Candidates are invited to attend the WebEx review sessions in real-time to ask questions, or they can choose the self-paced option and watch the review sessions on-demand. Registration for the self-paced option is always available. The next live review sessions are scheduled for November 2nd and 9th.


If you have any questions about these resources, please let me know. And if I have missed anything please send me an email so I can update this page.

Monday, June 3, 2013

Don’t Let Twitter Distract You From Your Goals

First, congratulations to the five students of mine who successfully completed the CCDE Practical Exam on May 30th. For students (and others) who were unsuccessful, please let me know what I can do to help you achieve your goal. This is a difficult exam program, so don't get discouraged!

Everyone knows Twitter and blog reading can be a huge distraction. It is easy to 'jump on Twitter' after your morning coffee and before you know it, it's time to go grab lunch. Where did the time go?!? That's just the obvious way that 'the web' can distract you from achieving your goals. The more insidious type of distraction is how what we read on Twitter and our favorite blogs causes us to question our goals. How many times have you read a particularly insightful 140-character post from @etherealmind or @ioshints and thought to yourself 'Wow! I've got it all wrong; I need to drop my pursuit of <Technology A> and start studying <Technology B>, now!' (as an aside... how do these folks make salient points in 140 characters? My initial Twitter posts are always witty and insightful, but they're also 300+ characters. Once I distill them down to 140 characters they all end up saying the equivalent of "Yeah, me too" or "Ntwkring is imprtnt!!!")

Don't get me wrong -- These Twitter and blog posts can (and should) be a source of great inspiration for your career and life goals. The problem is that constantly churning your goals is self-defeating. You will never get anywhere if keep changing your destination. My strategy for dealing with these sorts of distractions is to reserve a couple of hours every few months to evaluate my written goals and determine if I have learned anything new over the preceding months that require me to modify my goals. Often I do make adjustments because facts have changed or because I have achieved one or more goals. In fact, I'm quite surprised on the rare occasion where my goals remain intact after a review.

BTW, you did write down your goals, didn't you? If you didn't, minimize this browser window or put down your smartphone/tablet and spend 15 minutes writing down your professional goals. I can't think of a single person who has told me that they were better off for not having written down their goals, once they've done it.

What is the downside to this strategy? Well, infrequently I will find that a course correction is necessary, and I could have saved myself some unnecessary work if I had modified my goal earlier. On the flip side, I have more often found that the shiny object that drew my attention in a blog post isn't quite as brilliant with the passage of a few weeks' time. Or it may still be hugely important, but isn't worth my time yet based on the items already on my plate. It's surprising how slowly technology develops... There is almost always time to defer to others for the initial exploration. Once they figure it out, sweep in and grab the benefit of their knowledge-sharing. You shouldn't feel bad about this either; it is more efficient for the industry as a whole. The whole thing is reciprocal, if you are publicly sharing the knowledge that you are gaining in pursuit of your own goals!

Next time you see something that seems valuable on Twitter or in a blog post, write it down or clip it in Evernote. Then review all these scraps of paper at your next 'Goal Review' meeting with yourself. If the information is going to change your life, it's okay to put it off for a few weeks. After all, you'll have decades to reap the benefits. Delaying for a month is not going to matter much in hindsight.

Thursday, May 2, 2013

My Experiences with IPv6

I finally cleared enough time on my calendar to start thinking about IPv6 for my corporate network. It’s been quite a while since I last considered implementing IPv6. Fortunately we haven’t had a reason to move forward, so my procrastination has not caused us any grief.
I spent a couple of hours reviewing Ivan Pepelnjak’s Enterprise IPv6 First Steps webinar. Great stuff! It hit on many of the topics I was interested in, including end host address assignments, native IPv6 DNS servers and transition techniques. Armed with a bit of knowledge (always dangerous), I decided to activate IPv6 on my home LAN.
At first I thought my ISP, Comcast, did not support IPv6. I looked for awhile on Comcast’s website to find a rollout schedule, but every link took me back to It was not helpful. I finally broke down and called Comcast support. I was told that IPv6 is enabled in my area, and pretty much everywhere in the Comcast network. My issue turned out to be an old Comcast-provided cable modem. The key to figuring this out is to visit the following web page - This page has an easy-to-use chart of approved devices and whether they support IPv6. I printed this out and took it to my local Comcast office, where they fortunately had a replacement modem available. Be warned, the folks at the Comcast office had never heard of IPv6, but they were able to find a modem on my printed out list. So if you are going to try this yourself, bring the list!
Basic IPv6 Configuration
At home I use a Cisco 1811W router, currently running IOS Advanced IP Services 15.1(4)M6. The following configuration got me up and running on the IPv6 Internet:
ipv6 unicast-routing
ipv6 cef
interface FastEthernet0
description ISP Link
ipv6 address autoconfig default
ipv6 enable
ipv6 dhcp client pd comcast-ipv6 rapid-commit
interface BVI254
description Home
ipv6 address FE80::1 link-local
ipv6 address comcast-ipv6 ::1/64
ipv6 enable

Adding Security
Of course, the above configuration is wide-open to the Internet, which likely isn’t to be your preferred configuration. I chose to implement Cisco’s Zone Based Firewall solution, using the following configuration (hat tip to Jeremy Stretch for a fine overview):
zone security Trusted
zone security Internet
zone-pair security Trusted->Internet source Trusted destination Internet
service-policy type inspect Trusted_to_Internet
zone-pair security Internet->Trusted source Internet destination Trusted
service-policy type inspect Internet_to_Trusted

! Inside to Outside
class-map type inspect match-any All_Protocols
match protocol tcp
match protocol udp
class-map type inspect match-any Specific_Protocols
match protocol icmp
match protocol http
match protocol https
match protocol ftp
match protocol dns
match protocol ntp
policy-map type inspect Trusted_to_Internet
class type inspect Specific_Protocols
class type inspect All_Protocols
class class-default

interface BVI254

 zone-member security Trusted
interface FastEthernet0
 zone-member security Internet

! Outside to Inside (I only allow DNS resolution from OpenDNS servers for content-filtering. I added specific ‘denies’ for domain so I can see if anyone locally is trying to circumvent my security.
ip access-list extended ISP_IN
permit udp host eq domain any
permit udp host eq domain any
deny   udp any eq domain any
ipv6 access-list ISPv6_IN
sequence 21 permit udp host 2620:0:CCD::2 eq domain any
deny udp any eq domain any
class-map type inspect match-any From_Internet
match access-group name ISP_IN
match access-group name ISPv6_IN
policy-map type inspect Internet_to_Trusted
class type inspect From_Internet
class class-default

Overall Thoughts
It’s really not too difficult to get this working, if your ISP supports it. I ran into a lot of trouble trying to implement on an unsupported modem, and then working to determine if this was worthwhile. If your ISP does not support IPv6, you can register with Hurricane Electric’s service and use their templates to configure your router. I went down this path briefly, with nice success, but I ultimately didn’t need to use this service.
Whether this is worthwhile or not depends on your perspective. Enabling IPv6 does not get you any new features or Internet capabilities at this time. I wish that were not the case. I’d love to see companies like Netflix release certain shows earlier on IPv6 servers or something similar. It would drive user adoption and increase pressure on the ISPs to provide this service. The business case for doing something like this is unclear, so it is unlikely to happen.
I was surprised to discover that when the kids are home we have somewhere between 8 – 12 active IPv6 devices on the home network. All of the iPods, iPhones, Kindles, home PCs, etc are IPv6-enabled. The site confirms that each of these devices is fully IPv6 ready (10/10 rating).
So what is out there on the IPv6 Internet? Not too much, in terms of distinct sites. The big ones (Facebook, Google/Youtube, Microsoft) are ready though. Surprisingly, while is enabled, most of the other URLs do not seem to work. I am also disappointed to learn that OpenDNS’s IPv6 resolvers do not support content filtering. This makes them basically unusable for me, as I count on that service to keep the younger kids out of inappropriate web content.
One final technical issue I found is that it is practically impossible to host a server on IPv6 without opening up that port in your firewall for all IPv6 hosts. For example, if I want to host a web server on 2001:db8::1, I must add an entry in my screening ACL for ::/0 port 80. This is necessary because I cannot guarantee that my provider-assigned prefix will always by 2001:db8::/64. This could be solved with one of two enhancements to IOS:
  1. Allowing address wildcards in IPv6 (such as *::1/128, which could be implemented using a bitmask, as in ‘permit tcp ::1 FF:FF:FF:FF:FF:00:00:00:00 eq 80’
  2. Allowing the delegated-prefix to be used in ACLs (such as ‘permit tcp comcast-prefix::1/128 eq 80’)
This is a nice-to-have, and not a necessity for my personal usage.

Wednesday, May 1, 2013

Goals Update

In the spirit of accountability, here are a couple of updates on my stated goals:


1) Assist in developing the careers of my co-workers – I never feel terribly confident about meeting this goal. I did recently complete a set of ‘checkpoint’ meetings with my team to get an update on all active projects. That’s a new wrinkle for me; I am generally much more hands-off with my team. I believe this was well-received by the team. I am also attending Cisco Live 2013 with two of my colleagues, as well as guiding the 2013 training choices of my other teammates.

2) Continue offering industry-leading training for the Cisco Certified Design Expert program – I am proud to announce that fifteen active CCDEs took part in my training since I began in 2010. That’s approximately 20% of all certified engineers. I have also completed practice exam review sessions in January and April. I have also opened registration for the July review sessions.

My CCDE Bootcamp in Cairo, originally scheduled for May 2013, has been postponed due to the difficulty in convincing candidates to travel to Egypt. I am hopeful that we will be able to reboot this training in 2014. Lastly, my CCDE Practical Bootcamp scheduled for July 29 – Aug 2 in Orlando, Florida is now guaranteed to run.

3) Spend at least 40% of my professional time creating – This goal has been difficult to meet, and was probably a bit too much of a stretch. I am considering relaxing this goal to 25% moving forward, although no specific decision has been made. I’ve spent quite a bit of time on content creation, especially as it relates to the CCDE program. My current plan is to add additional practice exam questions for my CCDE Practical Bootcamp training, as well as supplement some of my other bootcamp content with more technical details.

4) Get healthier – This is the goal I’ve been most successful in achieving. I successfully completed a 5K run in March. My goal was 30:00 and I completed it in 28:33, without walking. I’ve also lost a significant (for me) amount of body weight. I am extending this goal to lose more body weight and to complete a 5K in 25:00. I may add an endurance-type goal for the fall (10K?), depending on how things go over the next few months.

Thursday, March 21, 2013

CCDE Numbering and Requirements

This article is cross-posted from the CCIE Flyer March Issue

Upcoming CCDE Training

A quick note concerning upcoming training offerings. The next CCDE Practice Exam online offering is scheduled for April 27th. Details can be found at The next CCDE Practical Bootcamps I am offering are in Cairo, Egypt in May, and Orlando, Florida in July. Details can be found at

Future of the CCDE Program

We’ve covered the history of the CCDE over the previous two articles... But what about the future? I expect the number of successful CCDE candidates in 2013 will easily beat 2011’s record of 28. Why? For several reasons:

  • Increased Interest in the CCDE Program - I am already seeing record demand for my training offerings. I am also noticing increased activity on the Cisco Learning Network CCDE discussion board. More interest = more candidates!
  • Immediate Test Results - This development (introduced in November 2012) will allow unsuccessful candidates to immediately begin preparing for their subsequent attempts. It was common in the early days of the program for candidates to skip every other test date, since they often would not get their results until a few weeks before the next exam offering.
  • More Test Dates and Locations - Cisco has already announced four test dates for the CCDE Practical exam, covering a whopping 16 locations. Details can be found at

We’ve already seen a record number of successful candidates during the February testing date -- at least 15, including four of my students! In summary, I am quite confident that the CCDE program is here to stay. This was somewhat in doubt among networkers in the earlier years. I suspect this was due in part to the small number of successful candidates in 2008 - 2010, plus the short life of the CCIE Design certification in the early 2000s. With nearly 100 CCDEs to date, plus the fact that the CCDE is a necessary step on the way to the Cisco Certified Architect program, it is highly unlikely that this certification will be retired. In fact, I suspect the CCDE will broaden into other topics, much like the CCIE. Might there be a CCDE Data Center or CCDE Security in our future?

Certification Requirements

Now that we’ve covered the history and my best guess at a future direction for the CCDE program, how does one actual earn this certification? Like the CCIE program, there is no certification prerequisite needed for the CCDE program. Although CCDE sits on the top of the Network Design pyramid above CCDA and CCDP, neither certification is necessary to attempt the CCDE written exam.

The CCDE written exam is a 120 minute, 90 - 110 question exam that is delivered worldwide at Pearson Vue testing centers. The exam blueprint is quite extensive! Candidates should have strong familiarity with routing protocols, tunneling, quality of service, network management and network security. In contrast to the Practical exam, each written exam question is self-contained. Like all current Cisco exams, it is not possible to go back to previous questions or skip questions during the exam. I really miss that feature of Cisco exams! Without going into any details (respect the NDA!) I am willing to say that there are fewer ‘trivia’ questions on the CCDE written, as compared to the various CCIE-track exams I have taken. Most questions assume a high level of technical knowledge. The questions are more about how to use or evaluate technologies, rather than defining technical terms.

Passing the CCDE written exam recertifies any lower-level Cisco certification (CCNx, CCDx, etc). It also recertifies any current CCIE or CCDE certification. Lastly, passing the exam qualifies you to schedule and take the CCDE Practical exam. Your first CCDE Practical attempt must take place within 18 months of passing the CCDE written exam. You must pass the CCDE Practical within three years of your written exam; if you fail to do so you will be required to retake the written exam prior to any subsequent Practical exam attempts. If you fail the CCDE written exam you must wait six calendar days before re-attempting, and if you pass the exam you must wait six months before retaking the exam.

The CCDE Practical exam is an eight-hour exam that is offered on specific dates and at specific Pearson Vue testing centers. Upcoming test dates can be found on the Cisco Learning Network. The exam currently consists of four distinct scenarios, each consisting of 25 - 35 questions relating to a single network. Each scenario is self-contained; once you complete a scenario there is no reason to remember it for the next test segment. According to the Cisco Learning Network, candidates are required to complete the first and second scenarios in the four hour exam session prior to lunch. After four hours, all participants are escorted to lunch for one hour. Upon returning to the test center, all candidates will begin the third scenario. The third and fourth scenarios must be completed in the four hour exam session that begins after lunch. So in a way you can consider the exam to be two separate four-hour exams, separated by a one hour lunch.

When you have completed the final question of scenario four, your test will end. As you collect your belongings and exit, the Pearson Vue proctor will hand you your score report, with either a “PASS” or “FAIL” result. If you are unsuccessful, the score report will give you a brief breakdown of your results based on the question types present on the exam. If you passed, congratulations! Within a week (and likely sooner) you will receive notification of your CCDE number!

Recertification Requirements

Successful CCDE candidates must maintain their certification credentials by completing one of the following exams every two years:

  • Any CCIE Track Written Exam
  • Any CCIE Track Lab Exam
  • The CCDE Written Exam
  • The CCDE Practical Exam - has anyone done this for recertification?
  • Successful Completion of the CCAr Program (Both Interview and Board Review) - This one is special, as it recertifies all lower-level certifications for five years... If my reading of the recertification policies correct.

CCDE Numbering System

As many know, the CCIE certification numbering policy began at #1025 and has increased sequentially from there. During the initial public unveiling of the CCDE program in 2007, the team requested thoughts on how CCDEs should be identified. There were several humorous responses, including binary and hexadecimal. The team settled on an eight-digit decimal string. The first four digits signify the year in which a candidate passed the Practical exam. The second four digits uniquely identify the candidate among those that passed in that year. My CCDE number is 20090003, which means I passed in 2009. From the “0003” portion you can infer that I passed early in the year, as compared to someone whose number is significantly higher. For example, four candidates passed during my February 2009 test date. We were given the numbers 20090001 - 20090004. The next test date had five successful candidates, who were given numbers 20090005 - 20090009. According to Cisco, there is no specific meaning about which number you receive during a test date. In fact, my original paperwork indicated my number would be 20090004, but the plaque I received had number 20090003.

It appears now that Cisco is also numbering CCDE candidates by theatre. All of the candidates that I know of that passed in Sydney in February 2013 received low 2013 numbers (20130001 - 20130003, at least). So a bit more information is conveyed by the numbering system. This was not the case in the earlier days of the CCDE program.

There are two other common representations of the CCDE number. The first is the use of a double-colon “::” to eliminate a string of zeros. Using this makes my number 2009::3. I certainly hope every recognizes the IPv6 aspect of this! It is also common to see the second half of the CCDE number represented in hex, especially if it makes it more interesting. For example, 2009::13 is more fun to write as 2009::D.

Next month's article will cover the preparation methods that successful candidates have used.

About Jeremy:

Jeremy Filliben is a 15 year CCIE (Routing/Switching #3851) and a CCDE-certified network architect. Jeremy was a member of the CCDE beta program and passed practical exam in 2009. Jeremy has trained 16 of the ~80 individuals who have passed the CCDE practical exam since 2010 (more than all other training organizations combined). His next CCDE Practical Bootcamp is scheduled for the week of July 29th in Orlando, Florida. More information on Jeremy's CCDE training offerings can be found at

Thursday, February 7, 2013

History of the CCDE Part 2

This article is cross-posted from the CCIE Flyer, published February 2013

We left off last month with the quasi-beta CCDE Practical exam which was offered in October 2008.

Community reaction to the beta was mixed. Most participants felt that the process was worthwhile, as it had forced them to learn technologies and concepts that were outside of their comfort zone. The actual testing experience was (and still is) quite different from the CCIE labs we've all come to know. The entire exam takes place on a single PC, with no 'real-world' devices. There are no routers to configure and most importantly, no proctor to ask clarifying questions. This has been the primary complaint I have heard in the 3+ years I've been training CCDE candidates. The second most common complaint was the long wait time in receiving exam results. It was often the case that registration for the subsequent offering closed within a week of receiving results for the prior exam. Later in this article we will cover the new grading system, which addresses this issue.

The low pass-rate from the October 2008 offering, coupled with the slow announcement of results contributed to a very light turnout for the first exam offering in 2009. Only 27 candidates took part in this exam, which was now held in both London and Chicago. Approximately twelve weeks later, four candidates received passing marks (myself included). For the August 2009 exam date, Cisco announced that they were expanding testing to Hong Kong, but the test site was canceled due to lack of registrations (this also occurred in December 2009). A total of 14 candidates passed the CCDE Practical exam in 2009.

Cisco offered the CCDE Practical exam three more times in 2010. During this year only 13 candidates passed the exam. Testing locations were expanded to include Hong Kong and Sydney. During Cisco Live 2010 in Orlando, Cisco announced some upcoming changes to the Practical exam. The exam would soon be moving to a four-scenario format, rather than six scenarios. It would also be completely rewritten and reformatted to ensure that all major protocols and scenario types would be present on each exam. These announcements turned out to be a bit premature, as they were not implemented until the first test date of 2012. To be fair, CCDE Practical content development is hard work, and it takes a lot of effort to be certain that the test questions are valid. The registration fee also increased to $1400 this year. I believe this was an across-the-board increase for all Cisco Expert level certifications.

The CCDE made a strong push in 2011 to get more candidates into the CCDE program. If I recall correctly, there were several Webex-based CCDE overview sessions provided by the team. The CCDE team created Youtube overview videos to remove some of the mystery from the exam. The exam was offered four times in 2011, with a record 28 successful candidates. Testing was conducted in Bangalore for the first time.

As mentioned earlier, 2012 brought a significant changes to the CCDE Practical exam. The CCDE exams (both written and practical) were relauched as ‘CCDE 2.0.’ The Practical now consists of four distinct scenarios, as opposed to the previous six-scenario exam, but by all indications the exam did not get easier! The second development was that it is no longer possible to miss any significant technologies on the exam. Due to the mixing and matching of scenarios on previous iterations of the exam, it was possible to completely miss a core technology like IS-IS. The new format makes this extremely unlikely, if not impossible. The final significant change in 2012 was the announcement of all testing dates and locations at the beginning of the year. This allowed CCDE candidates to gear their preparation toward a specific test site and date. The CCDE Practical exam was offered three times this year, and testing expanded to include, at various times, San Jose, Raleigh, Istanbul, and Bangkok. According to the CCDE team, testing center locations are determined by candidate demand. They use the locations of CCDE written exam participants to judge whether they should offer the CCDE Practical exam in a specific location.

In November, the final CCDE Practical exam offering of 2012 brought a much-requested improvement to the candidate experience--immediate scoring! As candidates completed the exam and exited their Pearson Vue testing center, a score report was handed to them with either a ‘Pass’ or ‘Fail’ result, just like any non-Beta Cisco written exam. Even unsuccessful candidates were able to appreciate this immediate feedback, as it allowed them to consider whether they wished to prepare for the next scheduled exam date. There were 24 successful CCDE Practical candidates in 2012, bringing the worldwide number of CCDEs to 90. This includes the eight individuals who created the exam, and assumes no one has allowed their CCDE credentials to lapse.

Next month's article will cover the (near term) future of the CCDE program, CCDE certification and recertification requirements, and the numbering system used to identify successful candidates.

About Jeremy:

Jeremy Filliben is a 15 year CCIE (Routing/Switching #3851) and a CCDE-certified network architect. Jeremy was a member of the CCDE beta program and passed practical exam in 2009. Jeremy has trained 11 of the 63 individuals who have passed the CCDE practical exam since 2010 (more than all other training organizations combined). His next CCDE Practical Bootcamp is scheduled for the week of July 29th in Orlando, Florida. More information on Jeremy's CCDE training offerings can be found at

Thursday, January 24, 2013

Goals for 2013

Over the final months of 2012 I started considering my professional and personal goals. After starting with a large list, I’ve narrowed it down to the following. I am comfortable committing to these publicly, which I hope will encourage me to keep to them.

1) Assist in developing the careers of my co-workers - I work with a great team of network engineers, and I consider one of my primary responsibilities to assist them with their professional development goals. I do this by providing recommendations for training and assigning skill-stretching projects to my team. They always respond well to these challenges. I already get helpful feedback from my team, so I will continue to rely on this feedback to measure my success.

2) Continue offering industry-leading training for the Cisco Certified Design Expert program – I’ve been fortunate to assist dozens of excellent engineers with their pursuit of CCDE credentials. In 2013 I will continue offering my CCDE Practice Exam Training, as well as further develop my classroom-based CCDE Bootcamp offering. If you are interested in attending in-person classroom training for the CCDE, please send me an email. I will measure my success by the feedback I receive from training participants.

3) Spend at least 40% of my professional time creating – In past years one my goals has been related to learning. That one was always too easy, as I find that I am constantly reading and studying simply to keep up with the industry and my projects. This year I am going to flip this around and hold myself accountable for creating content. In this category I am including blog posts, course development, writing projects and professional projects. My plan is to measure this based on output, with some guesstimating about the amount of time each project requires. It’s an art, not a science! Smile

4) Get healthier – This is clearly a personal goal, and it is my hope that by publicly announcing it I’ll do a better job of sticking to it. I will measure this goal’s results by feedback from my physician during my annual physical, plus on whether I keep to my exercise goals. I also committed to my son that we would run a 5K in the spring. I *think* I am on track for this… wish me luck! We also run the Newark Main Street Mile in October. I intend to beat my 2012 time by 30 seconds.

I’m going to keep this list to four items. Any more and I will lose focus. If at the end of the year I neglect to provide a ‘How did I do?’ post, please let me know!

Thank you for reading!