Programmers with network engineering skills

Hello All,

i have been looking for quite some time now a descent coder (c,php) who has
a descent amount of system admin / netadmin experience. Doesn't necessarily
need to be an expert at network engineering but being acclimated in
understanding the basic fundamentals of networking. Understanding basic
routing concepts, how to diagnose using tcpdump / pcap, understanding
subnetting and how bgp works (not necessarily setting up bgp). I've posted
job listings on the likes of dice and monster and have not found any good
canidates, most of them ASP / Java guys.

If anyone can point me to a site they might recommend for job postings or
know of any consulting firms that might provide these services that would
be greatly appreciated.

Isn't this what the entire DevOps movement is kinda trying to push?

I see quite a few of these gigs pop up on Craigslist. If you've
already invested some time in the search, perhaps it'd be better to
hire someone good with C/PHP and train them in the art of networking.

If you're located in a major city, I'm sure you can find a community
college that has a networking certificate program you can send your
developer to, along with an in-house training program.

Just a thought. Best of luck. :slight_smile:

as to devops... this was funny:

<http://velocityconf.com/velocity2011/public/schedule/detail/20406>

-chris

Wow, thanks, I ignored about the DevOps, that's exactly how I would define myself. Is there a particular website where DevOps are supposed to post their resume or find job offers?

Generalists are hard to come by these days. They are people who learn
less and less about more and more till they know nothing about
everything. People today are specializing in the left and right halves
of the bytes.... They learn more and more about less and less till they
know everything about nothing. And BTW, they are worthless unless you
have five of them working on a problem because none of them know enough
to fix it. Worse, you can replace the word five with fifty and it may
be still true.

I know of three of these, all gainfully employed at this time and could
each find at least a couple jobs if they wanted. I am one, my son is
two and a guy we worked with is the third.

At one time (40 years ago) the mantra in IS was train for expertise, now
it is hire for it. Somewhere there has to be a happy medium. I suggest
this, find a good coder, not a mediocre who writes shit code but a good
one who can think and learn and when you talk about branching out with
his skill set he or she lights up. His first thing on site is take the
A+ networking course.

No, I do not sell the courses. But I have seen this kind of approach
work when nothing else was.

Ralph Brandt
Communications Engineer
HP Enterprise Services
Telephone +1 717.506.0802
FAX +1 717.506.4358
Email Ralph.Brandt@pateam.com
5095 Ritter Rd
Mechanicsburg PA 17055

I think you're more likely to find a network engineer with (possibly limited)
programming skills.

That's certainly where I would categorize myself.

Owen

While I'll agree about the more likely, if I needed a coder who had a firm grasp of networking I'd rather teach a good coder networking, than try to teach the art and magic of good development to a network guy.

I think it really comes down to which you need: a hardcore network engineer/architect who can hack up code, or a hardcore developer who has or can obtain enough of a grasp of networking fundementals and specifics to build you the software you need him to develop.

The ones who already know both ends extremely well are going to be -very- hard to find, but finding one who can learn enough of the other to accomplish what you need shouldn't be hard at all.

oh wait, that's an echo I hear isn't it.

...d (who is not exactly the former though I've played one for TV, and not at all the later)

Generalists are hard to come by these days. They are people who learn
less and less about more and more till they know nothing about
everything. People today are specializing in the left and right halves
of the bytes.... They learn more and more about less and less till they
know everything about nothing. And BTW, they are worthless unless you
have five of them working on a problem because none of them know enough
to fix it. Worse, you can replace the word five with fifty and it may
be still true.

I know of three of these, all gainfully employed at this time and could
each find at least a couple jobs if they wanted. I am one, my son is
two and a guy we worked with is the third.

At one time (40 years ago) the mantra in IS was train for expertise, now
it is hire for it. Somewhere there has to be a happy medium. I suggest
this, find a good coder, not a mediocre who writes bad code but a good
one who can think and learn and when you talk about branching out with
his skill set he or she lights up. His first thing on site is take the
A+ networking course.

No, I do not sell the courses. But I have seen this kind of approach
work when nothing else was.

Ralph Brandt
Communications Engineer
HP Enterprise Services
Telephone +1 717.506.0802
FAX +1 717.506.4358
Email Ralph.Brandt@pateam.com
5095 Ritter Rd
Mechanicsburg PA 17055

I think you're more likely to find a network engineer with (possibly limited)
programming skills.

While I'll agree about the more likely, if I needed a coder who had a firm grasp of networking I'd rather teach a good coder networking, than try to teach the art and magic of good development to a network guy.

Well, I won't call myself a hard-core coder, but, I think I have a reasonable grasp on the art and magic of good development. What I mostly lack is speed and efficiency in the language of choice for whatever project. I can write good code, it just takes me longer than it would take a hard-core coder.

OTOH, having done both, I would say that I think you are not necessarily correct about which direction of teaching is harder. Yes, if you start with a network engineer that knows nothing about writing code or doesn't understand the principles of good coding, you're probably right. However, starting with a network engineer that can write decent code slowly, I think you will get a better result in most cases than if you try to teach network engineering to a hard-core coder that has only a minimal understanding of networking.

I think it really comes down to which you need: a hardcore network engineer/architect who can hack up code, or a hardcore developer who has or can obtain enough of a grasp of networking fundementals and specifics to build you the software you need him to develop.

I'm guessing that someone who needed a hard-core developer that could grasp fundamentals would have grabbed an existing coder and handed him a copy of Comer.

The fact that this person posted to NANOG instead implies to me that he needs someone that has a better grasp than just the fundamentals.

Of course I am speculating about that and I could be wrong.

The ones who already know both ends extremely well are going to be -very- hard to find, but finding one who can learn enough of the other to accomplish what you need shouldn't be hard at all.

Depends on what you need. However, I think it's faster to go from limited coding skills with a good basis in the fundamentals to usable development than to go from limited networking skills to a firm grasp on how networks behave in the real world. To the best of my knowledge, nothing but experience will teach you the latter. Even with 20+ years experience networks do still occasionally manage to surprise me.

...d (who is not exactly the former though I've played one for TV, and not at all the later)

I am admittedly lost given the three choices as to which constitutes former or latter at this point.

1. Strong coder with limited networking
2. Strong networker with limited coding
3. Strong in both

Owen
Who is a strong network engineer
Who has been a professional software engineer (though many years ago and my skills are rusty
  and out of date)

And you're the first I've seen suggest, or even imply, that going that
direction instead might be more fruitful; seemed to me that the skills
necessary to make a decent network engineer would support learning
programming better than the other way round -- though in fact I personally
did it the other way.

Cheers,
-- jra

I think it depends on what level of "coding" you're talking about. If
you want someone that can whip up a few scripts to easily manage routine
tasks, then sure, network guy -> "coder" is usually a safe and easy path.

OTOH, if you're talking professional application developer working on a
project with more than one moving part, and/or more than one person on
the team, you really need someone who thinks like a developer, and can
be trained to understand network concepts.

.... and yes, the latter is the path that I've taken, so I have a
built-in bias.

Doug

>
>> I think you're more likely to find a network engineer with (possibly limited)
>> programming skills.
>
> While I'll agree about the more likely, if I needed a coder who had a firm grasp of networking I'd rather teach a good coder networking, than try to teach the art and magic of good development to a network guy.
>

Well, I won't call myself a hard-core coder, but, I think I have a reasonable grasp on the art and magic of good development. What I mostly lack is speed and efficiency in the language of choice for whatever project. I can write good code, it just takes me longer than it would take a hard-core coder.

OTOH, having done both, I would say that I think you are not necessarily correct about which direction of teaching is harder. Yes, if you start with a network engineer that knows nothing about writing code or doesn't understand the principles of good coding, you're probably right. However, starting with a network engineer that can write decent code slowly, I think you will get a better result in most cases than if you try to teach network engineering to a hard-core coder that has only a minimal understanding of networking.

> I think it really comes down to which you need: a hardcore network engineer/architect who can hack up code, or a hardcore developer who has or can obtain enough of a grasp of networking fundementals and specifics to build you the software you need him to develop.
>

I'm guessing that someone who needed a hard-core developer that could grasp fundamentals would have grabbed an existing coder and handed him a copy of Comer.

The fact that this person posted to NANOG instead implies to me that he needs someone that has a better grasp than just the fundamentals.

Of course I am speculating about that and I could be wrong.

> The ones who already know both ends extremely well are going to be -very- hard to find, but finding one who can learn enough of the other to accomplish what you need shouldn't be hard at all.
>

Depends on what you need. However, I think it's faster to go from limited coding skills with a good basis in the fundamentals to usable development than to go from limited networking skills to a firm grasp on how networks behave in the real world. To the best of my knowledge, nothing but experience will teach you the latter. Even with 20+ years experience networks do still occasionally manage to surprise me.

> ...d (who is not exactly the former though I've played one for TV, and not at all the later)

I am admittedly lost given the three choices as to which constitutes former or latter at this point.

1. Strong coder with limited networking
2. Strong networker with limited coding
3. Strong in both

It's all about KISS, to appreciate sound abstraction, in other words.

Cheers,
mh

Sorry, looking at this again it reads a lot more derogatory on paper
than I meant it to. There is a lot of value in being able to automate
repetitive tasks ... my point was simply that doing that is a different
development model than working on a larger scale project; where scope,
structure, etc. come into play.

Doug (who either needs more caffeine, or less ...)

Good Luck guys like these are being scooped up by large financial firms and hedgefunds and they don't come cheap ~$250k easy!

Generalists are hard to come by these days.

I think you're more likely to find a network engineer with (possibly limited)
programming skills.

I wish. For the past three months I've been trying to find a network
engineer with a deep TCP/IP protocol understanding, network security
expertise, some Linux experience, minor programming skill with sockets
and a TS/SCI clearance.

The clearance is killing me. The two generalists didn't have a
clearance and the cleared applicants are programmers or admins but
never both.

Good Luck guys like these are being scooped up by large financial
firms and hedgefunds and they don't come cheap ~$250k easy!

Not all of them. I've been approached a few times but there is
something sleazy about helping a bunch of tycoons do millisecond
timing attacks against the market. The money doesn't magically appear.
Every dollar they squeeze out that way is stolen from some grandmother
who has held the stock for 20 years.

Regards,
Bill Herrin

Generalists are hard to come by these days.

I think you're more likely to find a network engineer with (possibly limited)
programming skills.

I wish. For the past three months I've been trying to find a network
engineer with a deep TCP/IP protocol understanding, network security
expertise, some Linux experience, minor programming skill with sockets
and a TS/SCI clearance.

The clearance is killing me. The two generalists didn't have a
clearance and the cleared applicants are programmers or admins but
never both.

Good Luck guys like these are being scooped up by large financial
firms and hedgefunds and they don't come cheap ~$250k easy!

Not all of them. I've been approached a few times but there is
something sleazy about helping a bunch of tycoons do millisecond
timing attacks against the market. The money doesn't magically appear.
Every dollar they squeeze out that way is stolen from some grandmother
who has held the stock for 20 years.

Try explaining the number of ex-Bell Lab R&D folks working on trading desks these days. A major financial firm I worked for in the past directly targeted candidates from the telecom industry. In recent news a russian programmer who allegedly stole Goldman Sachs proprietary code was making $400k/year and he's probably still on the market looking for work :slight_smile:

Is clearance the problem, or the ability to obtain clearance due to something in their background? If your work requires it, you should have some recourse for applicants to obtain the required clearance, no?

/Jason

My understanding is that while primary and subcontractor companies can
put people in the sponsoring organization's clearance granting queue,
it takes so long to get someone through the queue that for high-level
positions they essentially make having the clearance already a
prerequisite.

Doug,

I think the difference is that network engineers typically find themselves wanting to learn some form of programming to automate routine tasks while doing their job as a network engineer. They've actually managed to be interested in programming while pursuing a career in networking out of necessity.

On the other hand, I think it's very rare for a hard-core programmer/developer to want to learn more about networking because it typically doesn't come up in their job when coding a professional application / large product with many moving parts and "more than one person on the team".

I'm sure it can happen either way and has (as many people have posted going either direction in this thread), but there needs to be some desire to learn for the individual. I think you'll find a network engineer desiring to improve their programming skills much easier than a developer that wants to learn improve their networking skills beyond plugging a router into their home network.

-Jared

What about the case of the strong coder who decides that networking is more interesting as a life's work, moves into networking, will not consider employment where coding is even a remote possibility, and will successfully land another networking job elsewhere if management even brings up the subject of coding? I think this describes the great majority of networking professionals.