Senior Eclipse Desktop Engineer
We’re seeking a UI/UX‐focused Senior Eclipse RCP / SWT Engineer to design and build high‐performance Java thick‐client applications using Eclipse RCP, OSGi, SWT, and JFace. You will partner with product, UX, and domain experts to deliver intuitive, robust, and responsive scientific desktop software used by geoscience professionals. The ideal candidate combines deep desktop UI engineering with strong multithreading/concurrency and applied mathematics, capable of implementing complex, long‐running algorithms off the SWT UI thread while maintaining a smooth, accessible user experience.
About the Role
Design & build rich desktop UIs with Eclipse RCP (perspectives, views, editors, commands/handlers, extension points) using SWT/JFace and established UI/UX patterns (MVP/MVC, event‐driven design).
Responsibilities
- Implement OSGi modular architectures (bundles, services, dependency management), ensuring clean isolation between components and well‐defined interfaces.
- Engineer context‐aware behaviors across the application: understand and extend how actions (e.g., button press) propagate through Eclipse Command/Handler/Context and OSGi Service Registry to deliver predictable, traceable outcomes.
- Build and optimize multi‐threaded features: move long‐running scientific computations off the UI thread using the Eclipse Jobs API, executors, and background tasks; update UI safely via Display.asyncExec/syncExec.
- Ensure UI responsiveness & performance for large datasets: job scheduling, progress reporting, cancellation, virtualized tables/viewers, and efficient rendering.
- Apply software design patterns and domain‐driven design to keep code modular, testable, and maintainable.
- Collaborate with product and UX to translate scientific/geology workflows into usable, high‐signal interfaces; instrument and iterate based on usability feedback.
- Write clean, testable code with unit tests (e.g., JUnit), UI tests (e.g., SWTBot), and profiling/diagnostics for memory and performance.
- Participate in code reviews, architecture discussions, and CI/CD build pipelines (Tycho/Maven/Gradle as applicable).
- Contribute domain insights to data visualization and computational geometry/mathematics features (e.g., regression, derivatives, geometry operations).
Qualifications
- BS in Computer Science (or related) and 10+ years of professional software engineering experience.
- 7+ years building Java thick‐client desktop applications with Eclipse RCP: Plugins/features/products, extension points, p2, perspectives/views/editors, Commands/Handlers/Contexts.
- Expertise in OSGi: Bundles, lifecycle, services, dependency injection/management, service tracking, modular isolation.
- Strong SWT/JFace: Layouts, events, custom widgets/controls, JFace viewers (Table/Tree), dialogs, wizards, actions.
- Advanced Core Java (Java 8+): Concurrency (threads, executors, futures, synchronization), collections, generics, streams, and design patterns (Factory, Strategy, Observer, Command, etc.).
- Proven multithreaded UI experience: Delivering long‐running computations without UI freezes; correct use of the SWT single‐threaded model and UI thread marshaling.
- Performance & scalability: Background jobs, cancellation, progress UI, memory/performance profiling, large dataset handling/virtualization.
- Applied mathematics for scientific applications: Calculus (including derivatives), geometry, statistical regression/line fitting, numerical methods; comfort validating algorithmic correctness and precision.
- Geology/Geoscience domain experience (or demonstrable experience rapidly acquiring complex scientific domains).
- Debugging & diagnostics: Event tracing across OSGi/Eclipse contexts, thread dumps, heap/CPU profiling, logging frameworks.
Required Skills
- Experience with computational geometry, coordinate systems, and scientific data visualization in desktop apps.
- Exposure to geospatial/GIS concepts (e.g., projections) and data formats.
- Knowledge of Tycho/Maven RCP build pipelines; p2 repositories, feature/product builds, update sites.
- Experience with SWTBot or similar UI testing frameworks.
- Familiarity with numerical libraries and precision/robustness techniques.
- Cross‐language integration (e.g., JNI to C/C++ modules) or Python interop for scientific workflows.
Preferred Skills
- 30 days: get hands‐on with the codebase; map key OSGi bundles/services; profile a representative workflow to identify UI thread pressure points; ship small UX improvements.
- 60 days: refactor 1–2 long‐running algorithms to background jobs with proper progress/cancel and safe UI updates; implement or fix context‐aware command/handler flows.
- 90 days: deliver a performant, user‐validated feature that combines multithreading, mathematical rigor, and geology‐centric UX (e.g., a geometry/derivative/regression tool with responsive visualization on large datasets).
How we work: Quality & UX first: We value responsive UIs, clear feedback, and accessible designs for expert users. Modularity & maintainability: Clean OSGi boundaries, contract‐first design, and test coverage. Evidence‐driven iteration: Profile, instrument, and improve based on real usage.
Equal Opportunity Statement
We are committed to diversity and inclusivity.