You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Before I started my current job, I studied Physics Engineering. I focused on signal processing and machine learning. Now, I work as a full-stack engineer at a Health Tech startup in Cyprus. My job involves creating new features for different parts of our technology, like the backend, frontend, and mobile apps. I use languages like TypeScript, Python, and Dart every day to make sure our products work well and help people in the healthcare field.
My go-to code editor is VSCode. It's widely used and comes with a bunch of plugins that make coding easier and quicker for me.
Programming experience
Coming from a non-Computer Science background, my programming journey began in the realm of Physics, where I applied my skills to tasks such as signal processing, solving ODEs/PDEs, and designing filters. Utilizing languages like C/C++ and Matlab, I navigated through various academic challenges. However, upon entering the software industry after graduation, I felt disoriented, having never worked within a professional development team.
This confusion sparked a realization: I needed to relearn programming from an industry perspective. It was a process that reshaped my approach to programming and laid the foundation for my current expertise.
I vividly recall my first project: researching noise filtering algorithms. This project was particularly rewarding as it allowed me to blend my academic knowledge with industry demands. The culmination of my efforts resulted in a tangible product. I was immensely proud when the work was published in a local journal (https://doi.org/10.26418/jlk.v1i1.2), marking a significant milestone in my professional journey.
JavaScript experience
My journey into web programming began long before React became popular, when I started using JavaScript to build web pages. JavaScript served as my entry point into the world of web development due to its low entry barrier, allowing me to start coding relatively quickly. One of the aspects I appreciate most about JavaScript is its array functions like map, reduce, and filter. Coming from a background where C was my first programming language, which required lengthy iterations for arrays, these functions were a game-changer. They not only helped me cut down on code length but also made it cleaner and more concise. However, despite its advantages, there are certain aspects of JavaScript that I find challenging. One such aspect is its ambiguous Falsy-Truthy value comparison. This ambiguity often leads to bugs that are difficult to detect, adding complexity to the debugging process.
Node.js experience
Transitioning to Node.js marked the next chapter in my programming journey after working extensively with JavaScript. It was through Node.js that I first encountered npm, the package manager, which revolutionized my approach to programming. Unlike my experience with C/C++, where package management was less structured, npm introduced me to a systematic way of managing libraries. npm opened my eyes to the vast ecosystem of open-source libraries, generously provided by the community. I started to appreciate the open source community for providing vas libraries that not only expanded my toolkit but also enriched my programming experience. In Node.js, my focus primarily revolved around building APIs using NestJS and web applications with React.
C/Fortran experience
C/C++ was the very first programming language I learned, and it set the stage for my entire programming journey. I was introduced to it back in college while studying a particular subject. I even worked on projects involving microcontrollers and Arduino, putting my C/C++ skills to good use. In my first job, C/C++ remained an essential part of my toolkit. We developed APIs for our speech-to-text AI worker using 0MQ. This setup enabled us to handle large volumes of data traffic with remarkable speed and efficiency, showcasing the power and versatility of C/C++ in real-world applications.
Interest in stdlib
Working with the stdlibjs feels like home to me because of my prior experience with Matlab during my degree. Just like Matlab, the stdlibjs provides a wide range of functions and tools that for math/numeric operations.
What I particularly love about stdlibjs is its ndarray and plotting functionality. These features were not typically associated with JavaScript environments; they were more commonly found in languages like Python or R. However, with stdlibjs, I now have access to these powerful tools within the JavaScript ecosystem. This expanded toolkit allows me to work with data and visualization in new and exciting ways.
The goal of this idea is to expose a set of Fast Fourier Transform (FFT) interfaces similar to those available in NumPy and as documented in the Data APIs Array API specification. Similar to stdlib's BLAS interfaces, we may want to allow switching out the FFT backend.
One potential reference implementation which could form the basis of this idea is pocketfft, as done in NumPy:
The primary motivation behind introducing FFT operations on stdlib ndarrays is to enhance the toolkit available to stdlib users. This addition aligns with my experience in signal processing, where I have worked extensively with Fourier Transform. By incorporating FFT functionality into stdlib, users gain access to a broader range of tools for working with data. This not only enriches their capabilities but also opens the door to exploring various topics in data processing, particularly in signal processing.
Qualifications
With several years of experience in signal processing under my belt, I've gained expertise in utilizing FFT for various purposes, such as extracting signal features and understanding its inner workings. My proficiency in both C and JavaScript positions me well to contribute to the development of FFT functionality in stdlibjs. Drawing upon my extensive background in signal processing, I am equipped with the knowledge and skills necessary to design and implement robust FFT features within stdlibjs.
Prior art
Upon reviewing the GitHub issue (#3), it appears that FFT functionality has yet to be implemented in stdlibjs. However, the existing groundwork for ndarray operations lays a solid foundation that can facilitate the implementation of FFT.
Commitment
Given my prior experience balancing side projects alongside my full-time job, I typically allocate 20-24 hours per week to part-time work. As I am currently without a side project, I am able to commit the same amount of time to the Google Summer of Code program. This equates to approximately 360 hours over the course of the program, comfortably fitting within the 350-hour category project duration.
Schedule
Assuming a 12 week schedule,
Community Bonding Period:
Get familiar with ndarray operations
Discuss with the mentors on how the code should be structured and other execution steps
Get the development environment ready
Week 1, 2, 3:
Assess if I have all the ndarray operation function that I need to implement the FFT
Start writing missing supporting functions if any.
Week 4, 5, 6, 7:
Write the main functionality of FFT in C
Start writing test function
Week 8 & 9:
Start writing benchmark function
Improve the FFT performance if applicable
Week 10 & 11:
Start document the code and the examples
I will use the weeks as buffer to work on feedbacks and spilled over tasks
I have read and understood the application materials found in this repository.
I understand that plagiarism will not be tolerated, and I have authored this application in my own words.
I have read and understood the patch requirement which is necessary for my application to be considered for acceptance.
The issue name begins with [RFC]: and succinctly describes your proposal.
I understand that, in order to apply to be a GSoC contributor, I must submit my final application to https://summerofcode.withgoogle.com/before the submission deadline.
The text was updated successfully, but these errors were encountered:
Full name
Tirtadwipa Manunggal
University status
No
University name
No response
University program
No response
Expected graduation
No response
Short biography
Before I started my current job, I studied Physics Engineering. I focused on signal processing and machine learning. Now, I work as a full-stack engineer at a Health Tech startup in Cyprus. My job involves creating new features for different parts of our technology, like the backend, frontend, and mobile apps. I use languages like TypeScript, Python, and Dart every day to make sure our products work well and help people in the healthcare field.
Timezone
Asia/Jakarta (UTC+7)
Contact details
email:tirtadwipa.manunggal@gmail.com,github:liberocks
Platform
Mac
Editor
My go-to code editor is VSCode. It's widely used and comes with a bunch of plugins that make coding easier and quicker for me.
Programming experience
Coming from a non-Computer Science background, my programming journey began in the realm of Physics, where I applied my skills to tasks such as signal processing, solving ODEs/PDEs, and designing filters. Utilizing languages like C/C++ and Matlab, I navigated through various academic challenges. However, upon entering the software industry after graduation, I felt disoriented, having never worked within a professional development team.
This confusion sparked a realization: I needed to relearn programming from an industry perspective. It was a process that reshaped my approach to programming and laid the foundation for my current expertise.
I vividly recall my first project: researching noise filtering algorithms. This project was particularly rewarding as it allowed me to blend my academic knowledge with industry demands. The culmination of my efforts resulted in a tangible product. I was immensely proud when the work was published in a local journal (https://doi.org/10.26418/jlk.v1i1.2), marking a significant milestone in my professional journey.
JavaScript experience
My journey into web programming began long before React became popular, when I started using JavaScript to build web pages. JavaScript served as my entry point into the world of web development due to its low entry barrier, allowing me to start coding relatively quickly. One of the aspects I appreciate most about JavaScript is its array functions like map, reduce, and filter. Coming from a background where C was my first programming language, which required lengthy iterations for arrays, these functions were a game-changer. They not only helped me cut down on code length but also made it cleaner and more concise. However, despite its advantages, there are certain aspects of JavaScript that I find challenging. One such aspect is its ambiguous Falsy-Truthy value comparison. This ambiguity often leads to bugs that are difficult to detect, adding complexity to the debugging process.
Node.js experience
Transitioning to Node.js marked the next chapter in my programming journey after working extensively with JavaScript. It was through Node.js that I first encountered
npm
, the package manager, which revolutionized my approach to programming. Unlike my experience with C/C++, where package management was less structured,npm
introduced me to a systematic way of managing libraries.npm
opened my eyes to the vast ecosystem of open-source libraries, generously provided by the community. I started to appreciate the open source community for providing vas libraries that not only expanded my toolkit but also enriched my programming experience. In Node.js, my focus primarily revolved around building APIs using NestJS and web applications with React.C/Fortran experience
C/C++ was the very first programming language I learned, and it set the stage for my entire programming journey. I was introduced to it back in college while studying a particular subject. I even worked on projects involving microcontrollers and Arduino, putting my C/C++ skills to good use. In my first job, C/C++ remained an essential part of my toolkit. We developed APIs for our speech-to-text AI worker using 0MQ. This setup enabled us to handle large volumes of data traffic with remarkable speed and efficiency, showcasing the power and versatility of C/C++ in real-world applications.
Interest in stdlib
Working with the stdlibjs feels like home to me because of my prior experience with Matlab during my degree. Just like Matlab, the stdlibjs provides a wide range of functions and tools that for math/numeric operations.
What I particularly love about stdlibjs is its ndarray and plotting functionality. These features were not typically associated with JavaScript environments; they were more commonly found in languages like Python or R. However, with stdlibjs, I now have access to these powerful tools within the JavaScript ecosystem. This expanded toolkit allows me to work with data and visualization in new and exciting ways.
Version control
Yes
Contributions to stdlib
Open pull request:
blas/ext/base/dsortsh
to follow current project conventions stdlib#2007random/array
namespace stdlib#1965Merged pull request:
blas/ext/base/dsumkbn2
to follow current project conventions stdlib#1995math/base/special/nonfibonacci
stdlib#1964Goals
The goal of this idea is to expose a set of Fast Fourier Transform (FFT) interfaces similar to those available in NumPy and as documented in the Data APIs Array API specification. Similar to stdlib's BLAS interfaces, we may want to allow switching out the FFT backend.
One potential reference implementation which could form the basis of this idea is pocketfft, as done in NumPy:
https://github.com/mreineck/pocketfft
https://gitlab.mpcdf.mpg.de/mtr/pocketfft
Why this project?
The primary motivation behind introducing FFT operations on stdlib ndarrays is to enhance the toolkit available to stdlib users. This addition aligns with my experience in signal processing, where I have worked extensively with Fourier Transform. By incorporating FFT functionality into stdlib, users gain access to a broader range of tools for working with data. This not only enriches their capabilities but also opens the door to exploring various topics in data processing, particularly in signal processing.
Qualifications
With several years of experience in signal processing under my belt, I've gained expertise in utilizing FFT for various purposes, such as extracting signal features and understanding its inner workings. My proficiency in both C and JavaScript positions me well to contribute to the development of FFT functionality in stdlibjs. Drawing upon my extensive background in signal processing, I am equipped with the knowledge and skills necessary to design and implement robust FFT features within stdlibjs.
Prior art
Upon reviewing the GitHub issue (#3), it appears that FFT functionality has yet to be implemented in stdlibjs. However, the existing groundwork for ndarray operations lays a solid foundation that can facilitate the implementation of FFT.
Commitment
Given my prior experience balancing side projects alongside my full-time job, I typically allocate 20-24 hours per week to part-time work. As I am currently without a side project, I am able to commit the same amount of time to the Google Summer of Code program. This equates to approximately 360 hours over the course of the program, comfortably fitting within the 350-hour category project duration.
Schedule
Assuming a 12 week schedule,
Community Bonding Period:
Week 1, 2, 3:
Week 4, 5, 6, 7:
Week 8 & 9:
Week 10 & 11:
Week 12 (final week):
Related issues
#3
Checklist
[RFC]:
and succinctly describes your proposal.The text was updated successfully, but these errors were encountered: