298 karma · joined June 28, 2011
And, if stuff has to be hosted by third parties for me, I prefer it to be encrypted.
Of course I also dump all of the data about once per week on a NAS, just in case :)
Also, back then, their map tiles loading had a very high failure rate when loading, so I wrote a custom caching proxy to make it tolerable (which had built-in retry and also cached any successful response for a very long time).
Can you please elaborate (as was also asked in a sibling comment) about how comes that the costs are not covered by tickets / sponsors?
I would say the most important learnings were:
- there is lot of "extra stuff" around the product that is somewhat independent of "how complicated the product is". Even a simple CRUD app needs source control, a test suite, (ideally) some automated system for source quality check (like linters, analyzers, formatters, etc), a system for deploying it to a dev / staging / production environment, etc.
- production also needs monitoring (both "is it working" and "is it working within the expected parameters" - for example is it fast enough). Ideally there would also be some alerting around this monitoring so that you don't have to wait for users to complain to find out that something is not working.
- there is a saying of "use boring technologies" (https://boringtechnology.club/), which I 100% subscribe to. That will ensure that there are lots of examples for each aspect of the product you're trying to implement (for example authentication and authorization, creating an admin dashboard, etc).
- In addition I would say "use some managed platform to offload lots of these worries". Yes, it will seem weird to look at the bill at the end of each month and say "why are we paying $Xk each month for Heroku when I can rent a server from Hetzner for less than $100?" - but managing that Hetzner server (and probably more than one server, to make sure that a single hardware failure doesn't take down your entire product), ensuring backups are working, etc would cost more. Optimizing between "buy" vs "build" is a delicate balance.
In the end I think programmers who like to start new projects are a rare bread. I'd be happy to chat about this more (I'm also in Europe). Feel free to reach out to me at cratt[at]grey-panther.net.
- make sure that auto-update is on. Recent OSs are pretty good about this. GNU/Linux / MacOS are also pretty good about updating 3rd party apps (since they come through the package manage / app store), Windows needs a little help (there was Secunia PSI which is now deprecated)
- run the user as a "restricted user" (ie. not superuser / admin). Again, this is mostly given with recent OSs. This also mostly blocks them from accidentally installing software (I generally set up machines with all needed software - like browsers, office suites, media codecs, etc and tell them that they don't need anything else and if something/somebody tells them they need to install something else, they should treat it with extreme suspicion and call me first)
- the big one: ad blocking. I usually combine hosts file based, DNS based and browser plugin based blocking (like uBlock Origin). Seems like lots of scams / malware are going through advertisement and since starting to blocking advertisement over a decade ago, the problems my family / friends are seeing with their devices went down dramatically.
> charter schools don't serve special needs students. More than that, charter schools bias towards engaged and interested parents. Because of policies like No Child Left Behind, it is really bad for local neighborhood schools to have all of their high performing students leave for charter schools.
Remote: Yes
Willing to relocate: Yes (to south Germany / Austria)
Technologies: Full stack developer / CTO. Able to translate all business requirements into technology (both code and ops). Long experience with Java/JVM, Python and the Cloud.
Résumé/CV: https://www.grey-panther.net/pages/resume-curriculum-vitae.h...
Email: dify.ltd@gmail.com
See an (simple) example here: http://www.pgadmin.org/images/screenshots/pgadmin3_macosx.pn...