BRUCE HARTMAN
Experience
Samples
About
Contact
— Designing and Writing Both Front-end and Back-end Software for 26 Years
Hawser
Here
Firstlook Systems
Westell
Panduit
1st Playable
Alcatel-Lucent
Summary
Course
Angular 4 Demo
Line of Sight Algorithm
Javascript Form Demo
Graphic Design
Java Example
Sioux Falls, SD
Partner and Chief Technical Officer (June 2016 - Present)

Hawser is a Web Portal that delivers messages between businesses, people and non-profit organizations. Its distinction is that it delivers only the messages that you want to see, allowing you to control from whom you see updates.

Hawser is my side project (I work on it a few hours per week). I work closely with the founders, making decisions about the direction of the product. I am currently the sole software engineer, working in Scala, HTML, CSS and Javascript.
Chicago, IL
Senior Front-end developer (May 2014 - May 2017)

Here provides complete map data to customers and vendors worldwide. Anything you can imagine that is associated with mapping and location is provided, such as speed limits on roads, addressing, traffic density, parks and water features, etc.

The two products I worked on are called Leaf and Light Weight Tools.
  • Leaf is a tool (JQuery, HTML, CSS, Groovy) that allows users to modify roads and addressing information. When I started at Here, I was tasked with adding features and making improvements to Leaf. Noticing that the UI was not the greatest, I took the initiative to make it great by redesigning the front end.
  • Light Weight Tools (Angular JS, HTML, CSS, Angular Material) came from an idea to create a platform for all company map editing tools. Instead of having one monolithic tool to modify all map information, Light Weight Tools is a series of separate tools allowing users to modify certain aspects of the map. I created most of the Angular modules used for the platform. I also used the modules to create the Geometry Editor tool. This tool allows the users to add and modify road shapes, and to add and modify cartography features (such as lakes and parks)

Distinctions:

  • Took the initiative to redesign Leaf's user interface.
  • Mentored several junior developers and interns with great success.
  • Made major architectural decision in the Light Weight Tools platform.

Reason for Leaving: It was time to move closer to family in Colorado.

Chicago, IL
Senior Front-end developer (July 2012 - January 2014)

Firstlook provides a Web portal for automobile dealerships that provides data analytics on their inventory and the automobile market in general.
Firstlook has three software stacks: Java, .NET and Ruby. The original product was all written in Java, but there were aborted efforts (before my time) to upgrade to newer technologies. The result is a mixture of the old and the new, providing opportunities to work in many different technologies.
Firstlook used the Agile software development methodology.

Since this was a very small team (three developers), I worked on all portions of the product, including:
  • Being completely responsible for the Front-end portion of the product (HTML, Javascript, JQuery, JSP, JSTL).
  • Writing many of the .NET C# Restful Web services (used for the mobile application).
  • Adding features to the Java portion of the product.
  • Modifying SQL Server Stored Procedures.

Distinctions:

  • In my third week at Firstlook, work needed to start on a very large feature. I took the initiative to break up the forty page user specification into user stories and estimated them. These tasks and estimates were used in the final project plan.
  • One strength I have is in estimating tasks/features accurately. This ability came in handy at the weekly sprint story estimation meetings.
  • Another strength I have is quickly learning new technologies to do the job. I had to learn and apply over 20 new technologies used in Firstlook's product.

Reason for Leaving: Firstlook wanted to triple the size of the development group, and didn't feel that they could quickly hire enough engineers, so they outsourced the engineering group.

Aurora, IL
Senior Front-end developer (September 2010 - July 2012)


I focused on:
  • The Homecloud Application Server. This was done in Java using the Felix oSGI framework. Using oSGI allows individual user applications to be added, started and removed without affecting other user applications. The Homecloud Application Server consists of several bundles that communicate with Homecloud, and manage Homecloud drives and Homecloud user applications.
  • The Homecloud Application Server Web interface provides the user interface to the Homecloud Application Server. I designed it as a real-time single page application. The user never has to refresh the browser to see the latest information (via smart polling). It works in all major browsers.
  • Several of the user applications and their user interfaces. One of which is the Backup and Restore application, which tracks the state of the file system over time for any folders marked for backup (similar to Apple's Time Machine). I designed the database model, the DB population rules, the back-end web services, the user experience (UX) and the user interface.

Distinctions:

  • Led the contractor team that worked on the user applications. I interviewed them and trained them.
  • Designed and implemented all of the front-end interfaces used in Homecloud.
  • Created the user experience (UX) for the Backup and Restore application.
  • Designed and implemented how user applications interfaced with the database.
  • Designed and implemented the user applications manager.

Reason for Leaving: We finished the Homecloud project, and there was no other work to do. An opportunity materialized to go to Firstlook.

Orland Park, IL
Front-end developer (December 2009 - September 2010)

Panduit is an equipment manufacturer for data centers. Since they provide most data center needs, they also provide software to manage data centers.
Panduit's data center management software is built on Java J2EE (JBoss) and has a Java Swing front end.

I focused on:
  • Developing prototypes for evolving the product (in Flash/Flex and Silverlight).
  • Adding features to the existing front-end.

Distinctions:

  • Initiated and led the prototyping effort.
  • Designed the User Experience (UX) for all front-end features I added.

Reason for Leaving: The evolution plan was put on indefinite hold and Westell invited me to work on a brand new product.

Troy, NY
Game developer (Contract position: February 2009 - May 2009)

1st Playable makes hand-held video games for kids.

I focused on making cut-scenes for four different titles on the Nintendo DS platform.

Reason for Leaving: My contract ended.
Naperville, IL
Software Engineer (October 1990 - June 2008, July 2009 - December 2009)

Alcatel-Lucent is a telecommunications company specializing in telecommunication equipment.
The products I worked on were the 4ESS long distance switch, the 5ESS switch and the LSS (Lucent Soft Switch).

Over my 18 years there, I worked on various projects in numerous technologies, including HTML, JSP, Javascript, Java, Java Swing, C++, C, EPLX, EPL, Fireworks (for drawing images), UNIX, LINUX, as well as many other software tools.


A few notables include:
  • Lead front-end developer (and founding developer) of the user interface for the soft switch (Java, Java Swing, HTML, AJAX, Javascript, Fireworks).
  • Front-end developer for the next generation 5ESS switch (HTML, JSP, Javascript and Fireworks).
  • Software developer on the Switch Fabric Interface initiative on the 4ESS (C++ and EPL).
  • Software developer on the 4ESS switch (ELPX).

Distinctions:

  • Founded the soft switch user interface project and was the lead front-end developer/designer.
  • Invented a novel approach for discovering and displaying layer 2 connections between equipment ports.
  • Developed a framework for displaying all of the equipment pages, reducing development effort by 75%.

Reason for Leaving: Alcatel-Lucent had been in a downward spiral since 2000. Quarterly lay-offs finally caught up with me.


Skills

Javascript
AngularJS 1.X
Angular 4.X
UI / UX
JQuery / JQuery UI
HTML
CSS
Bootstrap
Angular Material
LESS
Flash / Flex
Silverlight

Java
Scala
.NET C#
C++ / C
Groovy
JSP / JSTL
Java J2EE / JBoss

Postgres
MySQL / SQLLite
SQLServer
MONGO
OpenLayers
Felix oSGI
Java Swing
Fireworks

IntelliJ
Visual Studio
Eclipse
NetBeans
Single-Page Web Apps
GIT
Jira
Jenkins

UNIX / Linux
Windows
Telephony
SAAS
AGILE
Waterfall
Leading / Mentoring
Hiring / Interviewing

This is a sample of a project done in Angular 4, created with NetBeans. See the source code here. Notes:
  • Data is stored in memory. That means that when you refresh the browser, all changes will be lost, including any user accounts you create.
  • There are two pre-populated users: user1 (password=user1) is the admin user, and user2 (password=user2) is a regular user. Feel free to use these or create your own users.
  • The filtering function works a little strangely (it was a requirement for the exercise). If you just enter dates, you will see all meals in that range of dates. If you just enter times, you will see all meals in that range of times. If you enter both dates and times, you will see the meals within the range of dates, within that time range.

As the smiley character moves around the map, you will see only the portions of the map within the character's line of sight.
This was done in Javascript and JQuery. Move the character around the map by holding the left mouse button and moving the mouse.
I rewrote the Mousehold plugin for this application.


This is a restaurant concierge app that I created with my partner.

The front end is created using Ionic mobile with Angular 5.
The server is created using Scala and Postgres.

This shows an HTML form without using Javascript libraries (or tables for that matter).

Some things to note:

  • The phone number field is checked for length and proper characters as you type.
  • The required fields are shown in red when they are not validated.

This is a graphic design sample depicting hardware. I don't claim to be an artist, but hopefully, this shows that I can produce graphics in a pinch.


This Java algorithm solves the problem of how many different combinations of ten Knight moves are possible.

The map looks like:

ABCDE
FGHIJ
KLMNO
123

The rules are:
  • The sequence can start at any character.
  • Each subsequent character must be a knight move from the previous character
  • There can be at most 2 vowels in a sequence