requirements • architecture • programming • testing •
Software Engineer

Software Engineer with over a decade of experience, including systems architecture, full-stack development, project management, database design, cyber-security, and some cloud stuff.

Software Engineer. Historically, my expertise has been web development on the .NET stack, which includes ASP.NET (Webforms & MVC), C#, Sql Server, & Internet Information Services (IIS). Nearly all of my web development relies heavily JavaScript, CSS, HTML, XML, and other supporting technologies. I say "historically" because, for the last few years, I've focused much more on back-end development and systems architecture. I've professionally developed or maintained applications written in Java, C++, MySql, Node.js, and a few other technologies. I've dabbled in Python, PHP, MatLab, R, x86 assembly, and others. I have never once written a single line of Perl. If possible, I try to avoid VB Script, VBA, or Classic ASP. VB.NET is not exciting or sexy, but I have no real aversion to it and have maintained several applications written in it.

Mentoring is a fast growing interest of mine. I find many junior engineers are perfectly capable of writing impressive phone apps or Angular based websites. These same engineers, though, often lack comprehensive knowledge of more fundamental concepts, such as the basics of HTTP. Another example would be web-page sign-in: many junior developers can quickly create a website with user-login functionality, but they usually rely on an out-of-the-box feature provided by their framework to accomplish this. To them, login is an opaque box and they're not really aware of how the login mechanism actually works. For small sites, this may be fine, but how will this scale? What are the implications for being able to put your application behind a load balancer? Code-Spelunking into these details has always been an interest of mine and I'm developing ways to share my learnings with others and better engage young developers.

I started programming by teaching myself using my TI-86 calculator manual in early high-school; my motivation was to write programs to do my math homework for me. My first program multiplied any number by 5. I then explored QBasic, JavaScript, and C++. I attended Utah State University to study Computer Engineering, which is a specialized form of Electrical Engineering (emphasizing Computer Science) and is in the College of Engineering. After 2 years I switched to Computer Science with an emphasis on Electrical Engineering; Computer Science was in the College of Science. Since my departure from USU, the CS department has been moved from the College of Science to the College of Engineering - a move with which I disagree.

image of lenna commonly used in image processing research My Lena. Lenna, the image to the left, is a very famous image among those involved in image processing and image processing research. It's frequently seen in books and papers on the subject of image processing. In the summer of 2007, I was doing some undergraduate research on edge-detection in images for computer vision purposes. The sobel operation, used in matrix mathematics, is often used for this. I contributed an example photo to the Wikipedia page on the Sobel Operator to show the differences between the x-gradient and y-gradient applications of the Sobel Operator. It was a Sunday and I walked around campus for hours, camera in hand, until I found a scene that had vertical lines, horizontal lines, and curved lines all in one shot. The original image, x-gradient, y-gradient, and combined gradient may all be seen below. I call it "My Lenna" because this grascale photo of a bike rack and brick wall has become an image that is commonly used in research, research papers, books, and other material on the subject of computer vision. I've found it used in hundreds of documents. I spoke to a recent college graduate about image processing recently, and he mentioned it. It gave me warm-fuzzies.

Every time I Google "bikesgray.jpg" I find new publications. I wish that I had named the file better....
...and man do I wish that I'd made the image perfectly square instead of rectangular.