<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://mrallatta.github.io/teaching-portfolio/feed.xml" rel="self" type="application/atom+xml" /><link href="https://mrallatta.github.io/teaching-portfolio/" rel="alternate" type="text/html" /><updated>2025-05-10T02:27:14+00:00</updated><id>https://mrallatta.github.io/teaching-portfolio/feed.xml</id><title type="html">Eric Allatta - Teaching Portfolio</title><subtitle>A portfolio of my work and teaching philosophy including lesson artifacts, student work, professional engagement, and technical skills.</subtitle><author><name>Eric Allatta</name><email>ericallatta@gmail.com</email></author><entry><title type="html">I Built My Portfolio with an LLM—and That’s the Point</title><link href="https://mrallatta.github.io/teaching-portfolio/portfolio/transparency/edtech/llm-transparency-portfolio/" rel="alternate" type="text/html" title="I Built My Portfolio with an LLM—and That’s the Point" /><published>2025-04-30T00:00:00+00:00</published><updated>2025-04-30T00:00:00+00:00</updated><id>https://mrallatta.github.io/teaching-portfolio/portfolio/transparency/edtech/llm-transparency-portfolio</id><content type="html" xml:base="https://mrallatta.github.io/teaching-portfolio/portfolio/transparency/edtech/llm-transparency-portfolio/"><![CDATA[<p>I built my teaching portfolio site from scratch.</p>

<p>Custom Jekyll theme. GitHub Pages deploy. Liquid templating. Modular layouts. Markdown everywhere.</p>

<p>But here’s the real thing: I didn’t build it alone.</p>

<p>I used an LLM (ChatGPT, if you’re reading this—hi) to assist with nearly every step. CSS quirks? Prompted it. YAML config oddities? Talked it through. Got stuck in a layout loop? Debugged it <em>together</em>.</p>

<p>Not because I <em>couldn’t</em> figure it out on my own—but because it helped me <strong>learn faster</strong>. Ask, reflect, revise, deploy. It felt like pair programming with a hallucination that mostly knew what it was doing.</p>

<p>As a <strong>self-taught computer science teacher</strong>, I’ve always learned while building and teaching at the same time. That’s the job. But integrating LLMs into the process pushed my thinking—and my skills—into new territory.</p>

<p>Here’s the important part: I could <em>harness</em> this tool because I’ve spent years applying a <strong>liberal arts framework</strong> to computing. I’ve taught myself not just how to write code, but how to think about systems, patterns, and abstraction. That context made all the difference.</p>

<p>And that’s what we need to talk about more.</p>

<hr />

<h2 id="context-matters">Context Matters</h2>

<p>LLMs are powerful. But access without context isn’t empowerment—it’s just exposure.</p>

<p>If you don’t already know what a templating language is, or why frontmatter matters, or when to question a generated code block—an LLM might give you <em>syntax</em>, but not <em>understanding</em>.</p>

<p>So as these tools enter classrooms, portfolios, and learning spaces, we need:</p>

<ul>
  <li><strong>Transparency</strong> about how work gets made (including this site)</li>
  <li><strong>Acknowledgment</strong> of the privilege and training that makes tool-use effective</li>
  <li><strong>Real frameworks</strong> for helping students build their own context, so they’re not just copy-pasting their way into frustration</li>
</ul>

<p>This site? It’s mine. I made the decisions, I wrote the words, I hit commit. But I also had help. Iterative, contextual help. And that’s what made the process <em>actually</em> powerful.</p>

<p>You can view the result <a href="https://mrallatta.github.io/teaching-portfolio/">here</a>. And yes, it has a version history.</p>

<hr />

<p>Let’s talk about what it means to teach—and learn—with tools like this. Not just whether students will cheat. But whether they’ll be <strong>allowed to try</strong>.</p>]]></content><author><name>Eric Allatta</name><email>ericallatta@gmail.com</email></author><category term="portfolio" /><category term="transparency" /><category term="edtech" /><summary type="html"><![CDATA[I built my teaching portfolio site from scratch.]]></summary></entry><entry><title type="html">Optimizing My NYC High School Job Search with YAML, yq, and Emacs</title><link href="https://mrallatta.github.io/teaching-portfolio/jekyll/update/optimizing-nyc-high-school-job-search/" rel="alternate" type="text/html" title="Optimizing My NYC High School Job Search with YAML, yq, and Emacs" /><published>2025-02-21T13:00:00+00:00</published><updated>2025-02-21T13:00:00+00:00</updated><id>https://mrallatta.github.io/teaching-portfolio/jekyll/update/optimizing-nyc-high-school-job-search</id><content type="html" xml:base="https://mrallatta.github.io/teaching-portfolio/jekyll/update/optimizing-nyc-high-school-job-search/"><![CDATA[<p>As I prepare to return to teaching in a high-performing NYC high school, I’ve been refining my job search workflow using structured data formats and automation tools. This post captures some key takeaways from my exploration of YAML, yq, Emacs customizations, and shell scripting for streamlining my applications and professional network tracking.</p>

