Professional Development

During my night job, I am a full stack software developer. This means I have worked on everything from the database and data model to the frontend web application that users actually see every time they visit the website. The two projects I have worked on are both cloud applications focused on making specific aspects of printing easier for customers.

The first is a Java application that is a portal hosting other applications that are useful for small to medium business. Applications hosted on the portal are a generic set of software that should be useful to any print fleet manager for a small to medium business. Our flagship application was HP Private Print, a app that  allows a user to manage their print queue from their computer or printer and only printed once they were physically at the printer. This eliminates the time that documents with sensitive information spend on the printer. It also reduces the amount of paper and toner a company uses since employees will only print when they are physically at a printer to collect their material.

Link to the Sign Up Page: it is free to create and account if you are curious and want to explore.

I spent a little over a year on HP JetAdvantage on demand and worked on a number of key features. The most visible features are the changes to the UI, which included many defects and creating four or five of the pages throughout the system. Some of the new pages include the sign up page for new accounts, the user entry form for new companies, and the devices list and information page. Another feature I helped deliver was enabling dynamic additions of new applications to the portal. For HP JetAdvantage to be successful, new applications needed to be easy to add into the system. To make this possible I added the necessary code to validate incoming applications had all the required data and that it was formatted correctly.

The second project I currently work on is a windows application using the .NET framework with most of the code written in C#. This is another solution for making printing easier, however the tools are specifically made for any size business including large enterprises. Web Jetadmin is specifically designed for IT staff that are managing printer fleets for companies with tens of thousands of printers and allows these IT professionals to do specific tasks remotely. Some of the tasks that can be managed from Web Jetadmin include applying specific security settings to devices, managing the amount of toner and pages printed, and staying in contact with devices to know the status of the print fleet. For more information here is a link.

The largest challenge with a system as large as Web Jetadmin is managing all the different types of work the system can handle while also staying fast enough that customers are not left waiting. The projects I have spent the most time around all involve making the system move faster by processing working asynchronously and to be able to grab as much work as the system can handle. In essence, make sure the bottleneck in the system is how much processing power is available not the code we are writing. One of the technologies that I helped bring into the system was a RabbitMQ cluster for managing incoming and outgoing work. Publishers can specify exactly where they need their work to go and the system will place it their. The work patiently waits for a consumer to come by and take as much of that work as it can handle.There is some underlying code that selects what the best way to talk with a device is so that communication has the greatest chance for success. I wrote the code that handles this load balancing.