About

Contact

Kansas City, MO, 64110

816-547-2579

stephanmil@gmail.com

Availability

Freelance

I do pick up side work and consulting jobs every now and then and have worked on a few projects for charity. Any side work I do is limited to about 10-20 hours a week. I am a full stack developer that has worked with many stacks. As long as I have a design or theme and a good set of requirements, I can do just about any job.

Recruiters

I currently am a Senior Software Engineer and am paid near the top of that pay scale for this area. I don’t plan on ever becoming a manager. It is not my cup of tea. I create things. So I either only see myself in this role with Architect in my future. That being said, the benefits where I work are great and I like the work and the people. But if you think you have something better, email me or use my contact form. I rarely answer phone calls from numbers I don’t know. Life’s too short. I won’t be able to relocate, though I do plan on moving to Colorado with the next 8 years or so.

Code Skills

I am a full stack developer who has worked with many stacks.

I started writing PHP and Javascript code for CMS’s and still do every now and then:

  • Wordpress
  • Drupal
  • osCommerce
  • Magento
  • ZenCart

I soon ran into the limitations of these platforms and the value of writing just the code you need using frameworks, first in PHP and Jquery.

  • Zend framework
  • Lithium frameworks
  • Phalcon Framework (I wrote a book on this one for Packt)
  • Laravel
  • Apache
  • Nginx

Along the way I picked up Python, mainly to deal more easily with backend processes and processing data. Some of the libraries and tools I’m familiar with:

  • Numpy
  • SciPy
  • NLTK
  • Flask
  • Bottle
  • Django
  • Keras
  • Theano
  • SciKit Learn

Python is my preferred language for anything of this sort because it is used by many scientists, statisticians, mathematicians and data scientists. In other words, a lot of smart people who don’t want to waste brain cycles wrapping their heads around Java or C++. Python is easy to learn and makes it easy for academics to put their ideas into code instead of fighting with a language. Hence, there are a lot of libraries in Python written by the actual people who came up with the idea, instead of a separate programmer writing code according to requirements. We all know how that goes. And with libraries like PyCuda, you can go just about as fast as C and use the GPU. A machine learning, hands down, there are more libraries available to do the work in Python than any other language.

So, I had to get that in, but after Python, I realized learning any other language would be easy and once you learn a framework in one language, you find similar functionality in other frameworks and a learning curve that is easy. So I went to the MEAN stack and went pure Javascript for a while. Up to that time, I had only used Jquery.

  • MongoDB
  • Express
  • AngularJS
  • NodeJs
  • es6/Babel
  • Typescript
  • Angular2
  • Ionic2
  • Electron
  • KnockoutJS

And during that time I even wrote a native node module in C++ to process some calculations a lot quicker. So then I could add C++ to my list of languages, it being the first time I touched C or C++.

Now for my job, I jumped into the Microsoft stack for the first time:

  • C#
  • SQL Server
  • TFS
  • Visual Studio
  • IIS

Though for my own projects and side projects I tend to go the cost effective/lowest common denominator route:

  • Any desktop apps or phone apps use Electron or Ionic respectively
  • Any server code is written using Laravel because it can run just about any hosting provider.
  • I use Laravel to only create a REST API
  • I use Angular2 on the Frontend to render the site
  • I use MySql/MariaDB for the same lowest common denominator reason as Laravel
  • I use Python for any heavy data processing, backend processes, and machine learning

Data Skills

Along the way, I learned a lot of SQL, NoSQL and other various ways of handling data.

  • MySql
  • SQL Server, TSQL, and Procedures
  • Oracle, PLSQL, Packages and Procedures
  • Postgres (My preferred for many things)
  • MongoDB
  • Redis
  • Memcache
  • Neo4J
  • Hadoop
  • ZeoDB (I learned it, so it’s here)
  • Filemaker (I was forced to learn it, so it’s here)

I am putting Machine Learning here because it seems to fit:

  • Natural Language Processing
  • H20
  • Theano
  • Keras
  • TensorFlow
  • Pandas
  • Scikit Learn
  • Numpy
  • Scipy

