I follow a three-step process to develop any feature or solution for an application. First, it’s essential to sit down with the user to fully understand their world. It’s important to think about how their mind works to truly grasp and feel the problem they are facing with the application. Once you understand their perspective, the next step is to devise the best possible solution for their problem. This solution needs to be exceptional for the user, even if it’s complex to implement. Users don’t want to change their specifications simply because it’s challenging to build what they need. They expect an application that solves their problem exactly as envisioned during the initial discussions. Your goal is to deliver the best solution possible within the available time and technology, even if it means creating helper libraries to support your implementation. These libraries often make the code more readable and manageable. Ultimately, the final solution should be simple yet perfect for the user. If the problem is highly complex, it can help to narrow the application’s scope or focus on the most critical functionality currently used by the user—without altering the original specifications. What truly matters is that the solution meets the user’s expectations while being simple, understandable, and easy to use.
My strongest background in backend development is with Java, but I have also studied Apple technologies extensively for frontend development. These two environments complement each other perfectly, as Java is excellent for building robust backend servers, and Apple’s philosophy and technology are ideal for creating exceptional user experiences. I believe the best solutions are achieved when each problem is addressed in the appropriate layer. For example, you cannot solve a server-side problem in the client application, nor can you resolve a client-side issue on the server. Without a comprehensive understanding of both technologies, it’s easy to make such mistakes. Whenever I’m developing, I constantly ask myself: *Is this problem specific to the server, or is it related to the client application?*
I enjoy creating projects where I see an opportunity to introduce something new. There are many products available that fail to meet the real demands of users. When I encounter such a scenario and have the time to analyze and think through the problem, I study it and build a prototype of my proposed solution. Those who know and work with me understand that I love solving problems by prototyping, as it allows me to uncover new insights and gain a deeper understanding of the problem.
In both my personal and professional projects, I adopt a component-oriented approach and test each step of development incrementally. I use TDD (Test-Driven Development) to implement components, ensuring that all planned tests are written before the component is finalized. When it comes to creating user interfaces—regardless of the technology or programming language—I prefer using the Passive View pattern. [100] [111] [112]
This curriculum is detailed because it serves as a comprehensive timeline of my professional projects. Each project represents a significant milestone in my career and highlights the progress and growth I have achieved over time. I appreciate your understanding if it feels a bit lengthy.
My main personal project is called **StmtNode** [13]. This project is a development platform featuring a custom IDE and a proprietary programming language designed specifically for creating unique applications. The key innovation of this IDE and programming language is its ability to generate code for various programming languages, as if it were written manually by a developer. For example, a project developed within this IDE and language can be converted into a Java project, a Node.js client/server application, an Apple application, or other technologies, depending on the implemented code generators.
I am the sole developer of this project and dedicate my free time to its implementation because I believe it is a groundbreaking tool that I will also use in my other personal projects.
The image on the left shows a screenshot of the application running in a macOS environment while building its own website. For more information about the project, you can visit the website stmtnode.com or email me at bernardobreder@gmail.com.
The new generation of GPU architectures enables the concurrent execution of multiple kernels on the same hardware. This feature significantly enhances the computational power of GPUs, as it allows the simultaneous execution of different tasks. However, the hardware's decision-making process for execution order heavily depends on the sequence in which kernels are submitted. This often results in suboptimal hardware utilization.
This work proposes a novel optimization approach to reorder kernel submissions, focusing on maximizing resource utilization and improving the average turnaround time. The method models the simulation of kernel execution and hardware resources as a knapsack problem and applies greedy and dynamic programming algorithms to solve it. The results, measured using kernels of varying sizes and resource requirements, demonstrate significant gains in average turnaround time and system throughput compared to standard concurrent kernel execution.
Projects with specific requirements often demand specialized programming languages. These languages should provide the necessary tools to enable efficient and effective implementation. While some projects prioritize enhancing the modularity of their architecture and focus on high-level development, others require optimized runtime performance, leveraging low-level programming features.
The **Breder Programming Language** was created to address the needs of projects requiring both high-level abstraction and low-level performance by optimizing the integration between these two layers. This work outlines the key characteristics of the Breder Programming Language and demonstrates how it can be used to achieve seamless development across varying levels of complexity.
[1] Graduation Defense Documentation
The increasing computational power and resources of modern GPUs have reignited interest in optimizing the sharing of these resources among multiple kernels. While new generations of GPUs support concurrent kernel execution, the scheduling decisions are made by the hardware at runtime. However, these hardware decisions are highly dependent on the order in which kernels are submitted for execution, often leading to suboptimal resource utilization. In this work, we propose a novel optimization approach to reorder kernel invocations, aiming to maximize resource utilization and improve average turnaround time. We model the assignment of kernels to hardware resources as a series of knapsack problems and solve them using a dynamic programming approach. To evaluate our method, we tested it with kernels of varying sizes and resource requirements. Our results demonstrate significant improvements in average turnaround time and system throughput when compared to the default kernel submission strategies used in modern GPUs.
Sharing GPUs is becoming a critical trend in high-performance computing, particularly in virtual GPU environments designed to meet the diverse demands of customers in cloud-based systems. In this context, GPUs must efficiently manage varying application loads while maintaining compatible throughput. This work focuses on kernel scheduling for GPU execution, specifically presenting strategies to determine the optimal order for scheduling kernels. Since this is an optimization problem, it can be formulated as a 0-1 knapsack problem. To address this, we propose the use of a greedy heuristic to solve the knapsack problem. We also evaluate the performance and overhead of the greedy method compared to the dynamic programming approach. Our results demonstrate that the greedy method achieves competitive performance with significantly lower execution overhead, making it a viable solution for large-scale environments.
The increasing computational resources available in modern GPUs have reignited interest in the challenge of efficiently sharing these resources among multiple kernels. While the latest GPU generations support concurrent kernel execution, their scheduling decisions are made by the hardware at runtime. However, these hardware decisions are highly influenced by the order in which kernels are submitted for execution, often resulting in suboptimal utilization of resources.
In this work, we propose a novel optimization approach to reorder kernel invocations, aiming to maximize resource utilization and improve average turnaround time. We model the assignment of kernels to hardware resources as a series of knapsack problems and solve them using a dynamic programming approach. To evaluate our method, we tested it with kernels of varying sizes and resource requirements. The results demonstrate significant improvements in average turnaround time and system throughput compared to the standard kernel submission strategies employed in modern GPUs.
This paper proposes a new framework designed to simplify and enhance productivity in iPhone application development. With this approach, developers can focus solely on the logic of the game, without being burdened by the complexities of the underlying framework or the native programming language required for iPhone development.
The framework provides straightforward and purpose-driven features, ensuring practicality and ease of use when programming for the iPhone. To achieve this, we implemented a specification based on common game framework architectures, tailored to meet these requirements by leveraging a custom programming language.
Objective-C, the language traditionally used for iPhone development, is considered a low-level language [STEPHEN G. KOCHAN]. As a result, developers must manage numerous aspects of the environment that should ideally not require their attention. A high-level language, allowing developers to focus exclusively on the application's logic, would greatly improve the development experience.
In this paper, we utilize the **Breder Programming Language** to implement the proposed framework. The Breder Language is a high-level programming language designed to promote code structure and productivity [BREDER, B]. Additionally, it is specifically developed to support projects requiring high efficiency in native method calls deployed through external libraries, which will be used to facilitate communication with the iPhone framework [BREDER, B].
This paper proposes a new framework designed to simplify and enhance productivity in iPhone application development. The framework is implemented using the **Breder Programming Language**, a high-level language that offers a wide range of features to ensure increased productivity and well-structured code.
SmartHSE is a proprietary software technology developed by Displace, designed to generate alerts and inference reports based on customer demands. In this session, discover how the software leverages deep learning powered by NVIDIA® Jetson™ devices to process data and submit the results to the Displace cloud server. Learn how visual computing is utilized to mitigate risks and enhance safety in factory environments.
Developer with Project for client with AI solution since 2019.
Developer with Java and Oracle for Petrobras. The software is a Desktop Application and a RMI Server. I work at this company since 2007.
Computer Graphic in 2012/01 with 80 hours
Algorithm and Programming in 2012/01 with 80 hours
Computer Graphic in 2012/02 with 80 hours
Construction of Algorithm in 2012/02 with 80 hours
Java and Javascript Developer of the Vitrinii.com
Software Engineer of the Vitrinii.com
Developer with Java the Xkeeping.com
Software Engineer of the Xkeeping.com
Developer with Java for Internal System
Web system built with Java Server
Developer with Java and Oracle for Programming Language
Developer and Creator of the Software Compiler
This software compile a generic source code and generate a Report of the Company based with your Database
The project aims to create a web development environment that integrates a unique and innovative programming language with a remote host, utilizing a remote server service. This environment seeks to offer enhanced development capabilities that are not typically available in conventional setups.
The primary goal of the project is to establish a seamless integration between the custom programming language and the remote host, enabling them to interact efficiently and leverage development resources in a more cohesive manner. This integration aims to bridge the gap between the client’s project and the hardware resources required for its execution, fostering a more efficient development process.
By utilizing the semantic analysis and execution context provided by the new programming language, the remote machine can better manage its resources during execution. Additionally, it allows for the dynamic shifting of the project’s execution context from one machine to another in real-time, based on resource demands. This enables a running web project to be transparently migrated between machines without disrupting its execution, offering optimal resource management.
With this context-shifting capability, remote machines can self-optimize to maximize their performance, ensuring efficient resource allocation for all active projects.
This project also includes a proposal for a new operating system that integrates knowledge of databases, data structures, and various libraries and frameworks. Further details about this study can be found at the link above.
I am working to Tecgraf since 2007 for many years with Java and Oracle, programming to desktop application for Petrobras.
Java is the programming language in which I have the most experience throughout my professional career. With this language, I have implemented and contributed to numerous large-scale and smaller projects. The list below highlights the Java projects I have participated in, ordered by their significance.
BandeiraBR
Gpu Scheduler [84]
Agent Breder [23]
XKeeping
On Off Marketing
Breder Language
Report Compiler
Doctor Neuro
Vitrinii
Java Certification
The list of projects below showcases personal and smaller-scale initiatives created for the purpose of studying and exploring proposals for new projects, ordered by their significance.
Http Websocket Server [78] [113]
Remote Service Access [79]
Database Storage [98]
Database in Memory [99]
Workstation Desktop [85]
Simple WebServer [86]
Simple WebServer [86]
Editor [97]
The list of modules below, show personal and short modules of concept that can be used in others projects.
EL Parser [96]
Html Builder [95]
Markdown Panel [94]
WebSocket [93]
JavaXml [92]
Java2Js [91]
Json [90]
PLSql Parser [89]
Swing Test [88]
Time [87]
I have many experience with iPhone and MacOS development with some projects by company listed below ordered by the importance. Same project is continue and other was finished because what was made is enough.
Statement Node [13]
BlueX
BandeiraBR
BeMyMap
Database Crypto
Agent Breder [23]
The Agent Breder was builded, when i was doing my master degree, which target is to create a node of server at the iPhone that can help to responde same requests from a main real server, like it is helping the server. With this, the agents can help to process the request information of the servers, and delegate to agent respond. This collaboration with agents of the computational effort that has a Web server, it will be better comment in the work.
Encrypt
SSH [24]
Day Cost
I have many experience with iPhone and MacOS development with some personal short projects separated by module listed below ordered by the name. This short projects was created by me to reuse the modules into others personal projects.
Aes [14]
Array [15]
Atomic [16]
BigInt [17]
BigSet [18]
BigSet Codec [19]
Compress Data Codec [20]
Data Codec [21]
Data Store [22]
Data Stream [25]
Database FileSystem [26]
DataBuffer [27]
Date [28]
Dictionary [29]
FileSystem [30]
Heap Queue [31]
Http Client [32]
Http Server [33]
Index Literal [34]
Json [35]
Json File Change [36]
Json File Revision [37]
Json File Revision Base [38]
Json File Revision Client [39]
Json File Revision Server [40]
Json Track [41]
Lambda [42]
Language [43]
Lexer [44]
Literal [45]
Log [46]
Markdown [47]
Memory FileSystem [48]
Optional [49]
Path [50]
Path Literal [51]
Property [52]
Random [53]
Regex [54]
Server [55]
Sha3 [56]
Shell [57]
SSL Server [58]
SSL Socket [59]
Standard FileSystem [60]
Standard Server [61]
Standard Socket [62]
Stream [63]
String Buffer [64]
Swift Parser [65]
Swift Shell [66]
Task Flow [67]
Unix Shell [68]
This session is under constructor.
Gpu Scheduler [84]
Hardware Simulator [77]
VHDL [80]
LabView Certification [81]
[1] Graduation Defense Documentation
[2] Graduation Defense Presentation
[3] Master Defense Documentation
[4] Master Defense Presentation
[7] Breder Programming Language for iPhone Game Programming
[8] UFF - Universidade Federal Fluminense
[9] Breder Programming Language for iPhone Game Programming
[10] GitHub.com of Bernardo Breder
[11] LinkedIn of Bernardo Breder
[19] Apple Module BitSet Codec
[20] Apple Module Compress Data Codec
[26] Apple Module Database FileSystem
[34] Apple Module Index Literal
[36] Apple Module Json File Change
[37] Apple Module Json File Revision
[38] Apple Module Json File Revision Base
[39] Apple Module Json File Revision Client
[40] Apple Module Json File Revision Server
[48] Apple Module Memory FileSystem
[51] Apple Module Path Literal
[60] Apple Module Standard FileSystem
[61] Apple Module Standard Server
[62] Apple Module Standard Socket
[64] Apple Module String Buffer
[65] Apple Module Swift Parser
[69] Certification of Top Articles from WSCAD
[70] Certification of Java Associate
[71] SWAS Project for Host Server
[73] Seminary about iOS Security
[76] Seminary of Breder Programming Language at Tecgraf
[77] Hardware Circuit Simulator
[79] Focus the student Bernardo Breder (end of page 4)
[81] LabView Certification Doing
[85] Workstation Desktop Java Application
[86] Simple WebServer for Java
[91] Java to Javascript for Java
[98] Database Storage for Java
[112] Swing, Passive Model-View-Presenter In 5 Minutes
[113] Http Websocket Server Presentation