Jose Da Silva Gomes

3,814
reputation
3
24
34

I'm a computer scientist who aspires to -eventually- work in artificial intelligence. I'm also fascinated by other captivating domains of computer science, including data mining, computer graphics, and web security. Consistently exploring these subjects, diving deep into reading and active learning is something I truly enjoy and that enables me to continually explore new concepts and keep up with the rapidly evolving field.

I have primarily worked with Java, but I have also gained experience in JavaScript, particularly in frontend development using React, and in the backend with both Node.js and PHP. I have also had the opportunity to work with Python and C# in certain projects.

When tackling complex problems, I find value in applying concepts from domain-driven design and using various design patterns such as strategy, facade, decorator, composite, object pool, among others. Breaking down problems into manageable subproblems and leveraging design patterns allows for simpler and more understandable solutions. I prioritize code modularity and organization, often utilizing interfaces to define code contracts.

In my work with Spring, I frequently utilize design patterns such as dependency injection, which promotes decoupling and improves maintainability and testability. Additionally, I leverage patterns like lazy initialization, proxies (Java proxy for interfaces and cglib for classes), and singleton, depending on the specific characteristics and requirements of the problem being solved.

I also work with other libraries such as Hibernate (DAO, DTO, and adapter patterns), RxJava (observer, publish/subscribe patterns), and various concurrency-related tools and patterns like join, lock, monitor, read-write lock, scheduler, and thread pool.

These are the stacks I commonly work with in my projects. One stack involves JavaScript with MongoDB, Node.js, GraphQL, and React. The other stack is Java-based, utilizing Spring, GraphQL-Java, SOAP, OData, and Hibernate.