Ops Skills

So I started out on my own creating affiliate sites. I became a full stack developer from day one because if I didn’t do it, there was no one else to pick up the job. I would never only consider doing this. I see ops as a route I have to take to do what I want to do, like eating your vegetables before you get desert. Here is an unorganized list of stuff I learned wearing this hat.

  • Linux Administration
  • Apache
  • Nginx
  • Vagrant (not any more)
  • Docker
  • Puppet
  • TravisCI
  • Jenkins
  • IIS

Code Repos

Here is where you can find some of my code. I realize I don’t have a portfolio section, but I am not a designer, although I do know how to slice PSD’s, use CSS and have spent part of every job in the frontend. I write code, so here’s some code:

Publications

In the late 2000’s, I spent a lot of time blogging and guest blogging to get my name around. It helped.

You will notice a lot of SEO content. I became a developer by way of SEO. I looked at the processes I did manually over and over and realized that a lot of my work could be automated with code.

Slowly I shifted from 50% developer/50% SEO to 100% developer. I did make great money from my knowledge of SEO but I saw it as a waste of my life eventually. I was basically spending my life reverse engineering one application other people wrote. The easy money kept me content for a while. But I am a creator and builder. It is magic seeing your ideas come to life.

Books

I’ve written two books on PHP code for Packt. I got offered to write the PHP7 book but had to turn it down due to time constraints.

I hope to write a book in the future along the lines of “How to Turn Guessing into Money with Machine Learning”, which will simplify the process of actually using machine learning to get something done, leaving out anything you don’t need to know to process your data. I spent 3 months in books I barely understood before I just picked up a tool and started using it. And I won money in this first foray into machine learning. And I proceeded to win two more times making $2100 in all for learning how H2O worked. Needless to say, I was hooked.

I hope to take readers down the same path with me and learn machine learning through contests, hitting most of the main areas of machine learning. I want to teach standard developers to not be scared of machine learning. It’s just like learning how to build a site with Laravel. First, you learn how to use Laravel and guess what, in order to do so, you don’t have to know how to write a bubble sort, how to manually code an HTTP request and a bunch of other things the framework takes care of. It’s the same in machine learning. You have a tool. You have data. You don’t need to know the math behind a perceptron to create a neural network. You just have to use the tool.

And if you can use the tool, learn and have a shot at some money at the same time, it’s a win-win. Very few development projects mocked up for books are interesting or have any value other than teaching. I figure competition will give you the motivation to not only finish the book but catch the bug like I did. Maybe throw in few bonus chapters about stock market prediction, horse race prediction and winning at fantasy football without knowing anything about sports ball.

I do understand the value of digging deeper. In fact, everyone who stays a developer for long should dig deeper to get a greater understanding of the tool they are using. But you can actually get started doing work right away and pick that up later without the three months of incomprehensible reading I was doing before you even do any work.

And guess what? Once I started using the tool, I started to understand what I had read in the book.

If you are reading this and it sounds like a good book to you, hit me up on my contact form and let me know. It will motivate me to get moving on it. And I might need beta readers since I plan on going the self-publishing route so I can control the structure.

As far as writing any more books after this, unless I get hooked on some new technology, I plan on switching to writing fiction, my first love, before I even touched a computer.

Free Software and Apps I’ve Developed

I used to write a lot of desktop shareware and freeware back in the day in Visual Basic 6. Once I got into web technologies, I didn’t see the point of keeping up with two totally different stacks. And I waited for about a decade for Ionic and Electron to come along and makes things worth the time again.

  • Zen Notebook: A Writing IDE - I have been doing writing practice as taught by Natalie Goldberg since I was about 14. I wrote longhand in notebooks. I wanted to create a tool for doing this that would be at core distraction free. Not a distraction free mode. But just you and your writing. The IDE part comes into play with the fact that Zen Notebook now handles a Diary/Journal format perfect for doing writing practice but I want it to handle novels and other type of “compiled” documents in the future. It’s a labor of love. I actually use the tool.