Senior Software Engineer Resume
Austin, TX
OBJECTIVE:
- Senior Software Engineer position where I can impact people positively, and also get work done.
SUMMARY:
- Thirteen years core Java, distributed, and Swing development. Server - side and front-end.
- I follow mature personal development disciplines. TDD, XP, fail-fast, quality-first, simple and reliable.
- Agile and XP adept, with a talent for solid design, smart process, and intelligent code (re-use, optimization, simplicity)
- Extensive knowledge and experience with patterns, api design, framework technology
- Habitually exceeds expectations
TECHNICAL SKILLS:
Technology: Java, Android, Spring, Swing, JSP, Web Services, REST
Tools: git, Subversion, Perforce, IntelliJ Idea, maven, Ant, Artifactory, JUnit, Jira/Greenhopper, TeamCity, Jenkins
Other: Agile, XP, Tomcat, Linux, Web Frameworks, Velocity, JFreeChart, json
PROFESSIONAL EXPERIENCE:
Confidential
Senior Software Engineer
Responsibilities:
- GameStop’s Cloud Division SpawnLabs' IP: Streaming video games to thin-clients.
- Building the backend services (which support cloud gaming) and the Android client (end-user application).
- Designed and wrote a "DynGamingamic Firewall Service." Modified iptables in response to REST calls in order to pass traffic between clients and the cloud gaming nodes. (Details)
- Primary developer on Android client for "Gamestick" product. It's an HDMI dongle which streams video/audio via wi-fi and receives bluetooth game controller inputs, sending them to the cloud game node. UI includes game catalog browsing, searching, etc. (Details)
- Wrote a service to check for, download and install android application updates from GameStop servers.
Confidential
Senior Platform Engineer
Responsibilities:
- Architected the portal for UTV Ignition's gaming, publishing and social network site. (Details)
- Designed an SSO solution for our platform, supporting multiple-user-agent authentication. (Details)
- Designed and built a REST service as a client - our service received auth requests, and then as a client, forwarded them to Gamigo's auth service. (Details)
- Best qualified, I volunteered to meet a critical company need and engineered automated deployment for the client-side artifacts build pipeline (patches and installers). (Details)
- Using a Spring LDAP library, I wrote a utility to migrate users to a new instance. (Details)
Confidential
Senior Developer / Platform Engineer
Responsibilities:
- The platform is a set of server software, web applications, messaging, and databases which runs alongside (and in contact with) the game server. It provides authentication, in-game chat, forums, petition, social connection, heartbeat monitoring, and other services for the players/characters.
- As the first Java developer hire at startup Heatwave, I needed to understand the product acquisition they had made from Perpetual Entertainment, perform an external installation (Details), and prepare the platform for the Gods and Heroes production phase by arranging a development and deployment pipeline.
- Reason for leaving: Company layoffs
Confidential
Senior Consultant
Responsibilities:
- Agile/scrum development of vertical "company" feature slice of Hoover's business intelligence website. Included Spring configuration, jsp and template editing, and service call to custom query. (Details)
- Adaptation of company data queries into a JasperReports pdf document.
Confidential
Java Developer
Responsibilities:
- Create/modify UI controls on the Cisco thick-client ASDM to support new "external ping" feature for troubleshooting Adaptive Security Appliance (ASA) connectivity issues.
Confidential, Austin, TX
Lead Software Developer
Responsibilities:
- I was part of a 4 to 6 person team that designed and implemented a distributed-environment lifetime financial planning application. www.PlanWithVoyant.com
- I designed and built several components of the thick-client Swing product suite, including charts, wizards, reports, recommendations, financial model calculations, and simulations. (Details)
- I was responsible for all of the extensive chart rendering and interaction architecture. It had to be not only performant and feature attractive visuals, but also deal with multiple threads and ui component interactions.
- I implemented the look & feel of the rich client app, including interactive fading popup notifications, custom glossy-buttons, and semi-transparent floating panels showing details from underlying data model. (Details)
- I built the portion of the Spring/Hibernate server-side account management code which allowed users to periodically update their investment balances and view their plan progress (called "Snapshot").
Confidential, Austin, TX
Software Developer (Contract position)
Responsibilities:
- Solely responsible for new architecture design for latest release of Enterprise Series Interactive (ESI) J2ME and SMS “channels" to the core framework. Channel modules were built for each of the various protocols through which users interacted with ESI (http being the 3rd channel). Each module must transform its activities to interface with the ESI Command API. For J2ME, a client-side library was used. For SMS, a phone-number-to-session mapper, as well as a server-side http router to direct SMS text messages.
- Designed and wrote the framework for instantiating and accessing application aspect objects. The objects (like DAO, system settings, and a bean factory) are created through reflection, as described in xml configuration.
- Primarily responsible for developing project structure and modularity, and establishing segment interfaces. Played leading role in the formation of our .ear products and developer environment.
- Designed and created the build framework, executed by CruiseControl for continuous integration. The build performed all the work in automation, getting source from vcs, constructing over a dozen separate J2EE modules into the various binaries, loading schema and sample data, starting JBoss, executing unit and functional tests, and publishing results.
Confidential, Austin, TX
Software Developer (Contract position)
Responsibilities:
- Documentum-based knowledge base with a web front-end built with JSP and javascript.
- Without using Struts, we nevertheless used MVC principles. I designed and wrote our view components which collected relational data (entities related to each other), which was not immediately available on model objects.
- Implemented a complex conversation between an applet allowing a drag&drop of documents to be uploaded and the server, which must detect version and name conflicts and respond to the applet with valid options. The applet then offers a dialog to the user.
Confidential, Austin, TX
Software Engineer
Responsibilities:
- Rocksteady Network Sharing Application (RNSA), AAA Web Application, Ant Build Designer
- Responsible for building an Authentication, Authorization and Accounting (AAA) system to act as the backend authority for a network provisioning device (RNSA). The Onboard AAA was a Struts-based web app on Tomcat, using Radius protocol for external communication and interfacing with a JNDI database (in this case, file/directory structure). This system was declared critical for product sales through the rest of the year by the Vice President of Sales. (Details)
- Re-designed the product build from bash shell scripts to Ant. The build consists of a dozen nested build descriptors and produces a full Redhat distribution along with several main applications in Java, C, and Perl.
- Utilized several XP principles in a 7-engineer team, while creating an application to shape bandwidth and provide dynamic, client-specific access to a network. Code Standard set by me. Used Continuous Integration, TDD (in some cases), and Design Improvement. We wrote a full suite (>95% coverage) of unit and functional tests and kept it at 100% success.
- Wrote an IntelliJ IDEA plugin to integrate the Subversion version control system. The plugin uses a Swing UI, is full-featured and operates across code branches. (Details)
- Reason for leaving: Company layoffs
Confidential, Hampton, VA
Software Developer
Responsibilities:
- Time-Critical Target Functionality (TCTF) UI Framework, Intelligent Preparation of the Battlespace Registration (IPBREG)
- Designed and developed core components for a Framework used in all company Java projects. The TCTF framework included heavily customized Java Swing components (DesktopManager, InternalFrames, JDesktopPanes) for a consistent Look&Feel and functionality for all TCTF sub-projects.
- Instructed company developers on JUnit, Test-Driven Development, and Java threading concepts. (Details)
- Improved existing framework components and sub-projects, and provided several developer tools and utilities.
- Created specialized Swing UI fields which displayed several different values, such as Lat/Lng coordinates, Speed, Distance, Bearing, etc. They each listened to an external, graphical map API, to display specified precision, delimiters and units based on user selections within the map. (Details)
- Designed/developed the IPB Registration project - a sub-project of IPB (itself a sub-project of TCTF). It provided a means for intelligence officers to "subscribe" to tactical information updates of a specified nature inside an area designated on a map displayed by an external library. Saved subscription data to a Sybase database with a Spatial Query Server (SQS) wrapper to handle the map area shapes. (Details) netdecisions (OOP), Chesapeake, VA - Software Developer
- Solutions development in XP environment, Business Process Manager (BPM), FrameWare Tutorial
- Began as a Technical Writer; promoted to Developer due to interest and technical potential.
- Filled a variety of roles including software design and development, project management, and .
- Developer for BPM. BPM was a “decisioning engine" allowing configuration of componentized process flows at runtime. Using dynamic class-loading, a database repository to contain classes, and Java Messaging Service (JMS) as its primary external interface, it would allow non-technical personnel to assemble and alter a workflow application at runtime. I was involved in coding “decision components," UI elements, bug fixing, error-handling (Details), and creating demo scenarios with the components.
- Managed and co-authored the documentation / tutorial for OOP's second-generation framework technology. It was considered the model documentation work at netdecisions for content, layout and design. Formatted in html, it covers forty chapters, includes use of JavaScript, and integrated with Borland's JBuilder 4.0 IDE.
