npmaile

Unix did it! Simpsons did it, but software

A common theme I see on pages like hackernews and reddit is that many SAAS startups these days are just pretty frontends to things *nix systems have had for years. I did a duck duck go search for best SAAS startups and the first result was this article by SoftwareSuggest. I've never heard of SoftwareSuggest, but I assume their strategies for determining the best SAAS startups is as good as any. Here is my analysis (feel free to email me any honorary degrees and pulitzer prizes for this groundbreaking work that society definitely needed).

  1. 9Lenses: digital diagnostic tool that facilitates business consultants to prosper in a largely data-driven....... blah blah blah. this one wasn't unix
  2. Abydos Technologies: Big school management software— you got me here too not unix
  3. Accelo: enterprise software to automate professional services in the cloud — that sounds a lot like shell scrips on a shared system UNIX!
  4. Aeroleads: marketing software — not unix
  5. Appcues: interactive tutorials to improve usablility — man pages have been improving usability for about a billion years. UNIX!
  6. Troop Messenger: new irc chat UNIX!
  7. Applane Solutions: Process automation aka shell scripts UNIX!
  8. BetterCloud: did someone say cloud? that sounds like a shared machine with a little networking UNIX!
  9. BISON: bison? sounds alot like gnu. *NIX!
  10. Boomtrain: I didn't read the description but something in there said artificial intelligence. Use lisp... and use UNIX!
  11. BreatheHR: Human resources software. *nix people aren't known for being people people. not unix
  12. Bright Pattern: Contact center solution. See number 11
  13. BrightFunnel: predictive intelligence. see #10 UNIX!
  14. CallHippo: Virtual phone system. it's a shame that no phone corporation would ever have anything to do with unix... oh wait ATT INVENTED UNIX!
  15. Canvass: marketing software. not unix
  16. Chorus: “supportive saas startup software that delivers conversation intelligence” I don't know what that means, but I think making things up is decidedly UNIX!
  17. Clearbit: Business Intelligence. See 10 UNIX!
  18. Cognitev: artificially powered intelligence platform #10 UNIX!
  19. CompStak: real estate software. not unix
  20. CoSchedule: calendar app UNIX!
  21. CRMfusion: Sales automation software not unix except for the fact that it says it has a minimalist interface. That's a UNIX! move if I ever saw one

14/21 so far. I don't think I'll keep going. you get the idea

Note: I am completely serious about this list and stand behind every word I put in it. Please take it seriously.

My Path to a Real Data Sciency Programming Job

Going into college, I had no idea what I wanted to study. I decided on Business Economics because it seems like a good thing for a CEO to have studied and I hope to be a CEO some day. Also, Warren Buffet studied something analogus to it, so if it is good enough for him, it's good enough for me. I had found a part time position at a copy and print store in my college town following High School Graduation (after attempting to sell a to-be-unnamed vacuum cleaner door to door), and was on my way into the undergraduate program. 

After being fed up by my own relative uselessness in the company when it came to design work and not being needed for my technical skills I had gained through being a tech enthusiast as a teen and high school engineering classes, I began to search for employment elsewhere. I applied to every job under the sun and ultimately found a job at the tech support desk at my school. While there, I was introduced to a few software engineers looking for a place to do homework while getting paid as well as some MIS majors trying to get a foothold into the tech industry. I was particularly intrigued by one of my colleagues who was learning Erlang and the Plan 9 operating system by Bell Laboratories. He and I quickly became friends as he began showing me the ropes on deeper technological interests like the linux command line and the nuances of functional vs object oriented programming.

I quickly found myself enrolled in the Computer Science program alongside Business Economics in order to gain a greater understanding of the complex concepts my friend had been proselytizing about for the last few months. I found the class to be difficult in the amount of work required, but light on complex concepts. The next semester, I got fed up with the homework requirements of the program and dropped it completely. I figured I could learn at my own pace and become useful in programming on my own time through reading.

I started using linux full-time around this time, starting with ubuntu and ultimately landing on Arch Linux for my personal machine and Alpine on my servers (though much later). Through reading about Linux and being exposed to it so much, I gradually became familiar with Shell scripting and Around this time(mid Junior year), I began trying to expand my position at the tech support helpdesk by attempting to start an internal team to program solutions to the various issues we had in the office. This endeavour, however, was short lived as I was gently whisked away to the networking team at the university to help write scripts and programs to automate tasks and analyze some of the data generated by the networking programs.

My last year at college was spent generating Python scripts to do anything from stress-test the phone system, to analyzing the server configurations to look for anything out of place in time for upgrades. In this time, I feel that I went form a beginner in programming and software engineering to somewhere in the beginner/intermediate area. I used these new skills as well as some that I learned from yet more unfinished side projects to get my first job out of college. 

I decided I wanted to get out of the midwest, so I applied to every job I could find in the Atlanta area as graduation approached. I had some family there and figured it was as good a place as any. Over the next few weeks of sending around 100 applications, I received many rejection letters and radio silence from the vast majority of places I applied to. My saving grace, however, was the fact that two corporate recruiters had found my resume and started connecting me with jobs. Of those jobs, one I never heard anything about beyond a description from the recruiter, one I did a skype interview and didn't get, one I did a phone interview and decided I should keep looking for other offers, and finally, one was right up my alley and they seemed to like me on the phone, so I was invited for an in person interview the Friday following my graduation, in Atlanta. 

I got to the building, and after security let me in, I was greeted by the person I was to replace and my future manager. I sat down in front of a computer and was told to reverse a string in python as well as to complete a few tasks more specific to the job at hand. There I was, completing the famed coding interview. I felt like I wasn't doing great as I couldn't remember the right functions to call without a little help, but I think I wowed them when I wrote a functioning lambda expression correctly on the first try. A few hours later, I was given the offer, which I quickly accepted.

That's my story. I hope someone gets something from it. I suppose I should include some lessons learned here at the bottom. 

  1. Probably start applying for jobs before you decide to move to a new city. 
  2. Read books
  3. Your path is your path. Not everyone will see it how you do, and it will probably change more than once.