About
Software engineer with a focus on backend and middleware development. In general, colleagues know me as a highly motivated person who is passionate about creating unusual solutions in a more efficient and scalable way. I would love to be considered for a role where I can utilize my skills to build exceptional software that has a big positive impact.
Expert in developing backend, middleware, and web applications in fast-paced, deadline-driven environments, with a strong background in Java/SpringBoot/Quarkus, React, Angular, JavaScript, Node.js, Oracle, PL/SQL, MySQL, Couchbase, MongoDB. Led multiple projects as a team lead, ensuring high-quality and scalable solutions.
- Website: https://dinomov.uz
- Phone: +641 233 9601
- City: Fairfield, Iowa, USA
- Degree: Master in Computer Science
- Email: dinomov@gmail.com
- Freelance: Available - W2 / Willing to relocate
My relationship with teammates is built on trust, respect, and a shared passion for crafting exceptional software. I am not just seeking a job. I am pursuing a collaborative adventure where I can contribute to solving real-life problems that have a big positive impact on people’s lives
Facts
Happy Clients
Projects
Hours Of Support
Continents
Skills
Software Design and Architecture • Design Patterns • Database Architecture Problem-Solving • Data Structures • Team Collaboration • Leadership • Code Review Multithreading • Reactive and Functional programming • Clean Code • TDD • CI/CD
Resume
Sumary
Dilshod Inomov
Innovative and deadline-driven Software Engineer with 10+ years of experience designing and developing software solutions, polished deliverable.
- 1000 north 4th street, Fairfield, IA
- +1 (641) 233-9601
- dinomov@gmail.com
Education
Master of Science
2023 - 2025
Maharishi International University, Fairfield, IA
Computer Science
Master of Science
2004 - 2006
National University of Uzbekistan, Tashkent, UZB
Applied Mathematics
Bachelor of Science
1999 - 2003
National University of Uzbekistan, Tashkent, UZB
Applied Mathematics
Professional Experience
Senior Java Software Engineer
2022 - 2023
Sofia, Bulgaria
- Built Microservices and supported legacy middleware.
- Decomposed the monolithic travel software into microservices, such as searching, booking, and payment using Java, Quarkus, JAXB, RabbitMQ. This improved scalability and maintainability.
- Integrated gRPC and Protocol Buffers (protobuf) to facilitate Remote Procedure Calls (RPC) between microservices, ensuring efficient communication and interoperability.
- Proposed and designed integration tests using test containers for microservices with RabbitMQ and Couchbase. This saved 60% of the time in development and running the integration tests.
- Enhanced bridge application between IBM and RabbitMQ message brokers using Go programming language which allowed testing of microservices against the legacy system.
- Developed a gateway that mirrors messages from the legacy system to the new microservices architecture using Google Guava, IBM MQ, and design patterns (Multithreading, Singleton, Strategy, Template). Facilitated testing for the microservices replacing the legacy back-end.
Team Lead / Senior Full Stack Developer
2015 - 2022
Soborg, Denmark
- Integrated a telemedicine web app with an ADFS server for Single Sign-On (SSO) using SAML and SimpleSAMLphp. This effort attracted three new customers and boosted company income by 10%.
- Developed a video call feature in a telemedicine web app using socket.io, Node.js, and JavaScript, successfully meeting the requirements of 80% of customers.
- Implemented a module to monitor psychiatric patients with PHP/Yii, AngularJS, HTML5, and CSS3. This initiative brought in one new customer and increased company income by 3%.
- Performed an analysis of customer requirements and issues, created tickets on GitLab, and delegated tasks to other developers, resulting in streamlined issue resolution and enhanced team efficiency.
- Enhanced patient care through the implementation of rehabilitation and observation monitors, a calendar, call center, and other modules using PHP, Node.js, MySQL, REST, and AngularJS.
- Implemented push-subscription functionality across multiple modules using Node.js and Socket.io, significantly reducing server loading and eliminating the need for HTTP polling. This optimization resulted in enhanced real-time data updates, improving overall system performance and user experience.
- Seamlessly integrated with government systems and partners' servers using PHP, SOAP, XML, and Cron, facilitating efficient data exchange.
- Optimized database performance through enhancements such as query restructuring, indexing, and caching, achieving REST services response time under 3 seconds, and enhancing query performance and system scalability.
Java Developer
2011 - 2015
Pilsen, Czechia
- Developed various telematics applications for a telematics platform using Java OSGi, Maven, EclipseLink, Oracle, ADF, Android Programming, and MQTT. These applications gained widespread adoption among bus and truck companies in Hong Kong and Europe.
Java Developer
2008 - 2011
Prague, Czechia
- Designed and implemented multiple web applications for both internal and customer use, utilizing Java/Struts, JSP, Apache Tiles, Oracle, PL/SQL, Apache Axis, SOAP, and Jasper Reports. This initiative enhanced internal processes and improved customer interactions.
Web Application Developer
2014 - 2014
USA
- Contributed to developing a web application using PHP, Slim, MySQL, JavaScript.
Web Application Developer
2012 - 2013
Omaha, NE, USA
- Participated in developing auction software SaaS using Java, Spring, MyBatis, MySQL.
Portfolio
This website flow:
Blogs
Sorting algorithmsSorting algorithms are fundamental tools in computer science, serving as the backbone for various applications and systems. While the concept of sorting might seem straightforward, the algorithms behind it are diverse, each with its own set of characteristics, efficiency, and elegance. In this blog post, we embark on a journey through the world of sorting algorithms, exploring their inner workings, efficiency, and the beauty of their design.
The Importance of Sorting: Sorting is ubiquitous in computer science, finding applications in databases, search algorithms, numerical analysis, and more. Whether it's organizing a list of names, arranging data in ascending order, or optimizing search operations, sorting algorithms play a crucial role in streamlining computational processes.
The Classification of Sorting Algorithms: Sorting algorithms can be classified based on various criteria, such as their time complexity, stability, adaptability, and internal workings. We delve into the different categories, including comparison-based sorting algorithms like Bubble Sort, Insertion Sort, and Merge Sort, as well as non-comparison-based algorithms like Counting Sort and Radix Sort.
Efficiency: Big O Notation and Time Complexity Analysis: Efficiency is a key consideration when evaluating sorting algorithms. We introduce the concept of Big O notation and delve into time complexity analysis, exploring how different sorting algorithms perform under various scenarios. From the O(n^2) complexity of Bubble Sort to the O(n log n) efficiency of Quick Sort and Merge Sort, we uncover the trade-offs between simplicity and performance.
The Beauty of Design: Elegance in Sorting Algorithms: Beyond efficiency, sorting algorithms exhibit elegance in their design and implementation. We admire the simplicity of Insertion Sort's incremental approach, the divide-and-conquer strategy of Merge Sort, and the partitioning technique of Quick Sort. Through visualizations and code snippets, we showcase the beauty of these algorithms in action.
Real-World Applications and Optimization Techniques: In addition to theoretical analysis, we explore real-world applications of sorting algorithms and optimization techniques. From optimizing memory usage with in-place sorting algorithms to leveraging parallelism and multi-threading for enhanced performance, we uncover strategies for maximizing efficiency in practical scenarios.
Beyond Traditional Sorting: Exploring Modern Approaches: As technology evolves, so do sorting techniques. We introduce modern approaches to sorting, including external sorting for large datasets, parallel sorting algorithms for distributed systems, and hybrid algorithms that combine the strengths of multiple techniques. By embracing innovation, we pave the way for future advancements in sorting technology.
Sorting algorithms represent a fascinating intersection of theory and practice in computer science. From the simplicity of Bubble Sort to the sophistication of modern sorting techniques, each algorithm offers unique insights into the art of computation. By understanding the inner workings, efficiency, and elegance of sorting algorithms, we gain valuable knowledge that empowers us to tackle complex computational challenges with confidence and creativity.
Testimonials
Contact
Location:
1000 north 4th street, Fairfield, IA 52557
Email:
dinomov@gmail.com
Call:
+1 641 233-9601