Passing the JNCIE-SP

Networks are interesting. The idea that the whole world can agree to a common networking standard in order to connect with each other shows that we can achieve wonderful things when people are willing to set aside their differences. As a network engineer, my job provides a constant reminder that it is actually possible for the world co-operate, and that good things will happen once we choose to do so.

The expert-level, or more fondly known as the ‘E’-level, certifications are highly sought after by network engineers as these certs prove that an engineer is good at what he does. Stories go around telling how difficult the E-level exams are and how much effort one needs to put in to stand a chance of passing them. Without proper guidance, things can be quite hazy for those who are just starting to get their E-level qualifications. Hence I’m documenting my experience of obtaining the JNCIE-SP here with the hope that others would find it useful.

1. The reason

For me, and I believe, for many others, necessity. I work for a telco company. As most of digital data now runs on IP, we see our packet-switched core network becoming bigger and more complex each day. Unfortunately I did not have a good understanding of our network which was frustrating. It was obvious that I needed to learn. Since we have a lot of Juniper equipment in our network, it was a straightforward decision to go for the Service-Provider Expert-level certification from Juniper (JNCIE-SP).

2. The preparation

It took about 3 years since I first touched a Juniper router (an M120) to obtain the JNCIE-SP. I have some Cisco background in Routing & Switching so the fundamentals were already there. However Juniper’s CLI config is different from Cisco’s and the service-provider world uses technologies that were alien to me like MPLS & VPNs. The transition was not easy.

The first two years were spent mostly to get hands-on on-the-job experience, coupled with a lot of reading to pass the ‘A’, ‘S’ and ‘P’ levels. The ‘E’-level however, is a lot more difficult than the other exams and requires a lot of practice as well as experience. In terms of the time required, I spent roughly 1 year of weekends and holidays to prepare for the final exam. My bosses were pretty cool throughout, letting me use an extra rack space in the lab and allowing some extended leaves.

In terms of the materials I used:

-Reading materials:

The A,S,P and E-level books by Soricelli and Reynolds are good references to get one started. These can be downloaded for free from Juniper website. The examples, especially those covered in the P and E-level books, could be replicated in a small lab which could provide a good basic understanding of SP configurations. The books were written a while back so be warned that some of the materials covered are no longer relevant to the exam, for example SONET and SDH-based configs. These topics however remain useful for practising network engineers.

To prepare specifically for the E-level exam, I bought the JNCIE-SP guides by InetZero. The guides only briefly discuss the theory part of things and go straight to the detailed configurations so beginners will not find these guides readable. People usually ask, how different is the guide from the actual exam? Personally I feel that they are quite different. While the guides provide general exercises that cover the whole exam syllabus, only certain portions of the syllabus will be asked in the exam. Consequently, as the exam concentrates only on certain topics, the actual questions are much more detailed. However, I found all the InetZero lab exercises to be useful as they are related to my day-to-day work. Do try to look out for discounts. Every now and then InetZero offer 10%-20% discounts for their products which are good deals.

-Hardware:

It is extremely important for an exam candidate to have a lab setup consisting of Juniper routers that he/she has full access to. I primarily used logical-systems configured in an M120 for my lab. For the ‘A’,’S’ and ‘P’ levels, virtual tunnels (VT) interfaces should be enough to interconnect the logical-systems. For the ‘E’ level, I feel that it is best to configure actual interfaces and interconnect them physically to provide connectivity between the logical systems. Some people do direct connections. some people do the connections via a switch so that the connections are logically reconfigurable. It depends on one’s preferences or the availability of resources. In any case, it’s good to be able to practice physical-interface configurations and verify that our configs can work when physical interfaces are used. This will provide us with the much needed confidence required on the exam day.

I also bought 40 lab vouchers from InetZero amounting to 40×8=320 hours worth of lab hours to practice the labs they provide in their guides. These guys at InetZero put together some neat setups using SRX routers. Certain things cannot be simulated properly using logical-systems such as aggregated interfaces so it’s nice to have a proper testbed like that for rent. A minor complaint is that once or twice, it seemed like the scripts InetZero guys ran to clear the routers after each session did not manage to execute properly. So sometimes I did not get the full testbed available. The technical support was not that responsive either, so a few vouchers were wasted in the end. Overall however, the InetZero’s lab guides were pretty helpful.

-Others:

There are a lot of other reading materials out there for those who are interested. I came across a few useful MPLS guides and books that were either available for free online or shared by a friend. Online forums are a useful source of quick guides and advice as well. Other people used Day One guides, Proteus lab guide and remote proctored exams. Perhaps they are useful but I did not use them so I cannot comment.

