A breif personal bio and a selection of my
Java, C, Python, and x86 Assembly projects.

I am a passionate programmer with knowledge of the Java, C, Python, and x86 Assembly programming languages. I have experience in free-lance software engineering and have sold a program which manages garnment-inventory and tailoring appointments to a dry-cleaning business in Charlotte, NC. I hold two Bachelors degrees from NC State University - B.S. in Philosohy and B.S. in Science, Technology, and Society with a concentration in Bio-medical and Industrial Ethics - as well as a post-baccalaureate certificate in Computer Programming from NC State University.

A collection of my programs is found below. Each program entry is titled with the name of the programming language used followed by the title I've given to it. Please note that most of the programs exhibited are held in a private repository; please email me at robert.forwerck@gmail.com for access

For information on the dry-cleaning application I sold called "Appointments and Reminders by 4WA", please click the A&R - Learn More button below as this application has its own web-page.

Recent Work

Issue Manager UML Picture

Java - Software Issue Manager

    Manages a program's issues (bugs and enhancements) during its development life-cycle. Implements a FSM representation of issue states and transitions using State Design Pattern. Utilizes Singleton Design Pattern to allow for data persistence of the issues throughout the development life-cycle. When diligent notes are recored within this program, it serves as a well organized dedugging journal. I have made personal use of this progam for most of my development projects since its completion.

Lease Manager GUI Picture

Java - Lease Manager

    Manages a set of rental-units, clients, and their associated leases. Includes 22 classes, 4 interfaces, and all custom data structures developed through Test-Driven-Development. Utilizes the Singleton and Factory Design Patterns in the highest level class of the model.

C - Deflate and Inflate

    This is actually a pair of programs that work in tandem to compress and decompress text files. To acheive compression of files, these programs employ the Huffman coding technique which assigns commonly used characters to bit strings with few bits and rarely used characters to bitstrings of greater than 8 bits. For example, the space character, since it is commonly used, could be represented as 2 bits instead of the normal 8. This allows for very effective compression of file size for text files that consist of mostly letters and spaces.

    These programs utilize two components - a cipher and a filebuffer. The cipher stores 256 variable-length bit codes to represent all 256 characters and has a funtion to return a variable-length code and another function to lookup the decimal value cooresponding to a variable-length code so that the code can be converted to it's usual character byte value. The filebuffer uses a bit-field within a struct to accumulate a sequence of bits to be printed to a file. For the inflate program, this bit-field holds a sequence of the usual byte values of the characters from the input file. For the deflate program, it holds a sequence of variable-length bit codes.

    The picture above shows the makefile for these two programs.

C - Book Sales Tracker

    The Book Sales Tracker program doesn't do what you think it does. Just kidding, it does exactly what you think it does. It accounts for a set of books and sales-people and keeps track of the books sold by each sales-person. This program is sort of like the movie Inception except instead of dealing with dreams it deals with structs. It is organized with a group struct which holds two lists of pointers; in one list each pointer points to a book struct, and in the other list each pointer points to a salesperson struct. Within each salesperson struct a linked list exists which is composed of a node for each book that the sales-person has sold. Within each node there is a pointer to one of the books loaded within the group struct's book List and a field to keep track of the number of that book sold by the salesperson. Did I explain that well? If not, I included a chart in the picture above that helps to show what's going on.

Java - Student Scheduler

    This program allows its users to create and manage a student's schedule of events. Events include classes from a course catalog and other activities such as lunch or gym time. Allows for modifications to the schedule after its initial creation and the export of a finalized schedule to a text file. Prohibits time conflicts and duplicate events and updates to show available time slots. A picture of the GUI for this program is above; it shows what the program's user might see while creating a weekly schedule.

Python - Appointments & Reminders

    This is the first major software application I made. It is close to my heart for a couple reasons; 1, because it helped me in my early days to learn programming, and 2, because I was able to monetize it and it is currently in use at a dry-cleaning business in Charlotte, NC. I created a web-site specifically for this application, so if you would like to learn more about it please visit: 4workanswers.github.io.

MASM 8086 Assembly - RLC De-compressor

    The RLC De-compressor is a serially reusable subroutine to de-compress black/white picture elements using Run-Length Coding. Run Length Coding is a method of data compression used for images. The implementation of RLC used in this program is based on the CCITT Study Group XIV standard for one-dimensional RLC data compression. The picture above shows the beginning of the subroutine and leaves out most of the interesting instructions. Reading the comments in green should give an idea about how the subroutine works to de-compress black and white images.

Shoot me an email for Github access: