HN user

Shakakai

24 karma

Polyglot Programmer, Tech Entrepreneur, Blockchain Investor, and Winner of the Bear vs Man 5k

Posts6
Comments14
View on HN

I'm in the process of releasing a few of my internal libraries for building LLM-based apps. The first release is `typedtemplate`, a library that allows you to use Pydantic syntax to describe the data required by a template to render.

# What does it currently do?

- Documentation: Provides a class that you can easily generate documentation for. This means all your normal python documentation generators and tooling can provide useful docs for your templates that are easily consumable by your team.

- IDE/Copilot Support: Pydantic classes provide an great developer experience in the IDE with helpful autocomplete and a structure that Copilot understands well.

- Validation: Runtime validation that the data conforms to the type definitions.

# Why did I create this?

I'm working with LLMs everyday now. I have hundreds of LLM prompts (and countless variants) in my project. If you are like me, it doesn't take long after creating a template to forget the shape of the data required to make it render properly. I'm lazy. This library lets me forget more things and lean on my tooling.

# Notes

- Currently works with Jinja2 and Django templating engines. If you need a different engine, just ask (quick to implement).

- Was built to play nice with any framework.

- Next library coming is a Non-OpenAI interface to LLMs that feels good. Uses LiteLLM under the hood to support almost all available LLMs.

Why Not Haskell? 15 years ago

My company (ThoughtLeadr) is using Haskell to analyze big data (social networks) to great effect. Although, I will admit finding great Haskell programmers in the wild is rather challenging.

Network effect with programming languages is a difficult nut to crack. That's the reason most new languages build on the syntax and features of existing "successful" languages.

The toolchain aspect has been less of an issue for us since we're using it for pure data analysis rather than shoehorning it into building webapps etc.

I basically read this as, "I want everything I could every possibly use in the global scope so I don't have to think about imports". Modern web development revolves heavily around open source frameworks. You can't escape the need to know about libraries outside the core language you program in, even with PHP.

If you are writing a trivially simple webapp, then you would be correct that you could hack together something with just the core language features of PHP.

I'm living in Shanghai right now so I've seen this move in a number of variations.

I can tell you legal recourse is a bit of a tricky thing. You really don't want to rely on contracts in a foreigner vs chinese situation. The supplier's guanxi (business relationships) will almost always trump your connections. The only way to resolve things are:

A) Place a larger order under safer terms for you - I know that sounds crazy but you can sometimes get suppliers to "do the right thing" by rewarding them for their bad behavior. Offer to purchase an extra large order where the money they already have is the down payment. Requires a certain morale flexibility to hand more money over to a thief (but it can get the job done)!

B) Buy some guanxi. Get yourself a high end law firm (or consultant) based in Shenzhen and pay for their persuasive abilities with the local government and supplier in question.

Hope this helps. Good luck!

This is the order I learned web development - I think it should be broadly applicable:

1. Static website dev - modern HTML(5) & CSS http://www.http://htmldog.com/

2. Scripting HTML and CSS - Javascript (use standards based browsers only - avoid JQuery/libraries at first) http://javascript.crockford.com/

3. Intro Server side programming to template HTML pages - PHP (easy to grok for beginners - combine previous lessons with some simple dynamic data) http://php.net/manual/en/introduction.php

4. Intro to SQL - MySQL (give them the basic CRUD commands and show them how to hook those up with PHP) http://code.google.com/edu/tools101/mysql.html

5. Cross browser Javascript with the help of JS Libraries - JQuery http://docs.jquery.com/Tutorials

6. Using XML/JSON Web Services - Last.FM API (its a simple REST interface - avoid OAuth complexity) http://www.last.fm/api

If you covered all that in a semester, you would have some semi-competent (there's always more to learn) web developers. Good luck!

Couple follow-up questions:

1.) Have you admitted to your cofounder you screwed up? You're owning up to it here (+1) but to him?

2.) Did you just screw up your CEO part of the job or both CEO & CTO?

3.) Could you live with just being a code monkey (role player) for a while?

4.) How many people are in the company?

I agree with jasonkester, come up with a unique project that uses the technology you want to be hired for. Cut out TV/distractions on week nights and build it out. Use that as a show piece for getting the job you deserve.

Also, try to avoid big job sites like Monster or Dice. If you really want a Java (insert any other technology here) job, find Java bloggers you admire and track down where they work. You should be able to find a number of smaller companies with people you know can teach you a trick or two. With the field narrowed down, try to run into those people at tech meetups and let them know you're in the market. Follow up with comments on their blog posts or joining their conversations on twitter. If you don't come off as a stalker, you should be able to parlay a decent job offer out of it :P

I typically write mine down in a notebook. If its a really great idea, it doesn't normally just go away. You'll keep running into situations where it would be useful if the idea was already a reality. If after a week or two you still can't let the idea go, you "may" have a keeper. Get some feedback from friends and fellow techies - figure out which idea has the best chance of success and go with that.

PS - Don't second guess yourself after you've made a decision.

PPS - Don't undervalue the work you've already done on your current project. Execution is harder than ideation.

PPPS - Lay off the coffee.