In terms of setting up a lab, Junosphere is a useful online tool that one can use to set up a network using Juniper equipment. From what they explain on the web and youtube, it looks more than enough to prepare a candidate. I did try to have a go by buying a $50 session but the connection turned out to be too slow. It might be the slow home broadband. It might be because I live in some remote part of the world. Whatever it was, Junosphere did not work out due to the high latency.

For others who are looking for alternatives, I have colleagues who run VMXs on VMWare/Virtualbox to practice and they seemed happy with it. So perhaps others may follow the same path. There are also those expensive JNCIE bootcamps which are instructor-led training with access to a full lab. Didn’t attend that either due to cost reasons.

3. The exam

It took me two attempts to pass the exam, both of them in Juniper’s office in Kuala Lumpur, Malaysia. I thought I was well-prepared the first time but was not so pleasantly surprised at the sort of depth they go for in the exam. In the first seating, it took a while to familiarize with the network topology, trying to remember which routers go where without having to refer to the network diagram every few minutes. I had no idea how to solve a few of the questions but everything seemed ok in the end. Whatever that could be pinged were successfully pinged so I walked out pretty confident that it was a pass. 2 weeks later the result came out – it was a fail. Nice.

I was pretty okay with the result since it’s quite normal for people to fail these ‘E’-level exams on the first try. I noted down the troublesome areas, upgraded the Junos in the lab to the version they used in the exam, added a few more physical interfaces to the setup and redid all the lab exercises. I added a few lab scenarios myself to be more familiar with the more complex topics. After a month or so of preparation, I decided to register for another exam seating, with roughly 8 weeks to prepare.

This time the pressure was higher as taking these exams were not cheap. Luckily, my wife was great in managing our expenses so kudos to her. This time I felt more comfortable and asked for clarification from the proctor if I was not sure about the questions. It was not a smooth seating though as I made some silly mistakes in the configs and was not able to rectify things before the proctor asked us to stop. I left the exam room feeling pretty disappointed. To my surprise, when the result came out 2 weeks later, it was a pass!

4. The aftermath

Passing the exam in the second attempt was truly a pleasant surprise. I actually had been preparing to retake the exam the third time when the result came out since I thought I did not make the cut. It was such a relief to not have to go through the revision process again. For reference, in terms of cost, I spent about USD 4.5k for the ‘E’-level study materials and exam.

How have things changed after that? A few congratulations were received here and there and then it’s back to work as usual. Now, more complicated assignments land on my desk at work which I guess is good for experience and career development. It’s also nice to understand a lot better what I am doing at work. Best of all? I now have more free time at home and to exercise. So for those who are aiming for the ‘E’ level exam, just go for it guys – it will be a rewarding experience.

Good luck.

Starting a PhD

Just writing this for those who have the guts to start a PhD and would like to make the right choices from the start. Getting a PhD does initially seem like a mess, at least it was for me. However, having gone through the trouble of getting a PhD in Engineering from Cambridge, I notice that there is some structure to the whole thing. One could try to build a solid foundation to allow him/her to successfully undertake the challenge. From those eventful years, I believe there are four elements that have to be in place to ensure that a student will be able to truly enjoy a PhD. These four, by order of importance, are:

1. The student
2. The supervisor
3. The research topic
4. The university

A prudent student should evaluate these elements and decide whether he is ready to start his studies. Although preferable, not all four must be properly set up – two out of the first three should be enough for a student to survive and complete the PhD. He might not be happy during his studies. He might not enjoy it. But he’ll live. The fourth element, which is the university you do your PhD in is pretty much a bonus. Nice to do one in a top university but it isn’t that necessary.

1. The student
By far the most important element of the four. This is the element that a student has most control of and is able to most accurately measure in order to determine his/her readiness. A student must have:

(i) the right motivation/mindset to fuel him to work long hours for 3-4 years with little recognition
(ii) the right knowledge to complete a novel piece of work given the limited timeframe
(iii) healthy enough to endure a PhD. (note: I ranked motivation and background knowledge to be higher than health here)
(iv) sufficient financial and moral support

Common misconceptions:
We’ll be rich after getting a PhD, people will automatically like us (actually others may find us boring), we can easily get our dream job, we’ll be famous. These are wrong motivations. We’ll realise soon enough that these aren’t true and may get demotivated halfway.
We need to be already an expert in a subject to do a PhD. Not really. In the first few months after starting the PhD, everyone will realise they know nothing about the subject. We need to do something novel anyway so it’s a new territory by definition.
We don’t need to know anything at all about the PhD topic. We do need a good foundation.

2. The supervisor
We’ll spend a lot of time with our supervisor and need his/her advice to finish. So pick wisely. Unfortunately this element and the rest that follows are not something that a student is able to gauge as accurately as the first element. One can only understand a supervisor only if he/she does a PhD with the supervisor. This is because a PhD requires a lot of interaction between two individuals. And we all know that not everyone work well together. Two nice people may not like each other. Two evil guys may actually enjoy plotting to take over the world. Despite the uncertainties, there are several things that we must look for in a supervisor:

(i) Good reviews from their ex-students, preferably those who just graduated. Current students can be good referees but they may not yet have a good view of how things will work out. A supervisor’s actions and plans may initially look messy but make perfect sense once the student reach a certain level of maturity in the research subject.
(ii) A good track record of successfully supervising PhD students.
(iii) His compatibility with our personality. The best way to do this is to correspond with and if possible, meet him in person for a chat to have a sense of what he’s like. Some people like supervisors who let them do their own stuff. Some prefer more guidance. We know what you want so meet the potential supervisor and we’ll understand if he fits our idea of a compatible supervisor.

Common misconceptions:
He needs to be a Professor. He just needs to be an active researcher.
He must be a well-known expert in the field. Well, good to have but do expect to not see him much. ie: we’ll be ranked very low in his priority list.
A good supervisor is someone who spoon-feeds and holds your hand throughout the PhD. Not quite. We’ll probably need this in the first year. But a good supervisor will train us to be independent. This means letting us chart our own progress after the initial year or two, under his watchful eye of course.
It’s a one way street where the supervisor is expected to always be on the giving end. It’s a two way street my friend. Compliment him when he does good work. Congratulate him for his promotions. Share new papers with him and inform him of exciting call for papers/conferences. He’s a human being as well and our relationship with him will be more fun for both the supervisor and the student if it’s symbiotic.

3. The research topic
We must be very passionate about the subject we’re working on. To be honest, I am a bit divided whether to rank this as the second or third most important element. The reason I rank the supervisor higher is because we’ll eventually find the research difficult and frustrating. Our passion will carry us far but not far enough. Once we hit a wall, only a good supervisor will be able to help us overcome the problem and rekindle our love for the subject. In addition, one may not have sufficient knowledge in an area to start with to fully appreciate a subject. In this case, a good supervisor will be able to ignite our passion in the area by highlighting the importance and the interesting bits of the research subject, therefore providing us with that passion required to finish the thesis.

Common misconceptions:
The subject must be a popular research topic. We’ll have a hard time finding new things to discover as others are rapidly doing good work.
We can do experimental PhDs without a proper lab in place as we can always start our own setup from scratch. Buying things and putting together our experiments take a long time and a lot of money. If we want to do an experimental PhD, make sure the lab has sufficient apparatus and materials.
It’s good to choose an ‘easy’/’straightforward’ research topics such as repetitive measurements or data crunching in an area we’re already familiar with. It doesn’t hurt to do these. We’ll get our PhDs. But these three to four years are perfect for us to attempt something crazy. We’ll have a lot of time to concentrate on solving difficult problems and we’ll (hopefully) have the full support of our supervisor and colleagues. Try something difficult. Learn something new. Discover.

4. The university
Actually I am quite inclined to not even list this as an important element. The reason is because it does not quite matter where we do our PhD. Good supervisors and good research projects can be found even in small universities. The quality of our PhD will in the end be determined by the quality of our thesis and publications. But I guess it does matter a bit as you would like to do it in established, preferably household name universities as they will have a structure in place to: (i) help you if you are in trouble and (ii) ensure that your are able to finish on time. Plus it looks nicer on your CV.

Final words:

What about completing a PhD? Well, I am not going to write much about completing a PhD. The reason is because each PhD journey is unique. Hence, it is more difficult to ascertain what constitutes a good advice and what is not. It all depends on one’s particular situation. If it helps, I followed several advice which I found useful:

(i) Write often – both your thesis and research papers. Since day one. 50% of the papers I wrote was never submitted. I rewrote most of my thesis in the final year. But were the earlier drafts and the rejected papers a waste of time? Not at all. They all helped to form my final thesis.

(ii) Be nice – it can get fairly competitive. Just keep things healthy, respect everyone and never shy away from helping others. Be humble.

(iii) Develop a thick skin – disappointments come often. Papers get rejected, unsuccessful experiments, rude people, being looked down by more senior figures. Just pick yourself up and deal with it.

(iv) Work hard everyday – read papers and discuss with others in the first year. Accept the fact that we know very little. Learn. Do experiments/simulations in the second year and after. Document failures. Try again. Discuss. Document successes. Write. Publish. Everyday.

Just a takeaway point, I just would like to say that despite the sacrifices, I never regretted doing my PhD. I’ve learnt that the important thing is to try. And once we’ve started the journey, keep working hard. It’ll end, most likely happily. And we’ll be glad we tried in the first place.