Git Product home page Git Product logo

daily-study's People

Contributors

kymr avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

daily-study's Issues

Week 5 homework

Week 5 homework

  • Article reading and make a word list
  • Dictation challenge
    • Choose a video or radio, then right down what it says.

Week2 - Project Nimble: Region Evacuation Reimagined

Title

  • Project Nimble: Region Evacuation Reimagined

Summary

  • Project Nimble is a great tool to execute region evacuation faster and more automatic way when facing outage.
  • It used to take 50 minutes before, but now it takes only 8 minutes with Nimble.
  • 5 Steps of old method
    • 5 minutes to decide whether they execute or not
    • 3-5 minutes to provision resources from AWS. It was hard to calculate how much capacity needed for each services to absorb traffic
    • 25 minutes for their services to start up. Booting, Launching, Downloading, Making connections, Register with eureka, configuration, ELB.
    • 10 minutes to proxy traffic to destination regions. Proxying with Zuul to move traffic in increments,
    • 5 miinutes to flip DNS. DNS TTLs generally took 5 minutes.
  • First Iteration
    • was failed.
    • It is hard to consult on each of the hundreds of scaling policies.
    • Also it is hard to calculate desired service size given incoming RPS
  • Dark Capacity works
    • Having extra capacity to be able to receive traffic
    • They could keep instances hidden away in shadow ASGs.
    • They automated that way to pluck an instance, and push it to ether, and pop it into a running service group.
    • In production, It it complex due to CI/CD strategies. They use Edda and Spinnaker to track changes.
    • Also they interject early in the boot process to make dark instances configuration matched to production environment.
    • For controlling traffic, they changed dark instance's eureka health status to STARTING. It meant instances are ready but waiting for traffic until it is changed to UP.
    • Also in STARTING status, it is disabled Atlas metric reporting.
  • Rolling out took only 6 months by 2 member.
  • It is wide ranging and very impactful project. But nimble is simple. Other teams doesn't need to take effort for region evacuation.
  • The Nimble can be used for other features like emergency expansion or quick auto-scaling.

Reference

Week4 - Lessons from Building Observability Tools at Netflix

Title

  • Lessons from Building Observability Tools at Netflix

Summary

This article introduce why Netflix build centralized observability tools and how. As Netflix business grows, scalability is very critical. Also because they adapted mircoservices architecture, it is getting harder and harder to troubleshoot issues and find a root cause when error happens. Because of that, they built many observerability tools to keep most of engineers going on innovating rapidly and bringing to their customers.
For scalable logs, they built Mantis which is a real-time streaming processing platform. They also built a tool for distributed request tracing. It serves insights on microservices environment by providing additional contextual data based on constituent traces. They have Atlas for monitoring metrics and analyzing it. They use Cassandra, Elasticsearch and Hive as data persistent storages. Finally, they provide user interfaces which is customized views for each group what they want to see.

Reference

Week3 - Using Machine Learning to Improve Streaming Quality at Netflix

Title

  • Using Machine Learning to Improve Streaming Quality at Netflix

Summary

  • Providing a quality streaming experience for this global audience is an immense technical challenge
  • install and maintain servers throughout the world
  • algorithms for streaming content from those servers to our subscribers’ devices
  • diverse viewing behavior
    • Viewing/browsing behavior on mobile devices is different than on Smart TVs
    • Cellular networks may be more volatile and unstable than fixed broadband networks
    • Networks in some markets may experience higher degrees of congestion
    • device groups have different capabilities and fidelities of internet connection due to hardware differences
  • Network quality characterization and prediction
    • the average bandwidth and round trip time supported by a network are well-known indicators
    • stability and predictability make a big difference when it comes to video streaming
    • A richer characterization of network quality would prove useful for analyzing network, determining initial video quality and/or adapting video quality throughout playback
    • How can we incorporate longer-term historical information about the network and device?
    • combine temporal pattern recognition with various contextual indicators to make more accurate predictions of network quality
  • Video quality adaptation during playback
    • Adaptive streaming algorithms are responsible for adapting which video quality is streamed throughout playback based on the current network and device conditions
    • The quality of experience can be measured in several ways
      • including the initial amount of time spent waiting for video to play
      • the overall video quality experienced by the user
      • the number of times playback paused to load more video into the buffer (rebuffer)
      • the amount of perceptible fluctuation in quality during playback
    • These metrics can trade off with one another
      • The feedback signal of a given decision is delayed and sparse
    • when learning optimal control algorithms, and machine learning techniques (e.g., recent advances in reinforcement learning) have great potential to tackle these issues.
  • Predictive caching
    • statistical models can improve the streaming experience is by predicting what a user will play in order to cache (part of) it on the device before the user hits play
    • By combining various aspects of their viewing history together with recent user interactions and other contextual variables
  • Device anomaly detection
    • Netflix operates on over a thousand different types of devices
    • it is not uncommon to cause a problem for the user experience
    • the app will not start up properly, or playback will be inhibited or degraded in some way
    • Detecting these changes is a challenging and manually intensive process.
    • Alerting frameworks are a useful tool for surfacing potential issues but oftentimes it is tricky to determine the right criteria for labeling something as an actual problem
    • Fortunately, we have history on alerts that were triggered as well as the ultimate determination (made by a human) of whether or not the issue was in fact real and actionable
    • it is often challenging to determine the root cause
    • Statistical modeling can also help us determine root cause by controlling for various covariates
  • statistical modeling and machine learning methods can improve the state of the art
    • there is sufficient data
    • the data is high-dimensional and it is difficult to hand-craft the minimal set of informative variables for a particular problem
    • there is rich structure inherent in the data due to complex underlying phenomena

Reference

Week 2 homework

Week 2 homework

  • Article reading and make a word list
  • Weekly speaking topic : Coding problem (pick one)
    • How do you find the missing number in a given integer array of 1 to 100?
    • How are all leaves of a binary search tree printed?

Week 3 homework

  • Article reading and make a word list
  • Stackoverflow experience
    • Ask your question or answer any question at Stackoverflow.
    • Explain about the question or answer.

이제 10년 경력이 된 나에게 스스로 주는 조언

Let go (내려놓기)

  • Don't be too hung up and swayed by evaluation or compensation.
     * 평가나 보상에 너무 목 매이고 흔들리지 말아라.
  • Don't get ahead of yourself too much, because you think you've done a good job.
     * 네가 잘났다고 생각해서 너무 혼자 앞서가지 말아라.
  • Don't say another word for the sake of showing off, just listen. please.
     * 절대 잘난체하려고 말 한마디 더 하지 말고, 들어라. 제발.
  • Don't be sad, don't settle for unnecessary things.
     * 서운해하지 말고, 불필요한 것에 발 담그지 말아라.
  • Don't pay too much atention to the calumnies that are not important to me.
     * 중요하지 않은, 나와 시각이 다른 사람이 하는 비방에 너무 신경쓰지 말아라.
  • Don't make proud, but don't be daunted.
     * 자존심 세우지 말되, 주눅 들지 말아라
  • Forget about it when someone blames you without reason.
     * 까짓 것 욕 한번 먹어라.
  • Except for your sincerity and passion, there's not much left. Don't lose it.
     * 너에게 성실함과 열정을 제외하면 남는건 별로 없다. 그것을 잃지 말아라.

The Helper of colleagues (동료의 지원자)

  • Make a place to breathe instead of working recklessly.
     * 무턱대고 일하지 말고 숨쉴 공간을 만들 것.
  • Help colleagues from the back without being in front.
     * 내가 전면에 나서지 않고 뒤에서 동료들을 도울 것.
  • Help colleagues work with clear role.
     * 동료들이 명확한 Role을 가지고 일할 수 있도록 도울 것.
  • Trust and entrust to colleagues.
     * 동료들을 믿고 위임할 것.
  • For colleagues who need help, don't give an answer, just give a hint.
     * 도움이 필요한 동료에겐, 답을 주지말고 길에 대한 힌트만 주어라.
  • It is not mine that my opinion is partly reflected. Turn credit to colleagues.
     * 내 의견이 일부 반영되었다고 해서 내 것이 아니다. 동료에게 공을 돌려라.

