Job Title: Senior Desktop Application Developer
Location: Remote
Position Description
The client seeks a Senior Desktop Application Developer with extensive Java development experience, strong technical capabilities, and demonstrated business acumen to support a mature enterprise application. The client is in Washington, DC; work will be performed remotely.
The application is a complex, data-driven Java desktop application installed and executed locally on user workstations. It processes and displays data from databases, local files, hardware devices, and remote systems, dynamically adjusting workflows, processing logic, and user-interface behavior based on data and configuration.
Because this is primarily a desktop application, candidates must have substantial Java Swing desktop development experience in addition to Java/J2EE skills. Candidates whose experience is primarily browser-based web development may not have the background required for this role.
Key Responsibilities
• Design, develop, maintain, troubleshoot, and enhance a complex Java desktop application.
• Develop and maintain Java Swing functionality, dynamic user interfaces, data-driven workflows, processing logic, and business rules.
• Translate business requirements, user stories, acceptance criteria, flowcharts, and process diagrams into detailed technical designs and application functionality.
• Develop and maintain integrations with Oracle, HSQLDB, Excel/local files, remote systems, and USB-connected hardware such as barcode scanners and scales.
• Troubleshoot application, database, data-processing, hardware-interface, and integration issues across development, testing, and production environments.
• Participate throughout the full software development life cycle, including requirements, design, development, testing, deployment, production support, code reviews, defect resolution, and releases.
• Develop technical documentation and collaborate with business stakeholders, product owners, testers, developers, and other technical teams.
• Adhere to client development, security, configuration-management, and documentation standards.
Required Skills and Experience
• 8+ years of advanced Java/J2EE programming experience.
• 4+ years of advanced Java Swing experience developing and maintaining desktop applications.
• 4+ years of PL/SQL programming experience.
• 2+ years of experience with technologies such as Spring, Xerces, Com4j, and Apache Commons.
• Strong experience supporting mature, locally installed, data-driven applications containing substantial existing business logic.
• Strong knowledge of RDBMS concepts, relational database design, SQL, Oracle, database connectivity, and local/embedded databases such as HSQLDB.
• Experience processing structured data files, including Microsoft Excel.
• Experience developing complex workflows, branching logic, decision trees, dynamic user interfaces, and data/configuration-driven business rules.
• Strong knowledge of secure Java coding practices and vulnerability mitigation.
• Experience with WiX, GitHub, source control, configuration management, and change management.
• Experience with full software development life-cycle activities and Agile.
• Experience developing technical designs from requirements, user stories, and acceptance criteria.
• Strong debugging, troubleshooting, and root-cause analysis skills.
Preferred Skills
• Experience with NetBeans IDE, Maven, SonarLint/Sonar, and Jenkins.
• Experience integrating Java desktop applications with USB-connected hardware, including barcode scanners and scales.
• Experience supporting statistical sampling, quantitative data collection, or data-analysis applications.
• Experience supporting systems with large numbers of configurable workflows, processing paths, and complex decision logic.
• Experience analyzing mature codebases and dependencies among application logic, data, configuration, interfaces, and UI components.
• Strong technical documentation and business/technical communication skills.
• Ability to work independently while collaborating effectively within an Agile team.
• Bachelor's degree in Computer Science, Information Technology, Engineering, or a related discipline, or equivalent professional experience.
Key Competencies
The ideal candidate will demonstrate strong business acumen and the ability to translate complex business processes into maintainable technical solutions. The candidate must be comfortable navigating a mature codebase, understanding complex workflows and decision logic, independently investigating unfamiliar functionality, and balancing new development with maintenance, troubleshooting, defect resolution, and production support.
Strong analytical, problem-solving, written communication, and collaboration skills are essential.
Education Requirements
• A minimum of eight (8) to twelve (12) years' relevant experience. A degree from an accredited College/University in the applicable field of services is required. If the indiviual's degree is not in the applicable field then four (4) additional years of related experience is required.
Position Emphasis
This position should not be characterized solely as a Java web-development role. While Java/J2EE and web technologies are part of the required skill set, the application being supported is fundamentally a locally installed, database-driven desktop application.
The strongest candidate will therefore have substantial hands-on experience with Java Swing and desktop application development, complex data-driven workflows, database integration, locally connected hardware, and the maintenance and enhancement of mature enterprise applications containing significant business logic.