I am a full-stack developer with 4 years of experience. I specialize in microservices, test-first development, clean code, and customer and business-focused solutions. This blog features articles related to these topics, along with insights and commentary on the latest trends in software development.
My current focus is: Algorithms for Coding Problems
Posts (sorted by last updated)
- Software Delivery: Early vs Late
- Phases of Software Developement: Zero-To-One and One-To-N phase
- Why you should build a deployment pipeline first?
- Addressing the misnomer of “deploying this early to prod without ‘proper’ testing will lead to low quality”
- Optional: Why not-having a delivery pipeline is risky?
- Optional: How to spot fake continuous delivery?
- What your first delivery would be?
- Optional: What should you learn to make a delivery pipeline?
- Notes from other articles
- Conclusion
- What is observability, and why is it needed?
- What are the pillars of observability, and why do they make sense?
- What are the different observability tools?
- What’s the architecture of Graphana?
- What are the basic Graphana features one should utilise?
- How to set up dashboards in the best way?
- How to set up alerts in the best way?
- How to use Graphana to debug a scenario?
- How can Chaos Engineering help
- No using .block() the event loop
- If you are going to block, block it the reactive way
- Methods should always return a Mono or Flux
- Use Mono.error() instead of throwing
- Use Mono.fromFuture to convert from CompletableFuture to Mono
- use .collectList() only when needed
- Always keep things within mono flux chain
- Identify places in your application which you want to provide as plugin
- Identify how plugin is going to share data? And can plugin update in real time? if Yes how?
- Define interfaces that plugin developers can use
- Keep your product as lean as possible
- You’ll have to create infrastructure for managing plugins and plugin lifecycle
- Have you worked with that external service before?
- Are you integrating one service or are you integrating multiple similar services?
- Does it provide an SDK in your language?
- How do you connect to the external service?
- In case there isn’t a library? How do you verify if something is really from that system?
- Are there rate limits in place on the external system?
- Are there special conditions in place?
- Would you have to release the app on that particular platform?
- Resources
- Choose the right medium
- Listening
-
Speaking
- Agree to what you find right.
- If you don’t understand something, re-iterate what the person is saying and ask if it’s right.
- Ask neutral questions
- Think before you say and stay in the realm of truth
- Express and explain better
- When talking give the choice to other person
- Keep things civilized
- Don’t attack the person
- If you had an argument
- Tell the Truth 1
- If it sounds too good to be true, it probably is.
- Do/Try/Invest in many things. You don’t have any decision making capacity unless you have an offer.
- If downside is negligible, reversible or it can be capped and upside is very high, do it. 2
- If you need to make a big decision and you can’t decided, say No. 3
- If there are multiple similar options and each seem similar, take the path that seems the hardest in the short term. 3
- If you can’t decide, pick the decision that will lead you to more peace of mind. 3
- Let others make there own decisions
- Delay the impulsive decision by 30 minutes or an hour or a day
- Be decisive
- Metrics
- Say no to many things
- How to read this?
- Commit Version 2: Getting Input and Generating Submission File
- Commit Version 3: Improvements
- Commit 6: ConvNet, and GPU
- Commit 7: Improvement
- Declare the local variable as close to where it is used and remove un-necessary once
- Just return it. Don’t store
- Remove commented code
- Remove functions and variables which you do not use.
- Variable argument lengths
- Default Arguments
- Use annotations/decorators
- Remove duplicates
- Single line boolean evaluation
- Think in terms of Streams
- Create and use base classes
- Keep your implementation as simple as possible
- Knowing the basics of time and space complexity goes a long way.
- Additional Tip: Always use parent interface for the type
- When trying to find duplicates
- Java: If you know the size of the list
- Always have your algorithmic logic in a separate function
- Rather than implementing own logic, take 5 minutes to see if your modules already provide the implementation
- 1. Always Turn On Experimental Feature
- 2. ️ Jump to Definition
- 3. Use GUI for exploring files and Mounting Google Drive
- 4. Creating Custom Snippets
- 5. Get GPU Info
- 6. Opening Notebooks from Github with ease
- 7. Send email when the task is complete
- 8.️ HyperDash
- 9. 10. — Random Filler Tips: Dark Mode and Corgi/Kitti Mode
- Other useful tips: