A
Alex Krupp
alexkrupp.typepad.com · Personal blog · on HN since 2007
Alex Krupp writes the Sensemaking blog on software architecture, Django for startups, Urbit, writing, and learning to code.
What HN saysHN commenters cite his Django architecture guide in discussions of service layers and his early Urbit introduction as the source of claims about it.
19HN people shared it
13linked it in comments
45stories submitted
1.9Kstory points
1 year agolast shared
2007people per year2026
Most-shared posts
- 1Django for Startup Founders: A better software architecture for SaaS startups5 people · 657 points · first shared 2021 · 156 comments on HN
- 2A Brief Introduction to Urbit5 people · 14 points · first shared 2013 · 2 comments on HN
- 32012, My Year of Code4 people · 68 points · first shared 2013 · 21 comments on HN
- 4Program above and beyond your actual ability by using FreeMind3 people · 201 points · first shared 2012 · 67 comments on HN
- 5How writing creates value2 people · 91 points · first shared 2010 · 12 comments on HN
- 6How to blog insightful2 people · 56 points · first shared 2010 · 20 comments on HN
- 7Double your userbase with two lines of code and a box of Modafinil2 people · 49 points · first shared 2007 · 22 comments on HN
- 8Social Arbitrage: The New New Path to Abnormal Returns2 people · 27 points · first shared 2007 · 12 comments on HN
- 9The one statistic you never hear about drugs2 people · 24 points · first shared 2014 · 29 comments on HN
- 10Cell Phone Software: The Billion-Dollar Sand Trap2 people · 19 points · first shared 2007 · 20 comments on HN
- 11An Important Tech Job That Doesn't Exist1 people · 194 points · first shared 2014 · 51 comments on HN
- 12How I got into YC as a non-technical single founder1 people · 181 points · first shared 2011 · 40 comments on HN
- 13Angular without SSR is faster than Next.js with SSR1 people · 125 points · first shared 2022 · 125 comments on HN
- 14How To Reach Top Bloggers1 people · 48 points · first shared 2011 · 4 comments on HN
- 15How intellectual pollution has crippled America's children1 people · 48 points · first shared 2009 · 24 comments on HN
What HN people wrote when they linked it
Alex3917 · 2018-06-28
I'll post it here, you can subscribe via email:
http://alexkrupp.typepad.com/
raihansaputra · 2021-12-07
Some recommends Service layers, but not the total extreme extent that the service layer is flexible/transferable between frameworks/databases.
https://alexkrupp.typepad.com/sensemaking/2021/06/django-for-startup-f…
https://news.ycombinator.com/item?id=27605052
acjohnson55 · 2016-08-23
I develop software for a living, and I dare say I'm better than most at it. I've been doing it about 20 years, since I was writing Z80 assembly as a middle schooler [1]. It would take a lot more than a year for someone to learn to do my job. But I'm a lead engineer, not an entry level developer.
However, it would take less than the total amount of time I've been building software to do what I do, because my path to my job took me through all sorts of software development I don't do anymore. That includes 8 years of higher ed, of which I apply only a tiny fraction on a daily basis. Don't get me wrong, I wouldn't trade all that education for the world. I draw upon it in plenty of indirect ways. I just know there are more direct routes for someone who simply wants to become an application developer.
I know this, because I know plenty of people who have taken less than a year to get into the industry, and are now productive developers. One of my friends even wrote about how he did it in detail [2]. There's a fantastic episode of Software Engineering Daily interviewing a guy who landed a lucrative job at AirBnB little more than a year after doing a dev bootcamp [3]. My own brother has been in the industry less than a year after coming through General Assembly and is doing quite well. I interview people all the time who have similar stories. They're not unicorns.
Developing software isn't easy. But it's also not that hard. At least the sort of software most of us build. You…
stochastastic · 2022-03-27
juped · 2015-01-18
The actual source is this blog post
http://alexkrupp.typepad.com/sensemaking/2013/12/a-brief-introduction-…
, which has mutated over time into "full of backdoors", apparently. As for the original statement from that post, the creator of Urbit "definitely would not endorse" it.
https://news.ycombinator.com/item?id=8581416
proveanegative · 2014-12-18
Urbit is trying to answer this question. Have a look http://alexkrupp.typepad.com/sensemaking/2013/12/a-brief-introduction-…
amsheehan · 2014-11-26
My friend and colleague Alex3917 was a YC non-technical co-founder (not sure which class) then decided he wanted to learn how to code. He's now really good at it and you should read this blog post on how he did it:
http://alexkrupp.typepad.com/sensemaking/2013/11/2012-my-year-of-code.…
jacquesm · 2014-11-09
more interesting reading here:
http://alexkrupp.typepad.com/sensemaking/2013/12/a-brief-introduction-…
GuiA · 2014-11-08
Urbit is a weird thing that feels like it comes from a parallel universe of computing. It's a bit hard to wrap your head around it at first, but it has some neat ideas.
I like this article which introduces it:
Urbit is perhaps how you'd do computing in a post-singularity world, where computational speed and bandwidth are infinite, and what's valuable is security, trust, creativity, and collaboration. It's essentially a combination of a programming language, OS, virtual machine, social network, and digital identity platform.
http://alexkrupp.typepad.com/sensemaking/2013/12/a-brief-introduction-…
alecdibble · 2013-04-11
Alex Krupp has laid out an elegant solution to this problem:
http://alexkrupp.typepad.com/sensemaking/2012/09/program-above-and-bey…
aswanson · 2008-06-05
SPBS · 2023-05-08
I was expecting something like this article https://alexkrupp.typepad.com/sensemaking/2021/06/django-for-startup-f… (discussed at the time https://news.ycombinator.com/item?id=27605052) but was greeted with something far more abstract and less helpful. Look at the difference in quality of their table of contents!
- What does our app do?
- Microservices usually don't work well for startups
- Move fast and outsource things
- Consider building reusable things
- Be pragmatic
- Boundaries along sync/async communication patterns
- How we did it and how we would do it next time
- About flexibility
- Predictability
- Rule #1: Every endpoint should tell a story
- Rule #2: Keep business logic in services
- Rule #3: Make services the locus of reusability
- Rule #4: Always sanitize user input, sometimes save raw input, always escape output
- Rule #5: Don't split files by default & never split your URLs file
- Readability
- Rule #6: Each variable's type or kind should be obvious from its name
- Rule #7: Assign unique names to files, classes, and functions
- Rule #8: Avoid *args and **kwargs in user code
- Rule #9: Use functions, not classes
- Rule #10: There are exactly 4 types of errors
- Simplicity
- Rule #11: URL parameters are a scam
- Rule #12: Write tests. Not too…
stickyricky · 2021-06-23
I want to agree and disagree with a minor point. The argument that error codes should be digits[0] is misguided. Errors should be named. E.g.: {"invalid_username": "An invalid username was provided."} is better than {"40001": "An invalid username was provided."}.
Why? Because you'll often add coded errors far into the future or multiple at the same time on different branches. When you merge two errors will have the same code but totally different messages. This can lead to regressions in userspace or annoying merges where an error code has to be manually looked up and changed.
Its unlikely that you'll define the "invalid_username" error code more than once and if you do it will likely have a similar error message. Plus, in your test suite `assert error.code == "invalid_username"` is much more explanatory than `assert error.code == 40001`.
Just my two cents.
0. https://alexkrupp.typepad.com/sensemaking/2021/06/django-for-startup-f…