Ms. Molly Stewart-Gallus
Poet, webdev, hacker
About Molly
See my resume.
Links
- Email mollystewartgallus@gmail.com
- GitHub mstewartgallus
- LinkedIn mstewartgallus
- Stack Overflow molly-stewart-gallus
- Mastodon @molossus_spondee@kokoro.garden
- Twitter @MSpondee
Priorities in a Position
- Stability
- Flexible
- Part-time work hours
- Good communication
Key Skills
- Web development
- Advertising
- Marketing analytics
Key Technologies
- PHP
- JavaScript
- HTML
- CSS
- Java
Recommendations
Founder & President at Studio DMLA Digital Marketing Inc.
Maria Paula managed Molly directly
Career
Year | Employment |
---|---|
Ruckify
Contract web development.
Technology:
- HTML
- CSS
- JavaScript
- PHP
Global Village English Marketing
Marketing Technician.
Technology:
- HTML
- CSS
- JavaScript
- PHP
- MySQL
- Google Analytics
Projects
Year | Projects | ||
---|---|---|---|
Gatsby Blog
Technology:
- JavaScript
- CSS
- HTML
In , I ported my poetry blog to Gatsby. Mostly the project was smooth, but I found the biggest problems to be Gatsby's lack of documentation. I can implement missing features I know about. I cannot work around bugs that have not been documented.
I am not a fan of GraphQL per se, but I can see the advantages of a unified abstraction over different data sources.
Also the tutorial documentation for Gatsby gives oversimplified and fragile designs for cases like blogging. The suggested designs don't work for cases like multiple source formats. Just as a Markdown plugin might process file nodes into Markdown nodes you want to implement your own code processing Markdown nodes into a custom type of nodes. This isn't really a flaw with Gatsby that the tutorials give the simplest but most fragile examples.
I suspect that I need something like a headless CMS. I need more structure than a pile of Markdown and YAML files.
I am also interested in porting my blog to NextJS.
Jekyll Blog
Technology:
- JavaScript
- CSS
- HTML
In , I mostly worked on my poetry blog, and relearned modern web development. I found using Jekyll to be copacetic. My biggest struggle was figuring out how to implement a search page which I solved by integrating Pagefind into my blog.
I had a lot of fun learning about fluid web typography and other advanced techniques.
Technology
React
I have found React components to be less problematic than I initially expected. I expected lots of weird problems due to the abstraction over top the native architecture of the web. I haven't really found such problems to be the case so far although my website is relatively simple.
I think I need more structure to my project. React is great for making reusable components but not really a full framework.
React Pros
- Good for simple reusable components
React Cons
- Not suitable for state management (use something like Reduc)
- Not a full framework
MDX
MDX, a Markdown derivative which lets you insert React components into Markdown, is interesting but has some major caveats that make it a little awkward sometimess.
MDX Pros
- Good for ad-hoc page content with more control required.
MDX Cons
- Bad for extremely structured content like blog posts
- Requires compiling
GraalVM
I also played a little bit with GraalVM but I found it too complicated for initial experimentation. Also GraalVM had troubles with tail recursion at the time which made it hard to implement functional languages. Cadenza for example went through hoops I didn't want to bother with to optimize tail calls.
Java Virtual Machine
Technology:
I got heavily into low-level details of the Java Virtual Machine for a while. I learned to use ByteBuddy and invokedynamic to insert dynamically optimizable spots into a Java program.
Special Interests
- Web development
- Security
- Formal methods
- Programming language theory
- Lock-free programming
- Programming language theory
- Political psychology
- Mythology and religion
Year | Special Interests | ||
---|---|---|---|
Lock-Free Programming
Technology:
I got heavily into lock-free programming for a while and played with making a more efficient unfair lock implementation based on MCS Locks that uses a stack instead of a queue. I also tried formalizing a little bit of it in TLA+.
Programming Language Theory
Technology:
I've also been playing with technologies like PLT Redex and Makam (a dialect of Lambda Prolog) for rapid prototyping of programming language interpreters.
You can see a tiny demo language in PLT Redex here
A little language in Makam here . Makam works great for simply typed languages but full dependent types are way too complicated in any implementation.
I got interested in compilers and interpreters for a while. I played a bit with effect systems like Call-By-Push-Value (basically ANF) and simple functional optimizations: https://github.com/mstewartgallus/hs-callbypushvalue https://github.com/mstewartgallus/compiler-2
Category Theory
Technology:
Basically I have found category theory stuff to be highly useful for compiler and type theory stuff, less so for everything else.
In the past I was working on formalizing a small amount of category theory in Coq.
I'm playing around with type systems and formal methods right now and I'm hopeful category theory can help with this. I've been trying to figure out how to make internal languages for many types of categories. I've started on some ideas to work within double categories like Rel.
I have a hunch you can generalize graded monads and adjoint functors for a sort of graded Call By Push Value which ought to be useful for a compiler IR to simplify optimization.
I got heavily into category theory for a while. I am no longer convinced it is so simple to compile computer programs to a categorical intermediate representation. But a start of an effort towards this might be this project which compiles a continuations based language to co-closed categories in a manner dual to compiling the STLC to closed categories. Basically it's dual to the paper Compiling to categories by Conal Elliott. I also found tagless final style is very clean for parametric higher order abstract syntax.
I have found category theory very interesting although it does have some weaknesses with respect to variable binding and higher category theory. Category theory tends towards a very combinatorial sort of style which makes some things very verbose that would be much clearer with name binders. Unfortunately parametric foundations allowing manipulation of name binders are kind of complicated. The other big hurdle with category theory is higher categories: categories of categories. Very quickly higher category theory gets messy to play around with in an actual theorem prover. I'm not sure if these problems are fundamental or someone smarter than me can come up with solutions.
Coq
Coq Pros:
- Extremely powerful proof automation capabilities
- A plugin for everything
Coq Cons:
- Highly tied to specific foundations
Ada SPARK
In the past I got into hard real-time and safety critical stuff for a while. I experimented with breaking a program into separate processes some of which are verifiable in a safe dialect of Ada SPARK.
Hobbies
- Knitting
- Poetry and writing
- Playing the guitar
- Meditation