The Goal of next year (내년에 집중할 것)

  • Don't just have a superficial knowledge, but deeply understand.
      * 관심 있는 부분은 응용 정도가 아니라 깊이 이해할 것.
  • Counter Positioning. Learn best-practices and propose it.
      * Counter Positioning을 위한 학습 / 제안.
  • Learn Business-strategy. Increase understanding of the Service.
      * 비지니스 전략 공부 - 서비스에 대한 이해도 높일 것.
  • Listening to a struggling colleague
      * 힘들어하는 동료의 말을 들어주기.

Week 4 homework

  • Article reading and make a word list
  • Presentation
    • Free topic related to technology and our work
    • Prefer 5 ~ 10 min

Week1 homework

Article reading

  • Read at least one English article
  • Collect English words or expressions in the form
Title : {title of the article}
Summary : {summary of the article; English or Korean}
Reference : {url of the article}
Words :
{any format that you prefer}

Weekly speaking topic

  • Introduce yourself, introduce your career

Week2 - Distributing Content to Open Connect

Title

  • Distributing Content to Open Connect

Summary

  • Goal
    • Maximizing traffic without compromising utilization
    • To ensure stable operation even in changing cluster
  • Consistent Hashing
    • There is a ring with all numbers from 0 to N
    • Server IDs are hashed over that ring. (1000 times to distribute more equally)
    • The space between hash values is owned by that server Id.
    • Content Ids are hashed over that ring too, and it is assigned to the server which own that space.
    • This approach also can minimize churn, when a server is added to or removed from the cluster.
  • Heterogeneouty is challenge
    • They have two general categories. Storage and Flash.
    • Storage size is different across servers in the cluster
    • Throughput is also different.
    • These issues can cause contents holes and decreasing throughput utilization
  • Heterogeneous Allocation Algorithm
    • Criteria
      • Distribute content in proportion to the storage capacity of each server without causing content holes
      • Distribute popular and less popular content so that traffic attracted to a server is proportional to its throughput capacity
    • Allocating contents in two stages, each with its own weighted consistent hash ring
    • Specifying weights for each server in each stage
    • Catalog depth (cutoff) where switch from stage1 into stage2.
    • Choosing the cutoff where the probability of churn is smallest

Reference

Week1 - Introduce yourself, introduce your career

Hello. My name is yongmaroo-kim. I'm a senior software engineer at Naver. Especially, I have been working at Video-Platform Team for 10 years. There are a lot of projects that i have experienced. Among them, "VOD Platform 2.0" is memorable to me. Nowadays, I am developing and maintaining the platform and making it continualable.

I am going to introduce to you what VOD 2.0 is, why we had to make it, and how. 2 years ago, we had trouble to maintain our platform. There were 3 main reasons make it hard.

  • Two platforms with the same functionality
  • Legacy Platforms that lasted for 10 years
  • Legacy Frameworks

First of all, we had to maintain two different vod-platforms (UGC / RMC) which have same functionality. UGC is for user generated contents. RMC is for ready made contents. They served almost similar features except that the user's personality was different. So it caused operation costs double.
Second, we had maintained our platform for 10 years. As the video business becomes more important, we had to deliver new features more quickly. Also, request count went up, and we had to deal with bigger files than before, and served better quality. It needs more computation costs. It made our platform more complicated.
While operating our platform, there were many changes. When we change and deliver new features, we have to choose better decision for long-term perspective. But we could not make it for every decision that we had, because sometimes we had to choose fast delivery and wanted to make fewer side effect. It caused technical debt, and it made us slower and slower.
Most of our modules, it was based on Java 6 and Struts 1, and those frameworks were maintained no more. Some libraries that are newly developed support Java 6 no more. And sometimes we had to develop with older way due to legacy frameworks. It caused productivity down, and it also reduced developer's motivation.