<h3 id="structuring-job-search-data-with-yaml"><strong>Structuring Job Search Data with YAML</strong></h3>

<p>To organize information on target schools, I’ve developed a structured YAML format that captures essential details such as school name, address, principal, department leads, mission, and enrollment type. For example:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">schools</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="na">eleanor_roosevelt</span><span class="pi">:</span>
      <span class="na">name</span><span class="pi">:</span> <span class="s">Eleanor Roosevelt High School</span>
      <span class="na">address</span><span class="pi">:</span> <span class="s">411 E 76th St, New York, NY </span><span class="m">10021</span>
      <span class="na">website</span><span class="pi">:</span> <span class="s">https://erhsnyc.org/</span>
      <span class="na">principal</span><span class="pi">:</span> <span class="s">Dimitri Saliani</span>
      <span class="na">math dept lead</span><span class="pi">:</span> <span class="s">TBD</span>
      <span class="na">cs dept lead</span><span class="pi">:</span> <span class="s">TBD</span>
      <span class="na">mission</span><span class="pi">:</span> <span class="pi">&gt;</span>
        <span class="s">Eleanor Roosevelt High School aims to provide a rigorous and supportive learning environment...</span>
      <span class="na">values</span><span class="pi">:</span> <span class="pi">&gt;</span>
        <span class="s">Academic excellence, integrity, community engagement.</span>
      <span class="na">enrollment type</span><span class="pi">:</span> <span class="s">Screened</span>
      <span class="na">neighborhood</span><span class="pi">:</span> <span class="s">Upper East Side, Manhattan</span>
</code></pre></div></div>

<p>This structure ensures I can systematically compare schools and track updates over time.</p>

<h3 id="manipulating-yaml-with-yq"><strong>Manipulating YAML with yq</strong></h3>

<p>To query and transform the data, I’ve been using <code class="language-plaintext highlighter-rouge">yq</code>, a powerful command-line tool for YAML processing. Some useful commands include:</p>

<ul>
  <li>Extracting school names:
    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>yq e <span class="s1">'.schools[] | keys'</span> schools.yaml
</code></pre></div>    </div>
  </li>
  <li>Finding a specific school’s details:
    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>yq e <span class="s1">'.schools[] | select(has("eleanor_roosevelt"))'</span> schools.yaml
</code></pre></div>    </div>
  </li>
  <li>Updating a school’s name:
    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>yq e <span class="s1">'.schools[].eleanor_roosevelt.name = "New Eleanor Roosevelt HS"'</span> <span class="nt">-i</span> schools.yaml
</code></pre></div>    </div>
  </li>
</ul>

<p>This approach allows me to quickly filter, modify, and sort schools in my application pipeline.</p>

<h3 id="enhancing-yaml-editing-in-emacs"><strong>Enhancing YAML Editing in Emacs</strong></h3>

<p>Since I prefer working in Emacs, I’ve been customizing my setup to improve YAML editing:</p>

<ul>
  <li>Hooking <code class="language-plaintext highlighter-rouge">yaml-ts-mode</code> to <code class="language-plaintext highlighter-rouge">.yaml</code> files:
    <div class="language-elisp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">(</span><span class="nb">use-package</span> <span class="nv">yaml-ts-mode</span>
  <span class="ss">:mode</span> <span class="s">"\.yaml$"</span><span class="p">)</span>
