Thursday, August 29, 2013

Plea to Software Recruiters as to Job Skills

Dear IT Recruiter,

How are you? I am fine. You probably contacted me this week about an urgent position you have available right now and could I send you my updated MS Word document right away. Also could I send my best rate, willingness to relocate and all of my references will telephone numbers now as tomorrow will be too late.

Let me say that I like recruiters. I understand their job. I know that most of their emails and phone calls go unanswered. I understand that many job seekers put fluff in their resumes or post of jobs they are not qualified for in some way. I know recruiters are under pressure to fill positions or be on the street looking too. So let me offer so advice about how you can get me to accept your offer to offer my resume and skills to a hiring manager.
  1. I am a university trained Computer Scientist and professional Software Engineer who spent years in college reading books and attending classes to get a degree that included much more than web programming. I have a background in Physics, Chemistry, English and English literature. This could be construed as your first clue that I am not a moron.
  2. I have not ridden a bicycle in about five years though according to you I will need months of training to relearn to ride a bicycle again. Skills I have not used in as a Software Developer are the same a the skill of riding a bicycle or swimming. It might take me a week to train to swim a mile or ride fifty miles I have not lost my skills because I have not used them. If you give me a bicycle to ride I will be riding in seconds, though it may take me a few months to work my way up to Tour de France level.
  3. I can design and develop Multi-Threaded software which means that I can do complex software engineering tasks. 
    1. I can design and write Multi-Threaded network software which means I can do very complex software engineering tasks.
    2. I can design and write recursive Multi-Threaded network software which means I can do very, very complex software engineering task.
    3. I can design and write recursive Multi-Threaded database telecom codecs with network software which means I can do very, very, very complex software engineering task.
    4. I can calculate the duration of human Space Flights from Earth to Mars and back which means I am a Rocket Scientist that can also design and write the software to get you there and back safely along with supply you with reading material, movies to watch, telephone and Internet (Deep Space or Interplanetary)  during your voyage.
  4. I have trained in a few programming languages; 360/70 Assembler, COBOL, FORTRAN, X86 Assembler, C, C++, Ada, PASCAL, Prolog, BASIC, Perl, Java, Lisp, Erlang, Clojure, BBx, Bourne shell, Haskell, JavaScript, MASM, Ruby, Smalltalk, Visual Basic, Windows PowerShell and DOS Batch.
    1. I write Browsers. I don't write web sites.
    2. If I need a better language I can learn one in about 80 hours. I can modify or extend existing languages. I am trained to write new languages if need be.
    3. If your client is using a language such as A, B, R, Snobal or other such rare and esoteric languages I can probably look up the language's family and tell you if I could learn the language. It might be better for you to know something about obscure languages in the job requirements to make your job easier.
  5. I know my data structures: Bags, Sets, Queues, Lists, Trees (Tries), Binary Trees, n-way Trees, Tables, Stacks, Maps, Arrays, Hashes, Records, Unions, Dictionaries, Associatives Arrays, Strings, Vectors, Linked Lists, Doubly Linked Lists, Graphs, nodes, edges and Heaps. I use these data structures to properly design my software to work both correctly and efficiently.
  6. I have patents for my work with Multi-Media file processing across networks. If you need a file processed such as .PDF, JPEG, GIF, Postscript, TIFF, RIFF, TGA, BMP PCX, PSD, CVS, CGM, WMF, bitmap, MPEG, mpeg-1, mpeg-2, mpeg-4, AVI, Quicktime,  AU, MIDI, SND, WAV and AIFF. If the file has a standard I can design and develop software to read, analyze and write them from point A to point C with point B being a point in between points A and C where I can divert the file stream.
  7. I am an ITU audio codec developer. That means I understand telephone, sound and video across wired and wireless radio networks. G.711, G.726, G.729, G.723, H.323, VoIP, A-Law, u-law (mu), PCM;  H.262, H.264 video too.
  8. I have read, understood, used, designed and programmed from a few specifications; RFC's 542, 760, 768, 783, 791, 793, 822, 903, 937, 959, 1055, 1067, 1098, 1157, 1225, 1350, 1388, 1487, 1631, 1889, 1945, 2058, 2138, 2326, 2821, 3261, 3550,  3801, 4353, 4960 and others. If you do not know what an RFC is please consider reading one.
  9. I understand and use computer and communications protocols at a programming level; HTTP, SIP, RTP, RTSP, SNMP, RTCP, SMPP, SMTP, POP, FTP, NTP, ARP, ICMP, PPP, SMB, TCP/IP, UDP, Datagram, IGMP, RPC, SSH, MGCP, RSVP and IMAP.
  10. I understand and work in the OSI Model from the Data link layer (2), Network layer (3), Transport Layer (4), Session layer (5), Presentation layer (6) to the Application layer (7). I am not an electrical engineer so I usually do not work at the Physical layer (1).
    1. I pretty much began my career doing C and assembler programming building NetBIOS, NetBEUI, MS-Net, PC-Net, IPX/SPX, SMB, Window for Workgroups stacks on 128/256 Kilobit per second LANS using CheaperNet before the "Internet" arrived in homes.
    2. 802.3, 802.3a, 802.3e, 802.3u, 802.3af, 802.4, 802.5, 802.7, 802.11, 802.15.4/5
    3. I know the differences between Ethernet, CheaperNet, Token Ring, Bus, Star, Mesh, Tree and Daisy chain networks on the physical and logical topologies.
    4. I know the difference between a bridge and a switch.
    5. Even better, I know how to fix these when someone cuts the wires.
  11. I have programmed in Windows 1, 2, 3, 95, Windows for Workgroups, OS/2, NT, 98, 2000 and 7. Windows has not changed since NT. It is still the same basic architecture. The same skills it took to write assembler, C and C++ in NT are the same skills it takes to write C and C++ in Windows 7 and 8. Yes, perhaps there are few new exciting features but the underlying Operating System concepts have not changed since NT.
  12. I can program in several Operating Systems simultaneously such as OS X, Windows, Unix, Linux, Android. Not to mention several languages and frameworks at the same time.
  13. An IDE is just a fancy editor. I can program in vi, vim, edit and edlin. Some IDE's have debuggers in them. A software engineer can us most any debugger put in front of them in about an hour of work.
    1. I don't need an expensive IDE to create a program and makes files. I can do it from the command line for most systems after being shown the particulars for the OS.
    2. After using an IDE for a year that is pretty much the limit of learning. Having 8 years experience using an IDE does not mean the same as using a programming language for 8 years.
  14. I am a Software Development Engineer with specialites. If you need an application programmer then say that. Each SDE is different. 
    1. I am Systems, Network and Telecom Software Development Engineer which means I prefer to write software at the systems level, networking level with a telecommunication flavor. 
    2. I am good a GUI or UX/UI design but I do not like developing the software as the specifications are often fickle.
  15. Try not to contact me before reading and understanding my resume and the job description. If you have to spell out ACRONYMs to me because you don't understand them then why are you calling me? Look them up before calling me; please.
  16. I have a lot of experience in Computer Science and the design, creation and development of software. This would mean that I am well past the Journeyman level of work experience and knowledge. 
    1. Try not to approach me to do work for a manager that is looking for a recent grad or apprentice programmer.
    2. I don't write web pages; I design and write Web browsers; there is a difference.
  17. I am not a Database Administrator though I do know how to create software to query databases in SQL or NoSQL or COBOL if you put a gun to my head. This means that I am not a database caretaker it means I am use databases. Same way you might live in a house not be a Builder nor a carpenter. I don't need to be a DBA to use a database.
  18. JavaScript is not the same as JAVA.
  19. I can use Visio. Visio is not a programming language per se.
In conclusion if you are looking for a good Software Development Engineer with Systems, Network, Telephone, Telecom or VoIP experience looking for work in the SE US or Internationally then just be sure to read and understand both your job description and my resume before you ask me to apply for a position that has nothing to do with my skill set and then tell me I need to take less money because I am not fully qualified.

No comments:

Post a Comment