We had to fix it. So we decided to take on building new platform that can replace old one. That is VOD 2.0. We had to set 3 main strategies to archive goal.

  • Integrating into One Platform.
  • Ensure compatibility with existing platforms.
  • Each Module should be operated and scaled independently.

For the reasons mentioned above, we chose MSA instead of Monolith. There were two main considerations when we adopt MSA.

  • How can we resolve complexity from MSA?
  • How can we successfully migrate to MSA without having a large failure on existing platforms?

We chose Spring-Cloud that had been battle-tested by Netflix and easy to use with spring-boot. It served us maintainability and make system's complexity down. And we have migrated one by one from existing platforms to VOD 2.0.
It was very long and hard journey, but we could finally make it. I am going to write an article about more detailed information. If you want more details, then please read that article.

Nowadays, for technical I am studying the workflow engine that can resolve complexity of ingest process. For organization, I am managing team to encourage people to learn and grow fast. During the project, we tried to adapt agile principles and improved our development process. It helped us a lot to work together and work more efficiently. Every retrospection, we ask the right questions, and we get the feedback, and we can make it better. That's the advantage of our team. That is the most interest thing recently.

Week3 - Engineering to Improve Marketing Effectiveness (Part 1)

Title

  • Engineering to Improve Marketing Effectiveness (Part 1)

Summary

  • “Make people so excited about our content that they sign up and watch”
  • The AdTech team’s charter is to help make it easy for our marketing partners to spend their time and money wisely through experimentation and automation
  • Context and Culture:
    • If we are successful at creating demand for our original content, new members will sign up
    • we are more successful if we create and collect on this demand (acquisition marketing) in about the right proportion by market.
  • The AdTech team helps our marketing partners execute against that strategy in the following ways:
    • Creating technology to streamline workflows to improve assets for marketing
    • Creating a unified internal platform for creating ads and campaigns across all our promotional canvases and channels
    • Enabling technology that allows us to measure and optimize the effectiveness of our marketing campaigns
  • Optimizing for Incrementality
    • Some cohorts of people are likely to sign up for Netflix anywa
  • an overview of the work to support our operations team who helps create millions of assets (trailers, artwork, etc.) that are used in Netflix marketing
  • Creative Development & Localization at Scale
    • We need our marketing, social & PR teams to come together to scale our content campaigns globally around the world
    • Our charter is to create applications and services that help Netflix Marketing optimize and automate their processes and scale their operations to deliver a large number of video, digital and print assets for all Netflix marketing campaigns being worked on across the globe.
  • So how are these trailers created?
    • it all starts with the Marketing Creative team working with external agencies to create a set of trailers for a particular title
    • the trailer is finalized for the original language of the title
    • Regions then need this trailer in various combinations of subtitles, dubs, ratings card, Netflix logo in specific locations on the screen
  • Digital Asset Management
    • provides a user interface to our partners and external agencies to upload/download/share these digital assets
  • Video Clipping in the Cloud
  • Video assembly for marketing assets
    • this tool will automate creation of localized versions of the trailer given all the inputs such as the master trailer file along with the subtitles, dubbing and other relevant information for a language/region
  • Encoding in the cloud
    • we are providing an abstraction layer on top of the encoding service
  • Campaign management oversight
    • to provide insights into the health of the marketing campaigns

Reference

Tech Interview Tip

public class TechInterviewTip {
	// 승지니어 : https://www.youtube.com/watch?v=-kKQZlAJo0Y

	// 1. Refine requirement
	public List<String> fineNamesFromMovieScript(String movieScript) {
		// abstract
		// Does input only contains alphabetic characters?
		// ignore cases?
		// Should I consider same name be represented in various forms? (Michael == Mike)
		// Can I think that the number of characters is limited? (Complexity)

		return null;
	}

