Categories
Software

Value Transitions at Work

Value Transitions .

Every time you read about grooming teams or individuals you would hear that they need to have role clarity . A clear definition of what their new role is ,what is expected of them by A/B/C/D/E/F and G. Its a separate fact that at many places even this doesn’t happen .But people eventually figure it out ,to the best of their ability .

What they invariably fail to also realized that with each role the values they believe in also need to change. Say you are an expert developer ,who takes pride in producing “prefect” code .Now that you have grown up or the team has ; you get promoted to a Lead . How do you now extract “perfect” code from multiple people ? Sure there are reviews and test cases ,but how do you get code as perfect as you would have done ?

This is really the moment where your values are challenged. Left unchecked it can easily morph into micromanagement , playing favorites (to the geek developer just like you) or even pent of resentment (about them).

What has to really happen is that this tech lead has to know that his value has to change from being perfect to being watchful , from being particular to being mindful ,from being meticulous to being organized .

Because as the role transitions from individual to lead they levers you used to pull have changed so has the values that make you select these levers .

Just to be comprehensive you values would get challenged with every change i.e. role/team/project/economy/Time .

Just to be void confusion : habits are different hurdles to cross than values .Its easy to vocalized about habit but things that are part of your individual success process(ISP) are difficult to identify for the individual ,leave alone transitioning them .Values are the foundation of your ISP .

Categories
Software

Peter Principle still holds true

Peter principle is classic book on promotions . It says that every person rises to his level of incompetency .That is people in a hierarchical organizations keep getting promoted till they reach a level for which they are no fit/ready/skilled .

The principle and book by the same name is from the 70s .And it still holds true…

And before you think of one particular person in your hierarchy where this principle has manifested , the right question to ask is how can we ourselves escape this.

The fundamental problem problem is modern workplace is that promotion i.e rising up in the hierarchy is the only mainstream way to grow . However with each role change the skill demands change .There are organizations and individuals who are aware of this and take effort to skill people up.

At the same time there are a lot who miss the target . For a change , just ask yourself and your friends if you were told and trained about the shift needed in your role ,the last time you were promoted to Tech Lead ,Manager, Architect or whatever junior role you were promoted to 🙂 .

Another approach some companies take is that of internal startup that shakes up the culture of static-stable-hierarchical way of working towards competitive-renewal-delivery based reorganization .

There are few more variations of these things where companies essentially try to avoid power ladder , salary ladder and value ladder . All of which feed into peter principal .However avoiding these ladder is tough ask so Peter principle keeps manifesting at workplace .

Read the book ,its good .

https://en.wikipedia.org/wiki/Peter_principle
Categories
Software Uncategorized

Can you bargain for your craft , Techies ?

Can you bargain for your craft ?

The world of techies is full of ideals . They have “design patterns” that are “proven” . Architectural “styles” that “fit” the domain. “Best Practices” that absolutely everyone needs to follow. And of course all the code and designs need to be “proper” , “standard” , “clean” .

If you see all of these terms you realize they are qualitative. Not everyone in them understands them the same . In fact the world of techies come crashing down when “they” come to meeting .They just don’t get it .

This they is an interesting tribe. They only speak in terms of dates , completions , estimations ,schedule , priority , severity , escalations , showstoppers ,budget . Everything They have is urgent and there is no time for “idealism” here .Things have to happen ASAP so all we need is “just this/that”.

If you see all these terms you realize they are quantitative .It might be made up ,in some cases ,but they are numerically relatable .Human understandable , as we say .It no wonder that when the time comes for our Techies to bargain with They ,most often it results in some sort of frustration for techies .

Whenever I train my folks for Architect roles my first question to them is “Can you bargain for your craft ?” .It makes them uneasy. Most of them believe that there are some other roles that exist for this .Some believe that there are processes for this .Some say it is part of good tech culture that such questions shouldn’t be asked to techies . Fact is all of these are right point .But fact is also that human discussions don’t happen in a linear , boxed manner .

So our techies cant escape bargaining for their craft. That’s a minimum; techies need .

How do you negotiate for a proper design with your Product/Manager/Support/Test/They is how emotionally contentful your work and work experience will be .

Categories
Software Uncategorized

Dixit’s dilemma of Generative AI

How do you verify output of thing more intelligent that you ?
That’s Dixit’s dilemma of Generative AI. Its not famous yet 🙂 .

But as we employ Generative AI more this dilemma will become famous . Take the case of code generated by GenAI , you need the developer using it , to be more skilled than the complexity of the code being generated to find out correctness of the output .
A corollary of Dixit’s dilemma is that our Qualitative gains from GenAI are capped by the Quality of the verifier !

Did someone talk of GenAI making your job redundant ? It can in the quantitative domain but not in qualitative domain (it the mundane can be but the classy can’t be ).

EDIT : Some more clarifications

The holy grail of code generation .

The holy grail that we all are chasing from tools like copilot is that they can generate the whole code from requirement documents .This is not a stated need but that is what people are hoping for . read on .

If you see the popular demos on code generation by GenAI tools there are few scenarios that occur often :

1. Given a table or json generate complete webservice

2. Find the performance or security bugs in code

3. Find structural issues with code as per the language specification

4. Flag issues with dependencies from deep within codebase

5. Document my code

6. Write test cases , elementary ones .

Now if you see the capabilities of IDEs , code generators ,profilers ,linters such things existed since decades for most of the programming languages .But they were in siloed in nature .So we can give credits to LLMs tools for bringing it all together .This can benefit existing codebase a lot .

The situation becomes interesting for new code base . The demos where one can make the tool write a script for managing a server or sorting algorithm are in essence demonstration of smart lookup (for relevant code fragment ).This can benefit seasoned developers by saving few keystrokes .What next ?

What do we all expect next is , can the tool take long format requirements and generate functional code .That is to say can it read my Jira requirements and understand my user persona , interfaces , domain jargon ,different flows so on and so forth . It is certainly passible to give lots of prompt context to AI tools and create such a demo .

Can we do it at scale for an organization ?

Can we do it in a manner where prompting the requirement context doesn’t becomes as complex a job as that of programmer ? AND

How can we validate that what ever is generated is functionally correct without needing a new battalion of validators ?

These are the practical question for which we don’t have answers .

This is not to say its not passible , domain languages for automatic code generation has been in place for long . Coupled with GenAI they can do wonders .Its just the current breed of GenAI are not made for this sole purpose .The day that happens , all the GenAI demos will happen to CTOs instead of CEOs 🙂 .Read that again 🙂

Categories
Software

Pair Programming with a Large Language Models

Pair Programming with a Large Language Model .

Guess this wording settles the debate against the developers . The narrative has been set for use of LLM for productivity boosts with this phrasing !But are developers burdened with expectations or is there some hope of real usefulness to developers with the help of AI?lets check .

Using llm for coding task is expected to give huge productivity boost . Mckinsey already released a report on measuring developer productivity .Organizations like ChatGPT/OpenAI/Microsoft and the likes of meta/CodeLLma are coming up with code LLMs and numbers on productivity boost .There are new coding LLMs or LLMs with such capability coming up every week ,so this list is non exhaustive .

Paid to code or paid to recollect ?

However the question remains , can LLMs in its current form boost developer productivity across the board . The answer is no .Its only the developers who have a clear picture in mind of what they want ,can save some time with typing work with tools like copilot .

However the cognitive work for the developer now shifts towards reviewing the code generated by AI .Which is heavier mental work then writing code via learned skills .

This also raises a question of memory recall of such AI generated code at scale ! .Developers after all are not paid just to “code it” . They are valued for knowing their code , maintaining it and debugging it . Will the developers have a clear mental model of such AI generated code ? and what is the limit of such active recollections ? For now we we don’t know answers to these questions .We can take some guess from our experience with social media .This experience tells as we honestly don’t have first class recall of the virtual updates from our network when compared to actual moments spent in physical world. Even if someone argues that social media is not approached with the serious ness coding is ; the limits of our fatigued brains are known now. So I would conclude that the so called boost to developer productivity is overhyped .

The Future of coding with AI

There is however a good case of vendor curated assistants .Imagine an coding assistant from spring/java or vuejs or likes. These can help us with smarter code highlight ,offer deeper code review and provide standardized lookup code samples for developers to use. They can also have a real connection to the language runtime and offer are better suggestions on optimizations and debugging .

This is probably the less shiny ,less geeky middle path to developer productivity with the help of AI. Exactly in the spirit of Pair Programming with a Large Language Model .

(image via genecraft )

Categories
Software

ChatGPT LLMs , AI for consumers and Future

Talking tomcat (copyright Fandomwiki)

Remember “talking tomcat” ? This was one of the unsung hero’s that made android OS popular .A cartoonish cat that can echo what you spoke in cat voice .This was a fine demonstration that with prevailing hardware android could replay voice with modification . Of course the lay uses would not word it this way but they got the point anyhow .This is exactly how technology goes mainstream . What followed tomcat is set of apps that could then add dog face to your picture then to your video and so on .By then the novelty had faded , the capability was taken for granted .People expected mobiles to this much at least and then moved on .

Users perceive ChatGPT as bright teenager

ChatGPT in its current form is talking tomcat of AI .This is first time common lay person is getting a demo on how much more can be done with AI . For all he knows ,its nice chatbot that can do brainy stuff . How brainy you ask ?

This is important question to ask .If we were to equate the “general” feel that ChatGPT gives to most common interactions people have then what would it feel like ? Remember spelling bee contest that are held in USA ? For most of the lay users chatgpt feels like a smart teenager that is G.K bee (in that sense). This is how consumer mass market sees innovation . Simplified and equated to mundane things in his/her life .

Two directions LLM needs to evolve

LLMs for consumer use cases

