Many business problems start with the phrase "but this is the way we have always done it here." Once a problem become the Status Quo it requires a Force to be Reckoned with to fix the problem. Entropy in business is a heavy tax on profits.
I am not here because I want you to like me or to praise me. I am here solely to solve the problems. I do not like unsolved problems though I do enjoy rectifying them. Solving problems means breaking with the current methods, procedures and materials to make new ones. Breaking the routine is a function of change management which can cause pain for those groups that fight change to embrace the Status Quo.
I am a catalyst in that I cause reactions to develop. Reactions are either Endothermic or Exothermic but the involved change that leads to improvement. Both involve heat which is either expelled or gathered in the process.
So if you are in need of change then do something. React to the norm for the better.
Friday, October 25, 2013
Monday, September 9, 2013
Functional versus Procedural Stream Programming. My browser, your Choice.
I am a C and C++ developer from way back. I learned C when Turbo C 1.x came out in the Spring of 1987. Tom Yohe handed me a copy saying "if you are so smart then use this." And I did. I built a program to process Chrysler Dodge sales ordering tapes (streams of data) to turn out a script that would run a LaserDisc kiosk. I cut the processing time down from one man week, with mistakes, per vehicle to about 5 minutes of 80186 processing per vehicle.
I did that by processing the manufacturer's sales data file as stream of data rather than just reading in the entire file and trying to process the entire contents once loaded as a blob seeking back and forth for information. I processed the information as it arrived. Acting only on what I knew at that point and trying to predict or decide what to later in the stream and run back to previous data which was then the normal spaghetti code method
In 1990 Turbo C++ was released and I bought my second PC, a 80286 12 Mhz and a 40 MB hard drive, to run and learn it because most of the team I worked with stated that "C++ was too fat and slow to be viable for real programming."
I purchased Bjarne Stroustrup's book on "The C++ Programming Language" version 1. Next The Annotated C++ Reference Manual. Then version 2. Eventually version 3 and the special edition at some point. Along with The C++ Standard Template Library book.
From fully reading Stroustrup I learned one basic premiss of programming in C++. To paraphrase Bjarne, "If you cannot express your Object Orient Design in trees (I still prefer to use the term tries) and streams then you are doing it wrong."
I used this principle to guide my work in Multi-Media messaging to design and then program several networking applications that lead to my being award three US patents for my work on networked objects and streaming data. I was assisted my research and design by Steve Teale's "C++ Iostreams Handbook". Ever since then I have looked at every problem from a Stream and Tree design mentality.
As an example of how this works think of a simple HTML web page with its element tags. I created a simple browser for a set top box by looking at each HTML tag in the file stream to create an instance of an Object. The class of the object created knew how to read and parse the next level of HTML elements. As each object was created it formed a tree of objects.
Then by querying the tree of instantiated objects the browser could act as needed to display information or react to requests. In this particular instance the browser and subsequent HTML object tree was built to read and process file streams from Music Choice. This allowed displaying information and photographs held in the Music Choice data stream on the television via the set top box. This browser allowed Music Choice to transmit data streams that could change the look of the Music Choice music channel on TV.
So instead of the set top box having a static application that had to be updated and downloaded to all set top boxes in the Cable Operator's (MSO) system each time Music Choice changed their format the box had a browser that could download a HTML style or format page in the data stream. Thus I had created a functional programming system using stream information instead of a static procedural method.
Now as a continuation of this research and development I have begun work on MPEG video streams to do some Machine Vision thinking. I am going to design a set of classes to examine RTP streams of Video and Audio to determine objects within the video streams.
---
As an aside I used a similar method to create the Email to Voicemail to Email (EVE) system in the late 90's. The original system had a network of voicemail servers connected via PSTN style lines. Voicemail messages were passed between geographically dispersed voicemail servers by dialing and playback to record over the PSTN lines in real time. It took hours, even over a private ATM network, to move and synchronize user messages.
I had each voicemail server email their recorded messages as attachments to a central mail server. The email server would then route the attachments through a set of mail queues in which each recording was processed by queue rules. This eliminated the real time delays of playback across the private network. Allowed message to be transferred within seconds instead of hours. Cut the required voice bandwidth significantly. And gave users a copy of their voicemail messages in the email inbox.
The reverse was also done in that email messages forwarded to the EVE system were converted to sound via Text to Speech (TTS) so that in the pre-smart phone era users could receive email on their cell phones.
But that is another post to come.
I did that by processing the manufacturer's sales data file as stream of data rather than just reading in the entire file and trying to process the entire contents once loaded as a blob seeking back and forth for information. I processed the information as it arrived. Acting only on what I knew at that point and trying to predict or decide what to later in the stream and run back to previous data which was then the normal spaghetti code method
In 1990 Turbo C++ was released and I bought my second PC, a 80286 12 Mhz and a 40 MB hard drive, to run and learn it because most of the team I worked with stated that "C++ was too fat and slow to be viable for real programming."
I purchased Bjarne Stroustrup's book on "The C++ Programming Language" version 1. Next The Annotated C++ Reference Manual. Then version 2. Eventually version 3 and the special edition at some point. Along with The C++ Standard Template Library book.
From fully reading Stroustrup I learned one basic premiss of programming in C++. To paraphrase Bjarne, "If you cannot express your Object Orient Design in trees (I still prefer to use the term tries) and streams then you are doing it wrong."
I used this principle to guide my work in Multi-Media messaging to design and then program several networking applications that lead to my being award three US patents for my work on networked objects and streaming data. I was assisted my research and design by Steve Teale's "C++ Iostreams Handbook". Ever since then I have looked at every problem from a Stream and Tree design mentality.
As an example of how this works think of a simple HTML web page with its element tags. I created a simple browser for a set top box by looking at each HTML tag in the file stream to create an instance of an Object. The class of the object created knew how to read and parse the next level of HTML elements. As each object was created it formed a tree of objects.
Then by querying the tree of instantiated objects the browser could act as needed to display information or react to requests. In this particular instance the browser and subsequent HTML object tree was built to read and process file streams from Music Choice. This allowed displaying information and photographs held in the Music Choice data stream on the television via the set top box. This browser allowed Music Choice to transmit data streams that could change the look of the Music Choice music channel on TV.
So instead of the set top box having a static application that had to be updated and downloaded to all set top boxes in the Cable Operator's (MSO) system each time Music Choice changed their format the box had a browser that could download a HTML style or format page in the data stream. Thus I had created a functional programming system using stream information instead of a static procedural method.
Now as a continuation of this research and development I have begun work on MPEG video streams to do some Machine Vision thinking. I am going to design a set of classes to examine RTP streams of Video and Audio to determine objects within the video streams.
---
As an aside I used a similar method to create the Email to Voicemail to Email (EVE) system in the late 90's. The original system had a network of voicemail servers connected via PSTN style lines. Voicemail messages were passed between geographically dispersed voicemail servers by dialing and playback to record over the PSTN lines in real time. It took hours, even over a private ATM network, to move and synchronize user messages.
I had each voicemail server email their recorded messages as attachments to a central mail server. The email server would then route the attachments through a set of mail queues in which each recording was processed by queue rules. This eliminated the real time delays of playback across the private network. Allowed message to be transferred within seconds instead of hours. Cut the required voice bandwidth significantly. And gave users a copy of their voicemail messages in the email inbox.
The reverse was also done in that email messages forwarded to the EVE system were converted to sound via Text to Speech (TTS) so that in the pre-smart phone era users could receive email on their cell phones.
But that is another post to come.
Labels:
Borland,
C/C++,
email,
EVE,
IO programming,
MSO,
multi-media,
Music Choice,
networked objects,
OOD/OOP,
STL,
Streams,
Stroustrup,
Teale,
Tries,
TTS,
Turbo C,
voicemail
Sunday, September 1, 2013
Programming a Go-go;
Go dog Go
See Go run
Run Go run
Go West young man
Discovered yet another programming language today while doing some noodling on an example application I am contemplating building. Go.
How did this happen? Well I found my way to Google's Android Development area and then to Google's online Cloud and App stuff and was looking at Ruby on Google when I noticed that I might need to learn Python. And there was Go just sitting there waving its hand saying "pick me! pick me teacher, I am ever so smart."
Well normally I hate classes where some twerp keeps trying to answer all the questions by shouting "pick me." But in this case I think I may learn Go because Google is using it and some smart people are saying it is constrained well enough to be of use. Being a C/C++ guy from back in the day I would prefer to use Ruby but I am going to see what Go has to offer and try to make a few of the sample apps.
I did download the Google Android environment this week but having a few problems getting the Android Simulator to come up without an error. Since my "big" ideas needs both Android device knowledge and Google App and Google Cloud knowledge I will be investigating them this month.
As a heads up if anyone here has thoughts or knowledge on ChromeCast API, location services and simple lists in Google Cloud then you may want to chime in or follow along.
Friday, August 30, 2013
C++ does not mean C#, dot Net nor JAVA (no JavaScript is not a version of Java either)
I am a C/C++ OOD/OOP Software Engineer who does Multi-Threaded Systems Network design and development. I have designed, sold and created multi-million dollar systems and contracts.
I am not a C# or .NET programmer. And yes there is a difference between C++ and C#. Yes, I know enough about C#, .NET, Java (and JavaScript) to use these languages for minor tasks when needed. No I am not going to change my career because you have an urgent need for a C## programmer and can place me tomorrow.
Why won't I change my career to do C#? Well to put it bluntly C++ level developers become artists who work with oil paints at some point in their life, while a C# and .NET programmers will be house painters for a long time.
Why? My guess is most of the C# programmers have not been trained as Computer Scientist and C#, .NET or HTML are the only languages they have worked in while I have professionally programmed in dozens and I am learning a half dozen new ones to keep my skills up or otherwise I would be a C# programmer and not a C++ Software Engineer.
So no, please don't ask me if it okay to submit my resume for a C# position that wants 8+ years of C++ programming and design experience.
I am not a C# or .NET programmer. And yes there is a difference between C++ and C#. Yes, I know enough about C#, .NET, Java (and JavaScript) to use these languages for minor tasks when needed. No I am not going to change my career because you have an urgent need for a C## programmer and can place me tomorrow.
Why won't I change my career to do C#? Well to put it bluntly C++ level developers become artists who work with oil paints at some point in their life, while a C# and .NET programmers will be house painters for a long time.
Why? My guess is most of the C# programmers have not been trained as Computer Scientist and C#, .NET or HTML are the only languages they have worked in while I have professionally programmed in dozens and I am learning a half dozen new ones to keep my skills up or otherwise I would be a C# programmer and not a C++ Software Engineer.
So no, please don't ask me if it okay to submit my resume for a C# position that wants 8+ years of C++ programming and design experience.
Missing Questions and Standard Formats on Job Sites
So I have been posting my resume and experience on the most better job board sites for a few weeks now. Using these boards has been an experience for a Systems Analyst types such as myself. The basic principle with these site is you give them your name and contact information along with a version of your most current resume along with a standard cover letter. They match your data with jobs their algorithm believes to you are qualified to work in. Well, as I say, that is the theory.
My use and ongoing research shows that it is a flawed method at best. The HR users, recruiters and hiring managers are not getting the best information they need to make a good decision as to hire the poster or not. What they are getting is some words and phrases crammed onto a few pages, often reformatted badly. Anyone here ever decided whom to date from online profile knows the problems facing the applicant and the hiring managers. They just don't have enough of the correct information to make a good decision about who to employ. So what is missing from these sites?
Let's begin with what I don't like and finish up with a few qualified suggestions.
First there is no standard form of resume asked for by the sites. Sure they give suggestions on what your "paper" resume should look like on paper. What they don't give you is a format you should be creating your resume with so that it will be machine readable by their site. Oh sure, they have scanners that parse your typed resume into what they believe is correct. But my name is not "G.729 Intellivoice" and I have not worked at "Majoring in Computer Science" nor held a position of "improve existing".
The downside of this unstructured process is that I have a few resumes each of which highlights my abilities and career for specific positions. Or if I update my resume and re-submitting it to the parsing engine. I then have to go through and correct all their parsing mistakes. This is dull work which I do not like doing which means I do not do my best effort at using the site because no one likes to beat their head against a wall too often.
Give me a clue in the form of an outline for your parser so I can then explain my story in a form that your parsers will correctly understand.
On the flip side there seems to be no standard form for, or enforcing of, how positions are posted by employers. As a job seeker I am doing the same 30 second review of a job that hiring types are doing of my resume. I am looking for certain items. If I do not see what I am looking for I move on to the next posting. Oh sure, sometimes I just apply for the position anyway because I like what I have read but I am just not sure what the Job is looking for in an applicant.
Yes, yes, calm down now. No need to rant here and now. I know that plenty of job seekers would try to game the system if they knew all the standard forms but who cares? The scammers are pretty easy to spot by a qualified manager so that the scammers can be reported by the posters to the site to keep the under control. A few thumbs down on resume submissions will eventually teach the problem applicants to behave.
There is no interview conducted by the site as to the particulars of the job and work environment. Why not save us all some time and trouble by posting a some valid questions for the applicants and the job posters. What questions you ask then? Well certainly none of those crap (yes, crap) questions about how many ping pong balls will fit in a 747, the weight of a 747 or the take off velocities, V1 or V2, of a 747 on the moon (unless you are an aircraft design engineer.) I am hoping that companies have realized, as I did about 20 years ago, that these standard interview questions the second thing uploaded to the Internet. No, I am asking for are practical questions that will assist in placing the candidate so companies can get on with business.
If essay responses are too hard to handle multiple choice questions could be offered. But really folks, adults should be able to answer a question with a dozen words in writing.
My use and ongoing research shows that it is a flawed method at best. The HR users, recruiters and hiring managers are not getting the best information they need to make a good decision as to hire the poster or not. What they are getting is some words and phrases crammed onto a few pages, often reformatted badly. Anyone here ever decided whom to date from online profile knows the problems facing the applicant and the hiring managers. They just don't have enough of the correct information to make a good decision about who to employ. So what is missing from these sites?
Let's begin with what I don't like and finish up with a few qualified suggestions.
First there is no standard form of resume asked for by the sites. Sure they give suggestions on what your "paper" resume should look like on paper. What they don't give you is a format you should be creating your resume with so that it will be machine readable by their site. Oh sure, they have scanners that parse your typed resume into what they believe is correct. But my name is not "G.729 Intellivoice" and I have not worked at "Majoring in Computer Science" nor held a position of "improve existing".
The downside of this unstructured process is that I have a few resumes each of which highlights my abilities and career for specific positions. Or if I update my resume and re-submitting it to the parsing engine. I then have to go through and correct all their parsing mistakes. This is dull work which I do not like doing which means I do not do my best effort at using the site because no one likes to beat their head against a wall too often.
Give me a clue in the form of an outline for your parser so I can then explain my story in a form that your parsers will correctly understand.
On the flip side there seems to be no standard form for, or enforcing of, how positions are posted by employers. As a job seeker I am doing the same 30 second review of a job that hiring types are doing of my resume. I am looking for certain items. If I do not see what I am looking for I move on to the next posting. Oh sure, sometimes I just apply for the position anyway because I like what I have read but I am just not sure what the Job is looking for in an applicant.
Yes, yes, calm down now. No need to rant here and now. I know that plenty of job seekers would try to game the system if they knew all the standard forms but who cares? The scammers are pretty easy to spot by a qualified manager so that the scammers can be reported by the posters to the site to keep the under control. A few thumbs down on resume submissions will eventually teach the problem applicants to behave.
There is no interview conducted by the site as to the particulars of the job and work environment. Why not save us all some time and trouble by posting a some valid questions for the applicants and the job posters. What questions you ask then? Well certainly none of those crap (yes, crap) questions about how many ping pong balls will fit in a 747, the weight of a 747 or the take off velocities, V1 or V2, of a 747 on the moon (unless you are an aircraft design engineer.) I am hoping that companies have realized, as I did about 20 years ago, that these standard interview questions the second thing uploaded to the Internet. No, I am asking for are practical questions that will assist in placing the candidate so companies can get on with business.
If essay responses are too hard to handle multiple choice questions could be offered. But really folks, adults should be able to answer a question with a dozen words in writing.
- Why are you looking for work now?
- More money
- More away time
- Shorter Commute
- Change of Scenery
- A better job
- What dates in your employment history are directly related to this position?
- Which page or paragraph on your resume should the Hiring Manager be looking at first to show you are the best applicant for this position?
- Do you have questions for the Hiring Manager about the job not related to salary?
- What are you looking for in Life?
- What is your goal after getting hired?
- Do you want a long career with us?
- Why are willing or not willing to relocate for this job?
- Are you able to work in a place where developers don't shave, wear sandals to work and don't bathe regularly? (Lord I wish I knew the answer to this one before working in Redmond.)
Notice no questions about Salary or hourly Rate?
- How long to your really need me to work for you in this position?
- Are you looking for promote from within?
- How often does the team serve cake for birthdays? Will there be ice cream too?
- What beverages does your company supply?
- What is the real dress code?
- What happened to the last person who held this position?
- Is there any real business reason that I cannot telecommute or work remotely for this job?
- Why are you interested in me as an application when I will have to move 2,000 miles to take this job? Are you sure you are using the right resources to locate another candidate closer?
Okay, so my questions are not the greatest but then again I am not the HR type.
If some sort of better scanning, screening and interview was available to applicants and managers then the whole process would work a bit more efficient all around.
Thursday, August 29, 2013
The Start of Mastering Erlang
I like programming in the Telecom world because most of the folks involved in Telecom are pretty bright. They understand the need for speed and accuracy in the systems software. They understand the true costs of five nines or 99.999% up time.
Searching for work I found that good salaries are being paid to Erlang developers. I picked up three books on learning Erlang from Amazon.
Searching for work I found that good salaries are being paid to Erlang developers. I picked up three books on learning Erlang from Amazon.
- Introducing Erlang: Getting Started in Functional Programming
- ERLANG Programming,
- Programming Erlang: Software for a Concurrent World
I found the second and third books in this list to be better suited to my needs. The Introduction book is more suited to someone for understanding Erlang. The other two books provide a good combination of explanations filling in where the other book is weaker for me.
I read the first few chapters of each book before installing Erlang itself on my OS X machine. Each of these books has extensive instructions on where to go to download and install the Erlang virtual machine.
I use vi/vim via a terminal window to write my Erlang source code. I usually open a few terminal windows for editing source files and then a one or two more to run the environment in. The use of terminal work allows me access my OS X desktop from SSH sessions throughout the house or while I am on the road.
After about 20 hours of programming Erlang I can get it to do what I want it to do for the most part. The transition from years of procedural programming languages to a functional language is building muscles in my brain where I never thought I had muscles.
What threw me at first was that Erlang does not allow variables to be assigned more than once. This takes a bit of modern thinking to get past but it does work surprisingly well. My test design that I learn new languages with shows that what took several hundred lines in Perl is only going to take about 25 lines in Erlang. That is one of the advantages of that I am seeing straight away is the shortening of source files means less mistakes from less typing and shorter files to maintain.
The advantage of shorter source file in Erlang seems to also translate into much faster computing. My test design is still very procedural in nature. I have not done a direct comparison as of yet but it does seem to be a good 50% to produce the same result in Erlang.
At the same time I am also reading books on Lisp and Clojure with an eye on Haskell and Schema soon after. Erlang is to me a language cross between Prolog and Lisp with its use of recursion and lists to get the work done.
I still need to begin work on distributed Erlang design and system. I have a few OS X machines available but I need to reassemble 2 or 3 Linux machines to have a good half dozen nodes to work on. Though I have been distracted this week by a desire to download the Android environment and do a little work there.
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.
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.
- 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.
- 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.
- I can design and develop Multi-Threaded software which means that I can do complex software engineering tasks.
- I can design and write Multi-Threaded network software which means I can do very complex software engineering tasks.
- I can design and write recursive Multi-Threaded network software which means I can do very, very complex software engineering task.
- 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.
- 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.
- 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.
- I write Browsers. I don't write web sites.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 802.3, 802.3a, 802.3e, 802.3u, 802.3af, 802.4, 802.5, 802.7, 802.11, 802.15.4/5
- I know the differences between Ethernet, CheaperNet, Token Ring, Bus, Star, Mesh, Tree and Daisy chain networks on the physical and logical topologies.
- I know the difference between a bridge and a switch.
- Even better, I know how to fix these when someone cuts the wires.
- 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.
- 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.
- 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.
- 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.
- 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.
- I am a Software Development Engineer with specialites. If you need an application programmer then say that. Each SDE is different.
- 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.
- I am good a GUI or UX/UI design but I do not like developing the software as the specifications are often fickle.
- 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.
- 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.
- Try not to approach me to do work for a manager that is looking for a recent grad or apprentice programmer.
- I don't write web pages; I design and write Web browsers; there is a difference.
- 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.
- JavaScript is not the same as JAVA.
- 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.
Subscribe to:
Comments (Atom)