generated from nhcarrigan/template
This commit is contained in:
@@ -1,244 +0,0 @@
|
||||
---
|
||||
title: static-pages
|
||||
---
|
||||
|
||||
static-pages (hereinafter the "Application") is a collection of static HTML pages and related data/scripts for various small web utilities and content sections. The application provides interactive explorers for books and music libraries, product directories, games, chat services, testimonials, and other utility pages. It is designed to be easily synchronized to a production server using shell scripts and requires no backend or dynamic server-side logic.
|
||||
|
||||
## 1. User Documentation
|
||||
|
||||
The Application provides several interactive web utilities:
|
||||
|
||||
### Book Library (`/books/`)
|
||||
An interactive explorer for Naomi's book collection. Users can browse and search through the library of books with filtering capabilities by author. The interface displays book titles and authors extracted from digital book files.
|
||||
|
||||
### Music Library (`/music/`)
|
||||
An interactive explorer for Naomi's music collection. Similar to the book library, users can browse and search through songs with filtering by artist. The interface displays song titles and artists extracted from audio file metadata.
|
||||
|
||||
### Product Directory (`/products/`)
|
||||
An automated directory listing products offered by NHCarrigan. The page displays products from various categories including public projects, games, private projects, and archived items. Products are fetched from Gitea repositories and displayed with their descriptions and links where available.
|
||||
|
||||
### Games (`/games/`)
|
||||
A landing page showcasing various games developed by NHCarrigan, including links to the Beccalia Series and other game projects.
|
||||
|
||||
### BlueSky Handle Generator (`/bsky/`)
|
||||
A service page for provisioning custom Bluesky handles under the naomi.party domain. Currently requires manual processing through the Discord support server.
|
||||
|
||||
### Chat Services (`/chat/`)
|
||||
A comprehensive page outlining various ways to connect with NHCarrigan, including forum, IRC, and Matrix communication options with direct links and connection details.
|
||||
|
||||
### Testimonials (`/testimonials/`)
|
||||
A showcase page displaying testimonials from past clients about NHCarrigan's work and services.
|
||||
|
||||
### Link Redirector (`/link-redirector/`)
|
||||
A utility page that serves as a fallback for improperly configured subdomain redirects, providing users with support contact information.
|
||||
|
||||
This section is for those interacting with a live instance of the Application.
|
||||
|
||||
## 2. Technical Documentation
|
||||
|
||||
### System Requirements
|
||||
- Unix-like operating system (Linux/macOS)
|
||||
- Bash shell
|
||||
- `rsync` for deployment
|
||||
- `exiftool` for extracting book metadata
|
||||
- `mid3v2` for extracting music metadata
|
||||
- `jq` for JSON processing
|
||||
- Access to Gitea API (for products functionality)
|
||||
- Web server capable of serving static files
|
||||
|
||||
### Project Structure
|
||||
```
|
||||
├── books/ # Book library interface
|
||||
│ ├── index.html # Main book explorer page
|
||||
│ └── books.json # Generated book data
|
||||
├── music/ # Music library interface
|
||||
│ ├── index.html # Main music explorer page
|
||||
│ └── songs.json # Generated music data
|
||||
├── products/ # Product directory
|
||||
│ ├── index.html # Product listing page
|
||||
│ └── data.json # Generated product data
|
||||
├── games/ # Games showcase
|
||||
├── bsky/ # BlueSky handle service
|
||||
├── chat/ # Communication options
|
||||
├── testimonials/ # Client testimonials
|
||||
├── link-redirector/ # Redirect fallback
|
||||
├── mail/ # Mail service (manual sync)
|
||||
├── manual/ # Manual/documentation
|
||||
├── sitemap/ # Site navigation
|
||||
├── books.sh # Book data generator script
|
||||
├── songs.sh # Music data generator script
|
||||
├── products.sh # Product data generator script
|
||||
└── sync.sh # Deployment script
|
||||
```
|
||||
|
||||
### Data Generation Scripts
|
||||
|
||||
**Book Library (`books.sh`)**
|
||||
- Scans `/home/naomi/cloud/Books` directory for book files
|
||||
- Extracts title and author metadata using `exiftool`
|
||||
- Generates `books/books.json` with book data
|
||||
- Handles files without metadata by using filenames
|
||||
|
||||
**Music Library (`songs.sh`)**
|
||||
- Scans `/home/naomi/music` directory for audio files
|
||||
- Extracts title and artist metadata using `mid3v2`
|
||||
- Generates `music/songs.json` with song data
|
||||
- Falls back to filename parsing for missing metadata
|
||||
|
||||
**Product Directory (`products.sh`)**
|
||||
- Fetches repository data from Gitea API
|
||||
- Organizes projects by category (public, games, private, archived)
|
||||
- Generates `products/data.json` with project information
|
||||
- Requires `GITEA_TOKEN` environment variable
|
||||
|
||||
### Deployment
|
||||
|
||||
The deployment process uses `sync.sh` which:
|
||||
1. Syncs all directories to production server using `rsync`
|
||||
2. Targets `prod:/home/nhcarrigan` for most content
|
||||
3. Requires manual sync for `mail/index.html` to `mail:/home/user-data/www/default`
|
||||
|
||||
**Deployment Command:**
|
||||
```bash
|
||||
./sync.sh
|
||||
```
|
||||
|
||||
**Directories synced automatically:**
|
||||
- bsky, chat, games, link-redirector, testimonials
|
||||
- manual, sitemap, music, books, products
|
||||
|
||||
### Running Your Own Instance
|
||||
|
||||
1. **Clone the repository**
|
||||
2. **Install dependencies:**
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt install exiftool python3-mutagen jq rsync
|
||||
|
||||
# macOS
|
||||
brew install exiftool jq rsync
|
||||
pip3 install mutagen
|
||||
```
|
||||
|
||||
3. **Configure data sources:**
|
||||
- Update paths in `books.sh` for your book collection
|
||||
- Update paths in `songs.sh` for your music collection
|
||||
- Set `GITEA_TOKEN` environment variable for products functionality
|
||||
- Modify `products.sh` with your Gitea instance URL and organizations
|
||||
|
||||
4. **Generate data:**
|
||||
```bash
|
||||
./books.sh # Generate book library data
|
||||
./songs.sh # Generate music library data
|
||||
./products.sh # Generate product directory data
|
||||
```
|
||||
|
||||
5. **Serve static files:**
|
||||
```bash
|
||||
# Simple Python server for testing
|
||||
python3 -m http.server 8000
|
||||
```
|
||||
|
||||
6. **Deploy to production:**
|
||||
- Modify `sync.sh` with your server details
|
||||
- Ensure SSH key authentication is configured
|
||||
- Run `./sync.sh`
|
||||
|
||||
This section is for those interested in running their own instance of the Application.
|
||||
|
||||
## 3. Legal Documentation
|
||||
|
||||
The Application operates under NHCarrigan's standard legal framework:
|
||||
|
||||
### License
|
||||
This software is licensed under the [global software license](https://docs.nhcarrigan.com/#/license). Copyright is held by Naomi Carrigan.
|
||||
|
||||
### Privacy Policy
|
||||
Privacy considerations for the Application are covered under the [global privacy policy](PRIVACY.md).
|
||||
|
||||
### Terms of Service
|
||||
Terms of service for the Application are outlined in [TERMS.md](TERMS.md).
|
||||
|
||||
### Code of Conduct
|
||||
All interactions with the Application's community and codebase are governed by the [Code of Conduct](https://docs.nhcarrigan.com/#/coc), referenced in [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
|
||||
|
||||
### Security Policy
|
||||
Security reporting and handling procedures are documented in [SECURITY.md](SECURITY.md).
|
||||
|
||||
### Data Handling
|
||||
- **Book Library**: Processes local book file metadata only
|
||||
- **Music Library**: Processes local music file metadata only
|
||||
- **Product Directory**: Fetches public repository information from Gitea API
|
||||
- **BlueSky Service**: Collects handle requests through Discord (manual process)
|
||||
- **No personal data**: The Application does not collect or store personal user data directly
|
||||
|
||||
This section is for expansions to our legal policies specific to the Application.
|
||||
|
||||
## 4. Contributing Documentation
|
||||
|
||||
### Getting Started
|
||||
Contributors should review the [global contributing guidelines](https://docs.nhcarrigan.com/#/contributing) referenced in [CONTRIBUTING.md](CONTRIBUTING.md).
|
||||
|
||||
### Development Workflow
|
||||
|
||||
1. **Fork and Clone**
|
||||
```bash
|
||||
git clone https://github.com/your-username/static-pages.git
|
||||
cd static-pages
|
||||
```
|
||||
|
||||
2. **Set Up Development Environment**
|
||||
- Install required dependencies (see Technical Documentation)
|
||||
- Configure data source paths for testing
|
||||
- Set up environment variables if working with products functionality
|
||||
|
||||
3. **Making Changes**
|
||||
- **HTML Pages**: Edit individual `index.html` files in respective directories
|
||||
- **Data Scripts**: Modify `*.sh` scripts for data generation logic
|
||||
- **Deployment**: Update `sync.sh` for deployment configuration changes
|
||||
|
||||
4. **Testing Changes**
|
||||
```bash
|
||||
# Test data generation
|
||||
./books.sh
|
||||
./songs.sh
|
||||
./products.sh
|
||||
|
||||
# Test locally
|
||||
python3 -m http.server 8000
|
||||
```
|
||||
|
||||
5. **Submitting Changes**
|
||||
- Create feature branch: `git checkout -b feature/your-feature`
|
||||
- Commit changes with descriptive messages
|
||||
- Push to your fork and create a Pull Request
|
||||
- Ensure all data generation scripts work correctly
|
||||
|
||||
### Code Style Guidelines
|
||||
- **HTML**: Use semantic HTML5 elements, include proper meta tags
|
||||
- **Shell Scripts**: Follow bash best practices, include error handling
|
||||
- **JSON Data**: Ensure proper formatting and validation
|
||||
- **Documentation**: Update relevant documentation for new features
|
||||
|
||||
### Areas for Contribution
|
||||
- **UI/UX Improvements**: Enhance styling and user experience of static pages
|
||||
- **Data Processing**: Improve metadata extraction and data generation scripts
|
||||
- **New Features**: Add new utility pages or improve existing functionality
|
||||
- **Documentation**: Expand user guides and technical documentation
|
||||
- **Testing**: Add validation and testing for data generation processes
|
||||
- **Accessibility**: Improve accessibility compliance across all pages
|
||||
|
||||
### Communication
|
||||
- **Issues**: Report bugs and request features through GitHub Issues
|
||||
- **Support**: Join the [chat server](https://chat.nhcarrigan.com) for discussion
|
||||
- **Contact**: Reach out via email at `contact@nhcarrigan.com`
|
||||
|
||||
### Review Process
|
||||
All Pull Requests are reviewed for:
|
||||
- Code quality and adherence to project standards
|
||||
- Functionality and testing
|
||||
- Documentation updates
|
||||
- Security considerations
|
||||
- Compatibility with existing deployment process
|
||||
|
||||
This section is for documentation related to contributing to the Application's codebase.
|
||||
Executable
+114
@@ -0,0 +1,114 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
TESTIMONIALS_JSON_URL="https://data.nhcarrigan.com/testimonials.json"
|
||||
TESTIMONIALS_JSON_FILE="testimonials.json"
|
||||
TESTIMONIALS_HTML_FILE="testimonials/index.html"
|
||||
|
||||
# Templating
|
||||
HTML_START='<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Testimonials</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta
|
||||
name="description"
|
||||
content="See what our past clients have to say about our work!"
|
||||
/>
|
||||
<script
|
||||
src="https://cdn.nhcarrigan.com/headers/index.js"
|
||||
async
|
||||
defer
|
||||
></script>
|
||||
<style>
|
||||
hr {
|
||||
border: 1px solid var(--background);
|
||||
}
|
||||
.title {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
.date {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
@media screen {
|
||||
.card {
|
||||
background: var(--foreground);
|
||||
color: var(--background);
|
||||
width: 80%;
|
||||
margin: auto;
|
||||
border-radius: 10px;
|
||||
box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.7);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
@media print {
|
||||
:root {
|
||||
font-size: 12px;
|
||||
}
|
||||
* {
|
||||
color: black;
|
||||
font-family: "Times New Roman", serif;
|
||||
}
|
||||
video,
|
||||
footer,
|
||||
hr {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>Testimonials</h1>
|
||||
<p>See what our past clients have to say about our work!</p>
|
||||
<p>Want to submit your own? <a href="https://forms.nhcarrigan.com/form/M_GrmqASymmO744axMOmu2LaMAaT5F0LmdVcU2c8-gQ">Use our web form</a>.</p>
|
||||
<section>
|
||||
'
|
||||
HTML_END=' </section>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
'
|
||||
|
||||
# Fetch the latest testimonials.json
|
||||
curl -sSL "$TESTIMONIALS_JSON_URL" -o "$TESTIMONIALS_JSON_FILE"
|
||||
|
||||
# Convert JSON to HTML, sorted by date descending (newest first)
|
||||
TESTIMONIALS_HTML=$(jq -r '
|
||||
def parse_date:
|
||||
split(" ") |
|
||||
.[2] + "-" +
|
||||
(.[1] |
|
||||
if . == "January" then "01"
|
||||
elif . == "February" then "02"
|
||||
elif . == "March" then "03"
|
||||
elif . == "April" then "04"
|
||||
elif . == "May" then "05"
|
||||
elif . == "June" then "06"
|
||||
elif . == "July" then "07"
|
||||
elif . == "August" then "08"
|
||||
elif . == "September" then "09"
|
||||
elif . == "October" then "10"
|
||||
elif . == "November" then "11"
|
||||
elif . == "December" then "12"
|
||||
else . end
|
||||
) + "-" +
|
||||
(.[0] | if length == 1 then "0" + . else . end);
|
||||
|
||||
sort_by(.date | parse_date) | reverse |
|
||||
.[] |
|
||||
"<div class=\"card\">\n <p class=\"title\">" + .name + "</p>\n <p>" + .content + "</p>\n <p class=\"date\">" + .date + "</p>\n</div>"
|
||||
' "$TESTIMONIALS_JSON_FILE")
|
||||
|
||||
# Create temporary file with the HTML content
|
||||
echo "$HTML_START" > "$TESTIMONIALS_HTML_FILE"
|
||||
echo "$TESTIMONIALS_HTML" >> "$TESTIMONIALS_HTML_FILE"
|
||||
echo "$HTML_END" >> "$TESTIMONIALS_HTML_FILE"
|
||||
|
||||
echo "Testimonials updated in $TESTIMONIALS_HTML_FILE"
|
||||
|
||||
# Clean up
|
||||
rm "$TESTIMONIALS_JSON_FILE"
|
||||
+270
-2
@@ -54,13 +54,281 @@
|
||||
<main>
|
||||
<h1>Testimonials</h1>
|
||||
<p>See what our past clients have to say about our work!</p>
|
||||
<p>Want to submit your own? <a href="https://forms.nhcarrigan.com/form/M_GrmqASymmO744axMOmu2LaMAaT5F0LmdVcU2c8-gQ">Use our web form</a>.</p>
|
||||
<p>
|
||||
Want to submit your own?
|
||||
<a
|
||||
href="https://forms.nhcarrigan.com/form/M_GrmqASymmO744axMOmu2LaMAaT5F0LmdVcU2c8-gQ"
|
||||
>Use our web form</a
|
||||
>.
|
||||
</p>
|
||||
<section>
|
||||
<div class="card">
|
||||
<p class="title">Christine Chapman</p>
|
||||
<p>
|
||||
Our company needed a streamlined way to respond to the community
|
||||
across multiple platforms like Discord and GitHub. Naomi built a
|
||||
streamlined Slack workflow to syndicate messages across the
|
||||
platforms. This enables people like me to easily respond to messages
|
||||
from customers without needing to bounce around to different
|
||||
platforms and makes it easier to track information. A lot of the
|
||||
metadata that gets pulled in is impressive and reflects the quality
|
||||
and detail of Naomi's work. The system "just works", you don't have
|
||||
to think about how or why which is always a great quality in an
|
||||
internal tool. On a separate occasion, my team worked on a project
|
||||
that needed SDK support quite urgently. Naomi had no prior context
|
||||
on the project but dove in and quickly wrote the solution across
|
||||
multiple SDKs, owning it long-term and fixing issues as they arose.
|
||||
This enabled my team to achieve a major milestone.
|
||||
</p>
|
||||
<p class="date">28 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Satyarth Ranjan</p>
|
||||
<p>
|
||||
I had the distinct pleasure of participating in the recent
|
||||
month-long FreeCodeCamp Summer Hackathon, which was impeccably
|
||||
managed by Naomi. Her organizational skills are outstanding. She
|
||||
seamlessly coordinated a global event with over 21 teams,
|
||||
demonstrating remarkable foresight by grouping participants by
|
||||
timezone to foster effective collaboration and implementing a bot to
|
||||
ensure a fair and transparent work environment. Beyond her
|
||||
management abilities, Naomi is a gifted teacher. I was fortunate to
|
||||
learn Git and GitHub from her free, live course just before the
|
||||
event, which equipped me with the essential skills to contribute
|
||||
effectively from day one. Her constant support and availability made
|
||||
a huge difference to all of us. Naomi is an inspiring community
|
||||
manager and educator, and I wholeheartedly recommend her.
|
||||
</p>
|
||||
<p class="date">21 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Abigail Rennemeyer</p>
|
||||
<p>
|
||||
I've worked with Naomi at freeCodeCamp.org for a number of years,
|
||||
and I've always been impressed by her ability to learn absolutely
|
||||
anything. Her intellectual curiosity stands out and allows her to
|
||||
find a problem, tackle it quickly, and resolve it - even if she
|
||||
didn't have prior knowledge of the issue. She's a research pro, and
|
||||
you can always have faith that she's looked at and learned about all
|
||||
sides of an idea or issue. Naomi is also a passionate community
|
||||
organizer, and seems to have boundless energy for helping people
|
||||
learn, find a community, and solve problems. She freely shares
|
||||
information and makes her voice heard, making her a valued and
|
||||
valuable member of any team. She's also incredibly effective at
|
||||
engaging learners/platform users and inspiring them to participate
|
||||
and contribute to whatever initiative she's working on. I've always
|
||||
appreciated Naomi's candour, eloquence, quick wit, and willingness
|
||||
to jump in and help with whatever's needed - crucial in a small
|
||||
non-profit like freeCodeCamp, but undeniably useful anywhere. I
|
||||
don't know if there's anything she can't figure out or strategize
|
||||
about given a little time, and her dedication to her work is truly
|
||||
inspiring.
|
||||
</p>
|
||||
<p class="date">20 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Rex Schrader</p>
|
||||
<p>
|
||||
I have had the pleasure of working alongside Naomi in her Community
|
||||
Manager role at Free Code Camp (FCC). We first worked together on
|
||||
co-building some curriculum for FCC's Quality Assurance
|
||||
certifications. I was impressed by her technical know-how and skill.
|
||||
Her easy going attitude makes her a joy to work with. Since that
|
||||
time I have seen her grow into her role as the Free Code Camp
|
||||
Community Manager. She manages to ride herd over our frequently
|
||||
unruly Discord server, setting the tone for moderators and
|
||||
participants alike. She has built a suite of tools over the years
|
||||
which enable us to moderate at scale, with auditable actions and
|
||||
results. On top of all of this, she planned, created, and judged a
|
||||
complete online Hackathon. She has a series of community events
|
||||
planned going forward to keep the community engaged and learning.
|
||||
Maintaining a community the size of Free Code Camp's Discord is not
|
||||
easy. We have to deal with constant attacks by scammers and
|
||||
spammers, compromised accounts, trolls, and other bad actors.
|
||||
Naomi's tools make navigating these challenges possible, at scale.
|
||||
Additionally, she has a firm commitment to the heath of the
|
||||
community. She is willing to make the hard choices to ban
|
||||
individuals that threaten the health of the community. She is also
|
||||
willing to listen and provide guidance to the merely misguided. I
|
||||
stand in awe of Naomi boundless energy for curating and maintaining
|
||||
such a positive and welcoming space for learning. She combines her
|
||||
technical skill with her care for the community to create a vibrant
|
||||
and fun community. I have nothing but respect and admiration for her
|
||||
ongoing contributions to Free Code Camp.
|
||||
</p>
|
||||
<p class="date">18 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Tihomir Manushev</p>
|
||||
<p>
|
||||
Naomi did amazing job managing the first ever freeCodeCamp
|
||||
hackathon! She is extremely dedicated at everything she does. I've
|
||||
learned a lot during the hackathon and will gladly participate in
|
||||
the next one.
|
||||
</p>
|
||||
<p class="date">16 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Andrew Glass</p>
|
||||
<p>
|
||||
I had the pleasure to work with Naomi at Rythm, who was an absolute
|
||||
treat to work with. Naomi is someone with an incredible warehouse of
|
||||
skills & a wonderful personality to back it up. She's very outspoken
|
||||
with a strong moral compass and really knows how to ensure every
|
||||
project goes the right direction. Naomi was truly a silver bullet
|
||||
for any issues we had. You could ask her for help solving anything
|
||||
and she'd whip up a whole plan in her head in 30 seconds. 400,000
|
||||
member Discord community we need to come up with a resilient system
|
||||
for? Literally no problem at all. Just remember, with great power
|
||||
comes great responsibility, so try not to overwork the poor gal,
|
||||
because she's always eager to take on anything and everything.
|
||||
</p>
|
||||
<p class="date">16 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Luke Sullivan</p>
|
||||
<p>
|
||||
I participated in freeCodeCamp’s 2025 Summer Hackathon, organised
|
||||
and led by Naomi. It was a fantastic experience, and Naomi did an
|
||||
outstanding job of supporting a wide range of participants with
|
||||
diverse needs. Her dedication extended beyond event management — she
|
||||
provided both team and one-on-one coaching sessions to help us
|
||||
prepare for future coding endeavours. I cannot emphasise enough how
|
||||
useful this experience was to me and my team, who ended up with a
|
||||
project we are truly proud of.
|
||||
</p>
|
||||
<p class="date">15 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Mrugesh Mohapatra</p>
|
||||
<p>
|
||||
Naomi is one of the smartest engineers I have worked with. She has a
|
||||
knack for solving complex problems and fostering community growth.
|
||||
Her technical expertise and collaborative spirit have consistently
|
||||
helped our team work at its peak. She is a quick learner and just
|
||||
gets things done. I could not have been more prouder and privileged
|
||||
to work alongside her.
|
||||
</p>
|
||||
<p class="date">15 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Thomas Gooch</p>
|
||||
<p>
|
||||
I had the privilege of working alongside Naomi Carrigan during the
|
||||
Dallas Software Developers Summer Cohort, where she played a pivotal
|
||||
role in supporting the management of multiple teams. Naomi brought a
|
||||
rare blend of technical expertise, organizational insight, and
|
||||
people-first leadership that elevated the entire program. Her
|
||||
ability to seamlessly balance hands-on technical guidance with
|
||||
strategic team coordination ensured that my group not only met their
|
||||
goals but also grew in skill and confidence along the way. Naomi
|
||||
consistently anticipated challenges before they became blockers,
|
||||
provided thoughtful mentorship to developers of all levels, and
|
||||
fostered an environment where collaboration thrived. What impressed
|
||||
me most was Naomi’s combination of high standards and genuine care —
|
||||
she held teams accountable to producing quality work while also
|
||||
making sure individuals felt supported and empowered. Her
|
||||
professionalism, adaptability, and deep well of technical knowledge
|
||||
made her an invaluable part of the cohort’s success. Any
|
||||
organization fortunate enough to have Naomi on board will gain a
|
||||
leader who inspires trust, drives results, and makes a meaningful
|
||||
impact from day one.
|
||||
</p>
|
||||
<p class="date">15 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Pete Lamonica</p>
|
||||
<p>
|
||||
Naomi is a hard working, creative leader who has a remarkable
|
||||
history of building vibrant and supportive communities. As a
|
||||
programmer, she builds software that handles real world challenges
|
||||
and focuses on users’ needs. I’ve seen her ability to leverage a
|
||||
variety of technologies across the stack to solve a diverse set of
|
||||
challenges and adapt and grow her solutions over time. She’s also
|
||||
combined her community leadership skills with her software
|
||||
development skills to help support many other developers as they
|
||||
contribute to her projects and others. Overall, Naomi has an
|
||||
excellent mix of leadership and technical skills that make her a
|
||||
great addition to any team.
|
||||
</p>
|
||||
<p class="date">15 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Qais Zaidalkilani</p>
|
||||
<p>
|
||||
I had the absolute pleasure of working with Naomi at Rythm, and
|
||||
honestly, she was the glue that held so many parts of our operation
|
||||
together. She ran all our Discord bots, handled website
|
||||
integrations, drove community development, and still somehow found
|
||||
time to give us thoughtful advice on how to build and nurture our
|
||||
community. She was also the voice of reason when I’d get a little
|
||||
too excited about something, helping me slow down, think things
|
||||
through, and make better calls. It often felt like the team had a
|
||||
magic button: ask Naomi for something, and before long it would be
|
||||
done, and done right. Everything she delivered was secure, scalable,
|
||||
and polished to perfection. If I had a team full of Naomis, I’m
|
||||
convinced we could take over the world. But the truth is, there’s
|
||||
only one Naomi, and she’s that unique, that talented, and that good.
|
||||
Any team lucky enough to have her will feel the difference
|
||||
immediately.
|
||||
</p>
|
||||
<p class="date">15 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Ariel Thompson</p>
|
||||
<p>
|
||||
I've known Naomi through freeCodeCamp since she herself was a
|
||||
student. I remain impressed by how quickly she was able to go from a
|
||||
novice to having professionally competitive programming skills. She
|
||||
learns astonishingly quickly because she is focused, tenacious, and
|
||||
pragmatic. If she wants to accomplish something, she will simply
|
||||
figure out how to make it happen. This is not only true of gaining
|
||||
technical skills, but also pursuing high-level goals. Her efforts to
|
||||
build a social community, for example, has led her to effectively
|
||||
become the public face of freeCodeCamp. If I ever get the
|
||||
opportunity to work with Naomi professionally, I will take it
|
||||
without hesitation.
|
||||
</p>
|
||||
<p class="date">14 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">John Vajda</p>
|
||||
<p>
|
||||
Naomi is an exceptional engineer and an inspiring community leader,
|
||||
bringing a rare combination of deep technical expertise and
|
||||
community management skills. She approaches every project with
|
||||
enthusiasm, creativity, and a collaborative spirit, making her an
|
||||
invaluable teammate. Any team would be fortunate to have her
|
||||
contributions and leadership.
|
||||
</p>
|
||||
<p class="date">14 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Nielda Karlo Melo</p>
|
||||
<p>
|
||||
Naomi is one of the most competent professionals I have had the
|
||||
pleasure of working with. She has an exceptional presence, giving
|
||||
the impression of being everywhere at once, and her attention to
|
||||
detail is remarkable. She is able to identify subtle points and gaps
|
||||
in reasoning that others might miss and point that out in a
|
||||
respectful way. Naomi is not one to avoid difficult conversations.
|
||||
She expresses her opinions with clarity, confidence, and
|
||||
thoughtfulness. Her work on freeCodeCamp’s Discord, in addition to
|
||||
the many other code-related contributions she has made, is nothing
|
||||
short of impressive. She has kept the community engaged, planned
|
||||
events that people genuinely want to attend, and led the management
|
||||
of the entire space. Thanks to her leadership, the community has
|
||||
become a respectful, welcoming, and valuable place to be a part of.
|
||||
Any team would be fortunate to have Naomi’s expertise, dedication,
|
||||
and leadership.
|
||||
</p>
|
||||
<p class="date">14 August 2025</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<p class="title">Alexis Madsen</p>
|
||||
<p>
|
||||
Naomi always had the knowledge and information for nearly every
|
||||
question I ever had. It was such an honor to work with her, and
|
||||
question I ever had. It was such an honour to work with her, and
|
||||
anyone would be lucky to have the chance for her to work with you or
|
||||
your team.
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user