The above discourse make it clear that large language models(LLM) need to evolve and also be understood in 2 distinct set of parameters . One is the consumer angle . Taking a leaf from how android was seen or how voice assistants were seen ,LLMs for lay consumer simply means that computers can now answer diverse and more complex answers(#1).This also implies that how much ever the the press focuses on ChatGPT , the future of LLM is in the usage driven consumer space . These are specialized models that do one or few things in one are with unambiguous and immediate utility . Imagine an app that can take your picture or live videos and suggest fashion makeovers to you (ideal copyrighted hereby 🙂 ). Or take for example BoomberGPT that aims to cater to offer targeted consumer utility for end users . Similar such gpt models can be built around legal advisory ,medical first line help ,cultural adjustment needed during travel .A general LLM that can filter money laundering names can makes life easy for regulators .

OpenAI is aiming to be THE general purpose engine for all such use case via its plugin architecture .Can it succeed in giving curated user experience is matter of debate with ChatGPT 4 .With future versions of ChatGPT things might change .But it can also be case of diminishing returns where the model size and compute cost cant justify future refinement . As far as end users of AI are concerned they are interested in the utility than specifics of the software internals .

LLMs for AI community

Information ownership and privacy leakage are tow important issues any LLM has to handle .We have learned many lessons from years of legal cases and government request of page take downs to search engines . Once the hype subsides the LLMs fed on public information will soon get into all of this mess .

And don’t even think what will happen if ChatGPT gives an answer that is blasphemous in some culture . This is my main reasoning as to why GPTs in chat mode wont harm Google’s search business .There is need for sanitizing ,curating and localizing the outcomes and none knows it better than google .Just that they need to offer same LLM toppings on their pizza too .

But as community we need to keep pushing the boundary on parameters .Efforts will also be made to plugin knowledge representation (universal or specific ) with LLMs for more deterministic answers .Size/cost optimization and Realtime model updates at this scale and geodistributed LLMs are few directions in which efforts can go

Premature Universal Knowledge claims by LLMs PRs

Its not the AI scientist but the PR machines that are claiming that we are very close to general intelligence .So far computing is concerned LLMs have given a feel that they are generally intelligent .We must remember that Googles LamDA was the first LLM that was said to be sentient (funny how google lost the PR battle ). So on the basis of “feels like human” the LLMs have started giving a feel that it is human level or intelligent or both . Moreover given a focused effort a “self” neural module can be built into LLMs .Say an LLM that can sense that its cloud billing is crossing the daily threshold and its starts feeling tired now .

This is funny example but its tells you the inherent problem with sentience of machines .Without change and limitations that living being experience , machines can achieve plant level equality to being alive .For animal level behavior they need to have ability to grasp animal concepts staring from reptilian to mammal and then human Brain .And also the concept of emotions that affect their whole existence (as opposed to giving a feel of an emotion).

So far the end user experience is concerned LLMs in current form do “feels like human !”

The second challenge is do LLMs have universal knowledge .Any one working on web search or elementary ML knows the answer is NO. Current LLMs are limited by the thin slice of information it was fed .So in reality this is more of a media claim than anything an AI scientist believes .

Societal Impact of post LLM era of AI

How has TV or mobile or internet affected humans/Students/Kids ?

The cognitive-behavioral impact that above waves of revolutions had on humans will be further multiplied by the capability expansion brought by AI (Apart from LLMs , image search was one such capability expansion but it was under hyped). So this issue and the debate and the remedies that follow are known to us .

However the issues of cultural, individual and situation sensitivity is something that the centralized models are not geared up to handled . Nor are the efforts behind them are aiming to .So good number of “situations” where “feels like human” AI did not really “work like human” will come up in coming decade .

New AI frontier

LLMs have not expanded the frontier of AI as field .However they are first class coming of age story for the community .As next level evolution AI can now evolve into two directions .

Personal Models

Current efforts in AI designs come from corporate style centralized AI desings .If there is any effort where a personal model can exist it will be more revolutionary than LLMs . A sort of “AI thing ” that stays with individual and monitors and learns and advices him/her .Imagine your fitness tracker which can suck data from your online activity and also listen to your speech and brain MRI .The corporate business case for this is lacking but the challenges pursuit of such “AI thing” can have on the AI community is huge .

Architecture for Sentient AI in 2026?

Leaving aside the debate of whether we really need it ,once the LLMs are seen as normal a concerted effort of AI labs can work on developing new neural architecture ,that learns from evolution on sentience in living organisms .Whether we will succeed or not ,AI community deserves to pursue its own “voodoo doll” moment like all branches of science .In fact if present AI labs gets enough money they might work on it sooner than 2026 .It is one of those effort worth failing .

Categories
Software

is Gen Z changing the interview dynamics ?

Classical Nature of Job interviews

Job interviews were always 2 way street . At least on paper it was always the case . For most of the time as millennial the candidates were more kind and silent in this process towards the other side .The most common diligence my friend circle used to do while appearing for IT jobs was pay scale .However the Gen Z are turning the tables . I have seen them matching the Hiring manager and HR questions with equal scrutiny .

Gen Z has different attitude towards Jobs

A typical “why did you change company so often ” is matched by “what is your turnover rate” . A “Tell me about your skill sets” is matched by “what are my leaning opportunity”. A “The salary you are asking is high” is cleverly countered by “what is your growth rate/hike rate etc” .A probe on hard work , flexibility , learnability is match by “what is support system/work arrangement ” . Ofcource these are my wording and slice of my socio-work sphere .

In many cases where start up and stock options were applicable these generation shows equal grasp of these dynamics .In many case my senior friends form these circle told me that “inspiration” ,”growth”,” making dent in universe ” are not having the impact it used to be during there conversation .This attitude is seen candidates from not so elite colleges also !.

Gen Z mindset shift

But a good amount of Gen Z have started looking at workplace as lifestyle choice (now/India) as opposed to earning “opportunity” earlier . In 90’s IT pioneers in India used to talk of themselves as offering social upward mobility for first generation Engineers from rural India .That basically summarizes work place as employment opportunity ,trend that previous generation displayed . However when I specifically probed about this strata assuming that folks from this segment might still be seeing world like my generation things did not change .The youngsters with no so privileged background seem to have caught the same attitude (as that of urban/settled section ) towards work and workplace .This is how social scientist define a generation ! The attitude change is generational and here to stay .

Changes the hiring side needs to do

What this now means is that people on the other side of “conference call” have to now shift the mindset from “hiring”-“recruiting” to “teaming up”-“tribe formation” .We are no longer giving them job .Instead they are choosing to spend their life with us . to A big shift for my generation of people .

PS : these are my observations and not a scientific study with large-diverse sample space .My slice of the world in india/IT centric …..But it made sense to plot this point in space for anyone to spot the trend .

Categories
Software

calling the BS on system design interviews

diagram
( copyright design gurus/Arsalan Ahmad , included for critique ,which is fair usage )

This great diagram about system design also exposes the hollowness of this system design trend . Apparently system design expects you to know
1. Load Balancing
2.Caching
3. Queues
4. Search
5.Streaming
6.Observability
7.All databases
8. Cloud compute for scaling

What are we interviewing for ?


But what we are basically asking is can a candidate design this fictitious FaanG system using Aws with 5-7 years experience . I am sure a sharp mind can read and answer anything about Graph DB to partitioning to blob storage but it is a fact one needs good number of years of hand on practice to be reliable professional in this area .I will be suspired to see a candidate so lucky that every 6 months he/she worked on a project that exposed him/her to each one of this area .Very unlikely .Have we then started believing that knowing random bits of designs from FaanG companies is somehow a skill akin to knowing distributed computing with guaranties !

What system design interview might mean


What system design interviews then probably means is we are looking for team mates who understand cloud scale vocabulary .What it might also mean is the expectation is restricted to only vocabulary and there is some other Senior fellow or team doing the actual Architecture .It might then just be simpler to ask AWS certifications instead of system design.
Next problem is what frameworks do we expect these candidates to use ? Java/spring in lambda is different ballgame than nodejs in container .REST is a different skill than how you package your services as micros while keeping functional sanity and quality of services. So is UI or big data. Very few system design talk of this complete stack (cloud to framework to code).I am sure lot of these interviews also cover performance ,security , build and such areas but how is that coherently weaved to the typical system design questions is a question worth pondering !
And i am totally discounting the fact that most great internet companies build their own platforms , a skill that is more challenging than system design in current interview flavor .

The reality check

In all probability system design interviews are outgrowth of the full stack engineer myth we created in industry (my old post on this topic) .Here 2 questions are worth asking :
1. Are we really creating tribe of cloud aware candidates with whom we do mutual fakery that we can design netflix video stream or uber scheduling with no deep experience to back it up ?

2. What is you job designation ? system designer engineer I/II/III ? or system design architect ?

ps :Here is also a detailed skill matrix for you to plan your growth https://docs.google.com/spreadsheets/d/1lAFfBj7UM3NZrS3ywsHZsK4pnWN5eWZJCeSt-UtQyu0/edit?usp=sharing

Categories
Software

How much of AI depth should software engineer have ?

How much of AI depth should a generalist have ?

When it comes to AI and general programmer/Technology Architects ,one question I get asked is how much of AI internals they should know ?

The answers have few nuances . A budding programmer or framework aspirant these days has to be fullstack .Like it or not that is a job market reality . It takes good couple of years for someone to be respectably good full stack i.e Frontend -services- db .Interestingly cloud used to hyphenated in this equation as skill .Not now. Now the cloud is treated at par with your eclipse/intelliji . At the same time distributed computing has become the umbrella under which all job candidate now stand.

I would suggest that for generalist programmer technology architects AI will end up in same league as cloud .2023 is about time it a happens .

AI awareness becomes commodity skill like cloud

Detailing more on the path towards AI aware software engineer .

Most of the programmer community know elementary stats from graduation which can be brushed up to grasp what we call as machine learning .

It will also help so understand the piece on data engineering as for a generalist this is one common intersection point with AI (integration) .

However when it comes to deep learning it gets interesting .As such a the details of how a neural network works has no direct impact on daily work of a programmer/architect .But as a learning opportunity as well as future of programming frameworks we need to watch out .

The design of a tensor of tensor flow is a good proxy for designing your own interpreted language . The RNN,CNNs of the world are not only delight to study but they also are a possible direction as to where our big data or distributed computing might evolve .In fact there are already segments in AI community which are working on distributed learning (compute) framework .I see no reason as to why the deep learning community and traditional language-framework creators wont exchange notes soon and copy .

With that as a direction ,

Here is a simplified Architecture diagram of GPT of chatGPT fame. This one outlines the essential elements without dumbing down the huge amount of work .

https://dugas.ch/artificial_curiosity/GPT_architecture.html

Categories
Software

Developing your System Design Skills

What is system design in software ?

Budding architects often ask me about the way to learn System Design .That is practically to say system design has become rite to passage for Technology Architects now . But as such system design doesn’t have one clear definition .The term became popular when big tech and the copy techs started asking people to design distributed solutions . So when a budding Architect decided to learn it , he has to mix AWS certification syllabus with lots of Martin Fowler blogs on Event driven systems .Add some kubernetes to it ,top it up with kafka . Some CAP theorem and consensus algorithm will be nice to . And finally some cheat sheet like numbers a an engineers should know . There is noting wrong in learning all this stuff . But we must also acknowledge that these are disjoint knowledge items that will cognitively burden a newcomer and even make few people depressed .

A simpler learning approach

In my alternative approach ,I ask my mentees to design a complex enough software first and then scale it cloud . That is it .No kubernetes or kafka mandated . Take for example this simple diagram from Apache flink architecture . This is a very typical arrangement for hadoop based framework , mapreduce-spark-strom and so on .

Apache flink simplified architecture (courtesy Oreily )

Can your engineers design a robust implementation of this for a single server ? This is a fine system to design . We can always scale this to cloud .And here you will realize that many of your learning items in system designs are needed because of this movement to cloud .They are not essential part of system design . So in ideal scenario one can design pintrest for single server and learn the craft , design google drive for one server (why not design hdfs ? even wondered why its not popular question ?) and master the complexities . The scaling to internet can come at a slow measured pace .

This also bring me to one side point that the Gang of Four is still the base line where you start your journey towards developing your design skills .A good amount of your system design ideas still come from there .It is only after you decide to make your software internet scale you get into issues of guarantees , ,consistency and latency the 3 main pillars that will then shape your journey .

Books recommended

So here are the books i recommend ,in no order .

1. Gang of four design pattern

2. Cloud Native Architectures ,pckt pub

3 The Architecture of Open Source Application ( they have a website or get the book)

4. Architecting for Scale , Oreily , this is one good book that teaches you cloud sans the sales and marketing fluff when you do vendor cloud certifications

5. Fundamentals of Software Architecture , this is one wisdom style book that tells u about the roles ,decision making process and popular architecture choices

6 Designing Data-Intensive Applications , little dated but it has good coverage on databases and big data systems .One stop .

7. Alex Xu‘s book System design interview . Though this is titled as interview book .It is one good book that has excellent breadth . If you go with the theme of my post , this could be your final book .

One last thing .There are so many other topics and books that one need to read .Fowlers book on Refactoring and Enterprise integration .Eric evans book on DDD. Pini Rizniks book on cloud native transformation .Bellmeres book on event driven microservices .Sam newmans book on microservices . Accelerate on CICD .Even SICP by mitpress.

But all of these good books that you should pick up when you know the landscape well else they will confuse you as practitioner.

In the end system design is all about interviews .When it comes to your project , your problems wont have to fit the text book (which is when you should reach to specialist book or your mentors ) .

Here is also a detailed skill matrix for you to plan your growth https://docs.google.com/spreadsheets/d/1lAFfBj7UM3NZrS3ywsHZsK4pnWN5eWZJCeSt-UtQyu0/edit?usp=sharing

Good luck