Long Đoàn
Java Backend Developer
Thuê người này
Gửi đề nghị công việc trực tiếp cho ứng viên này
Giới thiệu
Java Backend Developer with 2 years of experience developing enterprise accounting systems using Spring Boot and SQL Server. Experienced in database optimization, asynchronous processing, and large-scale data handling. Independently designed and developed an RD product-matching engine using Elasticsearch, Kafka, and gRPC.
Kinh nghiệm
Java Developer at Softdreams Investment and Trading JSC (2024-11 – Present)
EasyBooks – Enterprise Accounting ERP (EB133/200) Web-based accounting platform for enterprises under Circulars 133/200: purchasing, sales, inventory, cash & bank, e-invoicing, tax returns, payroll, fixed assets, costing and financial reporting. It runs as a modular monolith across 6 SQL Server datasources (routing by customer group, read/write split for reports) and offloads heavy jobs to RabbitMQ workers.
Stack: Java 11, Spring Boot 2.5, Spring Security (JWT), Hibernate, SQL Server, Redis, RabbitMQ, MongoDB, JasperReports, Apache POI, Angular 13
- Streaming export for very large reports: redesigned the General Journal export as a stream (SQL Server → Hibernate ScrollableResults → POI SXSSF writer) on a RabbitMQ consumer. One Excel file now holds 2M+ rows without OutOfMemoryError, and per-job JMX metrics (heap, GC, CPU) were added to size memory safely.
- Async multi-file report pipeline: moved the Loan Detail Book and Journal–Ledger exports to the queue service, which splits output into Excel/PDF parts, zips them and reports progress to the user.
- SQL Server performance: rewrote and tuned the stored procedures behind the Journal–Ledger, Loan Detail Book, Voucher-based Ledger (S02c) and production cost reports.
- Bulk Excel import: built 6 sales import flows (quote, order, invoice, discount, return, e-invoice) with standardized VAT handling, plus a multithreaded Unearned Revenue import with parent–child validation and error files that keep the original layout.
- API validation & error contract: added backend validation for Sales Returns and Discounts. Errors reach the client as an errorKey through @ControllerAdvice, so the Angular app shows a localized message instead of a generic failure.
Java Developer at Softdreams Investment and Trading JSC (2024-11 – Present)
EasyBooks – Accounting for Household Businesses (EB88) Online accounting system for household and individual businesses: cash & bank, purchasing, sales, inventory, e-invoicing, tax, payroll and financial reports. It is a monolith with role-based access, multi-language support and asynchronous processing through a message broker.
Stack: Java 11, Spring Boot 2.5, Spring AOP, Hibernate, SQL Server, Redis, RabbitMQ, Kafka, JasperReports, Docker, Kubernetes, Angular
- Declarative validation framework: designed a @ValidatorChain annotation, a Spring AOP aspect and a validator factory (Chain of Responsibility). Sales invoice, return and bill APIs now declare their rules, every detail line is checked, and all violations come back in one structured response.
- Faster, safer sales import: sped up large Excel imports and validated each referenced entity (customer, item, warehouse, tax) per line, so deleted or merged master data can no longer be saved onto vouchers.
- Multi-product login: built the organization-unit tree picker at login, shared by EB88, EB133 and the service-accounting product.
Học vấn
Computer Science – Posts and Telecommunications Institute of Technology (PTIT)