About Me - Personal Projects - Classes - Contact

About Me

Family History

I am the youngest son of Allen and Marilyn Harrold. My father works for Butler Manufacturing Corporation, he graduated from the University of Nebraska in 1973 with a degree in Architecture and went on to get a Master's Degree in Mechanical Engineering from University Of Colorado. My mother currently is the manager of a Cokesbury Christian Book Store, she Graduated from The University of Nebraska in 1973 with a degree in Elementary Education. My older brother, James, Graduated from Colorado School of Mines with an Undergrad in Chemical Engineering and a Masters in Metallurgy and Mineral Economics.

Job History

  • Software Engineer - Castle Creations Inc.
    January 2012-Present
    • Developed software systems in C#/MSSQL that integrate with the database for Microsoft Great Planes 2010/2013. These systems performed many essential business functions such as inserting sales orders, generating packing lists, calculating MRP buying needs, and recording work times on assembly line.
    • The largest system is a full suite of applications that facilitate the recording of times, displaying work instructions, maintaining a history of work performed and breaks taken, keeping track of product locations, maintaining a warehouse inventory, and producing reports.
    • Developed iOS Application for adjusting settings on products.
    • Served as the entire IT department for the 100 person office.
  • Application Developer - Office Of Mediated Education
    September 2008-December 2011
    Worked in several systems improving code, fixing problems and developing new pages and features as requested by instructors and administrators at K-State.
  • Software Tester - Office Of Mediated Education
    April 2008- September 2008
    Performed testing of defects on K-State Online, Axio Learning, K-State's EIS system, and K-State's Person Database Tools. Learned regression testing techniques.
  • Summer Worker/Electrician - Pro Circuit Incorporated
    May 2006-August 2006
    Was a summer helper before coming to College. Helped rewire a local middle school and replace all the light fixtures.
  • Sales Associate/Mechanic - R/C Zone Central
    March 2005-April 2006
    Worked on and sold R/C cars. Also helped maintain an online store and shipped orders.

Personal School History

I graduated from Shawnee Mission South High school in Overland Park Kansas in May 2006. I went on to pursue an undergraduate degree in Software Engineering at Kansas State University. I completed my degree in December 2011. For more information about the courses I took for my major, please view the Classes panel.

Programming History

I started programming computers at a fairly young age. I remember teaching myself, with some help from my dad, Visual Basic 6 from a book when I was in Second and Third Grade. In Sixth grade I learned Qbasic using the computers we had in the classroom, and the following summer I took some summer classes in Qbasic programming that were being offered by my school district. In middle school I taught myself the basics of html and web programming. In high school I took 2 years of Java programming and took the Computer Science AP test.

Programming Languages

Because of the fact that I have been programming for such a long time I am familiar with many different languages and if there is a language I need to know, I am able to learn it and become proficient in it in a very short time. I know the following Languages:
  • C/C++
  • C#
  • Objective-C
  • Java
  • PHP
  • JavaScript/AJAX
I have worked with several other languages that are not significant enough to mention.


While not at work, I still like to write software for my own personal use. I have several personal websites that I maintain for my use. I am working on building a home automation and home security system. When I am not writing software I have several hobbies to help my fill my time. These hobbies include video games, working on my car, building computers, and racing remote controlled cars.

Personal Projects

  • Personal Porfolio Page

    What you are looking at right now. It is page to hold personal information for potential employers to look at and learn more about me. My first attempts at JavaScript animation. I also strived to make it meet all W3C standards for XHTML 1.0 and CSS. I was unable to pass the CSS compliance test because I chose to use a style element that is not accepted by the test, but is properly implemented in all modern web browsers.
  • Deadmau5 Costume

    My handbuilt Halloween costume for Halloween 2010. More details in the link
  • Ajax Chat Room

    My First attempt at Ajax, so I decided to make someone thing that could be useful. Currently only has one room but my plans are to expand it to have several rooms. Has a few bugs, the worst being that any messages that are sent from my username are sent twice.
  • Personal Home Page

    This is a page for me to use as a homepage on all computers that I go on. The legacy version of it can be found here and is made with PHP reading a text file in and using JavaScript to choose a random background that matches the user's screen size. It was limited to one set of links maximum because of the hard-coded nature of. The version uses a mySql database to populated the headings and links. It has user accounts so that users that I allow to create accounts can do so and make a version of the page just for themselves. Many of the functions are done with Ajax to reduce the number of times the background is downloaded from the server. A development version of it can be found here, although there is little in development currently, just working on a bug with moving of the columns mainly. Eventually I want to make it so that there can be more than 1 row of column headers if need be, and make it so that the groups can either scroll, have a limited number of links, and/or center themselves vertically to prevent links from being positioned off the bottom of the screen.
  • Photo Gallery

    A photo gallery to hold my photos. Made with PHP to read the files in from the directory and then uses JavaScript to position and display the photos. I choose to make it read through the directory because I was looking for a solution that didn't require a database to keep updated or a flash file to update every time I wanted to add photos. I also made a PHP page that works as a script to go through all the directories and look to see if there are any photos missing thumbnails and then creates them if it needs to. If I were updating my photos more often this could be run as a daily kron job.
  • Autoblog

    My Second attempt at making a blog site. I have never finished one becuase of time constrants from classes and lack of interest to keep it updated. I have the style of the site all complete, and have the ability for posts to contain Youtube or Vimeo videos. All that is left to do is create user accounts, make comment system, and make the page to create new posts. Upgrades from my previous blog site include: Proper tags with a Tag Cloud, a coustom developed ajax calendar that allows readers to sort by dates, and the Youtube and Vimeo embedding. Future upgrades would include an ajax gallery overlay, refinement of the tag system, and a SSO(Single Sign On) system to be crossdeveloped between all of my sites.
  • TechPinion.org

    A tech news blog. I am still working on the last few details of this but it is basically a tech news/blog site for myself to give my opinion on different tech news stories. I made this because I didn't want to use a premade content management system like so many people are doing these days. I think that the content management systems are great for people who don't know how to program but shouldn't be used by those who can.
  • Unlinker for iPhone

    JavaScript bookmarklet for use on the iPhone. Work similar to Unlinker for Firefox. Used to make browsing of web forums simpler when several photos have been linked. This function will look at a page and create a new tab on the iPhone containing all the pictures that were put as links on the current page. This function can also be modified to work with Opera web browser or Safari web browser.
  • Image Compare

    Small quick application I developed. I was entering a contest to pick out all the differences between 2 pictures, 1 original and 1 that had been doctored. To increase my chances of winning, I wrote this quick app the read the images into arrays and iterated over the arrays and compared each values and created an output image showing what pixels had been changed. Wrote in Java no user interface, all image locations were hard coded. No online demo.
  • PHP Primer

    While taking CIS562, a course about PHP and mySQL, I felt that the basics of PHP were not being covered at all by the professor. When the first homework assignment came out, I realised many of my classmates didn't know how to use php, so I wrote a how to guide for them and sent it to the course listserv.


