Posts

switching from a manager to IC

I switched from manager role to IC role in 2021. I discussed with my manager end 2020 and started the change in January 2021.  If you want to understand my rationale better, then read this post from Charity mipsytipsy  (who is awesome). It's spot on and sums it up better than I could  ..oh,  and this too from Charity  "Management is a support role", read it

when delegating...

when delegating: be clear on what you need, communicate the desired outcome (unless the outcome is unknown and is part of the work to be delegated...but even then, that's an outcome!) let the delegate figure out the approach & details (as appropriate for level) checkin as needed to make sure delegates approach/plan is as expected; ask questions as needed multiple solutions may work, so be flexible on expectations bias toward action & experiment you may (or may not) need a summary of what's going on and who's doing it, status etc. to show to your manager but honestly it can be difficult especially with larger initiatives (months, multiple teams etc) to know when to jump in and when not to 

github "Repository not found fatal: Could not read from remote repository" error, troubleshooting and fix

Yesterday I'm suddenly unable to access repos I work with on a daily basis. When I rebase or try to clone I get this error ERROR: Repository not found. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. Nothing changed. My github credentials un-chanaged. My ssh keys unchanged. I was able to fix by regenerating my ssh keys but read on for tips on troubleshooting there's a good troubleshooting page on github with help on common issues first, test your ssh connection and identity using `ssh -vT git@github.com` see more here when I ran this command I noticed it's response "Hi <id>, .." was not the id I expected and clearly a problem check your `~/.gitconfig` (does it looks correct?) check the email and userid used in your repo , they should be as expected and be associated with the ssh key locally and also in github you can unset  git config --global --unset user.name git config --global...

AWS Lamdba spinning up a nodsjs microservice with persistence

Image
  AWS Lamdba serverless is pretty cool. Deploy services and code easily without having to provision and manage servers.  My previous employer has it's own data center and infrastructure so we don't get to work hands on configuring and using aws services usually. So I'm creating my own AWS Lamdba microservice to manage appointments and store in DynamoDB nosql key value database. I'm using serverless framework cli integration for aws. There are steps I followed to setup a nodejs service: Create a new aws user for this service. Follow instructions on aws site to install cli locally. I followed command line install. run `aws configure` cli using new user id and secret (created in step 1) install npm serverless locally you can bootstrap a serverless config file using template create, but in next step I do manually create serverless.yml (or js/ts) for your service and handler functions the handler in the serverless config file must match an exported function name and the fil...

Javascript Engine

 Interpreted vs Compiled js is considered an interpreted language (not compiled).  there is no executable to be deployed such as a jar file and each line is read and then processed and executed  but a lot is going on under the hood when javascript code is processed by the javascript engine some of which is very "compiler like" Let's look at this code example. The 3rd line is an error but if code was truly interpreted then would see the console.log() and then error. But that does not happen, we see the error without any log. Why? Example 1: let sayHi = 'hello'; console.log(sayHi) sayHi = ."hi"; Let's look at another example.....same thing we see the error before any log. Why? Example 2: console.log("Howdy"); saySomething("Hello","Hi"); function saySomething(greeting,greeting) {     //"use strict";     console.log(greeting); } At a high level, the javascript engine is making multiple passes over...

"Clean Agile" with Bob Martin (uncle Bob)

 I listened to an O'Reilly Live Event with Bob Martin https://learning.oreilly.com/accounts/login-check/?next=/live-training/courses/-/0636920061744/ Bob was one of the original signatories of the Agile Manifesto, a software legend and no holds barred educator. key takeaways Agile does not make you go faster, it produces data to understand where the project is at We do Agile to get data such as velocity and burndown, "to see how screwed we are" We want the bad news as early as possible, cold hard data So we can react and adjust our definition for: fast, cheap, good, done (for the feature/project) Agile is about managing a successful outcome given all your constraints Agile software development at 30k foot level is dividing project up into small time increments, measuring how much you get done, multiplying out to get a date and making adjustments as necessary given your constraints e.g. we want to launch X  my notes Agile is a set of disciplines Product Owner is chief spec...

creating and publishing npm package "fwap", a typescript fetch wrapper

Browser fetch is a simple well supported built in http api which we use for some apps at Opentable. But fetch has some differences to typical fetch libraries:  it does not throw for 4xx and 5xx responses, you have to check the ok property and if not true then it's a failed error code you have to call async json() on the response to convert to json (tiny tedium) So a simple wrapper facade over fetch to take care of these would be nice eh! And how about we use Typescript and use built in http types like RequestInit and Response as well as generics. That's what fwap is! and it's now available on npm. Of course our code has unit tests. Yes it's yet another fetch wrapper (yafwap was another name I considered) but it's also a good learning experience (it's the journey as much as the destination maaannnn) All my references are at the bottom of this post and I'm much indebted to those authors How I created: git init and npm init confirm fwap not already used add typ...