Hi everyone! Welcome to
“A Note To My Younger Self – What I wish
I had known as a Junior Dev”.
This talk is meant to be a love letter
to the me a few years ago that started
out in computer science
and to you, junior developers who
sometimes struggle to find mentors,
navigate difficult teams, and figure out
how to do your best work.
But before we dive into that and how I
hope that you can be successful,
a little bit about me! My name is Fatima
and I’m a Developer Programs Engineer at
Pantheon. I work on maintaining our open
source developer tools,
delivering trainings, and talks like this
one and engaging with our customers and
our community!
You can find me on the internets as
@sugaroverflow
and in the past I’ve worked with teams
at Microsoft, the City of Boston
Digital Echidna, and Code for Canada. In
Communications and Technology Canada’s
Rising Star award. I’m passionate about open
source
civic technology and making technology
spaces more inclusive.
Which brings us to why I’m giving this
talk!
I believe strongly that one way to
improve representation in technology
is to help support, share, and level up
our junior developers –
to help provide them with opportunities
and mentorship to help them succeed!
I have been really fortunate to have had
amazing mentors who
supported me, opened doors for me, and
provided advice –
especially in those moments where I felt
like an imposter
and I wondered if tech just wasn’t for
- In this talk,
I want to share the various lessons I’ve
learned over the years
and the things that I’d like to tell
myself back then. Some of these are a
direct result of bad experiences
and others are from speaking to and
sharing stories
across the communities I’ve worked with.
As
I was putting this talk together, I
realized that there is so much more than
what I could cover,
so this will be a little bit of a
lightning talk of all of the things that
I find
most important to convey! At the end I’ll
share a bunch of links to articles,
books, and to podcasts that I recommend
if you want to continue thinking about
this and exploring what works best for
you
as you embark on this really exciting
career of being a developer!
As a frame of reference of the order of
things that we’ll talk about today, this
is what I imagine the junior developer’s
journey to be like –
finding a job and figuring out what you
love to do
and then getting hired and understanding
your new team and how to work best with
them.
And as you’re working on projects and
figuring out how to continue to learn
and grow
while creating workflows and tools and
leveraging them
to see what works best for you.
Finally your career,
setting goals, and figuring out where
you’re headed on this career path and
developer journey of your life!
[laughs] That just sounds so dramatic, but we’ll start
with the hiring process
which I think sometimes is the hardest
part of being an entry-level developer.
It’s finding the right job and a lot of
times there isn’t a right job.
Many people will encourage you to find
something that you’re passionate about
others will tell you to work on things
that you’re good at.
I’ve honestly found that sometimes in
following the things that I was
passionate about,
I was disappointed in the way
organizations were structured
or the dynamics of a team that I was on.
I would get really caught up by one
thing that I
really liked about an organization or
program and forget to look at the whole
picture.
Of course it was still really amazing
and exciting to be a part of something I
was passionate about,
but more than often it led to a lot of
burnout because I wasn’t able to
separate that work-life balance.
I’m still notorious for crossing that
line all the time so that’s not
something I’ll give you advice on [laughs] .
Maybe in another five or ten years I’ll
write a letter back to me again
as a senior developer. Maybe I’ll finally
have discovered how to keep that balance
and I’ll be able to share it with others.
We’ll see about that! [laughs]
So I’ve actually put together a criteria
of things, after much reflection
that are important to me about a job.
Some of these questions are:
What does the executive team look like?
What are the company’s values?
And how do they demonstrate these values?
Is there a code of conduct?
Do the engineering teams have a career
ladder?
Who will the people I’m working with be?
What kinds of projects do they currently
work on?
Are those projects that inspire me or
are those projects that I want to work
on?
And because I love data and spreadsheets,
I like to categorize these questions by
theme so: career, path, team, values, and then I’ll start
to weigh them by importance.
So when I’m talking to companies or
interviewing I start scoring them on the
different things that I’m interested in.
Of course at the end of the day it’s
really just data
and I may not even go work for the
company that gets the highest score in
my criteria,
but what it really helps me with is my
gut feeling versus the data.
So I might get really passionate about
working at company “A”,
but they’ll score really poorly in my
spreadsheet of values and
assessments – that’ll really make me
think: “Why do I want to work at this
company that isn’t really aligned with
the things that I find useful?”
and that’s a really important reflection
and conversation to have with yourself.
Looking back at my criteria last year, I
realized that
not everything I thought was as
important as it would be
was as important as I thought it would
- [laughs] It’s a
funny sentence, but it turns out that
it’s more important to me what kinds of
projects I work on
and not so much the team that I work
with or
it’s more important that there’s a
structure built into the organization
for mentoring
than the autonomy to decide and work on
my own projects.
And so some of these values and
criterias continue to grow, especially
for me as I experience new types of jobs,
new roles, new community and
company structures – my
values and my
criteria continue to grow and I’ll continue to
assess
future opportunities by those grown
categories. As I did research I realized
that several people have created
spreadsheets and frameworks on the
internet so
there’s a couple of blog posts that I’ll
share with you so you can explore those
resources
at the end of this presentation. What I
really recommend
is reading some of those blog posts and
seeing how people have created their
criteria –
even checking in with me on twitter and
asking me about mine!
And then creating your own! So create a
set
of criteria or questions or categories
that’s unique to your experiences and
the things that you value most in your
career.
As you’re doing these interviews and
you’re looking at jobs you’ll also want
to figure out how you work best.
So what are your strengths or weaknesses?
What are things that you’re good at that
you want to continue doing?
I’m sure you’ve realized by now that I
love making lists! [laughs]
The internet and your friends will
encourage you to make a pros and cons
list for every job decision that you’re
trying to make.
I always take that and I add a little
bit more
nuance and categories to it. I do want to
make sure I say that
what I’m recommending to you is what’s
worked for me
and your mileage may vary. so I would
take these ideas,
sit with them for a little bit and then,
turn them into your own.
If you end up creating your own
categories, I’d love to hear about them!
So for figuring out what kinds of work
you like to do, I’d fill out a chart like
this one!
What are the things that you liked
about projects you’ve done in the past?
What are things that you learned that
maybe you want to continue to learn?
What is something that you longed for, maybe
something that wasn’t available during
these projects or
something that would have made this
experience a lot better for you?
As you do this retrospective on the
projects that you’ve worked on,
even those that maybe you’ve worked on
in your studies,
I would really think about what excites
you!
What are the things that give you
joy? [laughs]
And those are the things that you really
want to highlight and look for
in the opportunities that you’re
considering.
One of the things that I want to mention
here too, is that it’s really important to
know
what you’re good at and also what you
love to do.
For me sometimes those two things
are different. For example,
When I was working on an agency, I was
really good at doing front-end
development work
and oftentimes because I was good at it
I got assigned
a lot of that work. There came a time
where I had to go to my technical lead
and say “hey, I know you keep giving me
front-end work
and I do I enjoy it but I would really
really enjoy it if you would give me
more back-end work
because I find back-end development to
be challenging and exciting
and I really want to work with
connecting different systems or building
custom modules or plug-ins.
That’s where I want to go with my
career.” And so
I learned through my experience with
that really great tech lead that
I was really good at css, but I
I really wanted to work on back-end
development and you know
knowing those two things is really
important because
you can think about it as you’re
assessing some of these jobs.
There’s a couple of other things here as
far as interviews,
assessing how employees feel
when you visit or
see them on zoom calls, and I’m not
really covering things like
assessing the culture of a company,
but there’s a lot there when you’re
figuring out what you’re interested in
and what values you have and what
aligns with that.
Let’s say that you decided to go
with a job and you’ve gotten hired and
you’re being onboarded to work with your
team on some really cool project!
Before you dive into that project and
your day-to-day,
it would be a great idea to get
a baseline
with your team. How does everyone work
best? What
are each of your roles? What’s expected
of you? Will you have regular check-ins?
Will you get a mentor assigned to you?
It’s always good to ask about these
things in the beginning,
but if it’s too late and you’re already
working at a place, I totally recommend
checking in
with your manager and saying, “hey, I have
some conversations I want to have with
you about my role
and these are things that are important
to me.” whether that’s
“hey, I don’t know how to work best with
a teammate” or “I would like a leadership
Impact plan – I want to see where I’m
headed.” or
“I want to understand how we can all
collaborate.”
There are a couple of different tools
and resources by which you can do these
things with your teams.
There’s user manuals – you can run these as
an activity where
every team member can share the
different ways that they work best,
how they like to give and receive
feedback, how they communicate best.
Maybe somebody doesn’t like being
approached at their desk or they
don’t like really long emails and would
prefer to talk about things face to face.
Or maybe they do prefer emails and they
like to think about what they want to
say
and don’t prefer the real time
communication of zoom calls. So
there’s a lot of things that you can
explore with user manuals.
Especially being a junior developer,
I think you may not have the power on
your teams to say “hey
let’s have a RACI where we can decide
who’s accountable and responsible for
the success of this project”,
but what I would recommend in that case
is talking to your manager and saying
“hey, I would like
a lot more clarity about a project – who’s
responsible for
doing X in this project or
who should I go to to get more
information about Y?”” and they can go
ahead and
go about the processes by
which they can bring this information
together for you,
but also for the benefit of the rest of
your team.
Another thing that I’ve seen lacking
in some places
is retros. How often does your team
reflect and review things?
Especially with projects that have been done
and kind of look back and see
how things could have been done better.
If that’s not already happening, I would
highly encourage you to reach out
to whoever you report to – whether that’s
your manager or even HR
at your company and say, “hey I think we
would benefit from retros”
if you’re not already having them.
Speaking of project, that’s
really where the fun stuff is!
One of the most important things I want
to mention here is that – it’s okay not to
know something! In fact,
knowing what you don’t know is probably
a really great skill!
One of the best recommendation letters
that I received was from
a dear mentor and friend of mine in the
civic tech community,
was when he was talking to somebody that I
was interviewing with
and he told them, “she knows what she
doesn’t know”.
At first when I heard that I was
really taken aback –
and I was like “hey, is that really a
recommendation?”
Years later, I really
value that recommendation and that
advice
because it’s okay to have gaps in your
knowledge and it’s probably a good thing
to know what you don’t know
before you spend a lot of time digging
into it without asking for help.
Unfortunately though, not everyone works
in an environment where
asking for help is a good thing, so if
you’re stuck
in a culture where asking for help is a
problem or you don’t have any mentors
provided for you,
I am so so sorry! And I hope that you
either find a way out to a better place
or you find a community on the internet
that
can support you. There are a lot of
mentors on tech twitter and
there’s organizations like Diversify
Tech that just work to
improve the community and connect people with
opportunities and
friends to be in this together.
While we’re talking about how we work, I
encourage you to build your own
developer workflow!
I call this “shoulder surfing” – it’s kind
of the term that I’ve coined, but
it’s for literally watching my senior
developers over their shoulders
or pair programming with them. So what I
really liked and found value in
was seeing the way that they did their
work –
starting from the beginning with a
ticket to reading the ticket,
processing what it was about, maybe doing
some R&D
to confirm some assumptions or looking into
something,
and then working on that ticket,
reviewing that code, testing that code,
deploying it,
and kind of just watching their entire
process and
how they leverage
the different things in their workflow
to make that process work for them.
Also to
output really great code and what I
learned was
“Wow! Each one of my senior developers has
their own way of going through
that process!”
Even if we were all using the
same tools and libraries,
each person has toolkit of
things that they use.
For example, one of my favorite git
commands is the git add patch command
what allows me to add partials to commits
and review them as I’m adding
them.
I would encourage you to
explore
different types of tools and explore the way
that people work and how they customize
their
their processes and then find your own
way through that.
I think finding your own process
sometimes takes a little bit of time,
but I wanted to share a couple of my
favorite apps in my toolkit
and allow you to explore them as
well!
Kaleidoscope is a really great app that
allows me to do
visual code reviews so it’s like
when you look at
a pull request on github.com and you can
see
the additions and deletions and
line by line.
[On Github] You’re looking at the original and then looking
at the pull request, but what’s great
about kaleidoscope is I can do that on
my local and
I can review my code before it goes out.
Or I can review the code that a
developer has written
and I can review it against the
main branch that they were working on
or even against a commit to see
where they made changes
to a feature or where they went
down a certain path of implementation.
I really recommend kaleidoscope
and I also recommend the other ones on
this slide.
I’ll just name screenflow which I think
is also a really great app
because it allows you to take these
screenshots that can float around
your screen.
If you’re reviewing some
front-end work, you can compare it to a
mock-up
or if you have a bunch of steps that you
need to follow to test something – maybe
you’re doing QA –
that’s really great because you can keep
the steps with you and the screenshot can follow
you around the screen. I highly
recommend all of these tools
and they’re all linked so I’ll give you a
link to the slides and you can check them
out
and see if they work for you and for
your workflow.
The last thing I want to cover is
probably the most important and that is
growth.
Where do you want to be in five years?
And
if you don’t have an immediate answer
for that, that is totally okay.
Some of us like to live in the moment
and some of us like to plan
our whole lives out down to what jobs we
want to have and
how long we want to stay there. It is
important to me though
to understand where my current role is
going.
What’s the trajectory of this particular
role?
Where does it go in two years? Where does
it go in three years?
How can you reach those trajectories?
How can you set
goals in order to continue to improve
towards that career path?
If your manager isn’t already
checking in on things like this or if
you don’t have scheduled reviews,
I recommend asking for it. You can say
something like
“hey, I want to know where I’m headed from
here and what things I can
improve on?
Can we talk about that and can we set
some goals for
the quarter or for the year?” depending on
how your organization runs
check-ins and points of
importance.
I do want to point out that I have also
worked with a lot of developers who are
just happy where they are.
They weren’t as interested in moving up
some kind of
ladder from junior to senior to
tech lead.
And they weren’t necessarily looking
forward to position in developer
management, for example. That’s all to
say that if you are content with where
you are
and what you’re doing that’s totally
valid and don’t let me
tell you to make a plan. [Laughs]
When I’m thinking about things like
these I visualize it like a balance.
So on one side is the balance of things
that this organization provides to you –
these are going back to our
criteria of
assessing companies and positions. These
are the things
that really brought you to this company
and that continue to
give you value so you stay there. And
then on the other side, we have the
balance of things that you deliver.
This is what you bring to the company,
what value you’re bringing in,
what talent or understanding
or specific skills that you’re
bringing in. I think the different
things
on either side of this balance, for me,
have different importances
and different weights.
For example,
if I’m working on projects I
love – that’s something the company is
providing to me – they’re giving me
opportunities to work on things that I’m
really excited about
and that I feel are really valuable.
However if I’m dealing with
microaggressions every day or my
teammates are
really really hard to work with and it’s
a constant struggle –
that’s resilience and patience that I’m
putting in. That’s something that
I’m bringing to the organization.
You have to think about it as not the
balance of things for someone else,
it’s the balance of things for you!
And for me
what usually happens is that this
balance needs to remain relatively equal
as I continue to work at a place.
To give you another example, if I’m
passionate about diversity inclusion
and I like to talk about it at events
and provide
actionable items where we can
improve that’s something that I’m
providing that makes the company look
good.
If the company continues to support
me and sponsor me to speak at events,
that’s something they’re providing that
makes me really happy. Those
are two things that are kind of
equivalent
on the balance, but if you remove one –
let’s say the company no longer has the
budget
to sponsor me speaking at events and
that’s something that was really
important to me
and a part of why I valued this company –
suddenly that balance is off:
I’m providing more than the
company is providing to me
and that’s a big change in the way
that I work
and it would it would require me to
reassess what this balance looks like.
I like to be really conscious about
what’s important to me,
what belongs on either side of this
balance and then continue to
assess and re-evaluate this balance
every few months.
If there’s a big change in
the way that we work
as a team or a really big project or a
new goal for the year,
I come back to this and I think:
“how does that change my balance?”
or “Do I still feel really good about what
the company is doing for me and what I’m
doing for the company?”
One of the indicators that there’s
something wrong with the balance
you have
is if you’re feeling burnt out or tired
about work all the time
or you feel really anxious on sundays
going into a monday of work –
I come back to this and I think
“Am I giving more than necessary without
receiving anything in return?”
When that happens, I ask “are there
circumstances that can be changed
in order to fix the balance?”” If there
are things that just can’t be fixed,
“Do I need to move on and find another
job?”
That being said, the important thing here
is to find what works for you
and how you can best support yourself in
your career.
As a junior developer, I had a habit of
thinking that I was indebted to a
company for hiring me
because I felt like an imposter in
technology. I think a lot of that
comes back to
being a woman of color in
technology and
just having to work on my own
self-esteem and having to work
on developing my own sense of worth and
knowing that
I have talent and that I have
a lot to contribute.
So that’s something that is an us
problem that we have to work on
ourselves. Even when I was preparing
for this talk, I was thinking
“well am I really a senior developer? I
guess I’m not
a junior developer, but do I really have
advice that I could give
and share with people?” and I
went through this cycle of
“I think I have advice, but would this
advice be useful?”
At some point, I just had to stop
myself and think “yes,
I do have the unique experience of being
a young woman and a person of color in
technology
and I do have a lot to say and a lot
to share and a lot of advice that I have
to impart
to the me five years ago.”
And hopefully to the you that is setting
out on your career. So
this is your scheduled reminder that you
are awesome! You deserve to be celebrated
and treated well. You deserve to work
at organizations that value you,
value your skillsets, and celebrate you
for the work that you do.
Thank you so much for your time! I am so
grateful to be able to share a very
small slice of what I’ve learned –
sometimes the hard way – over the years. If
you have feedback on this talk
or how it can be improved, I’d love to
hear that as well!
I’m thinking next time, it could be cool
if it was a storytelling
adventure
where you can follow young fatima as she
joins a company,
encounters really awkward situations
with teammates and managers,
but learns things over time! I was
talking to a friend today
about how I felt like I wasted a
year of my life
working at a certain company where I
didn’t feel like I had any growth
and I was constantly miserable and
frustrated with the team dynamics.
He said to me, “we never really
waste a year,
we just learn a lot, sometimes the hard way.”
And so,
that was a lesson that I felt like I
wanted to share because it was so timely
given that we’ve just come out of a
really rough year and many of us may be
feeling like it wasn’t what we wanted it
to be.
I’m trying to rephrase that narrative
and tell myself that
even if the year didn’t feel useful,
it taught me a lot and today I get
to share some of that with you!
If you’d like to reach out and talk more
about things like this, you can find me
on twitter
@sugaroverflo. I’m always happy to have
conversations
and learn from people’s experiences and
grow.
Also included is a link to these slides
and
a collection of links to some resources –
podcasts, books, articles that I read when
I’m thinking about my
career and some better or nuanced
advice that might apply to you.
I hope you’ll explore those if you’re
looking for more and I hope that you’ll
have a wonderful
WordFest Live 2021. Thank you so much for
your time
and take care, stay safe, and remember
that you are really, really great and
awesome!
I hope the places that you work and the
people you work with continue to value
you!
Thank you!