NFT Dashboard Application Development.
Through a wide variety of mobile applications, we’ve developed a unique visual system.
- Client George Wallace
- Date 15 June 2022
- Services Web Application
- Budget $100000+
I use technology as a third dimension to simplify complex ideas and guide people through every interaction. My focus isn’t just on building features but on creating experiences that feel clear, purposeful, and impactful.
I build end‑to‑end web and mobile applications with clean code, robust backend, and seamless frontend experiences.
I design scalable architectures and provide expert guidance to optimize performance, security, and workflows.
I mentor aspiring developers and teams, simplifying complex concepts and enabling them to grow faster.
I take on freelance projects from concept to delivery, ensuring quality, reliability, and on‑time results.
I set up automated deployments, CI/CD pipelines, and cloud infrastructures (AWS, Azure, GCP) for efficiency.
I integrate AI/ML solutions and automate workflows to deliver smarter, data‑driven products and systems.
Through a wide variety of mobile applications, we’ve developed a unique visual system.
There are always some stocks, which illusively scale lofty heights in a given time period. However, the good show doesn’t last for these overblown toxic stocks as their current price is not justified by their fundamental strength.
A strategy is a general plan to achieve one or more long-term. labore et dolore magna aliqua.
UI/UX Design, Art Direction, A design is a plan or specification for art. which illusively scale lofty heights.
User experience (UX) design is the process design teams use to create products that provide.
Toxic companies are usually characterized by huge debt loads and are vulnerable to external shocks. Accurately identifying such bloated stocks and getting rid of them at the right time can protect your portfolio.
Overpricing of these toxic stocks can be attributed to either an irrational enthusiasm surrounding them or some serious fundamental drawbacks. If you own such bubble stocks for an inordinate period of time, you are bound to see a massive erosion of wealth.
However, if you can precisely spot such toxic stocks, you may gain by resorting to an investing strategy called short selling. This strategy allows one to sell a stock first and then buy it when the price falls.
While short selling excels in bear markets, it typically loses money in bull markets.
So, just like identifying stocks with growth potential, pinpointing toxic stocks and offloading them at the right time is crucial to guard one’s portfolio from big losses or make profits by short selling them. Heska Corporation HSKA, Tandem Diabetes Care, Inc. TNDM, Credit Suisse Group CS,Zalando SE ZLNDY and Las Vegas Sands LVS are a few such toxic stocks.Screening Criteria
Here is a winning strategy that will help you to identify overhyped toxic stocks:
Most recent Debt/Equity Ratio greater than the median industry average: High debt/equity ratio implies high leverage. High leverage indicates a huge level of repayment that the company has to make in connection with the debt amount.
Through a wide variety of mobile applications, we’ve developed a unique visual system.
There are always some stocks, which illusively scale lofty heights in a given time period. However, the good show doesn’t last for these overblown toxic stocks as their current price is not justified by their fundamental strength.
A strategy is a general plan to achieve one or more long-term. labore et dolore magna aliqua.
UI/UX Design, Art Direction, A design is a plan or specification for art. which illusively scale lofty heights.
User experience (UX) design is the process design teams use to create products that provide.
Toxic companies are usually characterized by huge debt loads and are vulnerable to external shocks. Accurately identifying such bloated stocks and getting rid of them at the right time can protect your portfolio.
Overpricing of these toxic stocks can be attributed to either an irrational enthusiasm surrounding them or some serious fundamental drawbacks. If you own such bubble stocks for an inordinate period of time, you are bound to see a massive erosion of wealth.
However, if you can precisely spot such toxic stocks, you may gain by resorting to an investing strategy called short selling. This strategy allows one to sell a stock first and then buy it when the price falls.
While short selling excels in bear markets, it typically loses money in bull markets.
So, just like identifying stocks with growth potential, pinpointing toxic stocks and offloading them at the right time is crucial to guard one’s portfolio from big losses or make profits by short selling them. Heska Corporation HSKA, Tandem Diabetes Care, Inc. TNDM, Credit Suisse Group CS,Zalando SE ZLNDY and Las Vegas Sands LVS are a few such toxic stocks.Screening Criteria
Here is a winning strategy that will help you to identify overhyped toxic stocks:
Most recent Debt/Equity Ratio greater than the median industry average: High debt/equity ratio implies high leverage. High leverage indicates a huge level of repayment that the company has to make in connection with the debt amount.
Through a wide variety of mobile applications, we’ve developed a unique visual system and strategy that can be applied across the spectrum of available applications.
Most recent Debt/Equity Ratio greater than the median industry average: High debt/equity ratio implies high leverage. High leverage indicates a huge level of repayment that the company has to make in connection with the debt amount.
Through a wide variety of mobile applications, we’ve developed a unique visual system and strategy that can be applied across the spectrum of available applications.
A strategy is a general plan to achieve one or more long-term.
UI/UX Design, Art Direction, A design is a plan or specification for art.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commod viverra maecenas accumsan lacus vel facilisis. ut labore et dolore magna aliqua.
There are always some stocks, which illusively scale lofty heights in a given time period. However, the good show doesn’t last for these overblown toxic stocks as their current price is not justified by their fundamental strength.
Toxic companies are usually characterized by huge debt loads and are vulnerable to external shocks. Accurately identifying such bloated stocks and getting rid of them at the right time can protect your portfolio.
Overpricing of these toxic stocks can be attributed to either an irrational enthusiasm surrounding them or some serious fundamental drawbacks. If you own such bubble stocks for an inordinate period of time, you are bound to see a massive erosion of wealth.
However, if you can precisely spot such toxic stocks, you may gain by resorting to an investing strategy called short selling. This strategy allows one to sell a stock first and then buy it when the price falls.
While short selling excels in bear markets, it typically loses money in bull markets.
So, just like identifying stocks with growth potential, pinpointing toxic stocks and offloading them at the right time is crucial to guard one’s portfolio from big losses or make profits by short selling them. Heska Corporation HSKA, Tandem Diabetes Care, Inc. TNDM, Credit Suisse Group CS,Zalando SE ZLNDY and Las Vegas Sands LVS are a few such toxic stocks.Screening Criteria
Here is a winning strategy that will help you to identify overhyped toxic stocks:
Most recent Debt/Equity Ratio greater than the median industry average: High debt/equity ratio implies high leverage. High leverage indicates a huge level of repayment that the company has to make in connection with the debt amount.
Through a wide variety of mobile applications, we’ve developed a unique visual system and strategy that can be applied across the spectrum of available applications.
A strategy is a general plan to achieve one or more long-term.
UI/UX Design, Art Direction, A design is a plan or specification for art.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commod viverra maecenas accumsan lacus vel facilisis. ut labore et dolore magna aliqua.
There are always some stocks, which illusively scale lofty heights in a given time period. However, the good show doesn’t last for these overblown toxic stocks as their current price is not justified by their fundamental strength.
Toxic companies are usually characterized by huge debt loads and are vulnerable to external shocks. Accurately identifying such bloated stocks and getting rid of them at the right time can protect your portfolio.
Overpricing of these toxic stocks can be attributed to either an irrational enthusiasm surrounding them or some serious fundamental drawbacks. If you own such bubble stocks for an inordinate period of time, you are bound to see a massive erosion of wealth.
However, if you can precisely spot such toxic stocks, you may gain by resorting to an investing strategy called short selling. This strategy allows one to sell a stock first and then buy it when the price falls.
While short selling excels in bear markets, it typically loses money in bull markets.
So, just like identifying stocks with growth potential, pinpointing toxic stocks and offloading them at the right time is crucial to guard one’s portfolio from big losses or make profits by short selling them. Heska Corporation HSKA, Tandem Diabetes Care, Inc. TNDM, Credit Suisse Group CS,Zalando SE ZLNDY and Las Vegas Sands LVS are a few such toxic stocks.Screening Criteria
Here is a winning strategy that will help you to identify overhyped toxic stocks:
Most recent Debt/Equity Ratio greater than the median industry average: High debt/equity ratio implies high leverage. High leverage indicates a huge level of repayment that the company has to make in connection with the debt amount.
Pursuing advanced research in synthetic medical imaging and machine learning applications.
Specialized in advanced software development, data analytics, and emerging technologies.
Built strong foundations in programming, database systems, and IT infrastructure.
Validated skills in designing and deploying scalable cloud applications on AWS.
Certified expertise in Java programming and application development.
Proven ability to build and deploy machine learning models using TensorFlow.
Demonstrated proficiency in containerization and Docker-based workflows.
Specialized knowledge in supervised, unsupervised, and deep learning algorithms.
Overseeing end-to-end project lifecycles, client communication, and cross-functional team management. Driving strategic planning and successful delivery of enterprise-grade solutions.
Led a team of developers in delivering scalable web and mobile applications. Mentored junior engineers and managed sprint planning and code reviews.
Designed and developed advanced modules in Java-based enterprise applications. Collaborated with QA and DevOps teams to streamline CI/CD processes.
Built dynamic web applications using Java, Struts, and MySQL. Focused on performance optimization and modular architecture.
Started as a trainee, gaining hands-on experience in full-stack development and application debugging under senior mentorship
Provided technical support and troubleshooting assistance for enterprise clients. Collaborated with development teams to resolve software issues and ensured high customer satisfaction through effective issue resolution and documentation.
Providing end-to-end software development solutions for clients across various industries. Specializing in designing and developing scalable web, mobile, and cross-platform applications. Projects range from custom enterprise platforms to mobile apps, with a focus on delivering clean architecture and intuitive user experiences.
Full-Stack Development · Software Design · Java · Android Development · iOS Development · Flutter · Dart · Data Analysis · .NET Framework
With a strong passion for academic engagement and knowledge sharing, I have been actively mentoring and teaching students at both undergraduate and postgraduate levels across institutions such as University of Mumbai, Somaiya College, PVG Vocational College, Valia College, NL College, and Vidyalankar Institute. My teaching journey spans both foundational and advanced subjects, enabling students to gain practical, industry-relevant skills across a broad range of technologies.
I have delivered hands-on training to B.Sc. and M.Sc. students, combining academic depth with real-world application. At PVG Vocational College and Somaiya College, I led modules in Android Development, Linux, Ethical Hacking, and Embedded Systems. At the University of Mumbai, I mentored postgraduate students in Advanced IoT, Database Systems, and Healthcare Analytics, while also handling subjects like Image Processing and DSP. My early academic roles at Valia College and NL College laid a strong foundation in databases and mobile development. Additionally, I have delivered expert guest lectures on Blockchain Technology at Vidyalankar Institute, introducing students to decentralized systems and their real-world applications. My teaching philosophy emphasizes clarity, creativity, and building practical confidence in learners across disciplines.
If you’ve ever printed id(obj)
while debugging and wondered, “What exactly is this number?”, this post is for you. We’ll unpack how objects live in memory, what id()
returns, and how it helps you reason about Python behavior—without getting lost in jargon.
id(obj)
returns a unique identity for the object during its lifetime.id
⇒ same object (same memory). Same value does not imply same id
.id()
?id(obj)
is the address in RAM of the object’s header (technically, a pointer cast to an integer).id()
is still a unique identifier, but not guaranteed to be a raw memory address.x = 42
print(id(x)) # e.g., 140709568352400
print(hex(id(x))) # e.g., 0x7ffef9a8b2a0 (hex address form)
Think of
id()
like the flat number of an apartment. The furniture (data) can be identical in two apartments, but their flat numbers (ids) differ.
Every Python object has a C-level header with (simplified):
ob_refcnt
) – how many active references point to itob_type
) – tells Python what kind of object it is (int, list, str, …)So when you do:
x = 10
Python allocates (or reuses) an integer object and x
holds a reference to it.id(x)
is the address of that object’s header.
==
vs is
==
checks value equality (same content)is
checks identity (same object in memory)a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a == b) # True (same contents)
print(a is b) # False (different lists)
print(a is c) # True (same list object)
You can confirm with id()
:
print(id(a), id(b), id(c))
# a and c share the same id; b has a different id
Python performs some clever optimizations.
10
often share the same object.x = 10
y = 10
print(x is y) # True in CPython
print(id(x) == id(y)) # True
Larger integers may or may not be reused depending on the code path:
x = 10_000
y = 10_000
print(x is y) # Often False; depends on the runtime and context
'hello'
, 'abc123'
) are often interned (reused).sys.intern()
.s1 = "hello_world"
s2 = "hello_world"
print(s1 is s2) # Often True (interned)
s3 = "".join(["hello", "_world"])
print(s3 is s2) # Often False (built at runtime)
id()
behaves differentlya = [1, 2]
b = [1, 2]
print(id(a) == id(b)) # False (two separate lists)
c = a
print(id(a) == id(c)) # True (aliasing the same list)
To make a copy (different id
), don’t alias:
a = [1, 2, 3]
b = a.copy() # or b = list(a) or b = a[:]
print(a is b) # False
id()
be reused?Yes—after an object is destroyed, Python may allocate a new object at the same memory address (hence the same id
later). This is why id()
is only guaranteed to be unique during the object’s lifetime.
def demo():
x = 999999
print("inside:", id(x))
demo()
y = 999999
print("outside:", id(y))
# The numbers may or may not match depending on reuse; don’t rely on it.
a = {'count': 1} b = a print(a is b) # True
id
, you’re mutating the original object.id
s for small ints/strings? That’s caching/interning, not a bug.def show(label, obj):
print(f"{label}: value={obj!r} id={hex(id(obj))}")
# Small ints (often same id due to caching)
x, y = 10, 10
show("x", x)
show("y", y)
# Larger ints (may not share id)
p, q = 10_000, 10_000
show("p", p)
show("q", q)
# Lists: distinct objects
a, b = [1, 2, 3], [1, 2, 3]
show("a", a)
show("b", b)
print("a is b:", a is b)
# Aliasing
c = a
show("c (alias of a)", c)
print("a is c:", a is c)
is
for value comparison. Use ==
for content and is
for identity.id()
for ordering or persistence—it’s an implementation detail.id()
is always a memory address outside CPython (e.g., PyPy).id()
is your window into object identity—great for debugging references.id
⇒ same object. Same value does not imply same id
.Q: Why do two variables with 10
have the same id
?
Because CPython caches small integers. It’s an optimization.
Q: Why does a is b
sometimes return True
for strings?
They may be interned (reused). It’s normal for short, identifier-like strings.
Q: Can I treat id()
as a true memory address?
In CPython yes (practically); in general Python terms, consider it a unique identity, not a guaranteed address.
The Walrus Operator (:=
) is an assignment expression. It binds a value to a variable while returning that value, so you can use it immediately within the same expression.
if (n := len(data)) > 5:
print(f"Too long! ({n} items)")
Why “walrus”? Because :=
looks like a walrus face with tusks. 🦭
Without Walrus (two steps):
n = len(data)
if n > 5:
print(f"Too long! ({n} items)")
With Walrus (one step):
if (n := len(data)) > 5:
print(f"Too long! ({n} items)")
Benefit: Less repetition, no recomputing len(data)
.
while (line := input(">>> ")) != "quit":
print("You typed:", line)
Keeps the code compact; no extra variable assignment line is needed before the loop.
if (user := get_current_user()) and user.is_admin:
grant_access(user)
You call get_current_user()
once, still reuse user
.
import re
if (m := re.search(r"order-(\d+)", filename)):
order_id = int(m.group(1))
print("Found order:", order_id)
Cleaner than matching first, then writing a second if
.
results = [y for x in data if (y := transform(x)) is not None]
Transforms each x
and only keeps non‑None
results—without calling transform
twice.
with open("log.txt") as f:
while (chunk := f.read(4096)):
process(chunk)
Stops when an empty string is returned.
# Good: assign len(data) to n, then compare n > 5
if (n := len(data)) > 5: ...
# Bad: assigns boolean result of (len(data) > 5) to n
if n := len(data) > 5: ...
Prefer the first form to avoid binding a bool to n
.
Hard‑to‑read one‑liners are worse than two clear lines. If it harms clarity, don’t use walrus.
In comprehensions, the walrus‑assigned name is local to that comprehension and won’t leak outside—good for avoiding accidental name clashes.
Works in Python 3.8+. If you ship libraries, note this in your README.
If + reuse
if (val := compute()) is not None:
use(val)
While + fetch
while (item := queue.get()) is not None:
handle(item)
Comprehension + cache
pairs = [(name, l) for name in names if (l := len(name)) > 3]
Regex + branch
if (m := re.match(pat, s)): do_something(m)
data = fetch_data()
if data and len(data) > 10:
print("Big list:", len(data))
One possible answer:
if (data := fetch_data()) and (n := len(data)) > 10:
print("Big list:", n)
line = input()
while line != "":
print(line)
line = input()
One possible answer:
while (line := input()) != "":
print(line)
Q: Is :=
the same as =
?
A: No. =
is a statement (assignment). :=
is an expression that assigns and returns the value, so you can use it inline.
Q: Does it improve performance?
A: It can, by avoiding repeated function calls. But its biggest win is cleaner code—don’t use it solely for micro‑optimizations.
Q: Is it safe in comprehensions?
A: Yes, it doesn’t leak variables outside the comprehension scope.
Q: Which Python versions support it?
A: Python 3.8+ (PEP 572).
If you’ve ever written or read Python code, you might have stumbled upon a single underscore ( _
) used as a variable. At first glance, it looks meaningless — but in reality, _
has several hidden uses that make Python code cleaner and more powerful.
Let’s explore where _
shows up and why it matters.
When using Python’s REPL (the interactive shell), _
stores the result of the last evaluated expression.
>>> 5 + 7
12
>>> _ * 2
24
Here, _
remembers 12
and multiplies it by 2
. It’s a neat shortcut for quick calculations.
Sometimes you need a loop but don’t actually care about the loop variable. Instead of wasting a variable name, Python convention is to use _
.
for _ in range(3):
print("Hello!")
Output:
Hello!
Hello!
Hello!
This signals to readers: “I’m ignoring the loop variable on purpose.”
When unpacking tuples or lists, you can use _
to ignore values you don’t need.
x, _, y = (1, 2, 3)
print(x, y) # 1 3
This makes code cleaner and easier to read.
In some frameworks like Django, _
is commonly used for marking strings that need translation.
from django.utils.translation import gettext as _
print(_("Hello, World!"))
Here, _
is just an alias for Django’s translation function.
The underscore (_
) isn’t just a random placeholder — it’s a versatile tool in Python that:
Next time you see _
in Python, don’t ignore it — it’s a tiny variable with big superpowers.