</code></pre></div>    </div>
  </li>
  <li>Integrating <code class="language-plaintext highlighter-rouge">consult</code> for better search and navigation:
    <div class="language-elisp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">(</span><span class="nb">use-package</span> <span class="nv">consult</span>
  <span class="ss">:bind</span> <span class="p">(</span><span class="s">"C-s"</span> <span class="o">.</span> <span class="nv">consult-line</span><span class="p">)</span>
  <span class="ss">:config</span>
  <span class="p">(</span><span class="k">setq</span> <span class="nv">consult-preview-key</span> <span class="ss">'any</span><span class="p">))</span>
</code></pre></div>    </div>
  </li>
  <li>Exploring the potential for a <code class="language-plaintext highlighter-rouge">transient</code> minibuffer interface to edit YAML entries dynamically.</li>
</ul>

<h3 id="automating-my-application-process-with-shell-scripts"><strong>Automating My Application Process with Shell Scripts</strong></h3>

<p>In addition to using YAML and <code class="language-plaintext highlighter-rouge">yq</code> for managing school data, I’ve developed a shell script to automate the creation of application directories and LaTeX-based cover letters. The script reads information from my <code class="language-plaintext highlighter-rouge">schools.yaml</code> file, creates a directory for each school, and generates LaTeX cover letters using the <code class="language-plaintext highlighter-rouge">moderncv</code> template.</p>

<p>Here’s the basic outline of the script:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>

<span class="nv">TEMPLATES_DIR</span><span class="o">=</span>~/applications/templates
<span class="nv">SCHOOLS_DIR</span><span class="o">=</span>~/applications/schools
<span class="nv">YAML_FILE</span><span class="o">=</span><span class="s2">"</span><span class="si">$(</span><span class="nb">dirname</span> <span class="s2">"</span><span class="nv">$0</span><span class="s2">"</span><span class="si">)</span><span class="s2">/../schools.yaml"</span>

<span class="nv">SCHOOL_COUNT</span><span class="o">=</span><span class="si">$(</span>yq e <span class="s1">'.schools | length'</span> <span class="s2">"</span><span class="nv">$YAML_FILE</span><span class="s2">"</span><span class="si">)</span>

<span class="k">for</span> <span class="o">((</span>i <span class="o">=</span> 0<span class="p">;</span> i &lt; SCHOOL_COUNT<span class="p">;</span> i++<span class="o">))</span><span class="p">;</span> <span class="k">do
    </span><span class="nv">SCHOOL_KEY</span><span class="o">=</span><span class="si">$(</span>yq e <span class="s2">".schools[</span><span class="nv">$i</span><span class="s2">] | keys | .[]"</span> <span class="s2">"</span><span class="nv">$YAML_FILE</span><span class="s2">"</span><span class="si">)</span>
    
    <span class="nv">NAME</span><span class="o">=</span><span class="si">$(</span>yq e <span class="s2">".schools[</span><span class="nv">$i</span><span class="s2">].</span><span class="nv">$SCHOOL_KEY</span><span class="s2">.name"</span> <span class="s2">"</span><span class="nv">$YAML_FILE</span><span class="s2">"</span><span class="si">)</span>
    <span class="nv">PRINCIPAL</span><span class="o">=</span><span class="si">$(</span>yq e <span class="s2">".schools[</span><span class="nv">$i</span><span class="s2">].</span><span class="nv">$SCHOOL_KEY</span><span class="s2">.principal"</span> <span class="s2">"</span><span class="nv">$YAML_FILE</span><span class="s2">"</span><span class="si">)</span>
    <span class="nv">ADDRESS</span><span class="o">=</span><span class="si">$(</span>yq e <span class="s2">".schools[</span><span class="nv">$i</span><span class="s2">].</span><span class="nv">$SCHOOL_KEY</span><span class="s2">.address"</span> <span class="s2">"</span><span class="nv">$YAML_FILE</span><span class="s2">"</span><span class="si">)</span>
    <span class="nv">MISSION</span><span class="o">=</span><span class="si">$(</span>yq e <span class="s2">".schools[</span><span class="nv">$i</span><span class="s2">].</span><span class="nv">$SCHOOL_KEY</span><span class="s2">.mission"</span> <span class="s2">"</span><span class="nv">$YAML_FILE</span><span class="s2">"</span><span class="si">)</span>
    <span class="nv">VALUES</span><span class="o">=</span><span class="si">$(</span>yq e <span class="s2">".schools[</span><span class="nv">$i</span><span class="s2">].</span><span class="nv">$SCHOOL_KEY</span><span class="s2">.values"</span> <span class="s2">"</span><span class="nv">$YAML_FILE</span><span class="s2">"</span><span class="si">)</span>
    <span class="nv">KEYPOINTS</span><span class="o">=</span><span class="si">$(</span>yq e <span class="s2">".schools[</span><span class="nv">$i</span><span class="s2">].</span><span class="nv">$SCHOOL_KEY</span><span class="s2">.key_points"</span> <span class="s2">"</span><span class="nv">$YAML_FILE</span><span class="s2">"</span><span class="si">)</span>

    <span class="nb">echo</span> <span class="s2">"Processing school: </span><span class="nv">$NAME</span><span class="s2">"</span>
    <span class="nb">echo</span> <span class="s2">"Principal: </span><span class="nv">$PRINCIPAL</span><span class="s2">"</span>
    <span class="nb">echo</span> <span class="s2">"Address: </span><span class="nv">$ADDRESS</span><span class="s2">"</span>
    <span class="nb">echo</span> <span class="s2">"Mission: </span><span class="nv">$MISSION</span><span class="s2">"</span>
    <span class="nb">echo</span> <span class="s2">"Values: </span><span class="nv">$VALUES</span><span class="s2">"</span>
    <span class="nb">echo</span> <span class="s2">"Key Points: </span><span class="nv">$KEYPOINTS</span><span class="s2">"</span>
    <span class="nb">echo</span> <span class="s2">"----------------------------------------"</span>

    <span class="nv">TARGET_DIR</span><span class="o">=</span><span class="s2">"</span><span class="nv">$SCHOOLS_DIR</span><span class="s2">/</span><span class="nv">$SCHOOL_KEY</span><span class="s2">"</span>
    <span class="k">if</span> <span class="o">[</span> <span class="nt">-d</span> <span class="s2">"</span><span class="nv">$TARGET_DIR</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
        </span><span class="nb">echo</span> <span class="s2">"Directory already exists. Continuing.."</span>
        <span class="k">continue     
    else
        </span><span class="nb">mkdir</span> <span class="nt">-p</span> <span class="s2">"</span><span class="nv">$TARGET_DIR</span><span class="s2">"</span>
        <span class="nb">echo</span> <span class="s2">"Created directory: </span><span class="nv">$TARGET_DIR</span><span class="s2">"</span>
    <span class="k">fi

    </span><span class="nb">cp</span> <span class="nt">-r</span> <span class="s2">"</span><span class="nv">$TEMPLATES_DIR</span><span class="s2">/resume/"</span> <span class="s2">"</span><span class="nv">$TARGET_DIR</span><span class="s2">/"</span>
    <span class="nb">cp</span> <span class="nt">-r</span> <span class="s2">"</span><span class="nv">$TEMPLATES_DIR</span><span class="s2">/cover_letter/"</span> <span class="s2">"</span><span class="nv">$TARGET_DIR</span><span class="s2">/"</span>
    <span class="nb">cp</span> <span class="s2">"</span><span class="nv">$TEMPLATES_DIR</span><span class="s2">/teaching_statement.md"</span> <span class="s2">"</span><span class="nv">$TARGET_DIR</span><span class="s2">/teaching_statement.md"</span>
    
    <span class="nv">COVER_LETTER</span><span class="o">=</span><span class="s2">"</span><span class="nv">$TARGET_DIR</span><span class="s2">/cover_letter/main.tex"</span>
    <span class="nb">cat</span> <span class="o">&lt;&lt;</span><span class="no">EOF</span><span class="sh"> &gt; "</span><span class="nv">$COVER_LETTER</span><span class="sh">"
</span><span class="se">\d</span><span class="sh">ocumentclass[11pt,a4paper,sans]{moderncv}
</span><span class="se">\m</span><span class="sh">oderncvstyle{banking} 
</span><span class="se">\m</span><span class="sh">oderncvcolor{blue}
</span><span class="se">\u</span><span class="sh">sepackage[scale=0.9]{geometry}

% Personal data
</span><span class="se">\n</span><span class="sh">ame{Eric}{Allatta}
</span><span class="se">\p</span><span class="sh">hone[mobile]{929-244-0482}
</span><span class="se">\e</span><span class="sh">mail{ericallatta@gmail.org}
</span><span class="se">\s</span><span class="sh">ocial[linkedin]{linkedin.com/in/ericallatta}

</span><span class="se">\b</span><span class="sh">egin{document}

</span><span class="se">\r</span><span class="sh">ecipient{</span><span class="nv">$PRINCIPAL</span><span class="sh">}{</span><span class="nv">$NAME</span><span class="sh"> </span><span class="se">\\\\</span><span class="sh"> </span><span class="nv">$ADDRESS</span><span class="sh">}
</span><span class="se">\d</span><span class="sh">ate{</span><span class="si">$(</span><span class="nb">date</span> <span class="s1">'+%B %d, %Y'</span><span class="si">)</span><span class="sh">}
</span><span class="se">\s</span><span class="sh">ubject{Experienced math and computer science teacher application}
</span><span class="se">\o</span><span class="sh">pening{Dear Principal </span><span class="nv">$PRINCIPAL</span><span class="sh">}
</span><span class="se">\c</span><span class="sh">losing{Sincerely,}
</span><span class="se">\s</span><span class="sh">ignature{0.3}{signature.png}   
</span><span class="se">\e</span><span class="sh">nclosure[Attached]{Resume}
</span><span class="se">\m</span><span class="sh">akelettertitle

Dear </span><span class="nv">$PRINCIPAL</span><span class="sh">,
I am writing to express my strong interest in joining </span><span class="nv">$NAME</span><span class="sh"> as a Mathematics and Computer Science teacher teacher. I admire </span><span class="nv">$NAME</span><span class="sh">'s commitment to </span><span class="nv">$MISSION</span><span class="sh"> and </span><span class="nv">$VALUES</span><span class="sh">. After spending a decade in NYC public schools, including nine years as a founding computer science teacher at the Academy for Software Engineering, I am excited to return to a school that values innovation, collaboration, and academic rigor.

I'd like to highlight </span><span class="nv">$KEYPOINTS</span><span class="sh">.

During my time at AFSE, I developed and taught an integrated mathematics-computer science curriculum, using tools like Bootstrap, EarSketch, and Nand2Tetris. My approach led to a significant increase in AP CS enrollment and stronger Algebra Regents performance, demonstrating my ability to foster both rigor and accessibility in diverse classrooms. I also built data systems to support decision-making and guided student-led initiatives, such as data science projects that helped inform instructional strategies.

I thrive in collaborative, inquiry-driven environments and am eager to contribute to </span><span class="nv">$NAME</span><span class="sh">’s continued success in preparing students for a technology-driven world. Whether teaching AP Computer Science, Data Science, Algebra, or integrated CS-math courses, I am committed to helping students develop the skills they need to succeed.

Thank you for considering my application. I look forward to the opportunity to discuss how my experience and vision can contribute to your school. Please feel free to contact me at (929) 244-0482 or ericallatta@gmail.com.

</span><span class="se">\m</span><span class="sh">akeletterclosing

</span><span class="se">\e</span><span class="sh">nd{document}
</span><span class="no">
EOF

</span>    <span class="nb">echo</span> <span class="s2">"Application folder created for </span><span class="nv">$NAME</span><span class="s2"> at </span><span class="nv">$TARGET_DIR</span><span class="s2">"</span>
<span class="k">done</span>
</code></pre></div></div>

<p>This script helps automate the process of creating a personalized application folder for each school, including LaTeX-based cover letters. Each directory contains the necessary files like a resume, cover letter, and teaching statement, ready for further customization.</p>

<h3 id="tracking-my-professional-network"><strong>Tracking My Professional Network</strong></h3>

<p>In addition to school data, I’ve structured my professional network in YAML. This helps me track former colleagues, their current roles, and how best to reach out for potential opportunities. For example:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="pi">-</span> <span class="na">Name</span><span class="pi">:</span> <span class="s">Ashley Ferrara</span>
  <span class="na">Current Role</span><span class="pi">:</span> <span class="s">AP at AFSE</span>
  <span class="na">Past Relationship</span><span class="pi">:</span> <span class="s">Close friend, both founders at AFSE</span>
  <span class="na">Best Contact Method</span><span class="pi">:</span> <span class="s">Text or Email</span>
  <span class="na">Specific Ask</span><span class="pi">:</span> <span class="s">Reconnect, gauge hiring needs at AFSE</span>
  <span class="na">Priority</span><span class="pi">:</span> <span class="m">1</span>
</code></pre></div></div>

<p>By using YAML, I can sort contacts by priority and systematically approach my outreach efforts.</p>

<h3 id="next-steps"><strong>Next Steps</strong></h3>

<p>With a structured dataset, efficient query tools, and a well-integrated Emacs setup, I’m in a strong position to manage my job search effectively. My next focus areas include:</p>
<ul>
  <li>Automating application tracking with YAML and shell scripts.</li>
  <li>Developing Emacs functions to dynamically update my YAML files.</li>
  <li>Refining my networking strategy to maximize outreach efficiency.</li>
</ul>

<p>This workflow not only streamlines my process but also reduces cognitive load, allowing me to focus on securing the best teaching opportunity in NYC.</p>

<p>If you have experience using YAML and automation tools for job tracking, I’d love to hear your insights!</p>]]></content><author><name>Eric Allatta</name><email>ericallatta@gmail.com</email></author><category term="jekyll" /><category term="update" /><summary type="html"><![CDATA[As I prepare to return to teaching in a high-performing NYC high school, I’ve been refining my job search workflow using structured data formats and automation tools. This post captures some key takeaways from my exploration of YAML, yq, Emacs customizations, and shell scripting for streamlining my applications and professional network tracking.]]></summary></entry></feed>