Wave changes
This commit is contained in:
37
Misc/20241210001045-technical_moc.org
Normal file
37
Misc/20241210001045-technical_moc.org
Normal file
@@ -0,0 +1,37 @@
|
||||
:PROPERTIES:
|
||||
:ID: 2f285f04-fcf4-4ade-a1ac-2c50b43d529a
|
||||
:END:
|
||||
#+title: Technical MOC
|
||||
#+filetags: :moc:
|
||||
|
||||
In this file I want to include technical information (things related to programming, coding and networking etc):
|
||||
|
||||
- [[id:d63abaad-15e8-45d8-aafb-c634164ec0c0][Programming Projects]]
|
||||
|
||||
- [[id:e7f2302b-16eb-476d-a7b9-be12f077819d][AOC Notes]]
|
||||
|
||||
- [[id:348df473-6443-4f4a-b366-95397b574989][Web Port Notes]]
|
||||
|
||||
- [[id:ee6047b0-c878-4ec8-a1cf-9daf5c8f5b8e][Github Notes]]
|
||||
|
||||
- [[id:bdb493df-db92-4c93-9558-0b10fdff3048][Linux MOC]]
|
||||
|
||||
- [[id:e448cd99-afee-4702-947f-644bb34dc1aa][Database MOC]]
|
||||
|
||||
- [[id:8fa3f476-6152-45f4-b618-50f1e4bce46c][Emacs MOC]]
|
||||
|
||||
- [[id:0880f089-a5ad-49cd-8ce3-f020a5941313][Networking MOC]]
|
||||
|
||||
- [[id:9d1cfccc-8da7-41a3-b435-9857f0abe441][Leetcode Notes]]
|
||||
|
||||
- [[id:347d2663-515b-4d9a-9ee9-7706ee86a845][Haskell Notes]]
|
||||
|
||||
- [[id:5a207a1c-6f02-40d5-b42e-38daaa0aec10][C Notes]]
|
||||
|
||||
- [[id:ae343652-96fe-4341-8a36-ec3a1abd0dc6][Java MOC]]
|
||||
|
||||
- [[id:f09cb4ed-1407-4187-9002-de2c5db13a8f][Server MOC]]
|
||||
|
||||
- [[id:37495d5f-2a77-40bc-b45c-8163189bbe6b][Technical Commonplace]]
|
||||
|
||||
- [[id:22737796-6D31-49D5-84F2-F7BC73E45144][Concepts]]
|
||||
269
Misc/20241211161232- job_application_cover_letters.org
Normal file
269
Misc/20241211161232- job_application_cover_letters.org
Normal file
@@ -0,0 +1,269 @@
|
||||
:PROPERTIES:
|
||||
:ID: f9897f8e-2b63-4ad2-a55f-3787c4ac235f
|
||||
:END:
|
||||
#+title: job_application_cover_letters
|
||||
#+filetags: :pre-career:applications:
|
||||
#+STARTUP: overview
|
||||
|
||||
|
||||
* Modules:
|
||||
1st year
|
||||
- Data structures and Algorithms
|
||||
- Object Oriented Programming
|
||||
- Mathematical and Logical foundations of computer science
|
||||
- Full stack software development
|
||||
- Artificial Intelligence 1
|
||||
- Theories of computation
|
||||
2nd year
|
||||
- Team Project (77%)
|
||||
- Security and Networks (72%)
|
||||
- Functional Programming (87%)
|
||||
- Software Engineering and Professional Practice (81%)
|
||||
- Artificial Intelligence 2 (75%)
|
||||
- Operating Systems and Systems Programming (66%)
|
||||
3rd Year
|
||||
- Final Year Project
|
||||
- Advanced Networking
|
||||
- Advanced Functional Programming
|
||||
- Intelligent Software Engineering
|
||||
- Teaching Computer Science in Schools
|
||||
|
||||
|
||||
Mathematics A level: A
|
||||
French A level: B
|
||||
Business A level: A
|
||||
|
||||
Maths GCSE: 9
|
||||
English GCSE: 6
|
||||
|
||||
* Stantec
|
||||
** Cover letter:
|
||||
[[file:/home/zaine/master-folder/CV's/Cover Letter/Santec/Santec.pdf][File]]
|
||||
*CONTAINS SPELLING MISTAKES - USE BT ONE*
|
||||
I would firstly like to extend my gratidute for giving me the opportunity to apply for an amazing role. If you are looking for a passionate data analyst and problem solver with experience extending into software development, then I believe I'm the perfect candidate for the role.
|
||||
|
||||
Growing up, I have always been interested in two things: Tech and problem solving. My technical journey began when I joined the University Of Birmingham, wherein I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead, and resulted in a 14% increase in user satisfaction. In addition, I used Python for the visualization of data on a networking module and have been using PostgreSQL throughout my degree.
|
||||
|
||||
Upon inspecting the requirements from the description, I have listed below my top three skills which I believe would make me most suited for this role:
|
||||
- Data Analysis and Visualisation: I developed a Java based note taking application, where I used JavaFX and a database (PSQL).
|
||||
|
||||
- Database Management: Created and maintained databases using PostgreSQL for various projects, some were hosted locally, some on the cloud and some on virtual machines.
|
||||
|
||||
- Innovative Thinking: Currently integrating machine learning algorithms into a note taking platform tailored for neurodiverse students specifically.
|
||||
|
||||
Stantec has a commitment to two main things which really resonate and encouraged me to apply: sustainability and innovation. The Surface Water Assessor and Flood Prediction Tools are innovations that really inspire a person, and it only encourages me more to use the knowledge I am fortunate to have gained to help and make meaningful impact to society.
|
||||
|
||||
I am enthusiastic about joining the graduate program; it is a core principle of mine that continous learning will propel one to unimaginable heights, and I firmly believe that Santec will be able to provice the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
|
||||
|
||||
I am deeply drawn to the water sector because it sits at the intersection of environmental stewardship and technological innovation, offering a unique opportunity to address critical global challenges. With increasing droughts and floods revealing vulnerabilities in water systems, I am inspired by the chance to contribute to solutions that promote water conservation, resilience, and equitable access. Joining this sector allows me to apply my technical expertise in data analysis and machine learning to protect one of our most vital resources, ensuring sustainable and impactful outcomes for communities and future generations.
|
||||
|
||||
** Why are you interested in the sector stated above?
|
||||
|
||||
What draws me to the water sector is the amount of possibilities there are when it comes to creating positive impact to society. I believe in environmental stewardship, and through the use of technology, this offers a unique chance to address critical global issues, and solve them as well! Joining this sector would allow me to grow as an individual, and to apply my technical skills and experience in data analysis and machine learning to ensure that impactful outcomes are achieved.
|
||||
|
||||
* Sinara
|
||||
** Use this section to describe your technical experience such as programming languages, operating systems, hardware, databases etc. Give some indication of your level of proficiency in each. Include particular reference to your skills in C#/C++ and Java.
|
||||
Technical Experience
|
||||
|
||||
C: Strong proficiency gained through academic projects focusing on operating systems and systems programming. I created a 3 tier TCP/IP client server CLI service as part of University project. C++: Moderate proficiency, developed through coursework and personal exploration of object oriented and systems programming. Currently learning more about this, I recently developped a c++ pomodorro CLI system (personal project). Java: Advanced expertise through academic projects, such as developing a note taking application (personal) using JavaFX and a database driven book catalog (University). This includes experience in object oriented programming and GUI development. TypeScript/Angular: Proficient in full stack development, notably using Angular for frontend development and integrating with Spring Boot backends. Used this for a web project that is now completed and using Spring boot with Typescript/Angular for a current web project. Databases PostgreSQL: Advanced proficiency demonstrated in team projects and personal development efforts, including a web application for football enthusiastic students (University Project) and a book catalog application. H2 Console: Experience in testing and managing in memory databases within Spring Boot applications. Operating Systems Linux: Competent in scripting and system management, with experience writing bash scripts and using Linux environments for development. I also use Linux as my daily driver, and I am getting more into emacs.
|
||||
|
||||
|
||||
What was the purpose of the program. What part did you play in its development?
|
||||
|
||||
Football Finder Web Application Purpose: The program was designed to help users locate and join local football matches based on their preferences, such as location, skill level, and availability. The goal was to increase engagement in local sports communities and make match organisation easier. My Role: As the team leader, I oversaw code commits, pull requests, and task allocations using a Kanban board. I actively contributed to both the frontend and backend, focusing on user interface enhancements and optimising the backend logic for booking pitches Lessons Learned: I improved my ability to lead a team and manage project workflows effectively. I strengthened my skills in user centered design, ensuring the interface met user expectations, this was done through collating feedback. I learned the importance of clear communication and fostering a supportive environment within the team.
|
||||
|
||||
|
||||
What steps did you take before starting to write code?
|
||||
|
||||
Before starting the Football Finder Web Application, I liaised with the team to define user requirements, focusing on features like location based match searches and skill level filtering. We researched existing solutions, identified gaps, and selected a tech stack of Angular, Spring Boot, and PostgreSQL. I created user personas, wireframes, and prototypes to visualise the UI and flow, while also designing the database schema (using JDL) and API endpoints. A Kanban board was established for task management, and we broke the project into sprints with clear milestones. Finally, we outlined a testing strategy, including unit, integration, and user acceptance testing, to ensure the application met user needs and functioned seamlessly.
|
||||
|
||||
|
||||
How was the software tested?
|
||||
|
||||
The Football Finder Web Application was tested using a strategy to ensure functionality and reliability. Unit tests were written for individual components and backend services to validate isolated functionality. To test API endpoints we used SwaggerUI. User acceptance testing involved gathering feedback from a small group of target users to evaluate the usability and effectiveness of the application. Automated tests were implemented for repetitive checks, and manual testing focused on edge cases, such as invalid input handling and network interruptions. Finally, the application was deployed in a staging environment to simulate real world usage and identify any final issues before production.
|
||||
|
||||
|
||||
What problems did you encounter and how did you deal with them?
|
||||
|
||||
During the development of the Football Finder Web Application, we encountered several challenges. One major issue was ensuring accurate location based match recommendations, which we resolved by integrating and testing multiple geolocation APIs to find the most reliable solution. Another problem was maintaining data consistency during simultaneous updates to the match database, which we addressed by implementing transaction management and locking mechanisms in PostgreSQL. Cross browser compatibility issues arose in the frontend, which we fixed by rigorously testing on different browsers and applying appropriate SCSS fixes (alot of global stylings had to be rewritten). Lastly, communication delays within the team occasionally slowed progress, so we introduced more frequent stand ups and better use of task management tools to improve collaboration and streamline workflows.
|
||||
|
||||
|
||||
With hindsight, what would you have done differently?
|
||||
|
||||
With hindsight, I would have allocated more time to user research and feedback during the initial planning stages to better align the application's features with user needs. Additionally, I would have implemented our own automated deployment pipelines earlier to streamline the testing and staging process as opposed to using the one the University provided, allowing us to learn more about devops and have more control over the project. Lastly, setting clearer communication protocols from the outset could have minimised delays, ensuring smoother collaboration and faster resolution of blockers.
|
||||
|
||||
What are your personal career goals?
|
||||
- Develop expertise in full-stack development, machine learning, and cloud computing. - Contribute to open source projects (currently going into emacs and MELPA packages) - Lead impactful projects that give back to the community. - Take on leadership roles to guide teams in delivering applications and solutions.
|
||||
Please use this space to provide any other information you feel would support your application. For example: Other experience or awards, positions of responsibility, hobbies and interests.
|
||||
- I love language learning and reading literature in other languages. - I really enjoy reading about other people's experiences with GTD (getting things done) and use these as inspiration for my own system - I am currently getting into embedded programming. - I am a regular gym goer and love cooking. - I also enjoy tinkering with cars and modding them.
|
||||
* BT
|
||||
** Cover Letter:
|
||||
[[file:~/master-folder/CV's/Cover Letter/btgroup/BT_group_cl.pdf][file]]
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate software engineer and problem solver with experience extending into other disciplines, then I believe I'm the perfect candidate for the role.
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at BT group, where challenges are primarily user centric.
|
||||
|
||||
What draws me most to BT group is their commitment to using technology to bring good to the community. This, I would say, is one of the reasons I decided to go into the field of tech, which was to help others. BT group achieves this in various ways, ranging from addressing climate change to enhancing cybersecurity. I would be really ecstatic to apply my skills in various programming languages and tools such as Git, Ansible, and Terraform, coupled with my foundational knowledge of cloud services like AWS and Oracle cloud to the mission of BT group, which is to develop high performance and well tested code to bring about a greater benefit to the community.
|
||||
|
||||
I am enthusiastic about joining the graduate program; it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that BT group will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* Panoptech
|
||||
** Cover Letter:
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate software engineer and problem solver with experience extending into DevOps, then I believe I'm the perfect candidate for the role.
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
|
||||
In addition to my technical background, I have experience with DevOps tools, including Ansible, Docker, and Jenkins, gained through self learning and practical application. I am also familiar with bash scripting, which is something I find myself coming back to whenever I want to automate something; this I usually do in bash and python, occasionally, for no particular reason, I would use Haskell to write scripts. I am certain that these skills will allow me to support the development team in managing the DevOps toolchain.
|
||||
|
||||
I also use Linux as my daily drivers, I have dual booted quite a few machines, some running Ubuntu some running Mint. I also have experience in virutalisation software; this was when I needed to host a local database, hence I fired up a virtual machine running minimal Ubuntu and kept a PSQL server on there.
|
||||
|
||||
I am enthusiastic about joining the Panoptech; it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that Panoptech will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* buro happold
|
||||
[[file:~/master-folder/CV's/Cover Letter/buro_happald/Buro_Happold_CL.pdf][file]]
|
||||
** cl - SAME AS BT
|
||||
Dear Hiring Manager,
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing
|
||||
role. If you are looking for a passionate Digital Technologist and problem solver with experience
|
||||
extending into other disciplines, then I believe I'm the perfect candidate for the role.
|
||||
There are two things I have always been interested in growing up: Technology and Problem
|
||||
solving. My technical journey began when I joined the University of Birmingham, where I have
|
||||
developed solid foundations in data analysis, software development and problem solving. One
|
||||
of the biggest projects I have worked on was a football finding web app which I was entrusted
|
||||
to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot,
|
||||
Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising
|
||||
data on a networking module, and for various scripting purposes.
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to
|
||||
students coming from lower socio-economic backgrounds, and who are neurodiverse. This
|
||||
experience has taught me many things, two that are notable are communication and
|
||||
adaptability. These two skills together have taught me the importance of understanding as well
|
||||
as addressing challenges, which I believe will translate well at Buro Happold, where challenges
|
||||
are primarily user centric.
|
||||
What draws me most to Buro Happold is their commitment to using technology to bring good
|
||||
to the community. This, I would say, is one of the reasons I decided to go into the field of tech,
|
||||
which was to help others. Buro Happold achieves this in various ways, from designing modular
|
||||
systems that reduce costs while enhancing the learning experience for institutions like Kuwait
|
||||
University, to implementing advanced technologies at landmark sites like the Louvre Abu Dhabi,
|
||||
ensuring seamless visitor experiences and operational efficiency.
|
||||
I am enthusiastic about joining the company; it is a core principle of mine that continuous
|
||||
learning will propel one to unimaginable heights, and I firmly believe that Buro Happold will be
|
||||
able to provide the means to make that happen. Thank you for considering my application, I
|
||||
look forward to discussing my candidacy further!
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* Experian
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate software engineer and problem solver with experience extending into other disciplines, then I believe I'm the perfect candidate for the role.
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction, this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at Experian, where challenges are primarily user centric.
|
||||
|
||||
What draws me most to Experian is their commitment to using technology to bring good to the community. This, I would say, is one of the reasons I decided to go into the field of tech, which was to help others. Experian achieves this in various ways, ranging from addressing climate change to enhancing cybersecurity. I would be really ecstatic to apply my skills in various programming languages and tools such as Java, Angular/Typescript and git, coupled with my foundational knowledge of cloud services like AWS and Oracle cloud to the mission of Experian, which is to develop high performance and well tested code to bring about a greater benefit to the community.
|
||||
|
||||
I am enthusiastic about joining the graduate program, it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that Experian will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
* Cambridge Consultants
|
||||
Dear Hiring Manager,
|
||||
|
||||
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate embedded software engineer and problem solver with experience extending into DevOps and low-level programming, then I believe I'm the perfect candidate for the role.
|
||||
|
||||
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
|
||||
|
||||
In addition to my technical background, I have experience with DevOps tools, including Ansible, Docker, and Jenkins, gained through self learning and practical application. I am also familiar with bash scripting, which is something I find myself coming back to whenever I want to automate something; this I usually do in bash and python, occasionally, for the purpose of challenging myself, I would use Haskell to write scripts. In addition, I write scripts that allow me to communicate with hardware connected to a raspberry Pi; whenever I have the free time, I dive into embedded programming as this is a huge interest of mine. I am certain that these skills will allow me to support the team in solving real client problems at Cambridge Consultants.
|
||||
|
||||
|
||||
|
||||
I also use Linux as my daily drivers, I have dual booted quite a few machines, some running Ubuntu some running Mint. I also have experience in virutalisation software; this was when I needed to host a local database, hence I fired up a virtual machine running minimal Ubuntu and kept a PSQL server on there.
|
||||
|
||||
|
||||
|
||||
I am enthusiastic about joining the Cambridge Consultants; it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that Cambridge Consultants will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
|
||||
|
||||
Warm regards,
|
||||
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* Adelphi Real World
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate problem solver with a strong foundation in data analysis and a drive to deliver precise and efficient solutions, I believe I am the ideal candidate for this role.
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction, this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at Adelphi, where challenges are primarily user centric.
|
||||
|
||||
What draws me most to Adelphi Real World is their commitment to leveraging real world data to improve healthcare outcomes. The mere prospect of contributing to this mission by using tools like SPSS, Confirmit, and Excel, and supporting fieldwork and data processing, aligns perfectly with my dream of using technology to help others. I would be really ecstatic to apply my analytical skills, programming knowledge, and meticulous attention to detail to bring about a greater benefit to Adelphi, the healthcare sector and the community.
|
||||
|
||||
I am enthusiastic about joining this esteemed organisation, it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that Adelphi Real World will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* Midland Heart
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate problem solver with a strong foundation in data analysis and a drive to deliver precise and efficient solutions, I believe I am the ideal candidate for this role.
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction, this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at Midland Heart, where challenges are primarily user centric.
|
||||
|
||||
What draws me most to Midland Heart is their commitment to leveraging real world data to improve tenancy outcomes. The mere prospect of contributing to this mission by using tools like Power Bi, Python, and Cloud Services, and supporting fieldwork and data processing, aligns perfectly with my dream of using technology to help others. I would be ecstatic to apply my analytical skills, programming knowledge, and meticulous attention to detail to bring about a greater benefit to Midland Heart, the housing sector and the community.
|
||||
|
||||
I am enthusiastic about joining this esteemed organisation, it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that Midland Heart will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* EDW
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate Software Tester and problem solver with experience extending into other disciplines, then I believe I'm the perfect candidate for the role.
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at EDW Technology, where challenges are primarily user centric.
|
||||
What draws me most to EDW Technology is their commitment to using technology to bring good to the community. This, I would say, is one of the reasons I decided to go into the field of tech, which was to help others. EDW Technology achieves this in various ways, ranging from creating energy management tools to providing user focused solutions. I would be ecstatic to apply my skills in various programming languages and tools such as Java, Swagger, and Git, coupled with my foundational knowledge of cloud services like AWS and Oracle cloud to the mission of EDW Technology, which is to develop high performance and well tested code to bring about a greater benefit to the community.
|
||||
I am enthusiastic about joining the graduate program; it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that EDW Technology will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* DCA
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate software engineer and problem solver with experience extending into other disciplines, then I believe I'm the perfect candidate for the role.
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes. I have also built a full stack NLP/AI powered note taking web application to address the issue of cognitive overload.
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at DCA, where challenges are primarily user centric.
|
||||
What draws me most to DCA is their commitment to using technology to bring good to the community. This, I would say, is one of the reasons I decided to go into the field of tech, which was to help others. DCA achieves this in various ways, ranging from addressing novel transport solutions to developing safety-critical medical devices. I would be really ecstatic to apply my skills in various programming languages and tools such as Git, Docker, and Nginx, coupled with my foundational knowledge of cloud services like AWS and Oracle cloud to the mission of DCA, which is to develop high performance and well tested code to bring about a greater benefit to the community
|
||||
I am enthusiastic about joining the graduate program; it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that DCA will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* emp
|
||||
Describe something you have done that you are proud of. (Word limit 250 words)
|
||||
One of the proudest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. However, my proudest work to date was a full stack web application that utilises AI and NLP to reduce cognitive overload faced in students. This was an ongoing long-term project and has taken me 7 months to complete. I used Spring Boot, Angular/Typescript along with Python scripting.
|
||||
|
||||
How can you demonstrate your current curiosity around technology to us? (Word Limit 250 words)
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. I find myself more so immersed in technical related hobbies such as ‘ricing’ a Linux distro, configuration of Emacs, tinkering with embedded programming using Raspberry Pi.
|
||||
|
||||
Can you describe to us a scenario where you have demonstrated either creativity, innovation or originality (Word Limit 250 words)
|
||||
One of the most innovative projects I have worked on was my AI-assisted note-taking web application, designed to combat cognitive overload in students. The challenge was to create an intuitive system that could process and summarise lecture content efficiently while al-lowing students to interact with it seamlessly. I thus decided on using OpenAI’s API for basic requests (intelligence enhanced which allowed it to see what the user is doing through parsing the canvas object), natural language processing (NLP), integrating it with an Angular TypeScript frontend and a Spring Boot backend.
|
||||
What made this project particularly creative was my decision to incorporate adaptive sum-marisation, meaning the AI tailors the level of detail in notes based on the user’s prefer-ences and previous study patterns. Unlike traditional note-taking applications, this one con-tinuously learns from user behavior, refining its output over time. Furthermore, I used YAKE and TF-IDF to extract keywords from the notes, as well as NER (named entity recognition).
|
||||
269
Misc/20241211161232-applications.org
Normal file
269
Misc/20241211161232-applications.org
Normal file
@@ -0,0 +1,269 @@
|
||||
:PROPERTIES:
|
||||
:ID: f9897f8e-2b63-4ad2-a55f-3787c4ac235f
|
||||
:END:
|
||||
#+title: job_application_cover_letters
|
||||
#+filetags:
|
||||
#+STARTUP: overview
|
||||
|
||||
|
||||
* Modules:
|
||||
1st year
|
||||
- Data structures and Algorithms
|
||||
- Object Oriented Programming
|
||||
- Mathematical and Logical foundations of computer science
|
||||
- Full stack software development
|
||||
- Artificial Intelligence 1
|
||||
- Theories of computation
|
||||
2nd year
|
||||
- Team Project (77%)
|
||||
- Security and Networks (72%)
|
||||
- Functional Programming (87%)
|
||||
- Software Engineering and Professional Practice (81%)
|
||||
- Artificial Intelligence 2 (75%)
|
||||
- Operating Systems and Systems Programming (66%)
|
||||
3rd Year
|
||||
- Final Year Project
|
||||
- Advanced Networking
|
||||
- Advanced Functional Programming
|
||||
- Intelligent Software Engineering
|
||||
- Teaching Computer Science in Schools
|
||||
|
||||
|
||||
Mathematics A level: A
|
||||
French A level: B
|
||||
Business A level: A
|
||||
|
||||
Maths GCSE: 9
|
||||
English GCSE: 6
|
||||
|
||||
* Stantec
|
||||
** Cover letter:
|
||||
[[file:/home/zaine/master-folder/CV's/Cover Letter/Santec/Santec.pdf][File]]
|
||||
*CONTAINS SPELLING MISTAKES - USE BT ONE*
|
||||
I would firstly like to extend my gratidute for giving me the opportunity to apply for an amazing role. If you are looking for a passionate data analyst and problem solver with experience extending into software development, then I believe I'm the perfect candidate for the role.
|
||||
|
||||
Growing up, I have always been interested in two things: Tech and problem solving. My technical journey began when I joined the University Of Birmingham, wherein I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead, and resulted in a 14% increase in user satisfaction. In addition, I used Python for the visualization of data on a networking module and have been using PostgreSQL throughout my degree.
|
||||
|
||||
Upon inspecting the requirements from the description, I have listed below my top three skills which I believe would make me most suited for this role:
|
||||
- Data Analysis and Visualisation: I developed a Java based note taking application, where I used JavaFX and a database (PSQL).
|
||||
|
||||
- Database Management: Created and maintained databases using PostgreSQL for various projects, some were hosted locally, some on the cloud and some on virtual machines.
|
||||
|
||||
- Innovative Thinking: Currently integrating machine learning algorithms into a note taking platform tailored for neurodiverse students specifically.
|
||||
|
||||
Stantec has a commitment to two main things which really resonate and encouraged me to apply: sustainability and innovation. The Surface Water Assessor and Flood Prediction Tools are innovations that really inspire a person, and it only encourages me more to use the knowledge I am fortunate to have gained to help and make meaningful impact to society.
|
||||
|
||||
I am enthusiastic about joining the graduate program; it is a core principle of mine that continous learning will propel one to unimaginable heights, and I firmly believe that Santec will be able to provice the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
|
||||
|
||||
I am deeply drawn to the water sector because it sits at the intersection of environmental stewardship and technological innovation, offering a unique opportunity to address critical global challenges. With increasing droughts and floods revealing vulnerabilities in water systems, I am inspired by the chance to contribute to solutions that promote water conservation, resilience, and equitable access. Joining this sector allows me to apply my technical expertise in data analysis and machine learning to protect one of our most vital resources, ensuring sustainable and impactful outcomes for communities and future generations.
|
||||
|
||||
** Why are you interested in the sector stated above?
|
||||
|
||||
What draws me to the water sector is the amount of possibilities there are when it comes to creating positive impact to society. I believe in environmental stewardship, and through the use of technology, this offers a unique chance to address critical global issues, and solve them as well! Joining this sector would allow me to grow as an individual, and to apply my technical skills and experience in data analysis and machine learning to ensure that impactful outcomes are achieved.
|
||||
|
||||
* Sinara
|
||||
** Use this section to describe your technical experience such as programming languages, operating systems, hardware, databases etc. Give some indication of your level of proficiency in each. Include particular reference to your skills in C#/C++ and Java.
|
||||
Technical Experience
|
||||
|
||||
C: Strong proficiency gained through academic projects focusing on operating systems and systems programming. I created a 3 tier TCP/IP client server CLI service as part of University project. C++: Moderate proficiency, developed through coursework and personal exploration of object oriented and systems programming. Currently learning more about this, I recently developped a c++ pomodorro CLI system (personal project). Java: Advanced expertise through academic projects, such as developing a note taking application (personal) using JavaFX and a database driven book catalog (University). This includes experience in object oriented programming and GUI development. TypeScript/Angular: Proficient in full stack development, notably using Angular for frontend development and integrating with Spring Boot backends. Used this for a web project that is now completed and using Spring boot with Typescript/Angular for a current web project. Databases PostgreSQL: Advanced proficiency demonstrated in team projects and personal development efforts, including a web application for football enthusiastic students (University Project) and a book catalog application. H2 Console: Experience in testing and managing in memory databases within Spring Boot applications. Operating Systems Linux: Competent in scripting and system management, with experience writing bash scripts and using Linux environments for development. I also use Linux as my daily driver, and I am getting more into emacs.
|
||||
|
||||
|
||||
What was the purpose of the program. What part did you play in its development?
|
||||
|
||||
Football Finder Web Application Purpose: The program was designed to help users locate and join local football matches based on their preferences, such as location, skill level, and availability. The goal was to increase engagement in local sports communities and make match organisation easier. My Role: As the team leader, I oversaw code commits, pull requests, and task allocations using a Kanban board. I actively contributed to both the frontend and backend, focusing on user interface enhancements and optimising the backend logic for booking pitches Lessons Learned: I improved my ability to lead a team and manage project workflows effectively. I strengthened my skills in user centered design, ensuring the interface met user expectations, this was done through collating feedback. I learned the importance of clear communication and fostering a supportive environment within the team.
|
||||
|
||||
|
||||
What steps did you take before starting to write code?
|
||||
|
||||
Before starting the Football Finder Web Application, I liaised with the team to define user requirements, focusing on features like location based match searches and skill level filtering. We researched existing solutions, identified gaps, and selected a tech stack of Angular, Spring Boot, and PostgreSQL. I created user personas, wireframes, and prototypes to visualise the UI and flow, while also designing the database schema (using JDL) and API endpoints. A Kanban board was established for task management, and we broke the project into sprints with clear milestones. Finally, we outlined a testing strategy, including unit, integration, and user acceptance testing, to ensure the application met user needs and functioned seamlessly.
|
||||
|
||||
|
||||
How was the software tested?
|
||||
|
||||
The Football Finder Web Application was tested using a strategy to ensure functionality and reliability. Unit tests were written for individual components and backend services to validate isolated functionality. To test API endpoints we used SwaggerUI. User acceptance testing involved gathering feedback from a small group of target users to evaluate the usability and effectiveness of the application. Automated tests were implemented for repetitive checks, and manual testing focused on edge cases, such as invalid input handling and network interruptions. Finally, the application was deployed in a staging environment to simulate real world usage and identify any final issues before production.
|
||||
|
||||
|
||||
What problems did you encounter and how did you deal with them?
|
||||
|
||||
During the development of the Football Finder Web Application, we encountered several challenges. One major issue was ensuring accurate location based match recommendations, which we resolved by integrating and testing multiple geolocation APIs to find the most reliable solution. Another problem was maintaining data consistency during simultaneous updates to the match database, which we addressed by implementing transaction management and locking mechanisms in PostgreSQL. Cross browser compatibility issues arose in the frontend, which we fixed by rigorously testing on different browsers and applying appropriate SCSS fixes (alot of global stylings had to be rewritten). Lastly, communication delays within the team occasionally slowed progress, so we introduced more frequent stand ups and better use of task management tools to improve collaboration and streamline workflows.
|
||||
|
||||
|
||||
With hindsight, what would you have done differently?
|
||||
|
||||
With hindsight, I would have allocated more time to user research and feedback during the initial planning stages to better align the application's features with user needs. Additionally, I would have implemented our own automated deployment pipelines earlier to streamline the testing and staging process as opposed to using the one the University provided, allowing us to learn more about devops and have more control over the project. Lastly, setting clearer communication protocols from the outset could have minimised delays, ensuring smoother collaboration and faster resolution of blockers.
|
||||
|
||||
What are your personal career goals?
|
||||
- Develop expertise in full-stack development, machine learning, and cloud computing. - Contribute to open source projects (currently going into emacs and MELPA packages) - Lead impactful projects that give back to the community. - Take on leadership roles to guide teams in delivering applications and solutions.
|
||||
Please use this space to provide any other information you feel would support your application. For example: Other experience or awards, positions of responsibility, hobbies and interests.
|
||||
- I love language learning and reading literature in other languages. - I really enjoy reading about other people's experiences with GTD (getting things done) and use these as inspiration for my own system - I am currently getting into embedded programming. - I am a regular gym goer and love cooking. - I also enjoy tinkering with cars and modding them.
|
||||
* BT
|
||||
** Cover Letter:
|
||||
[[file:~/master-folder/CV's/Cover Letter/btgroup/BT_group_cl.pdf][file]]
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate software engineer and problem solver with experience extending into other disciplines, then I believe I'm the perfect candidate for the role.
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at BT group, where challenges are primarily user centric.
|
||||
|
||||
What draws me most to BT group is their commitment to using technology to bring good to the community. This, I would say, is one of the reasons I decided to go into the field of tech, which was to help others. BT group achieves this in various ways, ranging from addressing climate change to enhancing cybersecurity. I would be really ecstatic to apply my skills in various programming languages and tools such as Git, Ansible, and Terraform, coupled with my foundational knowledge of cloud services like AWS and Oracle cloud to the mission of BT group, which is to develop high performance and well tested code to bring about a greater benefit to the community.
|
||||
|
||||
I am enthusiastic about joining the graduate program; it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that BT group will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* Panoptech
|
||||
** Cover Letter:
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate software engineer and problem solver with experience extending into DevOps, then I believe I'm the perfect candidate for the role.
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
|
||||
In addition to my technical background, I have experience with DevOps tools, including Ansible, Docker, and Jenkins, gained through self learning and practical application. I am also familiar with bash scripting, which is something I find myself coming back to whenever I want to automate something; this I usually do in bash and python, occasionally, for no particular reason, I would use Haskell to write scripts. I am certain that these skills will allow me to support the development team in managing the DevOps toolchain.
|
||||
|
||||
I also use Linux as my daily drivers, I have dual booted quite a few machines, some running Ubuntu some running Mint. I also have experience in virutalisation software; this was when I needed to host a local database, hence I fired up a virtual machine running minimal Ubuntu and kept a PSQL server on there.
|
||||
|
||||
I am enthusiastic about joining the Panoptech; it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that Panoptech will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* buro happold
|
||||
[[file:~/master-folder/CV's/Cover Letter/buro_happald/Buro_Happold_CL.pdf][file]]
|
||||
** cl - SAME AS BT
|
||||
Dear Hiring Manager,
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing
|
||||
role. If you are looking for a passionate Digital Technologist and problem solver with experience
|
||||
extending into other disciplines, then I believe I'm the perfect candidate for the role.
|
||||
There are two things I have always been interested in growing up: Technology and Problem
|
||||
solving. My technical journey began when I joined the University of Birmingham, where I have
|
||||
developed solid foundations in data analysis, software development and problem solving. One
|
||||
of the biggest projects I have worked on was a football finding web app which I was entrusted
|
||||
to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot,
|
||||
Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising
|
||||
data on a networking module, and for various scripting purposes.
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to
|
||||
students coming from lower socio-economic backgrounds, and who are neurodiverse. This
|
||||
experience has taught me many things, two that are notable are communication and
|
||||
adaptability. These two skills together have taught me the importance of understanding as well
|
||||
as addressing challenges, which I believe will translate well at Buro Happold, where challenges
|
||||
are primarily user centric.
|
||||
What draws me most to Buro Happold is their commitment to using technology to bring good
|
||||
to the community. This, I would say, is one of the reasons I decided to go into the field of tech,
|
||||
which was to help others. Buro Happold achieves this in various ways, from designing modular
|
||||
systems that reduce costs while enhancing the learning experience for institutions like Kuwait
|
||||
University, to implementing advanced technologies at landmark sites like the Louvre Abu Dhabi,
|
||||
ensuring seamless visitor experiences and operational efficiency.
|
||||
I am enthusiastic about joining the company; it is a core principle of mine that continuous
|
||||
learning will propel one to unimaginable heights, and I firmly believe that Buro Happold will be
|
||||
able to provide the means to make that happen. Thank you for considering my application, I
|
||||
look forward to discussing my candidacy further!
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* Experian
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate software engineer and problem solver with experience extending into other disciplines, then I believe I'm the perfect candidate for the role.
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction, this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at Experian, where challenges are primarily user centric.
|
||||
|
||||
What draws me most to Experian is their commitment to using technology to bring good to the community. This, I would say, is one of the reasons I decided to go into the field of tech, which was to help others. Experian achieves this in various ways, ranging from addressing climate change to enhancing cybersecurity. I would be really ecstatic to apply my skills in various programming languages and tools such as Java, Angular/Typescript and git, coupled with my foundational knowledge of cloud services like AWS and Oracle cloud to the mission of Experian, which is to develop high performance and well tested code to bring about a greater benefit to the community.
|
||||
|
||||
I am enthusiastic about joining the graduate program, it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that Experian will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
* Cambridge Consultants
|
||||
Dear Hiring Manager,
|
||||
|
||||
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate embedded software engineer and problem solver with experience extending into DevOps and low-level programming, then I believe I'm the perfect candidate for the role.
|
||||
|
||||
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
|
||||
|
||||
In addition to my technical background, I have experience with DevOps tools, including Ansible, Docker, and Jenkins, gained through self learning and practical application. I am also familiar with bash scripting, which is something I find myself coming back to whenever I want to automate something; this I usually do in bash and python, occasionally, for the purpose of challenging myself, I would use Haskell to write scripts. In addition, I write scripts that allow me to communicate with hardware connected to a raspberry Pi; whenever I have the free time, I dive into embedded programming as this is a huge interest of mine. I am certain that these skills will allow me to support the team in solving real client problems at Cambridge Consultants.
|
||||
|
||||
|
||||
|
||||
I also use Linux as my daily drivers, I have dual booted quite a few machines, some running Ubuntu some running Mint. I also have experience in virutalisation software; this was when I needed to host a local database, hence I fired up a virtual machine running minimal Ubuntu and kept a PSQL server on there.
|
||||
|
||||
|
||||
|
||||
I am enthusiastic about joining the Cambridge Consultants; it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that Cambridge Consultants will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
|
||||
|
||||
Warm regards,
|
||||
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* Adelphi Real World
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate problem solver with a strong foundation in data analysis and a drive to deliver precise and efficient solutions, I believe I am the ideal candidate for this role.
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction, this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at Adelphi, where challenges are primarily user centric.
|
||||
|
||||
What draws me most to Adelphi Real World is their commitment to leveraging real world data to improve healthcare outcomes. The mere prospect of contributing to this mission by using tools like SPSS, Confirmit, and Excel, and supporting fieldwork and data processing, aligns perfectly with my dream of using technology to help others. I would be really ecstatic to apply my analytical skills, programming knowledge, and meticulous attention to detail to bring about a greater benefit to Adelphi, the healthcare sector and the community.
|
||||
|
||||
I am enthusiastic about joining this esteemed organisation, it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that Adelphi Real World will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* Midland Heart
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate problem solver with a strong foundation in data analysis and a drive to deliver precise and efficient solutions, I believe I am the ideal candidate for this role.
|
||||
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction, this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at Midland Heart, where challenges are primarily user centric.
|
||||
|
||||
What draws me most to Midland Heart is their commitment to leveraging real world data to improve tenancy outcomes. The mere prospect of contributing to this mission by using tools like Power Bi, Python, and Cloud Services, and supporting fieldwork and data processing, aligns perfectly with my dream of using technology to help others. I would be ecstatic to apply my analytical skills, programming knowledge, and meticulous attention to detail to bring about a greater benefit to Midland Heart, the housing sector and the community.
|
||||
|
||||
I am enthusiastic about joining this esteemed organisation, it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that Midland Heart will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* EDW
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate Software Tester and problem solver with experience extending into other disciplines, then I believe I'm the perfect candidate for the role.
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes.
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at EDW Technology, where challenges are primarily user centric.
|
||||
What draws me most to EDW Technology is their commitment to using technology to bring good to the community. This, I would say, is one of the reasons I decided to go into the field of tech, which was to help others. EDW Technology achieves this in various ways, ranging from creating energy management tools to providing user focused solutions. I would be ecstatic to apply my skills in various programming languages and tools such as Java, Swagger, and Git, coupled with my foundational knowledge of cloud services like AWS and Oracle cloud to the mission of EDW Technology, which is to develop high performance and well tested code to bring about a greater benefit to the community.
|
||||
I am enthusiastic about joining the graduate program; it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that EDW Technology will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* DCA
|
||||
Dear Hiring Manager,
|
||||
|
||||
I would firstly like to extend my gratitude for giving me the opportunity to apply for an amazing role. If you are looking for a passionate software engineer and problem solver with experience extending into other disciplines, then I believe I'm the perfect candidate for the role.
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. One of the biggest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. In addition, I find myself often using Python for visualising data on a networking module, and for various scripting purposes. I have also built a full stack NLP/AI powered note taking web application to address the issue of cognitive overload.
|
||||
Beyond this, I also work as a tutor at Tutors United, where I teach Mathematics and English to students coming from lower socio-economic backgrounds, and who are neurodiverse. This experience has taught me many things, two that are notable are communication and adaptability. These two skills together have taught me the importance of understanding as well as addressing challenges, which I believe will translate well at DCA, where challenges are primarily user centric.
|
||||
What draws me most to DCA is their commitment to using technology to bring good to the community. This, I would say, is one of the reasons I decided to go into the field of tech, which was to help others. DCA achieves this in various ways, ranging from addressing novel transport solutions to developing safety-critical medical devices. I would be really ecstatic to apply my skills in various programming languages and tools such as Git, Docker, and Nginx, coupled with my foundational knowledge of cloud services like AWS and Oracle cloud to the mission of DCA, which is to develop high performance and well tested code to bring about a greater benefit to the community
|
||||
I am enthusiastic about joining the graduate program; it is a core principle of mine that continuous learning will propel one to unimaginable heights, and I firmly believe that DCA will be able to provide the means to make that happen. Thank you for considering my application, I look forward to discussing my candidacy further!
|
||||
|
||||
Warm regards,
|
||||
Zaine-Ul-Abideen Qayyum
|
||||
* emp
|
||||
Describe something you have done that you are proud of. (Word limit 250 words)
|
||||
One of the proudest projects I have worked on was a football finding web app which I was entrusted to lead and resulted in a 14% increase in user satisfaction; this was built using Java Spring Boot, Typescript/Angular and PostgreSQL. However, my proudest work to date was a full stack web application that utilises AI and NLP to reduce cognitive overload faced in students. This was an ongoing long-term project and has taken me 7 months to complete. I used Spring Boot, Angular/Typescript along with Python scripting.
|
||||
|
||||
How can you demonstrate your current curiosity around technology to us? (Word Limit 250 words)
|
||||
There are two things I have always been interested in growing up: Technology and Problem solving. My technical journey began when I joined the University of Birmingham, where I have developed solid foundations in data analysis, software development and problem solving. I find myself more so immersed in technical related hobbies such as ‘ricing’ a Linux distro, configuration of Emacs, tinkering with embedded programming using Raspberry Pi.
|
||||
|
||||
Can you describe to us a scenario where you have demonstrated either creativity, innovation or originality (Word Limit 250 words)
|
||||
One of the most innovative projects I have worked on was my AI-assisted note-taking web application, designed to combat cognitive overload in students. The challenge was to create an intuitive system that could process and summarise lecture content efficiently while al-lowing students to interact with it seamlessly. I thus decided on using OpenAI’s API for basic requests (intelligence enhanced which allowed it to see what the user is doing through parsing the canvas object), natural language processing (NLP), integrating it with an Angular TypeScript frontend and a Spring Boot backend.
|
||||
What made this project particularly creative was my decision to incorporate adaptive sum-marisation, meaning the AI tailors the level of detail in notes based on the user’s prefer-ences and previous study patterns. Unlike traditional note-taking applications, this one con-tinuously learns from user behavior, refining its output over time. Furthermore, I used YAKE and TF-IDF to extract keywords from the notes, as well as NER (named entity recognition).
|
||||
9
Misc/20250402185735-java_moc.org
Normal file
9
Misc/20250402185735-java_moc.org
Normal file
@@ -0,0 +1,9 @@
|
||||
:PROPERTIES:
|
||||
:ID: ae343652-96fe-4341-8a36-ec3a1abd0dc6
|
||||
:END:
|
||||
#+title: Java MOC
|
||||
#+filetags: :moc:java:
|
||||
|
||||
Use this node for pom.xml: [[id:bcd41e87-120c-455c-8898-996ddaa41f75][maven-pom-file]]
|
||||
|
||||
Tests: [[id:7b8de14c-a73e-4c92-a403-a9a1c419c0b3][java-junit-testing]]
|
||||
91
Misc/20250430001952-microlise_assessment.org
Normal file
91
Misc/20250430001952-microlise_assessment.org
Normal file
@@ -0,0 +1,91 @@
|
||||
:PROPERTIES:
|
||||
:ID: f877240e-c2c8-4087-84e5-4b1ca3fcd4ed
|
||||
:END:
|
||||
#+title: microlise-assessment
|
||||
#+filetags: :interview:assessment:
|
||||
|
||||
1. What are you most proud of doing in the last 2 years?
|
||||
|
||||
|
||||
|
||||
2. What do you think you could have done better in the last two years?
|
||||
|
||||
|
||||
|
||||
3. What is the most important thing you have done in the last two years?
|
||||
|
||||
|
||||
|
||||
4. What books have you read recently?
|
||||
|
||||
Recently, I have been reading The C Programming Language by Brian Kernighan and Dennis Ritchie to better understand low-level programming. I have been reading this book since my second year at university and have learnt many concepts that translate well into higher-level programming languages like Java. I also decided to create a GitHub repository where I store the practical applications of what was learnt from this book in an educational format so that I can share what I learnt as well test my knowledge.
|
||||
|
||||
Another book I have been reading is The Science of Self-Discipline by Peter Hollins. What I took from this book is that despite perpetual distractions we are enveloped with, there are ways we can still remain disciplined. The structuring of the book is quite clever in the sense that it allows the reader to seamlessly flow from the relevant topics that surround the subject of 'self-discipline'. From this book, I got more into the GTD (getting things done) principle and has really helped with managing my to-dos.
|
||||
|
||||
|
||||
5. What are the things you like about your role?
|
||||
|
||||
The thing I like most about my current role is the fact that no two days are the same. As my current role is a part-time tutor, I meet students that really challenge me to explain complex concepts in simpler ways. There are many soft skills that I've picked up, such as: communication, time-management, organisation and teamworking skills.
|
||||
|
||||
|
||||
6. What annoys you?
|
||||
|
||||
Poor communication from peers and soiled working environments can at times be frustrating. I believe that good and innovative ideas come from open discussions, therefore I value settings where conversations flow in a respectful manner, where people can speak their thoughts and ideas regardless of their seniority.
|
||||
|
||||
7. What would you like to be able to do better?
|
||||
|
||||
I would like to improve my skills in DevOps, specifically the CI/CD and containerisation aspect of this. As I've worked on full-stack applications, my focus was mainly on getting the features deployed, however I want to understand more about deployment, scalability, and infrastructure. To bridge this gap, I began setting up my own homelab that hosts different services through docker-compose. I'm also looking at GitHub actions as I regularly upload to GitHub.
|
||||
|
||||
*add something non-technical*
|
||||
|
||||
8. If we were to ask your manager, how would they describe you?
|
||||
|
||||
They’d describe me as: dependable, empathetic, and always ready to help. Someone who takes initiative in stressful situations, supports others without hesitation, and makes others smile.
|
||||
|
||||
|
||||
9. What would your manager say was the best way to manage you?
|
||||
|
||||
Giving me the trust and space to work independently. Being given regular feedback along with constructive performance reviews with what needs to be worked on really helps.
|
||||
|
||||
10. What would your manager say you need to improve on?
|
||||
|
||||
They might say I sometimes take on too much at once. I tend to get enthusiastic about new challenges, however I need to be able to set realistic expectations with both myself and the team through assessing the workload better.
|
||||
|
||||
11. If we asked some of the people that worked with you, to describe you, what would
|
||||
|
||||
they say?
|
||||
|
||||
They'd likely say that I'm approachable, passionate about learning and well-organised. Someone who is easy to get along with and overall jolly.
|
||||
|
||||
|
||||
12. If you could change something about your current role, what would it be?
|
||||
|
||||
|
||||
|
||||
13. Why do you want to move on from your current role?
|
||||
|
||||
|
||||
|
||||
14. What do you think you will like about this role?
|
||||
|
||||
|
||||
|
||||
15. What do you think will be difficult about this role?
|
||||
|
||||
|
||||
|
||||
16. Can you provide an example of where you have gone above and beyond the role to
|
||||
|
||||
achieve a goal?
|
||||
|
||||
|
||||
|
||||
17. Can you provide an example of where you have provided exceptional internal or
|
||||
|
||||
external customer care?
|
||||
|
||||
|
||||
|
||||
18. Have you done any charity work, or voluntary work to help others? If not, have you
|
||||
|
||||
examples of where you have helped someone at work?
|
||||
11
Misc/20250717230336-recipes_moc.org
Normal file
11
Misc/20250717230336-recipes_moc.org
Normal file
@@ -0,0 +1,11 @@
|
||||
:PROPERTIES:
|
||||
:ID: 65F747B1-3CB2-429A-9E26-ED8BC169E689
|
||||
:END:
|
||||
#+title: Recipes MOC
|
||||
#+filetags: :moc:recipes:
|
||||
|
||||
* [[id:b31d6c3f-9bc3-4006-aaaf-d56168249e3a][Recipes Cookbook]]
|
||||
|
||||
* [[id:F7D68FF4-CAD0-4791-BAE4-AC20B84A8785][Recipe Ideas]]
|
||||
|
||||
* [[id:EA93341B-20C0-48A2-BD88-F24ED3C540DA][Recipes Done]]
|
||||
65
Misc/20250719174944-recipes_ideas.org
Normal file
65
Misc/20250719174944-recipes_ideas.org
Normal file
@@ -0,0 +1,65 @@
|
||||
:PROPERTIES:
|
||||
:ID: F7D68FF4-CAD0-4791-BAE4-AC20B84A8785
|
||||
:END:
|
||||
#+title: Recipes Ideas
|
||||
#+filetags: :recipes:ideas:
|
||||
|
||||
* Spiced Potato & Pea Quesadillas
|
||||
|
||||
Prep time: 20 min
|
||||
Ingredients:
|
||||
|
||||
Boiled potatoes, mashed
|
||||
|
||||
Frozen peas
|
||||
|
||||
Cumin, coriander, chili flakes
|
||||
|
||||
Tortilla wraps
|
||||
Method:
|
||||
|
||||
Mix mashed potatoes, peas, and spices.
|
||||
|
||||
Spread mixture on a tortilla, top with another.
|
||||
|
||||
Toast in a pan until crispy on both sides.
|
||||
|
||||
* Chickpea Pilaf
|
||||
|
||||
Prep time: 25 min
|
||||
Ingredients:
|
||||
|
||||
Cooked rice
|
||||
|
||||
Canned chickpeas
|
||||
|
||||
Onion, garlic, cumin, cinnamon
|
||||
|
||||
Optional: raisins or almonds
|
||||
Method:
|
||||
|
||||
Sauté onion, garlic, spices.
|
||||
|
||||
Stir in chickpeas, then rice.
|
||||
|
||||
Heat through, serve with yogurt.
|
||||
|
||||
* Lentil Soup with Flatbread
|
||||
|
||||
Prep time: 25 min
|
||||
Ingredients:
|
||||
|
||||
Red lentils
|
||||
|
||||
Onion, garlic, carrot
|
||||
|
||||
Cumin, turmeric, black pepper
|
||||
|
||||
Vegetable stock
|
||||
Method:
|
||||
|
||||
Sauté onion, garlic, and carrot.
|
||||
|
||||
Add spices and lentils. Pour in stock.
|
||||
|
||||
Simmer until soft, then blend if preferred.
|
||||
29
Misc/20250719175023-recipes_done.org
Normal file
29
Misc/20250719175023-recipes_done.org
Normal file
@@ -0,0 +1,29 @@
|
||||
:PROPERTIES:
|
||||
:ID: EA93341B-20C0-48A2-BD88-F24ED3C540DA
|
||||
:END:
|
||||
#+title: Recipes Done
|
||||
#+filetags: :recipes:resources:
|
||||
|
||||
* Done:
|
||||
** <2025-07-17 Thu>
|
||||
https://spainonafork.com/healthy-creamy-tuna-wraps-recipe/
|
||||
|
||||
Instead of 1 clove fresh garlic, i used 1/4 teaspoon garlic granules.
|
||||
Also used lime juice instead of lemon juice
|
||||
need to work on plating (put too much salad, its better to cut the tomatos in smaller chunks and the salad in smaller pieces)
|
||||
|
||||
** <2025-07-18 Fri>
|
||||
https://www.youtube.com/watch?v=wiKndVvU_Ks&list=LL&index=2&ab_channel=BrownGirlsKitchen
|
||||
|
||||
Dont use plastic sieve (as boiled water goes on it when extracting the potatos)
|
||||
|
||||
use low heat when toasting the wraps
|
||||
|
||||
served 3 large sized wraps (maybe use taco wraps next time)
|
||||
|
||||
** <2025-07-19 Sat>
|
||||
https://www.youtube.com/watch?v=3d6DrdOEuY4&list=LL&index=1&ab_channel=FoodFusion
|
||||
|
||||
WASH HANDS AFTER TOUCHING GREEN CHILLI.
|
||||
|
||||
juilienne : cutting the garlic into small strips
|
||||
10
Misc/20250723185829-test_driven_development.org
Normal file
10
Misc/20250723185829-test_driven_development.org
Normal file
@@ -0,0 +1,10 @@
|
||||
:PROPERTIES:
|
||||
:ID: 2729599d-ae2b-4f22-b73d-bf22d81e0767
|
||||
:END:
|
||||
#+title: Test Driven Development
|
||||
#+filetags: :notes:coding:guide:
|
||||
|
||||
Test-driven development is a way of writing code that involves writing an automated unit-level test case that fails, then writing just enough code to make the test pass, then refactoring both the test code and the production code, then repeating with another new test case. Alternative approaches to writing automated tests is to write all of the production code before starting on the test code or to write all of the test code before starting on the production code.
|
||||
|
||||
One example is:
|
||||
- [[id:bca8e7a6-0590-4630-ab49-210306ad21a2][bowling-kata]]
|
||||
13
Misc/20250723185943-bowling_kata.org
Normal file
13
Misc/20250723185943-bowling_kata.org
Normal file
@@ -0,0 +1,13 @@
|
||||
:PROPERTIES:
|
||||
:ID: bca8e7a6-0590-4630-ab49-210306ad21a2
|
||||
:END:
|
||||
#+title: bowling-kata
|
||||
#+filetags: :coding:docs:resources:
|
||||
|
||||
- https://www.codurance.com/katas/bowling
|
||||
|
||||
- http://www.butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata
|
||||
|
||||
- https://codingdojo.org/kata/Bowling/
|
||||
|
||||
- https://www.bowlinggenius.com/
|
||||
648
Misc/20250723190203-java_portswrigger_test.org
Normal file
648
Misc/20250723190203-java_portswrigger_test.org
Normal file
@@ -0,0 +1,648 @@
|
||||
:PROPERTIES:
|
||||
:ID: 5cfd7f6f-f5ac-4f18-90f9-be9a31dd238e
|
||||
:END:
|
||||
#+title: java-portswrigger-test
|
||||
#+filetags: :java:notes:interview:
|
||||
|
||||
|
||||
* Latest
|
||||
** Java concepts:
|
||||
# Java Core Language - Concise Reference Guide
|
||||
|
||||
## 1. Object-Oriented Programming Concepts
|
||||
|
||||
### Inheritance
|
||||
- **Definition**: Mechanism where a class inherits properties and behaviors from another class
|
||||
- **Syntax**: `public class Child extends Parent { }`
|
||||
- **Types**: Single, Multilevel, Hierarchical
|
||||
- **'super' keyword**: Refers to parent class objects/constructors
|
||||
- **Method Overriding**: Child classes can provide specific implementation of methods
|
||||
|
||||
### Encapsulation
|
||||
- **Definition**: Bundling data and methods that operate on the data within a single unit
|
||||
- **Implementation**: Using private fields with public getters/setters
|
||||
- **Benefits**: Hides implementation details, controls access, reduces code coupling
|
||||
```java
|
||||
public class Account {
|
||||
private double balance;
|
||||
|
||||
public double getBalance() {
|
||||
return balance;
|
||||
}
|
||||
|
||||
public void deposit(double amount) {
|
||||
if (amount > 0) {
|
||||
balance += amount;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Polymorphism
|
||||
- **Definition**: Ability of objects to take different forms
|
||||
- **Types**:
|
||||
- **Compile-time (Method Overloading)**: Multiple methods with same name but different parameters
|
||||
- **Runtime (Method Overriding)**: Subclass implementing parent class method
|
||||
- **Example**:
|
||||
```java
|
||||
class Animal {
|
||||
void makeSound() { System.out.println("Animal sound"); }
|
||||
}
|
||||
class Dog extends Animal {
|
||||
@Override
|
||||
void makeSound() { System.out.println("Bark"); }
|
||||
}
|
||||
```
|
||||
|
||||
### Abstraction
|
||||
- **Definition**: Hiding implementation details, showing only functionality
|
||||
- **Implementation**: Through abstract classes and interfaces
|
||||
- **Abstract Classes**: Can have both concrete and abstract methods
|
||||
- **Interfaces**: Collection of abstract methods (default/static methods allowed in Java 8+)
|
||||
```java
|
||||
abstract class Vehicle {
|
||||
abstract void start();
|
||||
void stop() { System.out.println("Stopping"); }
|
||||
}
|
||||
|
||||
interface Flyable {
|
||||
void fly();
|
||||
default void land() { System.out.println("Landing"); }
|
||||
}
|
||||
```
|
||||
|
||||
## 2. Java Syntax and Language Features
|
||||
|
||||
### Basic Structure
|
||||
```java
|
||||
package com.example;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class MyClass {
|
||||
// Fields
|
||||
private int number;
|
||||
|
||||
// Constructor
|
||||
public MyClass(int number) {
|
||||
this.number = number;
|
||||
}
|
||||
|
||||
// Methods
|
||||
public void doSomething() {
|
||||
// Method body
|
||||
}
|
||||
|
||||
// Main method
|
||||
public static void main(String[] args) {
|
||||
// Program execution starts here
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Access Modifiers
|
||||
- **public**: Accessible from anywhere
|
||||
- **protected**: Accessible within package and by subclasses
|
||||
- **default (no modifier)**: Accessible only within package
|
||||
- **private**: Accessible only within class
|
||||
|
||||
### Non-Access Modifiers
|
||||
- **static**: Belongs to class rather than instance
|
||||
- **final**: Cannot be extended (class), overridden (method), or changed (variable)
|
||||
- **abstract**: Cannot be instantiated (class), must be implemented (method)
|
||||
- **synchronized**: Controls thread access to method/block
|
||||
- **volatile**: Variable value always read from main memory
|
||||
|
||||
## 3. Data Types, Variables, and Operators
|
||||
|
||||
### Primitive Data Types
|
||||
| Type | Size | Range | Default |
|
||||
|------|------|-------|---------|
|
||||
| byte | 8 bits | -128 to 127 | 0 |
|
||||
| short | 16 bits | -32,768 to 32,767 | 0 |
|
||||
| int | 32 bits | -2^31 to 2^31-1 | 0 |
|
||||
| long | 64 bits | -2^63 to 2^63-1 | 0L |
|
||||
| float | 32 bits | ~3.40282347 x 10^38 | 0.0f |
|
||||
| double | 64 bits | ~1.79769313486231570 x 10^308 | 0.0d |
|
||||
| char | 16 bits | 0 to 65,535 | '\u0000' |
|
||||
| boolean | 1 bit | true/false | false |
|
||||
|
||||
### Reference Types
|
||||
- **Classes**: `String`, custom classes
|
||||
- **Arrays**: `int[]`, `String[]`
|
||||
- **Interfaces**: Collections interfaces
|
||||
- **Wrapper Classes**: `Integer`, `Boolean`, etc.
|
||||
|
||||
### Variable Declaration
|
||||
```java
|
||||
// Primitive types
|
||||
int count = 10;
|
||||
double price = 23.45;
|
||||
|
||||
// Reference types
|
||||
String name = "John";
|
||||
Date today = new Date();
|
||||
|
||||
// Constants
|
||||
final double PI = 3.14159;
|
||||
```
|
||||
|
||||
### Operators
|
||||
- **Arithmetic**: `+`, `-`, `*`, `/`, `%`, `++`, `--`
|
||||
- **Relational**: `==`, `!=`, `>`, `<`, `>=`, `<=`
|
||||
- **Logical**: `&&`, `||`, `!`
|
||||
- **Bitwise**: `&`, `|`, `^`, `~`, `<<`, `>>`, `>>>`
|
||||
- **Assignment**: `=`, `+=`, `-=`, `*=`, `/=`, etc.
|
||||
- **Ternary**: `condition ? expr1 : expr2`
|
||||
- **instanceof**: Tests if object is instance of class/interface
|
||||
|
||||
## 4. Control Flow Statements
|
||||
|
||||
### Conditional Statements
|
||||
```java
|
||||
// if-else
|
||||
if (condition) {
|
||||
// code block
|
||||
} else if (anotherCondition) {
|
||||
// code block
|
||||
} else {
|
||||
// code block
|
||||
}
|
||||
|
||||
// switch
|
||||
switch (variable) {
|
||||
case value1:
|
||||
// code block
|
||||
break;
|
||||
case value2:
|
||||
// code block
|
||||
break;
|
||||
default:
|
||||
// code block
|
||||
}
|
||||
|
||||
// Enhanced switch (Java 14+)
|
||||
switch (variable) {
|
||||
case value1 -> // code or expression;
|
||||
case value2 -> // code or expression;
|
||||
default -> // code or expression;
|
||||
}
|
||||
```
|
||||
|
||||
### Loops
|
||||
```java
|
||||
// for loop
|
||||
for (int i = 0; i < 10; i++) {
|
||||
// code block
|
||||
}
|
||||
|
||||
// enhanced for loop (for-each)
|
||||
for (String item : itemList) {
|
||||
// code block
|
||||
}
|
||||
|
||||
// while loop
|
||||
while (condition) {
|
||||
// code block
|
||||
}
|
||||
|
||||
// do-while loop
|
||||
do {
|
||||
// code block
|
||||
} while (condition);
|
||||
```
|
||||
|
||||
### Control Statements
|
||||
- **break**: Exits loop or switch
|
||||
- **continue**: Skips to next iteration
|
||||
- **return**: Exits method, optionally returning value
|
||||
- **yield**: Returns value from switch expression (Java 14+)
|
||||
|
||||
## 5. Exception Handling
|
||||
|
||||
### Exception Hierarchy
|
||||
- **Throwable**: Base class for all exceptions
|
||||
- **Error**: Serious problems, not typically caught
|
||||
- **Exception**: Base for checked exceptions
|
||||
- **RuntimeException**: Base for unchecked exceptions
|
||||
|
||||
### Try-Catch-Finally
|
||||
```java
|
||||
try {
|
||||
// code that might throw exception
|
||||
} catch (ExceptionType1 e1) {
|
||||
// handle exception type 1
|
||||
} catch (ExceptionType2 | ExceptionType3 e2) {
|
||||
// handle multiple exception types
|
||||
} finally {
|
||||
// always executed code
|
||||
}
|
||||
```
|
||||
|
||||
### Try-With-Resources
|
||||
```java
|
||||
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
|
||||
// code that uses resource
|
||||
// resource automatically closed
|
||||
}
|
||||
```
|
||||
|
||||
### Throwing Exceptions
|
||||
```java
|
||||
if (value < 0) {
|
||||
throw new IllegalArgumentException("Value cannot be negative");
|
||||
}
|
||||
```
|
||||
|
||||
### Creating Custom Exceptions
|
||||
```java
|
||||
public class CustomException extends Exception {
|
||||
public CustomException() { super(); }
|
||||
public CustomException(String message) { super(message); }
|
||||
public CustomException(String message, Throwable cause) { super(message, cause); }
|
||||
}
|
||||
```
|
||||
|
||||
### Checked vs. Unchecked Exceptions
|
||||
- **Checked**: Must be caught or declared (IOException, SQLException)
|
||||
- **Unchecked**: Not required to be caught (RuntimeException and subclasses)
|
||||
|
||||
## 6. Java Collections Framework
|
||||
|
||||
### Main Interfaces
|
||||
- **Collection**: Root interface
|
||||
- **List**: Ordered collection (allows duplicates)
|
||||
- **Set**: No duplicates
|
||||
- **Queue**: Typically FIFO order
|
||||
- **Map**: Key-value pairs
|
||||
|
||||
### Common Implementations
|
||||
- **Lists**:
|
||||
- `ArrayList`: Dynamic array, fast random access
|
||||
- `LinkedList`: Fast insertions/deletions
|
||||
- `Vector`: Synchronized version of ArrayList
|
||||
- **Sets**:
|
||||
- `HashSet`: Fast operations, no order guarantee
|
||||
- `LinkedHashSet`: Preserves insertion order
|
||||
- `TreeSet`: Sorted set (implements SortedSet)
|
||||
- **Maps**:
|
||||
- `HashMap`: Fast operations, no order guarantee
|
||||
- `LinkedHashMap`: Preserves insertion order
|
||||
- `TreeMap`: Sorted by keys (implements SortedMap)
|
||||
- `Hashtable`: Synchronized version of HashMap
|
||||
- **Queues**:
|
||||
- `ArrayDeque`: Resizable array implementation
|
||||
- `PriorityQueue`: Elements processed by priority
|
||||
|
||||
### Usage Examples
|
||||
```java
|
||||
// ArrayList
|
||||
List<String> names = new ArrayList<>();
|
||||
names.add("Alice");
|
||||
names.add("Bob");
|
||||
names.remove(0);
|
||||
String first = names.get(0);
|
||||
|
||||
// HashMap
|
||||
Map<String, Integer> ages = new HashMap<>();
|
||||
ages.put("Alice", 30);
|
||||
ages.put("Bob", 25);
|
||||
int aliceAge = ages.get("Alice");
|
||||
boolean containsBob = ages.containsKey("Bob");
|
||||
|
||||
// HashSet
|
||||
Set<String> uniqueNames = new HashSet<>();
|
||||
uniqueNames.add("Alice");
|
||||
uniqueNames.add("Alice"); // Ignored (duplicate)
|
||||
boolean hasAlice = uniqueNames.contains("Alice");
|
||||
```
|
||||
|
||||
## 7. Generics
|
||||
|
||||
### Basic Syntax
|
||||
```java
|
||||
// Generic class
|
||||
public class Box<T> {
|
||||
private T value;
|
||||
|
||||
public void set(T value) { this.value = value; }
|
||||
public T get() { return value; }
|
||||
}
|
||||
|
||||
// Usage
|
||||
Box<Integer> intBox = new Box<>();
|
||||
intBox.set(10);
|
||||
Integer value = intBox.get();
|
||||
```
|
||||
|
||||
### Wildcards
|
||||
```java
|
||||
// Unknown type (?)
|
||||
void processElements(List<?> elements) {
|
||||
// Can read but not write elements
|
||||
}
|
||||
|
||||
// Upper bounded wildcard
|
||||
void addNumbers(List<? extends Number> numbers) {
|
||||
// Can read elements knowing they are at least Number
|
||||
}
|
||||
|
||||
// Lower bounded wildcard
|
||||
void addIntegers(List<? super Integer> integers) {
|
||||
integers.add(10); // Can write Integers
|
||||
}
|
||||
```
|
||||
|
||||
### Type Parameters
|
||||
- **Type Parameter Naming Conventions**:
|
||||
- `E`: Element
|
||||
- `K`: Key
|
||||
- `V`: Value
|
||||
- `N`: Number
|
||||
- `T`: Type
|
||||
- `S`, `U`, `V`, etc.: Additional types
|
||||
|
||||
### Type Erasure
|
||||
- During compilation, generic type information is removed ("erased")
|
||||
- Runtime doesn't have access to generic type information
|
||||
|
||||
## 8. Functional Interfaces and Lambda Expressions
|
||||
|
||||
### Functional Interfaces
|
||||
- Interface with exactly one abstract method
|
||||
- Annotated with `@FunctionalInterface`
|
||||
- Common functional interfaces:
|
||||
- `Predicate<T>`: Takes T, returns boolean (`boolean test(T t)`)
|
||||
- `Consumer<T>`: Takes T, returns void (`void accept(T t)`)
|
||||
- `Function<T,R>`: Takes T, returns R (`R apply(T t)`)
|
||||
- `Supplier<T>`: Takes nothing, returns T (`T get()`)
|
||||
- `BinaryOperator<T>`: Takes two T, returns T (`T apply(T t1, T t2)`)
|
||||
|
||||
### Lambda Expressions
|
||||
```java
|
||||
// Basic syntax
|
||||
(parameters) -> expression
|
||||
(parameters) -> { statements; }
|
||||
|
||||
// Examples
|
||||
Predicate<String> isEmpty = s -> s.isEmpty();
|
||||
Consumer<String> printer = s -> System.out.println(s);
|
||||
Function<String, Integer> lengthFinder = s -> s.length();
|
||||
Supplier<Double> random = () -> Math.random();
|
||||
BinaryOperator<Integer> sum = (a, b) -> a + b;
|
||||
```
|
||||
|
||||
### Method References
|
||||
```java
|
||||
// Static method
|
||||
Function<String, Integer> parseInt = Integer::parseInt;
|
||||
|
||||
// Instance method of specific object
|
||||
Consumer<String> printer = System.out::println;
|
||||
|
||||
// Instance method of arbitrary object
|
||||
Function<String, Integer> length = String::length;
|
||||
|
||||
// Constructor
|
||||
Supplier<List<String>> listSupplier = ArrayList::new;
|
||||
```
|
||||
|
||||
## 9. Streams API
|
||||
|
||||
### Creating Streams
|
||||
```java
|
||||
// From collection
|
||||
List<String> list = Arrays.asList("a", "b", "c");
|
||||
Stream<String> stream = list.stream();
|
||||
|
||||
// From array
|
||||
String[] array = {"a", "b", "c"};
|
||||
Stream<String> stream = Arrays.stream(array);
|
||||
|
||||
// Generate/iterate
|
||||
Stream<Integer> numbers = Stream.iterate(0, n -> n + 1).limit(10);
|
||||
Stream<Double> randoms = Stream.generate(Math::random).limit(5);
|
||||
```
|
||||
|
||||
### Common Operations
|
||||
- **Intermediate Operations** (return a stream):
|
||||
- `filter(Predicate)`: Filters elements
|
||||
- `map(Function)`: Transforms elements
|
||||
- `flatMap(Function)`: Transforms and flattens
|
||||
- `sorted()`: Sorts elements
|
||||
- `distinct()`: Removes duplicates
|
||||
- `limit(n)`: Limits size
|
||||
- `skip(n)`: Skips elements
|
||||
- **Terminal Operations** (produce a result):
|
||||
- `forEach(Consumer)`: Processes each element
|
||||
- `collect(Collector)`: Gathers elements
|
||||
- `reduce(BinaryOperator)`: Reduces to single value
|
||||
- `count()`: Counts elements
|
||||
- `anyMatch(Predicate)`: Tests if any match
|
||||
- `allMatch(Predicate)`: Tests if all match
|
||||
- `noneMatch(Predicate)`: Tests if none match
|
||||
- `findFirst()`, `findAny()`: Finds elements
|
||||
|
||||
### Example
|
||||
```java
|
||||
List<String> names = Arrays.asList("John", "Jane", "Jack", "James");
|
||||
|
||||
List<String> filteredNames = names.stream()
|
||||
.filter(name -> name.startsWith("J"))
|
||||
.filter(name -> name.length() > 3)
|
||||
.map(String::toUpperCase)
|
||||
.sorted()
|
||||
.collect(Collectors.toList());
|
||||
```
|
||||
|
||||
## 10. Multithreading and Concurrency
|
||||
|
||||
### Thread Creation
|
||||
```java
|
||||
// Extending Thread
|
||||
class MyThread extends Thread {
|
||||
public void run() {
|
||||
// Code to execute in thread
|
||||
}
|
||||
}
|
||||
MyThread thread = new MyThread();
|
||||
thread.start();
|
||||
|
||||
// Implementing Runnable
|
||||
class MyRunnable implements Runnable {
|
||||
public void run() {
|
||||
// Code to execute in thread
|
||||
}
|
||||
}
|
||||
Thread thread = new Thread(new MyRunnable());
|
||||
thread.start();
|
||||
|
||||
// Lambda expression
|
||||
Thread thread = new Thread(() -> {
|
||||
// Code to execute in thread
|
||||
});
|
||||
thread.start();
|
||||
```
|
||||
|
||||
### Thread Lifecycle
|
||||
- **New**: Created but not started
|
||||
- **Runnable**: Started, waiting for scheduler
|
||||
- **Blocked**: Waiting for monitor lock
|
||||
- **Waiting**: Called wait() without timeout
|
||||
- **Timed Waiting**: Called sleep() or wait() with timeout
|
||||
- **Terminated**: Completed execution
|
||||
|
||||
### Thread Synchronization
|
||||
```java
|
||||
// Synchronized method
|
||||
synchronized void method() {
|
||||
// Thread-safe code
|
||||
}
|
||||
|
||||
// Synchronized block
|
||||
synchronized (lockObject) {
|
||||
// Thread-safe code
|
||||
}
|
||||
|
||||
// Lock interface
|
||||
Lock lock = new ReentrantLock();
|
||||
lock.lock();
|
||||
try {
|
||||
// Critical section
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
```
|
||||
|
||||
### Concurrent Collections
|
||||
- **ConcurrentHashMap**: Thread-safe HashMap
|
||||
- **CopyOnWriteArrayList**: Thread-safe ArrayList
|
||||
- **BlockingQueue**: Queue with blocking operations
|
||||
|
||||
### Thread Pools (ExecutorService)
|
||||
```java
|
||||
// Fixed thread pool
|
||||
ExecutorService executor = Executors.newFixedThreadPool(5);
|
||||
executor.submit(() -> {
|
||||
// Task to execute
|
||||
});
|
||||
executor.shutdown();
|
||||
|
||||
// CompletableFuture
|
||||
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
|
||||
// Async computation
|
||||
return "Result";
|
||||
});
|
||||
future.thenAccept(System.out::println);
|
||||
```
|
||||
|
||||
### Atomic Variables
|
||||
```java
|
||||
AtomicInteger counter = new AtomicInteger(0);
|
||||
counter.incrementAndGet(); // Thread-safe increment
|
||||
```
|
||||
|
||||
### Thread Communication
|
||||
- **wait()**: Causes thread to wait until notify/notifyAll
|
||||
- **notify()**: Wakes up one waiting thread
|
||||
- **notifyAll()**: Wakes up all waiting threads
|
||||
- **join()**: Waits for thread to die
|
||||
|
||||
* Original
|
||||
1. Object-Oriented Programming (OOP) in Java
|
||||
- Encapsulation (Access Modifiers: private, protected, public, default)
|
||||
- Abstraction (abstract classes, interfaces, default methods in interfaces)
|
||||
- Inheritance (extends, method overriding, super keyword, constructor chaining)
|
||||
- Polymorphism (Compile-time vs. Runtime, method overloading vs. method overriding)
|
||||
- Composition vs. Inheritance (Why favor composition over inheritance?)
|
||||
- SOLID Principles (How they apply in Java)
|
||||
- JavaBeans and POJOs (Plain Old Java Objects)
|
||||
|
||||
2. Java Data Types and Memory Management
|
||||
- Primitive vs. Reference Types
|
||||
- Wrapper classes (Integer, Double, Boolean, etc.)
|
||||
- String handling (String, StringBuilder, StringBuffer, immutability)
|
||||
- Autoboxing and Unboxing
|
||||
- Memory Allocation (Heap vs. Stack)
|
||||
- Garbage Collection (How it works, finalize(), weak references, types of GC algorithms)
|
||||
|
||||
3. Java Collections Framework (JCF)
|
||||
- List Interface (ArrayList, LinkedList, Vector, Stack)
|
||||
- Set Interface (HashSet, TreeSet, LinkedHashSet)
|
||||
- Map Interface (HashMap, TreeMap, LinkedHashMap, Hashtable)
|
||||
- Queue Interface (PriorityQueue, Deque, ArrayDeque)
|
||||
- Concurrent Collections (ConcurrentHashMap, CopyOnWriteArrayList)
|
||||
- Sorting and Searching in Collections (Comparable vs. Comparator)
|
||||
- Big-O Complexity of Collection Operations
|
||||
- Immutable Collections (List.of(), Set.of(), Map.of())
|
||||
|
||||
4. Exception Handling
|
||||
- Checked vs. Unchecked Exceptions
|
||||
- Custom Exceptions
|
||||
- Try-Catch-Finally vs. Try-With-Resources (AutoCloseable)
|
||||
- Throw vs. Throws
|
||||
- Multi-catch blocks (catch (IOException | SQLException e))
|
||||
- Best Practices for Exception Handling (Avoiding Generic Exceptions)
|
||||
|
||||
5. Java Multithreading and Concurrency
|
||||
- Thread Lifecycle
|
||||
- Creating Threads (Thread vs. Runnable, Callable, Future)
|
||||
- Synchronization (synchronized keyword, locks, ReentrantLock, wait(), notify())
|
||||
- Thread Safety and Shared Resource Handling
|
||||
- Executors and Thread Pools (ExecutorService, ScheduledExecutorService)
|
||||
- Atomic Variables (AtomicInteger, AtomicBoolean)
|
||||
- Fork-Join Framework
|
||||
- Deadlocks, Race Conditions, and Livelocks
|
||||
|
||||
6. Java Streams and Functional Programming
|
||||
- Lambda Expressions ((a, b) -> a + b)
|
||||
- Method References (Class::methodName)
|
||||
- Functional Interfaces (Predicate, Consumer, Supplier, Function, BiFunction)
|
||||
- Streams API (Intermediate vs. Terminal Operations)
|
||||
- Stream Processing (map(), filter(), reduce(), collect())
|
||||
- Parallel Streams (parallelStream())
|
||||
- Optional Class (Optional<T>, avoiding null)
|
||||
|
||||
7. Java Input/Output (I/O) and Serialization
|
||||
- Byte Streams vs. Character Streams (InputStream, OutputStream, Reader, Writer)
|
||||
- File Handling (File, Files, BufferedReader, BufferedWriter)
|
||||
- Object Serialization (Serializable, transient keyword)
|
||||
- New I/O (NIO) (Path, Files, ByteBuffer, Channels)
|
||||
- Memory-Mapped Files
|
||||
- Java 11+ Features (Files.writeString(), Files.readString())
|
||||
|
||||
8. Java 8+ Features
|
||||
- Default and Static Methods in Interfaces
|
||||
- Optional Class
|
||||
- New Date and Time API (LocalDate, LocalTime, LocalDateTime, ZonedDateTime)
|
||||
- CompletableFuture (thenApply(), thenAccept(), exceptionally())
|
||||
- New Collection Methods (List.of(), Set.of(), Map.of())
|
||||
- Records (Java 14+)
|
||||
- Pattern Matching (Java 17+)
|
||||
- Sealed Classes (Java 17+)
|
||||
|
||||
9. Java Reflection and Dynamic Class Loading
|
||||
- Getting Class Information (.class, Class.forName())
|
||||
- Accessing Private Fields and Methods
|
||||
- Dynamic Proxy and InvocationHandler
|
||||
- Annotations and Annotation Processing
|
||||
|
||||
10. Java Networking (Sockets, HTTP)
|
||||
- Java Sockets (ServerSocket, Socket)
|
||||
- URL and HttpURLConnection
|
||||
- HTTP Clients (Java 11 HttpClient)
|
||||
- Multithreaded Server Applications
|
||||
|
||||
11. Java Security Basics
|
||||
- Encryption and Hashing (AES, SHA, RSA)
|
||||
- Java Cryptography API (MessageDigest, Cipher)
|
||||
- Secure Random Numbers (SecureRandom)
|
||||
- Security Manager (doPrivileged())
|
||||
- Understanding Java Classloaders and Security Policies
|
||||
|
||||
12. Java Virtual Machine (JVM) Internals
|
||||
- JVM Architecture (ClassLoader, Method Area, Heap, Stack, Execution Engine, Garbage Collector)
|
||||
- Class Loading (ClassLoader, Bootstrap, Extensions, Application ClassLoader)
|
||||
- JIT Compilation (Just-In-Time Compiler)
|
||||
- Garbage Collection Algorithms (G1, ZGC, Epsilon GC)
|
||||
- JVM Performance Tuning (-Xms, -Xmx, -XX:+UseG1GC)
|
||||
7
Misc/20250723190656-java_junit_testing.org
Normal file
7
Misc/20250723190656-java_junit_testing.org
Normal file
@@ -0,0 +1,7 @@
|
||||
:PROPERTIES:
|
||||
:ID: 7b8de14c-a73e-4c92-a403-a9a1c419c0b3
|
||||
:END:
|
||||
#+title: java-junit-testing
|
||||
#+filetags: :java:coding:guides:
|
||||
|
||||
https://www.geeksforgeeks.org/software-testing/introduction-to-junit-5/
|
||||
15
Misc/20250806111925-non_technical_moc.org
Normal file
15
Misc/20250806111925-non_technical_moc.org
Normal file
@@ -0,0 +1,15 @@
|
||||
:PROPERTIES:
|
||||
:ID: 565eaccd-8cf6-4dbb-bc66-a4b37367ce6b
|
||||
:END:
|
||||
#+title: Non-Technical MOC
|
||||
#+filetags: :moc:
|
||||
|
||||
- [[id:63314cff-3a3f-49b4-9e76-4a359c51f55f][Books MOC]]
|
||||
|
||||
- [[id:3a8274ef-f2fe-486d-9caf-0c56982b9917][RSS Articles]]
|
||||
|
||||
- [[id:65F747B1-3CB2-429A-9E26-ED8BC169E689][Recipes MOC]]
|
||||
|
||||
- [[id:45eefd5b-a3d8-4b83-84ea-5a6984025755][Proverbs]]
|
||||
|
||||
|
||||
10
Misc/20250918120519-misc_moc.org
Normal file
10
Misc/20250918120519-misc_moc.org
Normal file
@@ -0,0 +1,10 @@
|
||||
:PROPERTIES:
|
||||
:ID: 08415f5c-986e-45a6-8ea1-f3bedcc996f0
|
||||
:END:
|
||||
#+title: Misc MOC
|
||||
#+filetags: :misc:moc:
|
||||
|
||||
* [[id:c1de3972-e932-48fd-8065-3d89dad58007][wedding_moc]]
|
||||
|
||||
* [[id:8CE93986-280B-45BD-9DF2-5D06586DDDE7][workflow-moc]]
|
||||
|
||||
10
Misc/20250918120706-wedding_moc.org
Normal file
10
Misc/20250918120706-wedding_moc.org
Normal file
@@ -0,0 +1,10 @@
|
||||
:PROPERTIES:
|
||||
:ID: c1de3972-e932-48fd-8065-3d89dad58007
|
||||
:END:
|
||||
#+title: wedding_moc
|
||||
#+filetags: :wedding:moc:
|
||||
|
||||
* Important dates
|
||||
** Engagement Day: <2025-10-26 Sun> 3pm-6pm
|
||||
** Nikah / Barat: <2026-08-02 Sun>
|
||||
** Walima: <2026-08-09 Sun>
|
||||
12
Misc/20250926151524-workflow_moc.org
Normal file
12
Misc/20250926151524-workflow_moc.org
Normal file
@@ -0,0 +1,12 @@
|
||||
:PROPERTIES:
|
||||
:ID: 8CE93986-280B-45BD-9DF2-5D06586DDDE7
|
||||
:END:
|
||||
#+title: workflow-moc
|
||||
#+filetags: :workflow:moc:
|
||||
|
||||
What are the use cases of the macbook and the pc:
|
||||
|
||||
* Macbook
|
||||
**
|
||||
|
||||
* PC
|
||||
9
Misc/20251002154125-microlise_moc.org
Normal file
9
Misc/20251002154125-microlise_moc.org
Normal file
@@ -0,0 +1,9 @@
|
||||
:PROPERTIES:
|
||||
:ID: ABF4A0BE-0309-48A6-92ED-76031B3D2F86
|
||||
:END:
|
||||
#+title: Microlise MOC
|
||||
#+filetags: :career:work:
|
||||
|
||||
- [[id:2BFB84B2-2129-4AE3-8E69-290CA5BF9747][pre_work_prep_microlise]]
|
||||
|
||||
- [[id:f877240e-c2c8-4087-84e5-4b1ca3fcd4ed][microlise-assessment]]
|
||||
27
Misc/20251002154204-pre_work_prep_microlise.org
Normal file
27
Misc/20251002154204-pre_work_prep_microlise.org
Normal file
@@ -0,0 +1,27 @@
|
||||
:PROPERTIES:
|
||||
:ID: 2BFB84B2-2129-4AE3-8E69-290CA5BF9747
|
||||
:END:
|
||||
#+title: pre_work_prep_microlise
|
||||
#+filetags: :work:
|
||||
#+AUTHOR: Zaine
|
||||
#+DATE: <2025-10-02 Thu>
|
||||
#+OPTIONS: toc:t
|
||||
#+STARTUP: overview
|
||||
|
||||
* Clothing
|
||||
|
||||
* Bag(s)
|
||||
** If going directly from work to mosque:
|
||||
** If going back home:
|
||||
|
||||
* Timings
|
||||
<2025-10-06 Mon>: 9:15pm arrival
|
||||
|
||||
* Petrol/Transport
|
||||
Taking two cars:
|
||||
- mine 2 days a week (friday and wednesday)
|
||||
- Bajis car on the rest of the week
|
||||
|
||||
* Documents
|
||||
|
||||
*
|
||||
71
Misc/20251019114758-old_nextcloud_server_code.org
Normal file
71
Misc/20251019114758-old_nextcloud_server_code.org
Normal file
@@ -0,0 +1,71 @@
|
||||
:PROPERTIES:
|
||||
:ID: 2c2d8df4-ad36-40ab-9f30-8a047b372956
|
||||
:END:
|
||||
#+title: old_nextcloud_server_code
|
||||
#+filetags: :server:self-hosting:
|
||||
|
||||
* wg
|
||||
Shakkal123!
|
||||
|
||||
docker run ghcr.io/wg-easy/wg-easy:14 node -e 'const bcrypt = require("bcryptjs"); const hash = bcrypt.hashSync("Shakkal123!", 10); console.log(hash.replace(/\$/g, "$$$$"));'
|
||||
|
||||
Unable to find image 'ghcr.io/wg-easy/wg-easy:14' locally
|
||||
14: Pulling from wg-easy/wg-easy
|
||||
Digest: sha256:5f26407fd2ede54df76d63304ef184576a6c1bb73f934a58a11abdd852fab549
|
||||
Status: Downloaded newer image for ghcr.io/wg-easy/wg-easy:14
|
||||
|
||||
$$2a$$10$$E1lkGe/IH5EnFrQLhDH2M.yKk3Q7KlgRuu.fzf/76CbWoAMy4G83u
|
||||
|
||||
* nextcloud:
|
||||
|
||||
# Allow unauthenticated access to /nextcloud
|
||||
location ^~ /nextcloud/ {
|
||||
auth_basic off;
|
||||
|
||||
proxy_pass http://localhost:8007/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
|
||||
client_max_body_size 512M;
|
||||
client_body_buffer_size 512k;
|
||||
|
||||
add_header Referrer-Policy "no-referrer" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
add_header X-XSS-Protection "1; mode=block" always;
|
||||
}
|
||||
|
||||
|
||||
# iOS and calendar/carddav fixes
|
||||
location ^~ /.well-known/carddav {
|
||||
return 301 $scheme://$host/nextcloud/remote.php/dav;
|
||||
}
|
||||
|
||||
location ^~ /.well-known/caldav {
|
||||
return 301 $scheme://$host/nextcloud/remote.php/dav;
|
||||
}
|
||||
|
||||
location ^~ /.well-known {
|
||||
return 301 $scheme://$host/nextcloud/index.php$uri;
|
||||
}
|
||||
|
||||
* technitium
|
||||
location /technitium/ {
|
||||
proxy_pass http://localhost:5380/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
# Rewrite path for base URL
|
||||
rewrite ^/technitium/(.*)$ /$1 break;
|
||||
}
|
||||
|
||||
curl -X GET "https://zserver.zapto.org/portainer/api/endpoints/3/docker/containers/json?all=true" -H "X-API-Key: ptr_KFQqKse9K4Nc9M5jnpc61fpAvGzdTOXTzswz9CwOF74=" -u "admin:shakkal123"
|
||||
13
Misc/20251101123637-backlog.org
Normal file
13
Misc/20251101123637-backlog.org
Normal file
@@ -0,0 +1,13 @@
|
||||
:PROPERTIES:
|
||||
:ID: 580cc3a5-af8e-4cbe-b5ad-5b06680e6c37
|
||||
:END:
|
||||
#+title: Backlog
|
||||
#+filetags: :backlog:
|
||||
|
||||
* Ideas
|
||||
- Building a code smells coverage checker for the ~output~ dir
|
||||
- Powershell script to give insights on the build scripts. This can be fed into the daily logs/discord pipeline
|
||||
- have a central point where we can see the server details and documentations
|
||||
- Have a two way sync between the cookbook and org-roam notes (see: [[https://nextcloud.github.io/cookbook/dev/api/0.1.3/index.html#/Recipes/listRecipes][swagger]])
|
||||
|
||||
* To sort:
|
||||
265
Misc/20251109205925-old_nginx_code.org
Normal file
265
Misc/20251109205925-old_nginx_code.org
Normal file
@@ -0,0 +1,265 @@
|
||||
:PROPERTIES:
|
||||
:ID: a9829b5d-690d-4a21-ba94-ac8beac4d439
|
||||
:END:
|
||||
#+title: Old NGINX Config
|
||||
#+filetags: :server:
|
||||
|
||||
|
||||
#+begin_src bash
|
||||
|
||||
|
||||
-> % cat /etc/nginx/sites-available/zserver
|
||||
|
||||
|
||||
server {
|
||||
server_name zainezq.com;
|
||||
|
||||
access_log /var/log/nginx/zserver.access.log combined;
|
||||
error_log /var/log/nginx/zserver.error.log warn;
|
||||
# Basic authentication for the entire server
|
||||
auth_basic "Restricted Access";
|
||||
auth_basic_user_file /etc/nginx/.htpasswd;
|
||||
|
||||
# Root location
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_redirect off;
|
||||
|
||||
root /home/zaine/master-folder/org_files/org_web/output;
|
||||
index index.html index.htm;
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
location /nginx_status {
|
||||
stub_status;
|
||||
}
|
||||
|
||||
location /dockge/ {
|
||||
proxy_pass http://127.0.0.1:5021/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
|
||||
|
||||
location /guac/ {
|
||||
proxy_pass http://127.0.0.1:3003/guacamole/;
|
||||
proxy_http_version 1.1;
|
||||
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $connection_upgrade;
|
||||
}
|
||||
|
||||
# PGAdmin4 location
|
||||
location /pgadmin4/ {
|
||||
proxy_set_header X-Script-Name /pgadmin4;
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://127.0.0.1:5050;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
location /pdf/ {
|
||||
proxy_pass http://127.0.0.1:8002/pdf/;
|
||||
proxy_set_header X-Script-Name /pdf;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
location /calibre {
|
||||
proxy_bind $server_addr;
|
||||
proxy_pass http://127.0.0.1:8083;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
proxy_set_header X-Script-Name /calibre; # IMPORTANT: path has NO trailing slash
|
||||
# This rewrites Calibre-Web's internal paths
|
||||
proxy_redirect off;
|
||||
proxy_http_version 1.1;
|
||||
client_max_body_size 100M;
|
||||
}
|
||||
|
||||
|
||||
location /codeserver/ {
|
||||
proxy_pass http://localhost:8441/;
|
||||
rewrite ^/codeserver(/.*)$ $1 break;
|
||||
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Accept-Encoding gzip;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
location /filebrowser {
|
||||
# prevents 502 bad gateway error
|
||||
proxy_buffers 8 32k;
|
||||
proxy_buffer_size 64k;
|
||||
|
||||
client_max_body_size 75M;
|
||||
|
||||
# redirect all HTTP traffic to localhost:8088;
|
||||
proxy_pass http://127.0.0.1:9991;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
#proxy_set_header X-NginX-Proxy true;
|
||||
|
||||
# enables WS support
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
|
||||
proxy_read_timeout 999999999;
|
||||
}
|
||||
|
||||
|
||||
# Miniflux location
|
||||
location /miniflux/ {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://127.0.0.1:9433/miniflux/;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
# Jupyter location
|
||||
location /jupyter/ {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://127.0.0.1:8888/jupyter/;
|
||||
proxy_redirect off;
|
||||
|
||||
# WebSocket support
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
}
|
||||
|
||||
location /portainer/ {
|
||||
proxy_pass https://localhost:9443/;
|
||||
proxy_ssl_verify off; # Because Portainer uses a self-signed cert by default
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header Authorization "";
|
||||
# Required for WebSocket support
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
|
||||
# Rewrite URL base path
|
||||
rewrite ^/portainer(/.*)$ $1 break;
|
||||
}
|
||||
|
||||
location /wireguard/ {
|
||||
proxy_pass http://127.0.0.1:124/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
# Rewrite assets for subpath compatibility
|
||||
proxy_set_header Accept-Encoding "";
|
||||
sub_filter 'href="/' 'href="/wireguard/';
|
||||
sub_filter 'src="/' 'src="/wireguard/';
|
||||
sub_filter_types text/css application/javascript;
|
||||
sub_filter_once off;
|
||||
}
|
||||
|
||||
# /password -> /password/
|
||||
location = /password { return 301 /password/; }
|
||||
|
||||
# Main app/API (disable inherited basic auth here)
|
||||
location ^~ /password/ {
|
||||
auth_basic off;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
# WebSockets
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
|
||||
# Keep the /password prefix upstream (NO trailing slash here)
|
||||
proxy_pass http://127.0.0.1:8006;
|
||||
}
|
||||
|
||||
# (Optional but tidy) If you keep a dedicated WS block, disable auth there too
|
||||
location ^~ /password/notifications/hub {
|
||||
auth_basic off;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host $host;
|
||||
|
||||
proxy_pass http://127.0.0.1:8006;
|
||||
}
|
||||
|
||||
|
||||
# Optional: Add a custom error page
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html {
|
||||
root /usr/share/nginx/html;
|
||||
}
|
||||
|
||||
# Optional: Cache static assets for performance (add this new block)
|
||||
# location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|eot|svg|html|htm)$ {
|
||||
# root /home/zaine/master-folder/org_files/org_web/output;
|
||||
# expires 30d;
|
||||
# access_log off;
|
||||
# }
|
||||
|
||||
# Optional: Deny access to hidden files
|
||||
location ~ /\. {
|
||||
deny all;
|
||||
}
|
||||
|
||||
listen 443 ssl; # managed by Certbot
|
||||
ssl_certificate /etc/letsencrypt/live/zainezq.com-0001/fullchain.pem; # managed by Certbot
|
||||
ssl_certificate_key /etc/letsencrypt/live/zainezq.com-0001/privkey.pem; # managed by Certbot
|
||||
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
|
||||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
server {
|
||||
if ($host = zserver.zapto.org) {
|
||||
return 301 https://$host$request_uri;
|
||||
} # managed by Certbot
|
||||
|
||||
listen 80;
|
||||
server_name zserver.zapto.org;
|
||||
return 404; # managed by Certbot
|
||||
}
|
||||
|
||||
#+end_src
|
||||
203
Misc/20251122223053-keyboard.org
Normal file
203
Misc/20251122223053-keyboard.org
Normal file
@@ -0,0 +1,203 @@
|
||||
:PROPERTIES:
|
||||
:ID: 0217f537-442a-4593-8c69-d481f0d1f2a8
|
||||
:END:
|
||||
#+title: keyboard
|
||||
#+filetags: :hardware:linux:
|
||||
|
||||
* Keyboard inputs
|
||||
|
||||
This all comes from the fact that a "key press" isn't one thing --- it's
|
||||
a stack of specs and translations from *keyboard hardware → USB/HID →
|
||||
Linux kernel → userspace (XKB/Wayland) → Hyprland binds*.
|
||||
|
||||
|
||||
** 1. Big picture: what happens when you press a key?
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: big-picture-what-happens-when-you-press-a-key
|
||||
:END:
|
||||
When you hit a key (like your "lock" key), roughly this happens:
|
||||
|
||||
#+begin_src text
|
||||
Physical switch on keyboard
|
||||
↓
|
||||
Keyboard firmware → USB HID "usage" (e.g. 0x07:0xE3 = Left GUI)
|
||||
↓
|
||||
Linux kernel input subsystem (evdev) → KEY_LEFTMETA (code 125)
|
||||
↓
|
||||
libinput / xkbcommon → keysyms (like Super_L, L, etc.)
|
||||
↓
|
||||
Hyprland → your `bind = SUPER, L, exec, ...`
|
||||
#+end_src
|
||||
|
||||
The "topic" we've been poking at is basically *understanding each layer
|
||||
in that stack*.
|
||||
|
||||
--------------
|
||||
|
||||
** 2. USB HID: where =700e3= comes from
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: usb-hid-where-700e3-comes-from
|
||||
:END:
|
||||
Modern USB keyboards follow the *USB HID (Human Interface Device)
|
||||
specification*. This spec defines *Usage Tables*: numerical codes for
|
||||
things like keys, buttons, axes, etc.
|
||||
|
||||
- The keyboard page is *Usage Page 0x07 (Keyboard/Keypad)*.
|
||||
|
||||
- In your =evtest= output, =MSC_SCAN value 700e3= means:
|
||||
|
||||
- =0x07= (Keyboard page)
|
||||
- =0xE3= (Left GUI / "Windows/Super" key)
|
||||
|
||||
You can see the official tables here (PDF):
|
||||
|
||||
- *HID Usage Tables (includes Keyboard/Keypad page 0x07)*
|
||||
[[https://usb.org/sites/default/files/hut1_21.pdf]]
|
||||
([[https://usb.org/sites/default/files/hut1_21.pdf?utm_source=chatgpt.com][USB
|
||||
Implementers Forum]])
|
||||
|
||||
If you scroll to the *Keyboard/Keypad Page (0x07)* section, it lists all
|
||||
the key usages: A, B, C, modifiers, function keys, etc. There's also a
|
||||
standalone Keyboard/Keypad-page extract people mirror, like this PDF
|
||||
snippet:
|
||||
([[https://d1.amobbs.com/bbs_upload782111/files_47/ourdev_692986N5FAHU.pdf?utm_source=chatgpt.com][d1.amobbs.com]])
|
||||
|
||||
So:
|
||||
|
||||
- =700e3= = Page =0x07=, Usage =0xE3= → /Keyboard Left GUI/
|
||||
- =7000f= = Page =0x07=, Usage =0x0F= → /Keyboard L/ key
|
||||
|
||||
That's how we knew your lock key was sending *Super + L*.
|
||||
|
||||
--------------
|
||||
|
||||
** 3. Linux input subsystem: =EV_MSC=, =EV_KEY=, =KEY_LEFTMETA=
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: linux-input-subsystem-ev_msc-ev_key-key_leftmeta
|
||||
:END:
|
||||
Linux has a dedicated *input subsystem* in the kernel (=drivers/input=,
|
||||
=drivers/hid= etc.) that takes those HID usages and turns them into a
|
||||
unified stream of *input events*.
|
||||
([[https://docs.kernel.org/input/input.html?utm_source=chatgpt.com][Linux
|
||||
Kernel Documentation]])
|
||||
|
||||
Key ideas:
|
||||
|
||||
- Devices expose =/dev/input/eventX= nodes.
|
||||
|
||||
- Each event is a struct with:
|
||||
|
||||
- =type= (e.g. =EV_KEY=, =EV_MSC=, =EV_REL=, =EV_SYN=)
|
||||
- =code= (e.g. =KEY_L=, =KEY_LEFTMETA=)
|
||||
- =value= (pressed = 1, released = 0, repeat = 2)
|
||||
|
||||
Docs worth bookmarking:
|
||||
|
||||
- *Linux input subsystem overview*
|
||||
[[https://docs.kernel.org/input/input.html]]
|
||||
([[https://docs.kernel.org/input/input.html?utm_source=chatgpt.com][Linux
|
||||
Kernel Documentation]])
|
||||
|
||||
- *Input event types and codes (=event-codes.txt=)*
|
||||
[[https://www.kernel.org/doc/Documentation/input/event-codes.txt]]
|
||||
([[https://www.kernel.org/doc/Documentation/input/event-codes.txt?utm_source=chatgpt.com][Kernel.org]])
|
||||
|
||||
The *keycode definitions* (=KEY_L=, =KEY_LEFTMETA=, etc.) live in:
|
||||
|
||||
- =include/uapi/linux/input-event-codes.h= in the kernel source Example
|
||||
mirror:
|
||||
[[https://raw.githubusercontent.com/torvalds/linux/master/include/uapi/linux/input-event-codes.h]]
|
||||
([[https://raw.githubusercontent.com/torvalds/linux/master/include/uapi/linux/input-event-codes.h?utm_source=chatgpt.com][GitHub]])
|
||||
|
||||
When =evtest= prints:
|
||||
|
||||
#+begin_src text
|
||||
type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e3
|
||||
type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 0
|
||||
#+end_src
|
||||
|
||||
that means:
|
||||
|
||||
- =EV_MSC / MSC_SCAN= → "Here is the raw hardware scancode" (from USB
|
||||
HID).
|
||||
- =EV_KEY / KEY_LEFTMETA= → "Linux mapped that scancode to logical key
|
||||
LEFTMETA".
|
||||
|
||||
--------------
|
||||
|
||||
** 4. XKB / xkbcommon: mapping to actual characters & modifiers
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: xkb-xkbcommon-mapping-to-actual-characters-modifiers
|
||||
:END:
|
||||
Above the kernel, you've got an extra mapping layer that says:
|
||||
|
||||
#+begin_quote
|
||||
For keycode N, with this layout, when Shift is held, produce this
|
||||
character/symbol.
|
||||
#+end_quote
|
||||
|
||||
On X11 this is handled by *XKB (X Keyboard Extension)*; on Wayland
|
||||
compositors (including Hyprland) the same ideas are implemented via
|
||||
*xkbcommon*.
|
||||
|
||||
Docs:
|
||||
|
||||
- *X Keyboard Extension (XKB) protocol spec*
|
||||
[[https://www.x.org/releases/X11R7.7/doc/kbproto/xkbproto.html]]
|
||||
([[https://www.x.org/releases/X11R7.7/doc/kbproto/xkbproto.html?utm_source=chatgpt.com][X.Org]])
|
||||
|
||||
- *Arch Wiki: X keyboard extension* (good high-level intro)
|
||||
[[https://wiki.archlinux.org/title/X_keyboard_extension]]
|
||||
([[https://wiki.archlinux.org/title/X_keyboard_extension?utm_source=chatgpt.com][ArchWiki]])
|
||||
|
||||
- A nice "practical" walkthrough of XKB concepts:
|
||||
[[https://medium.com/@damko/a-simple-humble-but-comprehensive-guide-to-xkb-for-linux-6f1ad5e13450][https://medium.com/[cite/t:@damko/a-simple-humble-but-comprehensive-guide-to-xkb-for-linux-6f1ad5e13450]]]
|
||||
([[https://medium.com/%40damko/a-simple-humble-but-comprehensive-guide-to-xkb-for-linux-6f1ad5e13450?utm_source=chatgpt.com][Medium]])
|
||||
|
||||
Hyprland, Sway, etc. all use libinput + xkbcommon under the hood to
|
||||
interpret those keycodes and translate them into keysyms and modifiers.
|
||||
|
||||
--------------
|
||||
|
||||
** 5. Hyprland / your config: where the bindings fit in
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: hyprland-your-config-where-the-bindings-fit-in
|
||||
:END:
|
||||
Hyprland sits at the top of this stack:
|
||||
|
||||
- It listens to the input events (via libinput).
|
||||
- It sees keysyms/modifiers (e.g. =Super=, =L=).
|
||||
- It matches them against your config:
|
||||
|
||||
#+begin_src ini
|
||||
bind = SUPER, L, exec, hyprlock
|
||||
#+end_src
|
||||
|
||||
So your keyboard's "lock" key:
|
||||
|
||||
1. Firmware sends HID usages =0xE3= (Left GUI) and =0x0F= (L).
|
||||
2. Linux maps them to =KEY_LEFTMETA= (125) and =KEY_L= (38).
|
||||
3. xkbcommon maps that to =Super= + =L=.
|
||||
4. Hyprland says: "Ah, SUPER+L → run =hyprlock=".
|
||||
|
||||
The "topic" you stumbled into is just *peeling back each abstraction
|
||||
layer*.
|
||||
|
||||
--------------
|
||||
|
||||
** 6. Handy tools & libraries if you want to go deeper
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: handy-tools-libraries-if-you-want-to-go-deeper
|
||||
:END:
|
||||
- =evtest=, =libinput debug-events=, =showkey= → To watch what your
|
||||
keyboard is actually sending.
|
||||
|
||||
- *Python-evdev* -- Python bindings to read =/dev/input/event*=
|
||||
yourself: [[https://python-evdev.readthedocs.io/]]
|
||||
([[https://python-evdev.readthedocs.io/?utm_source=chatgpt.com][python-evdev.readthedocs.io]])
|
||||
|
||||
- Linux input subsystem docs again:
|
||||
[[https://docs.kernel.org/driver-api/input.html]]
|
||||
([[https://docs.kernel.org/driver-api/input.html?utm_source=chatgpt.com][Linux
|
||||
Kernel Documentation]])
|
||||
|
||||
7
Misc/20251214210526-useful_c_imports.org
Normal file
7
Misc/20251214210526-useful_c_imports.org
Normal file
@@ -0,0 +1,7 @@
|
||||
:PROPERTIES:
|
||||
:ID: d939e477-d1e9-43ea-960e-8727246d12a3
|
||||
:END:
|
||||
#+title: useful-c-imports
|
||||
#+filetags: :coding:notes:
|
||||
|
||||
- SDL2 [[https://wiki.libsdl.org/SDL2/FrontPage][See this]]
|
||||
24
Misc/20251223220531-technical_commonplace.org
Normal file
24
Misc/20251223220531-technical_commonplace.org
Normal file
@@ -0,0 +1,24 @@
|
||||
:PROPERTIES:
|
||||
:ID: 37495d5f-2a77-40bc-b45c-8163189bbe6b
|
||||
:END:
|
||||
#+title: Technical Commonplace
|
||||
#+filetags: :technical:notes:commonplace:
|
||||
|
||||
* Articles:
|
||||
- https://forge.medium.com/a-simple-tool-for-personal-growth-dc1e822aa229
|
||||
|
||||
* MVP and MVT
|
||||
|
||||
- An **MVP** is a **minimal functional product** built to validate what customers actually want by observing real usage.
|
||||
- An **MVT** (often called **Minimum Viable Experiment/Test**) is a **small, fast, low‑cost test** designed to validate a specific assumption before you build anything substantial.
|
||||
|
||||
**Minimum Viable Product (MVP)**
|
||||
A simplified but working version of a product that early users can interact with.
|
||||
Purpose: validate product‑market fit and gather real behavioural feedback.
|
||||
|
||||
**Minimum Viable Test (MVT / MVE)**
|
||||
A quick experiment to validate a single assumption — often before building an MVP.
|
||||
Examples: landing page, survey, fake‑door button, email test.
|
||||
|
||||
- **MVT** = “Should we even build this?”
|
||||
- **MVP** = “We think this is worth building — now let’s test the simplest working version.”
|
||||
16
Misc/20260101143401-actual_self_hosted.org
Normal file
16
Misc/20260101143401-actual_self_hosted.org
Normal file
@@ -0,0 +1,16 @@
|
||||
:PROPERTIES:
|
||||
:ID: effa2bf5-8b04-42d3-b9c1-17160dc4ddc2
|
||||
:END:
|
||||
#+title: Actual
|
||||
#+filetags: :server:self-hosting:finance:
|
||||
|
||||
In order to update the balance, I have decided for the moment to export as ~csv~ the monthly transactions from Halifax. Place the file into the ~~/master-folder/attachments/bank-statements/~ folder and name it as ~halifax-YYYY-MM.csv~, where ~YYYY~ is the four-digit year and ~MM~ is the two-digit month.
|
||||
|
||||
Then run the following command in the terminal whilst being in the ~~/master-folder/projects/scripts/~ directory:
|
||||
|
||||
#+begin_src python
|
||||
python3 clean-halifax-actual.py ../../attachments/bank-statements/halifax-YYYY-MM.csv ../../attachments/bank-statements/halifax-YYYY-MM-cleaned.csv
|
||||
|
||||
#+end_src
|
||||
|
||||
Then you can go to the website ~https://actual.zainezq.com/~ and upload the cleaned file to update the balance.
|
||||
23
Misc/20260101194248-gitea.org
Normal file
23
Misc/20260101194248-gitea.org
Normal file
@@ -0,0 +1,23 @@
|
||||
:PROPERTIES:
|
||||
:ID: 74ec625c-3559-4570-8f6e-8272f4859ea7
|
||||
:END:
|
||||
#+title: Gitea Notes
|
||||
|
||||
|
||||
In order to connect to the gitea server and run git commands, you will need to do the following:
|
||||
|
||||
Run ~cat ~/.ssh/id_ed25519.pub~
|
||||
|
||||
Copy that key and add it to the ssh keys in gitea
|
||||
|
||||
~ssh-keygen -t ed25519 -C "windows-gitea"~
|
||||
|
||||
~ssh -T -p 222 git@192.168.0.241~
|
||||
|
||||
Check the remote url of the git project.
|
||||
|
||||
~git remote -v~
|
||||
|
||||
Change it to:
|
||||
|
||||
~git remote set-url origin git@~
|
||||
16
Misc/20260107182221-2026_targets.org
Normal file
16
Misc/20260107182221-2026_targets.org
Normal file
@@ -0,0 +1,16 @@
|
||||
:PROPERTIES:
|
||||
:ID: 7f756445-de36-4c17-a7c2-213e626d8498
|
||||
:END:
|
||||
#+title: 2026 Targets
|
||||
#+filetags: :misc:
|
||||
|
||||
* Reading:
|
||||
- 20 books
|
||||
- 100 articles of medium size
|
||||
|
||||
** Agile Testing
|
||||
** Head first into design patterns
|
||||
** Code Complete
|
||||
|
||||
|
||||
|
||||
41
Misc/20260111204228-rss_articles.org
Normal file
41
Misc/20260111204228-rss_articles.org
Normal file
@@ -0,0 +1,41 @@
|
||||
:PROPERTIES:
|
||||
:ID: 3a8274ef-f2fe-486d-9caf-0c56982b9917
|
||||
:END:
|
||||
#+title: RSS Articles
|
||||
#+filetags: :research:articles:
|
||||
|
||||
* [[https://blog.pragmaticengineer.com/downdetector-and-the-real-cost-of-no-upstream-dependencies/][Downdetector and the real cost of no upstream dependencies]]
|
||||
:PROPERTIES:
|
||||
:FEED: The Pragmatic Engineer
|
||||
:MINIFLUX_ID: 5250
|
||||
:READ_AT: 2026-01-11 21:29
|
||||
:END:
|
||||
|
||||
* [[https://coffeeandjunk.substack.com/p/loneliness][Loneliness Isn’t Just Something We Endure]]
|
||||
:PROPERTIES:
|
||||
:FEED: The Sunday Wisdom
|
||||
:MINIFLUX_ID: 5363
|
||||
:READ_AT: 2026-01-12 09:26
|
||||
:END:
|
||||
|
||||
* [[https://bigthink.com/technology-innovation/dormant-volcanoes-copper-mining][What are dormant volcanoes good for? Copper mining]]
|
||||
:PROPERTIES:
|
||||
:FEED: Big Think
|
||||
:MINIFLUX_ID: 5389
|
||||
:READ_AT: 2026-01-12 11:14
|
||||
:END:
|
||||
|
||||
* [[https://coffeeandjunk.substack.com/p/genius][Where Have All the Geniuses Gone?]]
|
||||
:PROPERTIES:
|
||||
:FEED: The Sunday Wisdom
|
||||
:MINIFLUX_ID: 5358
|
||||
:READ_AT: 2026-01-25 22:52
|
||||
:END:
|
||||
|
||||
* [[https://coffeeandjunk.substack.com/p/forever][Not Everything Has to Be Timeless]]
|
||||
:PROPERTIES:
|
||||
:FEED: The Sunday Wisdom
|
||||
:MINIFLUX_ID: 5361
|
||||
:READ_AT: 2026-02-10 17:48
|
||||
:END:
|
||||
|
||||
8
Misc/20260117194854-programming_projects.org
Normal file
8
Misc/20260117194854-programming_projects.org
Normal file
@@ -0,0 +1,8 @@
|
||||
:PROPERTIES:
|
||||
:ID: d63abaad-15e8-45d8-aafb-c634164ec0c0
|
||||
:END:
|
||||
#+title: Programming Projects
|
||||
#+filetags: :coding:projects:
|
||||
|
||||
- https://github.com/codecrafters-io/build-your-own-x
|
||||
|
||||
8
Misc/20260211114817-personal_operating_system.org
Normal file
8
Misc/20260211114817-personal_operating_system.org
Normal file
@@ -0,0 +1,8 @@
|
||||
:PROPERTIES:
|
||||
:ID: 5f8f7d8a-5dfc-49a4-a7a6-33373a1d7c8d
|
||||
:END:
|
||||
#+title: Personal Operating System
|
||||
|
||||
- [[id:fc92a943-61ac-462a-b6e5-8be46069f2ca][Timetable]]
|
||||
|
||||
* Personal Operating System
|
||||
36
Misc/20260211124505-timetable.org
Normal file
36
Misc/20260211124505-timetable.org
Normal file
@@ -0,0 +1,36 @@
|
||||
:PROPERTIES:
|
||||
:ID: fc92a943-61ac-462a-b6e5-8be46069f2ca
|
||||
:END:
|
||||
#+title: Timetable
|
||||
|
||||
* Non-Ramadan — Weekdays
|
||||
|
||||
+-------------+---------------+------------------------------------------------------------+
|
||||
| Time | Focus | Details |
|
||||
+-------------+---------------+------------------------------------------------------------+
|
||||
| 06:30–08:00 | Morning (Dīn) | Fajr, Istighfār, Durood, Qurʾān (1.5 Juz), mobility / walk |
|
||||
+-------------+---------------+------------------------------------------------------------+
|
||||
| 08:00–16:30 | Work | Work blocks with intention |
|
||||
+-------------+---------------+------------------------------------------------------------+
|
||||
| 16:30–17:30 | Reset | Light food, walk, dhikr |
|
||||
+-------------+---------------+------------------------------------------------------------+
|
||||
| 17:45–22:30 | Evening | Commute + Alimiyyah classes |
|
||||
+-------------+---------------+------------------------------------------------------------+
|
||||
| 22:30–23:00 | Night | Remaining Durood, reflection, plan tomorrow, sleep |
|
||||
+-------------+---------------+------------------------------------------------------------+
|
||||
|
||||
*Note*: If the day is Tuesday or Thursday, then we take an hour lunch and go to the gym.
|
||||
|
||||
* Non-Ramadan — Weekends
|
||||
|
||||
+--------------+-------------+---------------------------------------------------+
|
||||
| Time | Focus | Details |
|
||||
+--------------+-------------+---------------------------------------------------+
|
||||
| Morning | Dīn | Fajr, full awrād, extended Qurʾān / reading |
|
||||
+--------------+-------------+---------------------------------------------------+
|
||||
| Before Class | Body | Workout |
|
||||
+--------------+-------------+---------------------------------------------------+
|
||||
| 11:00–14:00 | Alimiyyah | Classes |
|
||||
+--------------+-------------+---------------------------------------------------+
|
||||
| Evening | Nourishment | Arabic/English reading, calligraphy, family, rest |
|
||||
+--------------+-------------+---------------------------------------------------+
|
||||
24
Misc/20260307165727-proverbs.org
Normal file
24
Misc/20260307165727-proverbs.org
Normal file
@@ -0,0 +1,24 @@
|
||||
:PROPERTIES:
|
||||
:ID: 45eefd5b-a3d8-4b83-84ea-5a6984025755
|
||||
:END:
|
||||
#+title: Proverbs
|
||||
|
||||
* Arabic
|
||||
|
||||
* French
|
||||
|
||||
** <2026-03-06 Fri>: écriture comme les mouches
|
||||
L'expression « écriture comme les mouches » est une forme figurée pour décrire une écriture très petite, fine, difficile à lire, souvent qualifiée de « pattes de mouche ».
|
||||
|
||||
* English
|
||||
|
||||
* Urdu
|
||||
** <2026-03-07 Sat>: "یک نہ شود دو شود" (Yak na shud, do shud)
|
||||
|
||||
Literal Meaning:
|
||||
"One didn't happen, two happened."
|
||||
|
||||
Interpretation:
|
||||
It's used when someone fails to achieve one thing and ends up with an even bigger problem or loss — essentially, adding insult to injury. Instead of just missing out on one thing, they end up worse off than before.
|
||||
|
||||
** <2026-03-08 Sun>: [[https://www.urdupod101.com/blog/2021/06/10/best-urdu-proverbs/][Link to a bunch of proverbs]]
|
||||
112
Misc/20260307233451-recipes_cookbook.org
Normal file
112
Misc/20260307233451-recipes_cookbook.org
Normal file
@@ -0,0 +1,112 @@
|
||||
:PROPERTIES:
|
||||
:ID: b31d6c3f-9bc3-4006-aaaf-d56168249e3a
|
||||
:END:
|
||||
|
||||
#+title: Recipes Cookbook
|
||||
#+AUTHOR: Auto-generated
|
||||
#+filetags: :recipes:cooking:org:index:
|
||||
#+STARTUP: content
|
||||
#+PROPERTY: GENERATED_AT 2026-03-27T00:00:02.222838
|
||||
|
||||
# How to add notes: under any recipe heading, add :COOKED: <date> to record when you made it, and :TIPS: your tip text to add notes.
|
||||
# Multiple :COOKED: lines are supported. These are preserved across regenerations.
|
||||
|
||||
* Lunch
|
||||
|
||||
** Chicken Rice Meal Prep :Chicken:Chicken_and_Rice:Lunch:Rice:
|
||||
:PROPERTIES:
|
||||
:RECIPE_ID: 23153
|
||||
:CATEGORY: Lunch
|
||||
:KEYWORDS: Chicken,Chicken and Rice,Lunch,Rice
|
||||
:CREATED: 2026-03-08T00:03:56+0000
|
||||
:MODIFIED: 2026-03-08T00:12:24+0000
|
||||
:URL: https://nextcloud.zainezq.com/apps/cookbook/webapp/recipes/23153
|
||||
:COOKED: <2026-03-08 Sun>
|
||||
:END:
|
||||
#+ATTR_HTML: :class recipe-meta
|
||||
| | |
|
||||
|---|---|
|
||||
| *Category* | Lunch |
|
||||
| *Keywords* | Chicken,Chicken and Rice,Lunch,Rice |
|
||||
| *Created* | 2026-03-08 |
|
||||
| *Modified* | 2026-03-08 |
|
||||
| *Cooked* | <2026-03-08 Sun> |
|
||||
| *Link* | [[https://nextcloud.zainezq.com/apps/cookbook/webapp/recipes/23153][Open in Nextcloud]] |
|
||||
|
||||
** Healthy CREAMY Tuna Wraps :Lunch:Tuna:
|
||||
:PROPERTIES:
|
||||
:RECIPE_ID: 23133
|
||||
:CATEGORY: Lunch
|
||||
:KEYWORDS: Lunch,Tuna
|
||||
:CREATED: 2026-03-07T23:02:59+0000
|
||||
:MODIFIED: 2026-03-08T00:12:38+0000
|
||||
:URL: https://nextcloud.zainezq.com/apps/cookbook/webapp/recipes/23133
|
||||
:COOKED: <2025-07-17 Thu>
|
||||
:END:
|
||||
#+ATTR_HTML: :class recipe-meta
|
||||
| | |
|
||||
|---|---|
|
||||
| *Category* | Lunch |
|
||||
| *Keywords* | Lunch,Tuna |
|
||||
| *Created* | 2026-03-07 |
|
||||
| *Modified* | 2026-03-08 |
|
||||
| *Cooked* | <2025-07-17 Thu> |
|
||||
| *Link* | [[https://nextcloud.zainezq.com/apps/cookbook/webapp/recipes/23133][Open in Nextcloud]] |
|
||||
|
||||
** High Protein Tuna Salad :Lunch:Tuna:
|
||||
:PROPERTIES:
|
||||
:RECIPE_ID: 21929
|
||||
:CATEGORY: Lunch
|
||||
:KEYWORDS: Lunch,Tuna
|
||||
:CREATED: 2026-02-23T16:49:56+0000
|
||||
:MODIFIED: 2026-03-08T00:12:47+0000
|
||||
:URL: https://nextcloud.zainezq.com/apps/cookbook/webapp/recipes/21929
|
||||
:END:
|
||||
#+ATTR_HTML: :class recipe-meta
|
||||
| | |
|
||||
|---|---|
|
||||
| *Category* | Lunch |
|
||||
| *Keywords* | Lunch,Tuna |
|
||||
| *Created* | 2026-02-23 |
|
||||
| *Modified* | 2026-03-08 |
|
||||
| *Cooked* | /not yet made/ |
|
||||
| *Link* | [[https://nextcloud.zainezq.com/apps/cookbook/webapp/recipes/21929][Open in Nextcloud]] |
|
||||
|
||||
** One Pot Chicken and Rice Recipe :Chicken:Chicken_and_Rice:Lunch:One_Pot:Rice:
|
||||
:PROPERTIES:
|
||||
:RECIPE_ID: 23167
|
||||
:CATEGORY: Lunch
|
||||
:KEYWORDS: Chicken,Chicken and Rice,Lunch,One Pot,Rice
|
||||
:CREATED: 2026-03-08T00:10:27+0000
|
||||
:MODIFIED: 2026-03-08T00:13:23+0000
|
||||
:URL: https://nextcloud.zainezq.com/apps/cookbook/webapp/recipes/23167
|
||||
:END:
|
||||
#+ATTR_HTML: :class recipe-meta
|
||||
| | |
|
||||
|---|---|
|
||||
| *Category* | Lunch |
|
||||
| *Keywords* | Chicken,Chicken and Rice,Lunch,One Pot,Rice |
|
||||
| *Created* | 2026-03-08 |
|
||||
| *Modified* | 2026-03-08 |
|
||||
| *Cooked* | /not yet made/ |
|
||||
| *Link* | [[https://nextcloud.zainezq.com/apps/cookbook/webapp/recipes/23167][Open in Nextcloud]] |
|
||||
|
||||
** Potato Peas Quesadilla :Lunch:Peas:Potato:Quesadilla:
|
||||
:PROPERTIES:
|
||||
:RECIPE_ID: 23144
|
||||
:CATEGORY: Lunch
|
||||
:KEYWORDS: Lunch,Peas,Potato,Quesadilla
|
||||
:CREATED: 2026-03-07T23:07:31+0000
|
||||
:MODIFIED: 2026-03-08T00:13:49+0000
|
||||
:URL: https://nextcloud.zainezq.com/apps/cookbook/webapp/recipes/23144
|
||||
:COOKED: <2025-07-18 Fri>
|
||||
:END:
|
||||
#+ATTR_HTML: :class recipe-meta
|
||||
| | |
|
||||
|---|---|
|
||||
| *Category* | Lunch |
|
||||
| *Keywords* | Lunch,Peas,Potato,Quesadilla |
|
||||
| *Created* | 2026-03-07 |
|
||||
| *Modified* | 2026-03-08 |
|
||||
| *Cooked* | <2025-07-18 Fri> |
|
||||
| *Link* | [[https://nextcloud.zainezq.com/apps/cookbook/webapp/recipes/23144][Open in Nextcloud]] |
|
||||
Reference in New Issue
Block a user