# Backlog / Code Bucket list / The Never Ending TODO List
You likely have your own unending list of interesting things to learn. This is mine. A lot of the stuff here I discovered while looking through the resources listed in the discovery page so head over there if you're looking for more things to add to your own todo list!
If I do somehow manage to find the time to finish up something, or write it up, I'll try to remember to update the Docs page.
# Organised & Prioritised
This group of things to do / to learn are the ones I believe will have a positive impact on my career, so they're at the top of the list!
- AWS: get comfortable working with AWS services. Because it's used at SG & pretty much all the other places I interviewed, so this'll be a core skill for a while.
- Write something in Go / do a 30 day challenge. Because it's used on the back end in SG systems
- AWS supervised learning, SageMaker Because we may be using it in SG
- How to quantify technical debt? Write up propositions / thoughts. (Time to deliver, speed of change, Watch out for "way of working" or process solutions - they're generally concerned with management efficiency, not technical.) Because rewriting your entire solution isn't the silver bullet that it's usually sold to be but may become inevitable if Tech Debt isn't addressed.
- Research / map out different deployment strategies their pros & cons (eg launch darkly feature flag approach / big bang releases / etc) Because if I'm ever in a position to influence the direction a team chooses I want to know the paths available to us
- Map out / research a skills matrix or list of attributes for software dev advancement / levels / how might progression work. Soft/hard. Because not all companies will have one worked out, so having one to hand could be a boon!
- Brush up on the basics again, React UI stuff Because: interview tech tests, I wobbled a bit in one due to being rusty in setting up simple stuff from scratch
- Research into / Write up an article around how software development might go the route of licenced / chartered professions (accounting/architecture/look at that uncle bob talk again).
- 30 day challenges: Erlang / Closure / Python / Rust / R / C++ / C# / Cobol
# Unorganised
Bucket of random interesting things.
https://www.brendangregg.com/overview.html << I get the idea I need to read ALL of this! (Picked it up from the changelog go time podcast (opens new window) episode on eBPF )
Project idea: Betes tracker: list foods you eat, rough in blood sugar graphs & insulin. Multiple users to aggregate data for speed of relative digestion / relative impact... in progress!
Project idea: Slack Houses. (or chat system of choice).Randomly assign new joiners to a "house" (think Harry Potter houses). Every month/quarter/year have some kind of weird off-the-wall competition running and notify your chat system of pointes being gained. Endless stuff you ca do here! Swap / trade people between houses, keep competitions secret so folk have to figure out what it is, keep house membership secret so people have to work out who's in what house / people can pretend to be in other houses.
GCP/Azure/AWS play about and get an overview of them, how they fit into the arch diagram
what is an evented I/O model? what are it's alternatives?
Project idea: Life dashboard. Something to keep track of life goals, things you're doing towards those life goals. Also long term things to be aware of. A todo list that fades over time. Acknowledge that things change. Could be Federated, don't want it tied to one device - though it could be.
Project idea: Garden management app - list flowers / timeline for caring
Project idea: Task wars / market: pay 'money' to assign tasks - more for a higher priority / ahead in the queue. Price adjusts depending on individual queues.
Tools to have a go / build something with: WebAssembly / Honeycomb.io / StatsD / Vue / Svelte (In progress, so far loving this!) / d3 (done, but do something more in depth) / immutable.js / rxjs
Find a node/npm thing that does auth & user management for you (easily)) (KeystoneJS (opens new window) / SailsJS (opens new window) / TrailsJS (opens new window)???)
work through https://developers.google.com/machine-learning/crash-course/prereqs-and-prework
Do something with https://strapi.io/demo for any new APIs with basic content that I/a client creates
Do something with http://swaggerstats.io/ to monitor the strapi api?
Do something with http://paperjs.org/tutorials/ SVG scripting?
Do something with https://www.elastic.co/ Elastic search! All Open apparently 😃
Work through https://cloudplatform.googleblog.com/2018/03/introducing-Skaffold-Easy-and-repeatable-Kubernetes-development.html?m=1
Translate elegant-error-handling (opens new window) into my own words
Project idea: Get to know / write up Karp's 21 NP-complete problems
Project idea: npm link visualiser (& docker containers?)
Project idea: Boat picks sharing web app thing... dad's idea
Project idea: Whisky Tracker: point tracking - one on one ...
Project idea: css classic posters / graphic design
Write up WikiLogic (opens new window)
Project idea: Build some kind of map / plan thing with WRLD (opens new window) here's a tutorial (opens new window). To link in with Westport & Co possibly.
Project idea: Build a learning demo that explains graphically how Molecules, atoms, sub atomic particles, fermions / bosons / spin etc works.
Project idea: Open Source P2P social network, this must exist already (mastadon?): something that does not connect to a central server & can communicate over wifi / bluetooth / any other available means... built on Electron (opens new window)
Project idea: npm module to ping a server every time you do a build in order to track who has a project set up and how long it's been since they worked on it. (would be an internal tool for agencies, no so much open source). Could include data like file sizes etc.
Project idea: JS Complexity Report. There are a few projects out there, finding it hard to get one that works. The building blocks must be out there, would be cool to set up some kind of graphing thing! A simple npm install / the federated package manager install. Maybe one package to create the report, others to visulalise it, maybe an online service?
Project idea: CSS Cache:
- atomic classes (to begin, this may expand)
- page of html with atomic styles inline in the head ^^^ that's how unsupported browsers will work, for the rest:
- After load, pass style node to a worker to extract a list of all the css classes.
- that list is cached by Service Worker!
- Any more requests for another page get caught by SW
- SW appends data about the cache it has (by page ids? / component ids? / class ids?)
- Server receives page request. No data, return full page. With data, return only body node with only the required styles
Working through an example
Request for page 1 with no data - html - style.a.b - div.a.b
Request for page 2 with no data - html - style.b.c - div.b.c
Request for page 2 with data: style.a.b - style.c - div.b.c
Request for page 2 with data: style.a.b.c - div.b.cProject idea: Open Invites
- company / group calendar that anyone can add to
- random events outside work that you're going to, specify time / place. If anyone else wants to show up, see you there!
- not organised by leadership, more organic
Project idea: Sponsored Open Invites
- For bigger trips that would require travel / lodging / equipment
- if a bunch of work people decide to tag along
- the company will contribute towards the overall cost (eg hire a minibus / lodging for the group)
Project idea: Alumni club
- newsletter anyone can submit to, from within the company or from alumnus (because people are usually interested in people)
- alumni access to see / submit Open Invites
- quarterly / biannual / annual meetup
Project idea: Code for _____ meetup. See the Code for America meetup organisation. They got it right. If your city / country doesn't have that, get the company to donate space / employee time for organising & prepping presentations
Read: Google's site reliability engineering book
https://www.youtube.com/watch?v=aL6SouuO0_k rewatch and work up my own example. Possibly use in WL
Read: https://github.com/Developer-Y/Scalable-Software-Architecture
Read: http://aosabook.org/en/index.html
Read: https://github.com/mojoaxel/awesome-regression-testing#online-services
Do something with: probabilistic reasoning in intelligent systems networks of plausible inference
Do something with: causality models reasoning and inference
Catala A programming language for legal text. I came across the Catala whitepaper (opens new window) in Hacker News and it physically reached out the phone and grabbed hold of my brain. I've emigrated twice without paying for an immigration lawyer, both times I spent weeks reading and re-reading immigration legalese in a state of mild paranoia. I'd like to think that if The Law was transcribed into code or, by the looks of how Catala is intended to be run, small chunks of code then life would be better. So onto the bucket list goes the intent to have a go at transcribing bits of The Law, after first figuring out if there is a community forming around this who would welcome contributions.
# Money Project Ideas
Bigger app ideas that might be fun to drive with a wee potential for a bit of side hustling
# House Price History
- Grab HR value, asking price, and parse actual price.
- stats on location, rooms, trend, likely current value
More of a crowded market, but given how much people spend on houses it might have a chance - thinking pay as you go!
# Diabetes app
- Photo the food -> estimates carb count
- Track bloodsugar automagically (reading from dexcom/libre)
- Track insulin (somehow... alexa skill / talk to the phone)
Similar to health apps that are probably out there, and the diabetes prediction/graphing are covered by the existing diabetes app. Not too crowded though!
# AR House Prices
- view Scotlis data in 3d through phone camera / smart glasses.
A fun one but not likely to make any money. Probably more of a marketing trick for the House Price History idea.