Hello.
My name is DJ Steffensmeier.
I run fast. I write software. I build cool stuff. I do things.
I do a lot of things.
This is my official site.
Personally coded. Routed. SSL Encrypted.
Welcome.
A bit more....
I am a software engineer based out of Denver, Colorado.
I run, cycle, longboard, fish, code, build things and play soccer. I drive a Jeep Wrangler and
own a kayak; that adequately describes my lifestyle away from computers and algorithms. I have more hats than I know
what to do with, and am a connoisseur of both Guinness and Oakley sunglasses.
I have a degree in computer engineering from the University of Nebraska.
Studies include hardware and software integration and implementations in C and Assembly, as well as data structures and
algorithms primarily in Java. On the hardware side, digital and computational design, as well as parallel processing, processor
pipelining, and circuit theory. As per mathematics: extensively calculus, linear algebra, differential equations, statistics,
and discrete.
Web Development experience in Javascript and a small amount of Django. Most familiar with the AngularJS
framework. Primarily front-end. Also familiar with the standard software development pipeline, agile, continuous integration,
scrum, and of course version control.
--8051 Based Full System Design--
This system was built entirely around the 8051 architecture. Specifically, the Atmel AT89C55WD was used as the core component,
being clocked at 12MHz by an external crystal. The system included 64K of static RAM, 64K of ROM, a 16 key input keyboard, an
output LCD (4 line), LEDs, and a real time clock. The drivers for each of the components as well as the operating system were
written in assembly, so a fraction of the memory was needed to function at any time. This is a general purpose board that can
perform many different functions.
--Initial Board Dual Button Counter & Watch Build--
This is the first built board. It functions as either a counter or a watch, implementing two buttons to do so. It is based on a
4026 IC, as well as a 555 timer for clocking purposes.
--LPC4072FBD80 ARM (Cortex M4) Based System Build (v1)--
This is the initial Phase 1 board that was developed around the Cortex M4 ARM chip. It breaks out several serial interfaces for various uses,
as well as GPIO pins to run an LCD and a keypad. It does UART, SPI, I2C and USB. It can be programmed through the JTAG header for various
applications, and functions well as a development board.
--LPC4072FBD80 ARM (Cortex M4) Based System Build (v2)--
This is the second iteration (Phase 2) board that was developed from the original above. This board fixes a few errors that the other had, as well
focuses on specific applications. Headers were added for a GPS receiver, a keyboard, and a XBee. Besides these, several more GPIO pins were broken
out to extend the usefulness of this board as a general purpose development platform. A shift switch had also been added for more functionality and
flexibility for user interfacing. Lastly, the amount of screen printing on the board had drastically been increased.
--The Bus Factor (Senior Capstone Project)--
This is a senior thesis project for the Electrical and Computer Engineering Department at the University of Nebraska. It incorporates a custom board
implementing an ARM processor, GPS module, GPRS transmitting module, LCD, and supporting circuitry. It was designed in-house by the talented
Nate Pettepier. Among other things, it transmits location and velocity data from a moving shuttle bus to a cloud-based centralized server. This then
does its own processing and data storage, and displays the location information to connected clients through its web application. The code running the
board is written primarily in C. The server side is written primarily in Javascript and features a stack that includes NodeJS, ExpressJS, MongoDB,
and Socket.io.
--Graph Theory Driven Shuttle Re-Routing--
This undergrad research project was spun up in response to the transportation situation that can be witnessed on both college campuses
and urban networks. It uses algorithms such as Dijsktra's and Prim's to optimize movement patterns based on time and route analysis.
--Personal Server V1--
This was the original server that was constructed for personal use. It ran on an AMD FX-8120 (8 Cores) @ 3.1GHz. It was outfitted with 8 GB of
GSKILL DDR3 RAM and a 300 GB Seagate HDD running at 5400 RPM. As for graphics, it was stocked with an AMD Radeon HD 5870. This all sat on an MSI 970A.
While it was a testbed for a large variety of linux distributions, it primarily ran Ubuntu Server versions. It was used mostly for personal file storage,
backups, streaming, and as a web development platform.
--Personal Server V2--
This was the second server that was constructed for personal use. It is still currently in use, and the specs can be found within that section.
This is the gear that I use everyday.