Completed Courses

  • CIS625 - Parallel Programming Theory

    Architecture, design, modeling, implementation, and verification of concurrent, parallel, and distributed software; aspects such as real-time programming, parallel simulation; fault-tolerant programming; grid computing, embedded systems control.
    Final Project
    The final project was to create a distributed system to share medical documents between different locations. We developed a server application that kept track of what records each location had in their archives, handled requests for a record from another location(Pull), and for sending a record to another location(Push). The System also had security built in to it that allowed records to be locked to certain users or locations. All parts were developed by me and a partner in Java and used JMS(Java Messaging Service) to send messages between the different threads of the System.
  • CIS562 - Enterprise Information Systems

    Data modeling for business applications, database management systems, relational data model, normal forms, query language, security features, web access and scripting languages, development process and management, issues in management of enterprise information systems.
    Homework Projects
  • CIS560 - Database System Concepts

    Concepts, approaches, and techniques in database management. Representation of information as data, data storage techniques, foundations of logical data models, data retrieval, database design, transaction management, integrity and security.
    Final Project
    For our final project, I built a web store interface that allows an admin to access, edit, and create product records in inventory. Because the focus of this course was databases, I didn't spend very much time with the style of the page, and as such it is fairly ugly. The running web store can be found at http://www.rharrold.com/Classes/560/.
  • CIS551 - Introduction to Computer and Information Security

    An introduction to computer and information security, including common attack techniques, application of cryptography in security, authentication and authorization, network security, enterprise network defense, web security, and analysis of design flaws that render a system vulnerable. Course projects provide hands-on experience on both the defense and offense aspects in cyber space
    Homework Project
    • Homework 1: The objective of homework 1 was to create an exploit for the NWEB web server from IBM. The web server has been patched but we used an older version of it to create the exploit. Our exploit was to overflow the stack in the internal memory so that we could paste our own code into the stack and call it in order to give us a remote shell in which we would have full access to the server.
  • CIS544 - Advanced Software Design and Development

    Advanced concepts and practicum in object-oriented analysis, modeling, design, implementation, testing, and use of CASE tools; relationships among structural, static, and dynamic models; relationship among conceptual, system, and implementation models.
  • CIS541 - Software Engineering Project II

    Continuation of CIS 540. Final implementation, integration, and testing of a software system. Introduction to configuration management, project management, and software maintenance.
  • CIS540 - Software Engineering Project I

    The first semester of a two-semester capstone course. Current practices of software development, requirements, design, prototyping, measures and evaluation. Specification, design, and prototyping of a software system.
    The project my team selected to complete is called the High school Environment Game. We are to design and program a game for the EPA to give to high school students to teach them about green technology. The game will be developed using the the Ogre Game Engine.
  • CIS505 - Programming Languages

    History, programming language concepts including type, scope and extent, abstraction mechanisms and control; programming paradigms, including one or more of logic, functional, and object-oriented programming, and programming languages supporting the selected paradigms; interpreters, compilers and virtual machines for the selected languages; storage management and garbage collection; type checking and type inference.
    All projects for this course were done in the functional language OCaml
  • CIS501 - Software Architecture and Design

    Principles and patterns for design and structure of software, development of object-oriented models, examples of software architecture.
  • CIS490 - Topics In Computer Science: Game Programming

    Learned how to program games using C++ and C# using Windows GDI, DirectX 9, and the XNA development platform. Also learned how to program simple AI, collision detection, physics, and matrix transformations.
    • Brickout
      First basic windows game. Uses the Windows GDI for graphics. Similar to the classic game Breakout but with the game board rotated sideways.
    • Tank Shooting Game
      Windows GDI game that features tanks that shoot at each other. Has terrain smoothing to increase the visual appeal of the game.
    • 1942 Clone - Choppa
      Top down scrolling shooter. Uses DirectX and C++.
    • Platformer Game
      Based on the XNA Starter Kit for platformer games. Has been modified to use a true physics engine.
    • RPG-Dream Hands
      Based on the XNA Starter Kit for RPG games. Most of the work here was focused on creating a story and maps for the world.
  • CIS450 - Computer Architecture and Operations

    Introduction to modern computer architectures: register transfer abstraction, addressing modes, basic operations (data transfer, arithmetic/logic, and control operations). Understanding relationships of higher-level language constructs to corresponding assembly instruction sequences generated by compilers. Relationships studied include storage classes to memory organization and function invocations to activation records. Introduction to interrupts and low-level I/O operations.
  • CIS415 - Computers and Society

    A study of the impact of computers and associated technologies on society, including such topics as ethics of computer use, computer fraud, protection of privacy; legal, moral, and public policy-making responsibility of computer professionals.
  • CIS308 - C/C++ Lab

    Fundamentals of programming in C and C++
  • CIS301 - Logical Foundations of Programming

    Logical formalisms used to model and reason about computer systems. Propositional and predicate logic, syntax, semantics, and proof theory; soundness and completeness issues. Mathematical induction. Program verification: invariants and program logics.
  • CIS300 - Data and Program Structures

    A study of common data and program structures together with associated algorithms. Topics include interfaces, design patterns, arrays, stacks, queues, lists, trees, hash tables, recursion, binary search, and tree traversals. Experience with both use and implementation of these structures and algorithms using a modern programming language. Discussion of tradeoffs involving performance and software maintainability.
  • CIS200 - Fundamentals of Software Design and Implementation

    Took in highschool as a part of the Computer Science Ap Course.
    Principles of algorithm design and their application to procedural programming: state, control structures, functions, modules. Patterns of conditional and iterative control structure. Program testing. Introduction to data structures, classes, and objects. Programming projects.
  • Math551 - Applied Matrix Theory

    Learned how to use a matrix for more than just a storage structure and how to manipulate them for processes such as image storage, image compression, internet search, or for 3d scaling.



Personal Email: roberth9000@gmail.com
Work Email: robert@castlecreations.com

Social Networks

Click to see my Facebook
Click To See my Twitter Click to see my LinkedIN