	// 2. The utility method could be assumed.
	public List<String> permutateString(String input) {
		// e.g : input ab
		// result : [ab, Ab, aB, AB]
		// Character.toLowerCase(char c)
		// Character.toUpperCase(char c)
		// I can solve this with backtracking.
		// I know that language support case conversion of character.
		// But I don't exactly remember how to use that method.
		// Can I assume that?

		return null;
	}

	// 3. Be proactive to communicate, and request hint if you needed
	public void veryDifficultQuestion() {
		// Even if the problem is difficult, you have to think about how to solve it, and communicate with it
		// Communicate with interviewers about the logical process from the start.
		// If you don't totally know how to solve it, request hints politely.
		// Request another problems if you don't know.
	}

	// 4. If the problem is too complicated, then approach from a small part
	// If there are 3~4 parts to solve, then solve it one by one.
	public class SudokuSolver {
		public SudokuSolver(char[][] board) {

		}

		public char[][] solveSudoku() {
			return null;
		}

		// I am going to create validation method for sudoku, then solve it with backtracking
		// I am going to implement validation method first.
		public boolean isValidSudoku(char[][] board) {
			return true;
		}
	}

	// 5. Be confident and patient.
	// Tech-interview 1 session : 50 m ~ 1 H
	// Time flies somehow
	// Try to show you something even if you can't solve it
	// Ask questions appropriate ,or try to solve a small part.
}

2018-10 Words in work

Words

  • This issue lists the possible risks in advance.
  • one of the directions is influential
  • the most likely suggestion

2018-10 Daily Tasks

Coding / Interviews

  • Solving at least one problem at leet code.
  • Step through the problem area in leet code.

English

  • Read at least one article and make words
  • Repeat words

Helloworld Contribution

  • Completing the article

OpenSource

  • Conductor

Week2 - AVA: The Art and Science of Image Discovery at Netflix

Title

  • AVA: The Art and Science of Image Discovery at Netflix

Summary

  • Ava is a set of tools and algorithms designed to surface high quality imagery from the videos.
  • Frame Annotations
    • Using archer, they can process a video in parallel.
    • Every frame of video is processed through a series of computer vision algorighms
    • Visual Metadata
      • objective, measurable at the pixel-level.
      • brightness, color, contrast, motion blur
    • Contextual Metadata
      • Face detection
      • Motion estimation
      • Camera shot identification
      • Object detection
    • Composition Metadata
      • a set of heuristic characteristics based on photography, cinematography, and visual aesthetic design.
      • rule of third, depth of field, symmetry
  • Image Ranking
    • surface "the best" image candidate
    • Actors
      • Actors play a very important role in artwork
      • One way we identify the key character is by utilizing a combination of face clustering and actor recognition
      • trained a deep-learning model to trace facial similarities
    • Frame diversity
      • there are many different ways to perceive and define diversity
      • the algorithms ability to capture the heuristic variance
      • such as camera shot types, visual similarity (rule of thirds, brightness, contrast), color (colors that are most prominent), and saliency maps (to identify negative space and complexity)
    • Filters of maturity
      • excluded frames containing harmful or offensive elements.

Reference

믿으세요. 전념하세요. 사랑하세요.

Reference

Contents

I was born with a silver spoon in my mouth I know.
I was born in Follansbee, West Virginia.
And I went by where I was born last night about 10:30.
I was born in a seller at home, delivered by Doctor McGraw.
We had one bedroom for my sister, myself, and my parents.
We had a half bath and a kitchen.
Seven and a half years we lived in that place.
There's no walfare. There's no food stamps. There's no safety net.
But I always had plenty to eat. Because everytime I asked for seconds, my dad would say 'No, you had plenty'.
But the reason I was born with a silver spoon, my dad had only gone to the 3rd grade, that's all the education he had.
But why was I born with a silver spoon in my mouth?
Because I was tought by my parents.
That life is a matter of making choices, wherever you are, good or bad, it's because of choices you made.
Don't blame anybody else. But if you get an education, you are willing to work, and overcome problem and difficulties,
In this great country, you can amount to something.
That's why I was born with silver spoon, I was in this country, and I was taught.
Personal responsibility for choices you make.
When we talk about a commitment to excellence,
That's a choice you make.
What do you want to do?
Having hopes, and dreams, and ambition.
See I think I was absolutely critical.
and don't make the mistake I made.
I've done a lot of dumb things. But let me tell you the one thing, I regret.
We were with the University of Notre Dame, we took a program on the bottom, we took it the very top.
And for 9 straight years we went to a January 1 bowl, the Sugar the Cutton, the Orange, and the Fiesta.
Nobody is done it before.
Nobody is done it since.
We put it on top and we maintained it.
That's the thing I regret the most.
See There's a rule of life that says you are either growing or you are dying.
The tree's either growing or it's dying, So's grass, So's a marriage. So's a business.
So's a person.
Doesn't have a thing to to do with age.
My birthday candles cost more than the cake.
But it has everything to do with my trying to get better, my trying to prove we got on top and say,
you know this is pretty good, let's maintain it. Let's not take any risks.
We finished second in the country at notre dame.
everybody called me an idiot.
Guy finishes last in medical school, they call him doctor.
That doesn't seem fair.
When I left Notre Dame. I never thought I'd coach again.
Where do you go from Notre Dame?
According to my mother, you go directly to Heaven and you sit by the Pope.
You don't coach anymore.
And then I went to live in a town where the average age was deceased.
When I found out, I wasn't tired of coaching.
You have to have something to hope for, something to dream.
And Even though you've done great things so far.
What's going to happen now?
I want to give you a simple plan.
Life doesn't have to be complicated.
I try to keep life siimple.
Do you realize there are only 7 colors of the rainbow? Only 7.
Look what Michelangelo did with those 7 colors!
There's only 7 musical notes.
Look what Beethoven did with those 7 notes.
There's only 10 numbers.
Look what Bernie Madoff did with those 10 numbers.
The point I make is it doesn't have to be complicated.
Say you need four things in your life.
If you don't have any of these four things in your life,
you are going to have a tremendous void.
See, everybody needs something to do.
Number 2, everybody needs someone to love.
Number 3, everybody needs someone to believe.
In my case, it's Jesus christ, our load, and Savior.
But the fourth thing you need in your life is you need something to hope for.
There's never a right time to do the wrong thing.
And there's never a wrong time to do the right thing.
Just do what's right. I think it's right to be honest. Right to be on time.
See, Ladies and Gentleman. Enjoy life, have fun.
You are going to have problems, you are going to have difficulties.
That's part of life.
Don't tell people about your problems.
Do you know that 90% of the people don't care?
And the other 10% are glad you got them.
So you are better off at keeping to yourself.
You are going to have problems.
But have fun with what you are doing.
People say "Did you have fun doing ESPN?"
Not really. Because if you have fun being there, people have fun being around.
Doesn't mean I don't do dumb things.
and sometimes I wasn't real honest.
Do everything to the best of your ability with time allotted.
You know, Ladies and Gentlemans.
Not all of us can be All-American.
Not everybody can be first team.
Everybody can be the best you are capable of being.
I want to tell you, if you want to fail, you have the right to fail.
That's what is great about this country.
You do not have the right to cause other people to fail.
Because you don't do everything to the best of your ability.
When you join a spouse, you bring a child into the world, you join a business, you join a team,
you have obligations and responsibilities.
And you owe it to other people to do the maximum you can at each and everything you do.
It's not complicated.
And the last rule, is show people you care.
When you walk into a room, is your attitude
"Hey, here I am, look at me?"
It's like, no.
Your attitude, there you are. "How can I help you?"
I wished I knew those three rules when I was 21.
I've used them for the last 40 years.
There's a statue of me at Notre Dame.
I guess they needed a place for the pigeons to land.
If you go and look at it.
Just don't look there.
Look at three words on the pedestal.
Trust. Commitment. Love.

조직의 테크리드는 무엇을 해야하는가? (김영재님 발췌)

조직의 테크리드는 무엇을 해야 하는가?

당연히 코딩을 해야 한다.

코드로 제품이 나오는 조직의 리더는 당연히 코딩을 손에서 놓지 말아야 한다.

중요한건, 무엇을 코딩해야 하는가?

...

제품 그 자체에 대한 코딩은 안해도 괜찮다. 제품 하나를 더 정교하고 더 깔끔한 코드로 만드는 건 팀원들이 잘 하고 있다.

하지만, 하나의 제품이 시간이 지날 수록 더 빨리 더 높은 수준으로 나오려면, 제품을 쓰는 입장이나 제품과 연관된 파트너와의 관계나 제품의 다음 방향에 대해 코딩하는 것이 필요하다.

...

테크리드는 기술자 중 가장 밖으로 많이 돌아다니는 사람이기 때문에, 가장 넓은 시야를 가졌고 팀을 둘러싼 생태계 관점에서 관찰할게 많고 좋은 인사이트를 가질 수 있다.

그러므로 다른 팀과 협업하거나 유저와 직접 부딪히면서 어떻게 제품을 둘러싼 제품 외의 문제를 엔지니어링으로 풀 수 있는지 고민하고, 이를 코드로 해결해야 한다.

이 역할은 개발자 한 명 뽑고 '너가 해보렴'이라고 해봤자 인사이트가 만들어지지 않기 때문에 제대로 할 수도 없고, 그만큼 테크리드가 제일 잘 할 수 있는 일이기도 하다.

...

나는 철저하게 나의 포지션을 janitor로 잡고 있다.

쉽게 말해 카페 앞에 낙엽을 쓸거나 화장실을 매 시간마다 깨끗하게 유지해서, 동료들이 다른거 신경쓰지 않고 더 웃는 얼굴로 손님을 맞이하거나 더 커피 만드는데 집중하도록 하는게 나의 일이다.

예를 들어,

빌드서버 설정을 닦아서 '딱 누르면 딱 나오게' 한다거나,

2주 걸리던 일을 자동화 해서 1시간으로 줄인다거나,

lint 한 줄 더 추가해서 빌드 결과를 믿을 수 있게 하거나,

협력사와의 코드 공유를 늘려서 커뮤니케이션을 줄인다거나,

디버깅 메뉴를 많이 만들어서 다른 팀도 쓰기 좋게 하거나,

입력창에 설명을 더 써넣는다거나, 그런 소소한 일들이다.

DevOps도 아니다.
그저 업무프로세스를 엔지니어링으로 해결하는 잡무일 뿐이다.

...

이 역할은 대부분의 개발팀에서 비어있다.

딱히 하고 싶어하지도 않는다. 제품과 별 상관도 없고 알아주지도 않고 성취감도 없기 때문이다.

게다가, 괜히 시작했다가 끝없이 유지보수해야 하기 때문이다. 그러다보면 본업에 코딩할 시간도 빼앗기니까 좋을게 없다.

하지만 프로세스 엔지니어링을 등한시한 팀을 밖에서 보면 한심할 정도로 비효율적으로 일하고 있다 - 이 책임은 테크리드에 있다고 본다. 나는.

...

테크리드는 뭔가 아키텍처를 그린다거나 코드리뷰를 하거나 스펙 정의만 신경쓰거나 신기술검토를 하는거라고 생각하는 경우가 많은데,

그건 기본이고 그 이상을 해야한다.

최근 반년간 내가 하는 코딩의 70%는 업무 프로세스에 대한 엔지니어링이었다. 이 정도 하니까 팀과 그 주변의 agility가 살아나는게 느껴지더라.

테크리드가 제품을 넘어서 팀의 환경을 위한 코딩을 하면 팀 자체가 강해진다. 그러면 어떤 제품이든 자신있게 만드는 팀이 된다. #

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.