A quick list of qualifications
- Graduated May 2013 from Montana State University with a B.S. in Computer Science
- Well versed in object-oriented, imperative, and functional programming paradigms
- A strong passion for problem solving, teamwork, and being a part of something great
Software Developer / System Administrator at TRG (07/2013 - Present)
Experience (.NET Framework, C#, SQL Server, Hardware/networking maintenance)
Responsible for core back-end technology development, including analysis, design, coding, and testing for a 24x7 high volume website, as well as maintaining remote user access and phone systems for employees of TRG
Introduced Mercurial SCM to company for faster and much more reliable source control
Developed, maintained, and assisted in the development of international trade software applications
Experience with Windows Server 2008, IIS, and SQL Server
Web Software Developer at Product Funder (02/2013 - 07/2013)
Experience (Python, Django Framework, MySQL & PostgreSQL)
Part of a small team developing and maintaining a full-stack, front to back, startup Django web application for the ProductFunder.com crowdfunding platform.
Supporting and providing quality customer service in the development and integration of software applications and systems that enable customers to successfully meet their product funding goals
Hands on experience with MySQL and Postgres database systems, Linux environment, and git SCM
Using the Heroku and Amazon AWS cloud application platforms
This Site (Written in Node.js with MongoDB):
A simple website using Node.js, Express.js, mongoDB and Jade template. The site was a proof of concept, with a functional custom CMS; I plan to expand it with experiments of new and creative ideas.
A fully functional compiler for µPascal, using the Haskell language. This involved writing a scanner, parser, semantic analyzer, machine code generator, and supporting functions.
The goal of this programming assignment was to implement the game of Konane and create an AI player using the MiniMax search algorithm, both with and without αβ-pruning
The goal was to control the movement of a race car along a pre-deﬁned racetrack. Wanting the race-car to get from the starting line to the ﬁnish line in a minimum amount of time, using Reinforcement Learning algorithms.
- Compilers (Haskell)
- - Senior capstone course. Compiler design and construction. Scanning, parsing, symbol tables, semantic analysis, intermediate representations, run-time memory management, target code generation, and optimization. Implementation of a small compiler using Haskell programming language.
- Data Structures and Algorithms 1 and 2 (Java)
- - Advanced data structures and programming techniques and their application. Topics include: stacks, queues, lists, trees, balanced trees, graphs, dictionaries, hash tables, and heaps. Examines the efficiency and correctness of algorithms.
- Robotic Vision (C++)
- - Image processing techniques to quantify and manipulate visual information in diverse applications such as satellite imagery, robotic vision, and animation. Topics include enhancement, representation, restoration, segmentation, and digitization techniques.
- Artificial Intelligence (Java)
- - The fundamental bases of artificial intelligence: knowledge representation, search, and learning. Applications include game playing, neural networks, and expert systems.
- Windows & .NET Internals
- - The end result, to be able to efficiently troubleshoot application faults. To be a more efficient troubleshooter but also to have a better understanding of how Windows and .NET function internally and thereby enabling to write better software for those platforms.
- Database Systems (SQL)
- - DBMS architecture; major database models; relational algebra fundamentals; SQL query language; index file structures, data modeling and management, entity relationship diagrams.
- Networks (Python)
- - Organization of computer systems into networks and how communication over networks is organized. Communication protocols and their design with an emphasis on current technology and implementation of software.
- Systems Administration
- - The administration and management of Linux computer systems. Includes installation, user/process management, configuration of services and device handling. A thorough knowledge of Linux/Unix command structure is the end goal.
- Software Engineering (Java)
- - Software lifecycles, Unified Modeling Language, design patterns, software engineering standards, requirements analysis, development issues, efficiency tools, verification and validation, configuration management, testing and maintenance.
- Computer Architecture (MIPS)
- - Focusing on the structure and function of computer systems: CPU, memory, I/O. Includes digital logic, data type, instruction set design, pipelining, RISC, parallel processing, and assembly language programming.
- Discrete Structures
- - This course covered logic, discrete probability, recurrence relations, Boolean algebra, sets, relations, counting, functions, maps, Big-O notation, proof techniques including induction, and proof by contradiction.
- Computer Science Theory
- - Formal languages, theory, automata, Turing Machines, computability, the Church-Turing thesis, computational complexity, and NP-completenes.
- Concepts of Programming Languages (Prolog, Perl, Lisp, C++)
- - An examination of several programming paradigms, and languages, as well as their application and underlying execution model. Paradigms examined include imperative, object-oriented, functional, logic and string based.